@roots/bud-compiler 5.0.0-next.14 → 5.0.0-next.18
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 +8 -28
- package/lib/cjs/Compiler/index.js +29 -27
- package/lib/cjs/Compiler/index.js.map +1 -1
- package/lib/cjs/index.js +1 -1
- package/lib/esm/Compiler/index.js +29 -27
- package/lib/esm/Compiler/index.js.map +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/tsconfig-esm.tsbuildinfo +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
- package/types/Compiler/index.d.ts +5 -8
- package/types/Compiler/index.d.ts.map +1 -1
- package/types/index.d.ts +1 -1
package/README.md
CHANGED
@@ -1,41 +1,25 @@
|
|
1
1
|
<p align="center">
|
2
|
-
<img
|
2
|
+
<img src="https://cdn.roots.io/app/uploads/logo-bud.svg" height="100" alt="Bud" />
|
3
3
|
</p>
|
4
4
|
|
5
5
|
<p align="center">
|
6
|
-
<img
|
7
|
-
alt="MIT License"
|
8
|
-
src="https://img.shields.io/github/license/roots/bud?color=%23525ddc&style=flat-square"
|
9
|
-
/>
|
10
|
-
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Froots%2Fbud?ref=badge_small" alt="FOSSA Status">
|
11
|
-
<img src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Froots%2Fbud.svg?type=small"/>
|
12
|
-
</a>
|
13
|
-
<a href="https://www.npmjs.com/package/@roots/bud">
|
14
|
-
<img src="https://img.shields.io/npm/v/@roots/bud.svg?color=%23525ddc&style=flat-square" />
|
15
|
-
</a>
|
16
|
-
<a href="https://codecov.io/gh/roots/bud">
|
17
|
-
<img src="https://codecov.io/gh/roots/bud/branch/next/graph/badge.svg?token=DRJ28OD8XD"/>
|
18
|
-
</a>
|
19
|
-
<a href="https://twitter.com/rootswp">
|
20
|
-
<img
|
21
|
-
alt="Follow Roots"
|
22
|
-
src="https://img.shields.io/twitter/follow/rootswp.svg?color=%23525ddc&style=flat-square"
|
23
|
-
/>
|
24
|
-
</a>
|
6
|
+
<img alt="MIT License" src="https://img.shields.io/github/license/roots/bud?color=%23525ddc&style=flat-square" /> <img alt="npm" src="https://img.shields.io/npm/v/@roots/bud.svg?color=%23525ddc&style=flat-square" /> <img alt="Follow Roots" src="https://img.shields.io/twitter/follow/rootswp.svg?color=%23525ddc&style=flat-square" />
|
25
7
|
</p>
|
26
8
|
|
27
|
-
|
28
9
|
<h1 align="center">
|
29
10
|
<strong>@roots/bud-compiler</strong>
|
30
11
|
</h1>
|
31
12
|
|
32
|
-
>
|
13
|
+
<p align="center">
|
14
|
+
Compilation handler
|
15
|
+
</p>
|
16
|
+
|
33
17
|
## Installation
|
34
18
|
|
35
19
|
Install **@roots/bud-compiler** to your project.
|
36
20
|
|
37
21
|
```shell
|
38
|
-
yarn add @roots/bud-compiler
|
22
|
+
yarn add @roots/bud-compiler --dev
|
39
23
|
```
|
40
24
|
|
41
25
|
## Documentation
|
@@ -67,8 +51,4 @@ Help support our open-source development efforts by [becoming a patron](https://
|
|
67
51
|
<a href="https://carrot.com/"><img src="https://cdn.roots.io/app/uploads/carrot.svg" alt="Carrot" width="200" height="150"/></a>
|
68
52
|
<a href="https://www.c21redwood.com/"><img src="https://cdn.roots.io/app/uploads/c21redwood.svg" alt="C21 Redwood Realty" width="200" height="150"/></a>
|
69
53
|
<a href="https://wordpress.com/"><img src="https://cdn.roots.io/app/uploads/wordpress.svg" alt="WordPress.com" width="200" height="150"/></a>
|
70
|
-
<a href="https://
|
71
|
-
<a href="https://www.harnessup.com/"><img src="https://cdn.roots.io/app/uploads/harness-software.svg" alt="Harness Software" width="200" height="150"/></a>
|
72
|
-
<a href="https://www.codersclan.com/"><img src="https://cdn.roots.io/app/uploads/coders-clan.svg" alt="Coders Clan" width="200" height="150"/></a>
|
73
|
-
<a href="https://generodigital.com/"><img src="https://cdn.roots.io/app/uploads/genero.svg" alt="Genero" width="200" height="150"/></a>
|
74
|
-
<a href="https://motto.ca/roots"><img src="https://cdn.roots.io/app/uploads/motto.svg" alt="Motto" width="200" height="150"/></a>
|
54
|
+
<a href="https://pantheon.io/"><img src="https://cdn.roots.io/app/uploads/pantheon.svg" alt="Pantheon" width="200" height="150"/></a>
|
@@ -6,7 +6,6 @@ const bud_framework_1 = require("@roots/bud-framework");
|
|
6
6
|
const bud_support_1 = require("@roots/bud-support");
|
7
7
|
const webpack_1 = require("webpack");
|
8
8
|
const { isFunction } = bud_support_1.lodash;
|
9
|
-
const helpful_decorators_1 = require("helpful-decorators");
|
10
9
|
/**
|
11
10
|
* Initial state
|
12
11
|
*
|
@@ -31,6 +30,10 @@ class Compiler extends bud_framework_1.Service {
|
|
31
30
|
* @public
|
32
31
|
*/
|
33
32
|
this.stats = INITIAL_STATS;
|
33
|
+
/**
|
34
|
+
* Compiler errors
|
35
|
+
*/
|
36
|
+
this.errors = [];
|
34
37
|
/**
|
35
38
|
* True if compiler is already instantiated
|
36
39
|
*
|
@@ -42,15 +45,6 @@ class Compiler extends bud_framework_1.Service {
|
|
42
45
|
*/
|
43
46
|
this.config = [];
|
44
47
|
}
|
45
|
-
/**
|
46
|
-
* {@inheritDoc @roots/bud-framework#Service.register}
|
47
|
-
*
|
48
|
-
* @public
|
49
|
-
* @decorator `@bind`
|
50
|
-
*/
|
51
|
-
register() {
|
52
|
-
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () { });
|
53
|
-
}
|
54
48
|
/**
|
55
49
|
* Initiates compilation
|
56
50
|
*
|
@@ -73,26 +67,31 @@ class Compiler extends bud_framework_1.Service {
|
|
73
67
|
*/
|
74
68
|
invoke(config) {
|
75
69
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
76
|
-
|
70
|
+
config =
|
71
|
+
yield this.app.hooks.filterAsync('event.compiler.before', config);
|
72
|
+
config = this.app.hooks.filter('config.override', config);
|
77
73
|
this.instance = (0, webpack_1.webpack)(config);
|
78
74
|
this.instance.hooks.done.tap(config[0].name, (stats) => (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
79
75
|
this.app.hooks.filter('event.compiler.done', stats);
|
80
76
|
stats && Object.assign(this.stats, stats.toJson());
|
77
|
+
if (this.app.store.is('features.dashboard', false)) {
|
78
|
+
this.log('log', stats.toString(this.app.store.get('build.stats')));
|
79
|
+
}
|
81
80
|
if (this.app.isProduction) {
|
82
81
|
this.instance.close(err => {
|
83
82
|
if (err) {
|
84
|
-
this.app.hooks.filter('compiler.error', err);
|
83
|
+
err = this.app.hooks.filter('event.compiler.error', err);
|
85
84
|
this.stats.errors.push(err);
|
86
85
|
this.log('error', err);
|
87
86
|
}
|
88
|
-
this.app.close(
|
87
|
+
!this.app.dashboard.instance && this.app.close();
|
89
88
|
});
|
90
89
|
}
|
91
90
|
}));
|
92
91
|
new webpack_1.ProgressPlugin((...args) => {
|
93
92
|
this.progress = args;
|
94
93
|
}).apply(this.instance);
|
95
|
-
this.app.hooks.filter('event.compiler.after');
|
94
|
+
this.app.hooks.filter('event.compiler.after', this.app);
|
96
95
|
return this.instance;
|
97
96
|
});
|
98
97
|
}
|
@@ -103,6 +102,7 @@ class Compiler extends bud_framework_1.Service {
|
|
103
102
|
* @decorator `@bind`
|
104
103
|
*/
|
105
104
|
before() {
|
105
|
+
var _a;
|
106
106
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
107
107
|
const config = [];
|
108
108
|
this.stats = INITIAL_STATS;
|
@@ -114,7 +114,7 @@ class Compiler extends bud_framework_1.Service {
|
|
114
114
|
* Attempt to use the parent instance in the compilation if there are entries
|
115
115
|
* registered to it or if it has no child instances registered.
|
116
116
|
*/
|
117
|
-
if (this.app.
|
117
|
+
if (!this.app.hasChildren) {
|
118
118
|
this.app.info(`using config from parent compiler`);
|
119
119
|
config.push(this.app.build.config);
|
120
120
|
return config;
|
@@ -126,7 +126,7 @@ class Compiler extends bud_framework_1.Service {
|
|
126
126
|
* If there are {@link Framework.children} instances, iterate through
|
127
127
|
* them and add to `config`
|
128
128
|
*/
|
129
|
-
yield Promise.all(this.app.children.getValues().map((instance) => (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
129
|
+
yield Promise.all((_a = this.app.children) === null || _a === void 0 ? void 0 : _a.getValues().map((instance) => (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
130
130
|
if (!instance.name)
|
131
131
|
return;
|
132
132
|
this.log('success', `\`${instance.name}\` compiler will be tapped`);
|
@@ -143,7 +143,7 @@ class Compiler extends bud_framework_1.Service {
|
|
143
143
|
* @decorator `@bind`
|
144
144
|
*/
|
145
145
|
callback(...args) {
|
146
|
-
var _a;
|
146
|
+
var _a, _b;
|
147
147
|
/**
|
148
148
|
* production mode callback takes two parameters (webpack err and stats)
|
149
149
|
* however, the done hook used in development just takes one (stats)
|
@@ -151,32 +151,34 @@ class Compiler extends bud_framework_1.Service {
|
|
151
151
|
* here we parse the callback args so that we dont have to
|
152
152
|
* duplicate the callback.
|
153
153
|
*/
|
154
|
-
|
154
|
+
let [err, stats] = args.length > 1 ? args : [null, args.pop()];
|
155
155
|
if ((stats === null || stats === void 0 ? void 0 : stats.toJson) && isFunction(stats.toJson)) {
|
156
|
-
this.stats = stats.toJson(
|
157
|
-
this.app.
|
158
|
-
this.app.log(stats.toString());
|
156
|
+
this.stats = stats.toJson(this.app.store.get('build.stats'));
|
157
|
+
this.stats = this.app.hooks.filter('event.compiler.stats', this.stats);
|
159
158
|
}
|
160
159
|
if (err) {
|
161
|
-
this.
|
160
|
+
if (this.app.isDevelopment) {
|
161
|
+
(_b = (_a = this.app.server.middleware) === null || _a === void 0 ? void 0 : _a.hot) === null || _b === void 0 ? void 0 : _b.publish({
|
162
|
+
errors: stats.toJson(this.app.store.get('build.stats'))
|
163
|
+
.errors,
|
164
|
+
});
|
165
|
+
}
|
166
|
+
this.errors.push(this.app.hooks.filter('event.compiler.error', err));
|
162
167
|
this.app.store.is('features.dashboard', false) &&
|
163
168
|
this.log('error', err);
|
164
169
|
}
|
165
170
|
}
|
166
171
|
}
|
167
|
-
(0, tslib_1.__decorate)([
|
168
|
-
bud_support_1.bind
|
169
|
-
], Compiler.prototype, "register", null);
|
170
172
|
(0, tslib_1.__decorate)([
|
171
173
|
bud_support_1.bind,
|
172
|
-
|
174
|
+
bud_support_1.once
|
173
175
|
], Compiler.prototype, "compile", null);
|
174
176
|
(0, tslib_1.__decorate)([
|
175
177
|
bud_support_1.bind
|
176
178
|
], Compiler.prototype, "invoke", null);
|
177
179
|
(0, tslib_1.__decorate)([
|
178
180
|
bud_support_1.bind,
|
179
|
-
|
181
|
+
bud_support_1.once
|
180
182
|
], Compiler.prototype, "before", null);
|
181
183
|
(0, tslib_1.__decorate)([
|
182
184
|
bud_support_1.bind
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Compiler/index.ts"],"names":[],"mappings":";;;;AAAA,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Compiler/index.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/index.js
CHANGED
@@ -10,7 +10,7 @@ exports.Compiler = void 0;
|
|
10
10
|
* @see https://roots.io/bud
|
11
11
|
* @see https://github.com/roots/bud
|
12
12
|
*
|
13
|
-
* @core @packageDocumentation
|
13
|
+
* @core @packageDocumentation
|
14
14
|
*/
|
15
15
|
var Compiler_1 = require("./Compiler");
|
16
16
|
Object.defineProperty(exports, "Compiler", { enumerable: true, get: function () { return Compiler_1.Compiler; } });
|
@@ -1,9 +1,8 @@
|
|
1
1
|
import { __awaiter, __decorate } from "tslib";
|
2
2
|
import { Service, } from '@roots/bud-framework';
|
3
|
-
import { bind, lodash } from '@roots/bud-support';
|
4
|
-
import { ProgressPlugin, webpack } from 'webpack';
|
3
|
+
import { bind, lodash, once } from '@roots/bud-support';
|
4
|
+
import { ProgressPlugin, webpack, } from 'webpack';
|
5
5
|
const { isFunction } = lodash;
|
6
|
-
import { once } from 'helpful-decorators';
|
7
6
|
/**
|
8
7
|
* Initial state
|
9
8
|
*
|
@@ -28,6 +27,10 @@ export class Compiler extends Service {
|
|
28
27
|
* @public
|
29
28
|
*/
|
30
29
|
this.stats = INITIAL_STATS;
|
30
|
+
/**
|
31
|
+
* Compiler errors
|
32
|
+
*/
|
33
|
+
this.errors = [];
|
31
34
|
/**
|
32
35
|
* True if compiler is already instantiated
|
33
36
|
*
|
@@ -39,15 +42,6 @@ export class Compiler extends Service {
|
|
39
42
|
*/
|
40
43
|
this.config = [];
|
41
44
|
}
|
42
|
-
/**
|
43
|
-
* {@inheritDoc @roots/bud-framework#Service.register}
|
44
|
-
*
|
45
|
-
* @public
|
46
|
-
* @decorator `@bind`
|
47
|
-
*/
|
48
|
-
register() {
|
49
|
-
return __awaiter(this, void 0, void 0, function* () { });
|
50
|
-
}
|
51
45
|
/**
|
52
46
|
* Initiates compilation
|
53
47
|
*
|
@@ -70,26 +64,31 @@ export class Compiler extends Service {
|
|
70
64
|
*/
|
71
65
|
invoke(config) {
|
72
66
|
return __awaiter(this, void 0, void 0, function* () {
|
73
|
-
|
67
|
+
config =
|
68
|
+
yield this.app.hooks.filterAsync('event.compiler.before', config);
|
69
|
+
config = this.app.hooks.filter('config.override', config);
|
74
70
|
this.instance = webpack(config);
|
75
71
|
this.instance.hooks.done.tap(config[0].name, (stats) => __awaiter(this, void 0, void 0, function* () {
|
76
72
|
this.app.hooks.filter('event.compiler.done', stats);
|
77
73
|
stats && Object.assign(this.stats, stats.toJson());
|
74
|
+
if (this.app.store.is('features.dashboard', false)) {
|
75
|
+
this.log('log', stats.toString(this.app.store.get('build.stats')));
|
76
|
+
}
|
78
77
|
if (this.app.isProduction) {
|
79
78
|
this.instance.close(err => {
|
80
79
|
if (err) {
|
81
|
-
this.app.hooks.filter('compiler.error', err);
|
80
|
+
err = this.app.hooks.filter('event.compiler.error', err);
|
82
81
|
this.stats.errors.push(err);
|
83
82
|
this.log('error', err);
|
84
83
|
}
|
85
|
-
this.app.close(
|
84
|
+
!this.app.dashboard.instance && this.app.close();
|
86
85
|
});
|
87
86
|
}
|
88
87
|
}));
|
89
88
|
new ProgressPlugin((...args) => {
|
90
89
|
this.progress = args;
|
91
90
|
}).apply(this.instance);
|
92
|
-
this.app.hooks.filter('event.compiler.after');
|
91
|
+
this.app.hooks.filter('event.compiler.after', this.app);
|
93
92
|
return this.instance;
|
94
93
|
});
|
95
94
|
}
|
@@ -100,6 +99,7 @@ export class Compiler extends Service {
|
|
100
99
|
* @decorator `@bind`
|
101
100
|
*/
|
102
101
|
before() {
|
102
|
+
var _a;
|
103
103
|
return __awaiter(this, void 0, void 0, function* () {
|
104
104
|
const config = [];
|
105
105
|
this.stats = INITIAL_STATS;
|
@@ -111,7 +111,7 @@ export class Compiler extends Service {
|
|
111
111
|
* Attempt to use the parent instance in the compilation if there are entries
|
112
112
|
* registered to it or if it has no child instances registered.
|
113
113
|
*/
|
114
|
-
if (this.app.
|
114
|
+
if (!this.app.hasChildren) {
|
115
115
|
this.app.info(`using config from parent compiler`);
|
116
116
|
config.push(this.app.build.config);
|
117
117
|
return config;
|
@@ -123,7 +123,7 @@ export class Compiler extends Service {
|
|
123
123
|
* If there are {@link Framework.children} instances, iterate through
|
124
124
|
* them and add to `config`
|
125
125
|
*/
|
126
|
-
yield Promise.all(this.app.children.getValues().map((instance) => __awaiter(this, void 0, void 0, function* () {
|
126
|
+
yield Promise.all((_a = this.app.children) === null || _a === void 0 ? void 0 : _a.getValues().map((instance) => __awaiter(this, void 0, void 0, function* () {
|
127
127
|
if (!instance.name)
|
128
128
|
return;
|
129
129
|
this.log('success', `\`${instance.name}\` compiler will be tapped`);
|
@@ -140,7 +140,7 @@ export class Compiler extends Service {
|
|
140
140
|
* @decorator `@bind`
|
141
141
|
*/
|
142
142
|
callback(...args) {
|
143
|
-
var _a;
|
143
|
+
var _a, _b;
|
144
144
|
/**
|
145
145
|
* production mode callback takes two parameters (webpack err and stats)
|
146
146
|
* however, the done hook used in development just takes one (stats)
|
@@ -148,22 +148,24 @@ export class Compiler extends Service {
|
|
148
148
|
* here we parse the callback args so that we dont have to
|
149
149
|
* duplicate the callback.
|
150
150
|
*/
|
151
|
-
|
151
|
+
let [err, stats] = args.length > 1 ? args : [null, args.pop()];
|
152
152
|
if ((stats === null || stats === void 0 ? void 0 : stats.toJson) && isFunction(stats.toJson)) {
|
153
|
-
this.stats = stats.toJson(
|
154
|
-
this.app.
|
155
|
-
this.app.log(stats.toString());
|
153
|
+
this.stats = stats.toJson(this.app.store.get('build.stats'));
|
154
|
+
this.stats = this.app.hooks.filter('event.compiler.stats', this.stats);
|
156
155
|
}
|
157
156
|
if (err) {
|
158
|
-
this.
|
157
|
+
if (this.app.isDevelopment) {
|
158
|
+
(_b = (_a = this.app.server.middleware) === null || _a === void 0 ? void 0 : _a.hot) === null || _b === void 0 ? void 0 : _b.publish({
|
159
|
+
errors: stats.toJson(this.app.store.get('build.stats'))
|
160
|
+
.errors,
|
161
|
+
});
|
162
|
+
}
|
163
|
+
this.errors.push(this.app.hooks.filter('event.compiler.error', err));
|
159
164
|
this.app.store.is('features.dashboard', false) &&
|
160
165
|
this.log('error', err);
|
161
166
|
}
|
162
167
|
}
|
163
168
|
}
|
164
|
-
__decorate([
|
165
|
-
bind
|
166
|
-
], Compiler.prototype, "register", null);
|
167
169
|
__decorate([
|
168
170
|
bind,
|
169
171
|
once
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Compiler/index.ts"],"names":[],"mappings":";AAAA,OAAO,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Compiler/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAGL,OAAO,GACR,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAC,MAAM,oBAAoB,CAAA;AACrD,OAAO,EACL,cAAc,EAGd,OAAO,GACR,MAAM,SAAS,CAAA;AAChB,MAAM,EAAC,UAAU,EAAC,GAAG,MAAM,CAAA;AAE3B;;;;GAIG;AACH,MAAM,aAAa,GAAG;IACpB,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,QAAQ,EAAE,EAAE;CACb,CAAA;AAED;;;;GAIG;AACH,MAAM,OAAO,QAAS,SAAQ,OAAO;IAArC;;QAQE;;;;WAIG;QACI,UAAK,GAAqB,aAAa,CAAA;QAE9C;;WAEG;QACI,WAAM,GAAsB,EAAE,CAAA;QASrC;;;;WAIG;QACI,eAAU,GAAY,KAAK,CAAA;QAElC;;WAEG;QACI,WAAM,GAAQ,EAAE,CAAA;IAwLzB,CAAC;IAtLC;;;;;;;OAOG;IAGU,OAAO;;YAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;YAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAE1C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACvB,OAAO,QAAQ,CAAA;QACjB,CAAC;KAAA;IAED;;;OAGG;IAEU,MAAM,CAAC,MAAW;;YAC7B,MAAM;gBACJ,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAC9B,uBAAuB,EACvB,MAAM,CACP,CAAA;YAEH,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAA;YAEzD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;YAE/B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAM,KAAK,EAAC,EAAE;gBACzD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CACnB,qBAAqB,EACrB,KAAK,CACN,CAAA;gBAED,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;gBAClD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,CAAC,EAAE;oBAClD,IAAI,CAAC,GAAG,CACN,KAAK,EACL,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAClD,CAAA;iBACF;gBAED,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;oBACzB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;wBACxB,IAAI,GAAG,EAAE;4BACP,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CACzB,sBAAsB,EACtB,GAAG,CACJ,CAAA;4BAED,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;4BAC3B,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;yBACvB;wBAED,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;oBAClD,CAAC,CAAC,CAAA;iBACH;YACH,CAAC,CAAA,CAAC,CAAA;YAEF,IAAI,cAAc,CAAC,CAAC,GAAG,IAAI,EAAQ,EAAE;gBACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;YACtB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAEvB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CACnB,sBAAsB,EACtB,IAAI,CAAC,GAAG,CACT,CAAA;YAED,OAAO,IAAI,CAAC,QAAQ,CAAA;QACtB,CAAC;KAAA;IAED;;;;;OAKG;IAGU,MAAM;;;YACjB,MAAM,MAAM,GAAG,EAAE,CAAA;YAEjB,IAAI,CAAC,KAAK,GAAG,aAAa,CAAA;YAE1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;YAEtB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;gBACd,IAAI,CAAC,GAAG,CACN,OAAO,EACP,sFAAsF,CACvF,CAAA;YAEH,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;YAE3B;;;eAGG;YACH,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;gBACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;gBAClD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;gBAClC,OAAO,MAAM,CAAA;aACd;iBAAM;gBACL,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,2DAA2D,CAC5D,CAAA;aACF;YAED;;;eAGG;YACH,MAAM,OAAO,CAAC,GAAG,CACf,MAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,0CACb,SAAS,GACV,GAAG,CAAC,CAAO,QAAmB,EAAE,EAAE;gBACjC,IAAI,CAAC,QAAQ,CAAC,IAAI;oBAAE,OAAM;gBAE1B,IAAI,CAAC,GAAG,CACN,SAAS,EACT,KAAK,QAAQ,CAAC,IAAI,4BAA4B,CAC/C,CAAA;gBAED,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;gBAC3B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACpC,CAAC,CAAA,CAAC,CACL,CAAA;YAED,OAAO,MAAM,CAAA;;KACd;IAED;;;;;OAKG;IAEI,QAAQ,CAAC,GAAG,IAAW;;QAC5B;;;;;;WAMG;QACH,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GACd,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QAE7C,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,KAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAC7C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CACvB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAClC,CAAA;YAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAChC,sBAAsB,EACtB,IAAI,CAAC,KAAK,CACX,CAAA;SACF;QAED,IAAI,GAAG,EAAE;YACP,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;gBAC1B,MAAA,MAAA,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,0CAAE,GAAG,0CAAE,OAAO,CAAC;oBACvC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;yBACpD,MAAM;iBACV,CAAC,CAAA;aACH;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,EAAE,GAAG,CAAC,CACnD,CAAA;YAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,CAAC;gBAC5C,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;SACzB;IACH,CAAC;CACF;AA5KC;IAFC,IAAI;IACJ,IAAI;uCAOJ;AAOD;IADC,IAAI;sCAqDJ;AAUD;IAFC,IAAI;IACJ,IAAI;sCAmDJ;AASD;IADC,IAAI;wCAsCJ"}
|
package/lib/esm/index.js
CHANGED