@leyyo/env 1.0.8 → 1.0.10

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.
@@ -6,17 +6,42 @@ const error_enveloper_1 = require("@leyyo/error-enveloper");
6
6
  const internal_1 = require("../internal");
7
7
  const WHERE = `${internal_1.FQN}.EnvFieldImpl`;
8
8
  class EnvFieldImpl {
9
+ // endregion properties
9
10
  constructor(scope, name) {
10
11
  this.scope = scope;
11
12
  this.name = name;
12
13
  this._field = this.name;
13
14
  }
14
- _devOne() {
15
+ _removeOpt(key = '_typeOpt') {
16
+ if (this[key] !== undefined) {
17
+ delete this[key];
18
+ }
19
+ }
20
+ _setOrRemoveOpt(key, value, isArray) {
21
+ if (isArray) {
22
+ if (Array.isArray(value) && value.length > 0) {
23
+ this[key] = value;
24
+ }
25
+ this._removeOpt(key);
26
+ return;
27
+ }
28
+ if (common_1.$is.object(value) && Object.keys(value).length > 0) {
29
+ this[key] = value;
30
+ }
31
+ this._removeOpt(key);
32
+ }
33
+ get _devOne() {
15
34
  return { field: this._field, where: WHERE, scope: this.scope.name };
16
35
  }
17
36
  _devMore(index) {
18
37
  return { field: `${this._field}[${index}]`, where: WHERE, scope: this.scope.name };
19
38
  }
39
+ get _findRequired() {
40
+ if (this._requiredFn) {
41
+ return error_enveloper_1.errorEnveloper.swallow(() => this._requiredFn(this), false, true);
42
+ }
43
+ return this._required;
44
+ }
20
45
  _initialize() {
21
46
  if (this._initialized) {
22
47
  return;
@@ -30,22 +55,22 @@ class EnvFieldImpl {
30
55
  case 'boolean':
31
56
  const cast1 = EnvFieldImpl._lambdaMap[this._type];
32
57
  if (this._array) {
33
- this.$cast(v => common_1.$to.delimited(v, this._devOne(), (val, index) => cast1(val, this._devMore(index), true), this._required));
34
- if (this._required) {
35
- this.$assert(v => common_1.$assert.array(v, this._devOne()));
58
+ this.$cast(v => common_1.$to.delimited(v, this._devOne, (val, index) => cast1(val, this._devMore(index), true), this._findRequired));
59
+ if (this._findRequired) {
60
+ this.$assert(v => common_1.$assert.array(v, this._devOne));
36
61
  }
37
62
  else {
38
63
  this.$assert(v => {
39
64
  if (Array.isArray(v) && v.length > 0) {
40
- common_1.$assert.array(v, this._devOne());
65
+ common_1.$assert.array(v, this._devOne);
41
66
  }
42
67
  });
43
68
  }
44
69
  }
45
70
  else {
46
- this.$cast(v => cast1(v, this._devOne(), this._required));
47
- if (this._required) {
48
- this.$assert(v => common_1.$assert.notEmpty(v, this._devOne()));
71
+ this.$cast(v => cast1(v, this._devOne, this._findRequired));
72
+ if (this._findRequired) {
73
+ this.$assert(v => common_1.$assert.notEmpty(v, this._devOne));
49
74
  }
50
75
  }
51
76
  break;
@@ -53,231 +78,384 @@ class EnvFieldImpl {
53
78
  case 'enumeration':
54
79
  const cast2 = EnvFieldImpl._lambdaMap[this._type];
55
80
  if (this._array) {
56
- this.$cast(v => common_1.$to.delimited(v, this._devOne(), (val, index) => cast2(val, this._enumKeys, this._devMore(index), true), this._required));
57
- if (this._required) {
58
- this.$assert(v => common_1.$assert.array(v, this._devOne()));
81
+ this.$cast(v => common_1.$to.delimited(v, this._devOne, (val, index) => cast2(val, this._typeOpt, this._devMore(index), true), this._findRequired));
82
+ if (this._findRequired) {
83
+ this.$assert(v => common_1.$assert.array(v, this._devOne));
59
84
  }
60
85
  else {
61
86
  this.$assert(v => {
62
87
  if (Array.isArray(v) && v.length > 0) {
63
- common_1.$assert.array(v, this._devOne());
88
+ common_1.$assert.array(v, this._devOne);
64
89
  }
65
90
  });
66
91
  }
67
92
  }
68
93
  else {
69
- this.$cast(v => cast2(v, this._enumKeys, this._devOne(), this._required));
70
- if (this._required) {
71
- this.$assert(v => common_1.$assert.notEmpty(v, this._devOne()));
94
+ this.$cast(v => cast2(v, this._typeOpt, this._devOne, this._findRequired));
95
+ if (this._findRequired) {
96
+ this.$assert(v => common_1.$assert.notEmpty(v, this._devOne));
72
97
  }
73
98
  }
74
99
  break;
75
100
  }
76
101
  }
77
102
  get _fromDef() {
78
- var _a;
103
+ let val;
104
+ if (typeof this._def === 'function') {
105
+ val = error_enveloper_1.errorEnveloper.swallow(() => this._def(this), undefined, true);
106
+ }
107
+ else {
108
+ val = this._def;
109
+ }
79
110
  if (this._array) {
80
- if (common_1.$is.empty(this._def)) {
111
+ if (common_1.$is.empty(val)) {
81
112
  return [];
82
113
  }
83
- else if (Array.isArray(this._def)) {
84
- return this._def;
114
+ else if (Array.isArray(val)) {
115
+ return val;
85
116
  }
86
- return [this._def];
117
+ return [val];
87
118
  }
88
119
  else {
89
- return (_a = this._def) !== null && _a !== void 0 ? _a : undefined;
120
+ return val !== null && val !== void 0 ? val : undefined;
121
+ }
122
+ }
123
+ get _plainValue() {
124
+ const value = this.raw;
125
+ if (this._array) {
126
+ if (Array.isArray(value)) {
127
+ return value.join('^~|');
128
+ }
129
+ return '';
90
130
  }
131
+ return common_1.$is.empty(value) ? '' : value;
91
132
  }
92
- // region type
133
+ // endregion private
134
+ // region configure
93
135
  /** {@inheritDoc} */
94
- string(_opt) {
95
- this._type = 'string';
136
+ required(p1) {
137
+ if (typeof p1 == 'function') {
138
+ this._requiredFn = p1;
139
+ this._removeOpt('_required');
140
+ return this;
141
+ }
142
+ else {
143
+ this._removeOpt('_requiredFn');
144
+ }
145
+ if (p1 === true) {
146
+ this._required = p1;
147
+ }
148
+ else {
149
+ this._removeOpt('_required');
150
+ }
96
151
  return this;
97
152
  }
98
153
  /** {@inheritDoc} */
99
- text(_opt) {
100
- this._type = 'string';
154
+ array(opt) {
155
+ this._array = true;
156
+ this._setOrRemoveOpt('_arrayOpt', opt);
101
157
  return this;
102
158
  }
103
159
  /** {@inheritDoc} */
104
- float(_opt) {
105
- this._type = 'float';
160
+ secret(opt) {
161
+ this._secret = true;
162
+ this._setOrRemoveOpt('_secretOpt', opt);
163
+ return this;
164
+ }
165
+ clone(name) {
166
+ common_1.$assert.text(name, { field: this._field, method: 'clone', where: WHERE, scope: this.scope.name });
167
+ if (name === this._field) {
168
+ common_1.$dev.log({ message: 'Clone is same', clone: name, field: this._field, method: 'clone', where: WHERE, scope: this.scope.name }, 'warn');
169
+ this._removeOpt('_clone');
170
+ }
171
+ else if (this._aliases && this._aliases.includes(name)) {
172
+ common_1.$dev.log({ message: 'Clone is alias', clone: name, field: this._field, method: 'clone', where: WHERE, scope: this.scope.name }, 'warn');
173
+ this._removeOpt('_clone');
174
+ }
175
+ else {
176
+ this._clone = name;
177
+ }
106
178
  return this;
107
179
  }
108
180
  /** {@inheritDoc} */
109
- integer(_opt) {
110
- this._type = 'integer';
181
+ def(value) {
182
+ if (!common_1.$is.empty(value)) {
183
+ if (typeof value === 'function') {
184
+ this._def = value;
185
+ }
186
+ else if (this._array) {
187
+ this._def = (Array.isArray(value) ? value : [value]);
188
+ }
189
+ else {
190
+ this._def = value;
191
+ }
192
+ }
111
193
  return this;
112
194
  }
113
195
  /** {@inheritDoc} */
114
- boolean(_opt) {
115
- this._type = 'boolean';
196
+ alias(...keys) {
197
+ common_1.$assert.textArray(keys, { field: this._field, method: 'aliases', where: WHERE, scope: this.scope.name });
198
+ if (keys.length > 0) {
199
+ keys.forEach(key => {
200
+ if (key === this._field) {
201
+ common_1.$dev.log({ message: 'Alias is same', alias: key, field: this._field, method: 'alias', where: WHERE, scope: this.scope.name }, 'warn');
202
+ }
203
+ else if (key === this._clone) {
204
+ common_1.$dev.log({ message: 'Alias is clone', alias: key, field: this._field, method: 'alias', where: WHERE, scope: this.scope.name }, 'warn');
205
+ }
206
+ else {
207
+ if (!this._aliases) {
208
+ this._aliases = [];
209
+ }
210
+ if (!this._aliases.includes(key)) {
211
+ this._aliases.push(key);
212
+ this.scope.core.$secure.$addKey(key, this, key);
213
+ }
214
+ else {
215
+ common_1.$dev.log({ message: 'Alias is duplicated', alias: key, field: this._field, method: 'clone', where: WHERE, scope: this.scope.name }, 'warn');
216
+ }
217
+ }
218
+ });
219
+ }
116
220
  return this;
117
221
  }
118
222
  /** {@inheritDoc} */
119
- literal(keys) {
120
- this._type = 'literal';
121
- this._enumKeys = keys;
223
+ string(opt) {
224
+ this._type = 'string';
225
+ this._setOrRemoveOpt('_typeOpt', opt);
122
226
  return this;
123
227
  }
124
228
  /** {@inheritDoc} */
125
- enumeration(map) {
126
- this._type = 'enumeration';
127
- this._enumKeys = map;
229
+ text(opt) {
230
+ this._type = 'string';
231
+ this._setOrRemoveOpt('_typeOpt', opt);
128
232
  return this;
129
233
  }
130
- // endregion type
131
234
  /** {@inheritDoc} */
132
- def(value) {
133
- if (!common_1.$is.empty(value)) {
134
- if (this._array) {
135
- this._def = Array.isArray(value) ? value : [value];
136
- }
137
- else {
138
- this._def = value;
139
- }
140
- }
235
+ float(opt) {
236
+ this._type = 'float';
237
+ this._setOrRemoveOpt('_typeOpt', opt);
141
238
  return this;
142
239
  }
143
240
  /** {@inheritDoc} */
144
- required() {
145
- this._required = true;
241
+ integer(opt) {
242
+ this._type = 'integer';
243
+ this._setOrRemoveOpt('_typeOpt', opt);
146
244
  return this;
147
245
  }
148
246
  /** {@inheritDoc} */
149
- array(_opt) {
150
- this._array = true;
247
+ boolean(opt) {
248
+ this._type = 'boolean';
249
+ this._setOrRemoveOpt('_typeOpt', opt);
151
250
  return this;
152
251
  }
153
- secret(_opt) {
154
- this._secret = true;
252
+ /** {@inheritDoc} */
253
+ literal(keys) {
254
+ common_1.$assert.array(keys, { field: this._field, method: 'literal', where: WHERE, scope: this.scope.name });
255
+ this._type = 'literal';
256
+ this._setOrRemoveOpt('_typeOpt', keys, true);
257
+ return this;
258
+ }
259
+ /** {@inheritDoc} */
260
+ enumeration(map) {
261
+ common_1.$assert.bareObject(map, { field: this._field, method: 'enumeration', where: WHERE, scope: this.scope.name });
262
+ this._type = 'enumeration';
263
+ this._setOrRemoveOpt('_typeOpt', map, true);
155
264
  return this;
156
265
  }
157
266
  /** {@inheritDoc} */
158
267
  onOta(fn) {
159
- this.scope.$addOta(this.name);
268
+ this.scope.$secure.$addOta(this.name);
160
269
  common_1.$assert.func(fn, { field: this._field, where: WHERE, scope: this.scope.name, method: 'ota' });
161
270
  this._onOta = fn;
162
271
  return this;
163
272
  }
273
+ /** {@inheritDoc} */
164
274
  onChange(fn) {
165
275
  common_1.$assert.func(fn, { field: this._field, where: WHERE, scope: this.scope.name, method: 'onChange' });
166
- this._onChange = fn;
276
+ if (!Array.isArray(this._onChangeList)) {
277
+ this._onChangeList = [];
278
+ }
279
+ this._onChangeList.push(fn);
167
280
  return this;
168
281
  }
282
+ /** {@inheritDoc} */
169
283
  onSet(fn) {
170
284
  common_1.$assert.func(fn, { field: this._field, where: WHERE, scope: this.scope.name, method: 'onSet' });
171
285
  this._onSet = fn;
172
286
  return this;
173
287
  }
174
288
  /** {@inheritDoc} */
175
- alias(...keys) {
176
- common_1.$assert.textArray(keys, { field: this._field, method: 'aliases', where: WHERE, scope: this.scope.name });
177
- if (keys.length > 0) {
178
- if (!this._aliases) {
179
- this._aliases = [];
180
- }
181
- keys.forEach(key => {
182
- if (!this._aliases.includes(key)) {
183
- this._aliases.push(key);
184
- }
185
- });
186
- }
289
+ cast(fn) {
290
+ common_1.$assert.func(fn, { field: this._field, method: 'cast', where: WHERE, scope: this.scope.name });
291
+ this.$cast(fn);
187
292
  return this;
188
293
  }
189
294
  /** {@inheritDoc} */
190
- end() {
191
- return this.scope;
192
- }
193
- $cast(fn) {
194
- this._cast = fn;
295
+ assert(fn) {
296
+ common_1.$assert.func(fn, { field: this._field, method: 'cast', where: WHERE, scope: this.scope.name });
297
+ this.$assert(fn);
195
298
  return this;
196
299
  }
197
- $assert(fn) {
198
- this._assert = fn;
199
- return this;
300
+ /** {@inheritDoc} */
301
+ get end() {
302
+ return this.scope.configure;
303
+ }
304
+ // endregion configure
305
+ // region runtime
306
+ /** {@inheritDoc} */
307
+ set(value) {
308
+ this.$set(value);
309
+ this.read();
200
310
  }
201
- $print() {
311
+ /** {@inheritDoc} */
312
+ print() {
202
313
  const result = { key: this._field, scope: this.scope.name, type: this._type };
203
314
  if (!this._secret) {
204
- result.value = process.env[this._field];
315
+ result.value = this.raw;
205
316
  }
206
317
  else {
207
318
  result.value = '<secret>';
208
319
  }
209
- const tags = [];
210
- if (this._array) {
211
- tags.push('array');
212
- }
320
+ const opt = {};
213
321
  if (this._required) {
214
- tags.push('required');
322
+ if (this._requiredFn) {
323
+ opt['required'] = ['conditional', this._findRequired];
324
+ }
325
+ else {
326
+ opt['required'] = true;
327
+ }
215
328
  }
216
- if (this._secret) {
217
- tags.push('secret');
329
+ if (this._typeOpt) {
330
+ opt[this._type] = this._typeOpt;
218
331
  }
219
- if (this._onOta) {
220
- tags.push('ota');
332
+ if (this._def !== undefined) {
333
+ opt['def'] = this._fromDef;
221
334
  }
222
- if (tags.length) {
223
- result.tags = tags;
335
+ if (this._clone !== undefined) {
336
+ opt['clone'] = this._clone;
224
337
  }
225
- if (this._aliases) {
226
- result.aliases = this._aliases;
338
+ if (this._secret) {
339
+ if (this._secretOpt) {
340
+ opt['secret'] = this._secretOpt;
341
+ }
342
+ else {
343
+ opt['secret'] = true;
344
+ }
345
+ }
346
+ if (this._aliases !== undefined) {
347
+ opt['aliases'] = this._aliases;
227
348
  }
228
- return result;
229
- }
230
- get _plainValue() {
231
- const value = process.env[this._field];
232
349
  if (this._array) {
233
- if (Array.isArray(value)) {
234
- return value.join('^~|');
350
+ if (this._arrayOpt) {
351
+ opt['array'] = this._arrayOpt;
352
+ }
353
+ else {
354
+ opt['array'] = true;
235
355
  }
236
- return '';
237
356
  }
238
- return common_1.$is.empty(value) ? '' : value;
357
+ if (this._aliases) {
358
+ opt['aliases'] = this._aliases;
359
+ }
360
+ if (this._onOta) {
361
+ opt['onOta'] = true;
362
+ }
363
+ if (this._onSet) {
364
+ opt['onSet'] = true;
365
+ }
366
+ if (this._onChangeList) {
367
+ opt['onChange'] = this._onChangeList.length;
368
+ }
369
+ if (Object.keys(opt).length) {
370
+ result.opt = opt;
371
+ }
372
+ return result;
239
373
  }
240
- $run() {
374
+ /** {@inheritDoc} */
375
+ read() {
241
376
  this._initialize();
242
377
  const old = this._plainValue;
243
- if (common_1.$is.empty(process.env[this._field])) {
244
- process.env[this._field] = this._fromDef;
378
+ if (this._clone && !common_1.$is.empty(process.env[this._clone])) {
379
+ this.$set(process.env[this._clone]);
245
380
  }
246
- if (typeof this._cast === 'function') {
247
- process.env[this._field] = this._cast(process.env[this._field]);
248
- if (common_1.$is.empty(process.env[this._field])) {
249
- process.env[this._field] = this._fromDef;
381
+ if (common_1.$is.empty(this.raw) && Array.isArray(this._aliases)) {
382
+ for (const alias of this._aliases) {
383
+ if (!common_1.$is.empty(process.env[alias])) {
384
+ this.$set(process.env[alias]);
385
+ break;
386
+ }
250
387
  }
251
388
  }
252
- if (typeof this._assert === 'function') {
253
- this._assert(process.env[this._field]);
389
+ if (common_1.$is.empty(this.raw)) {
390
+ this.$set(this._fromDef);
391
+ }
392
+ if (this._cast) {
393
+ this.$set(this._cast(this.raw));
394
+ if (common_1.$is.empty(this.raw)) {
395
+ this.$set(this._fromDef);
396
+ }
254
397
  }
255
- this.scope.$clear();
398
+ if (this._assert) {
399
+ this._assert(this.raw);
400
+ }
401
+ this.scope.clear();
256
402
  const current = this._plainValue;
257
- if (this._onChange && current !== old) {
258
- error_enveloper_1.errorEnveloper.handle(() => this._onChange(current, this.name, this.scope.raw), (e) => console.log(`OnChange Error: ${e.message}, where: ${WHERE}, scope: ${this.scope.name}, field: ${this._field}`));
403
+ if (this._onChangeList && current !== old) {
404
+ this._onChangeList.forEach(fn => {
405
+ error_enveloper_1.errorEnveloper.handle(() => fn(this), (e) => console.log(`OnChange Error: ${e.message}, where: ${WHERE}, scope: ${this.scope.name}, field: ${this._field}`));
406
+ });
259
407
  }
260
408
  if (this._onSet) {
261
- error_enveloper_1.errorEnveloper.handle(() => this._onSet(current, this.name, this.scope.raw), (e) => console.log(`OnSet Error: ${e.message}, where: ${WHERE}, scope: ${this.scope.name}, field: ${this._field}`));
409
+ error_enveloper_1.errorEnveloper.handle(() => this._onSet(this), (e) => console.log(`OnSet Error: ${e.message}, where: ${WHERE}, scope: ${this.scope.name}, field: ${this._field}`));
262
410
  }
263
411
  return current !== old;
264
412
  }
265
- $fromOta(value) {
266
- process.env[this._field] = value;
413
+ /** {@inheritDoc} */
414
+ fromOta(value) {
415
+ this.$set(value);
267
416
  let changed = false;
268
417
  try {
269
- changed = this.$run();
418
+ changed = this.read();
270
419
  }
271
420
  catch (e) {
272
421
  console.log(`Ota Run Error: ${e.message}, where: ${WHERE}, scope: ${this.scope.name}, field: ${this._field}`);
273
422
  }
274
423
  if (changed && this._onOta) {
275
- error_enveloper_1.errorEnveloper.handle(() => this._onOta(process.env[this._field], this.name, this.scope.raw), (e) => console.log(`OnOta Error: ${e.message}, where: ${WHERE}, scope: ${this.scope.name}, field: ${this._field}`));
424
+ error_enveloper_1.errorEnveloper.handle(() => this._onOta(this), (e) => console.log(`OnOta Error: ${e.message}, where: ${WHERE}, scope: ${this.scope.name}, field: ${this._field}`));
276
425
  }
277
426
  return changed;
278
427
  }
428
+ /** {@inheritDoc} */
429
+ get raw() {
430
+ return process.env[this._field];
431
+ }
432
+ // endregion runtime
433
+ // region secure
434
+ $set(value) {
435
+ process.env[this._field] = value;
436
+ }
437
+ $cast(fn) {
438
+ this._cast = fn;
439
+ }
440
+ $assert(fn) {
441
+ this._assert = fn;
442
+ }
443
+ // endregion secure
444
+ // region mode
445
+ /** {@inheritDoc} */
446
+ get configure() {
447
+ return this;
448
+ }
449
+ /** {@inheritDoc} */
450
+ get runtime() {
451
+ return this;
452
+ }
453
+ get $secure() {
454
+ return this;
455
+ }
279
456
  }
280
457
  exports.EnvFieldImpl = EnvFieldImpl;
458
+ // region private
281
459
  EnvFieldImpl._lambdaMap = {
282
460
  string: ((value, opt, required) => common_1.$to.string(value, opt, required)),
283
461
  text: ((value, opt, required) => common_1.$to.text(value, opt, required)),
@@ -1 +1 @@
1
- {"version":3,"file":"env-field.impl.js","sourceRoot":"","sources":["../../src/field/env-field.impl.ts"],"names":[],"mappings":";;;AAAA,0CAAiE;AACjE,4DAAsD;AAgBtD,0CAAgC;AAEhC,MAAM,KAAK,GAAG,GAAG,cAAG,eAAe,CAAC;AAEpC,MAAa,YAAY;IA0BrB,YAAqB,KAAkB,EAAW,IAAO;QAApC,UAAK,GAAL,KAAK,CAAa;QAAW,SAAI,GAAJ,IAAI,CAAG;QACrD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAc,CAAC;IACtC,CAAC;IAEO,OAAO;QACX,OAAO,EAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAC,CAAC;IACtE,CAAC;IAEO,QAAQ,CAAC,KAAa;QAC1B,OAAO,EAAC,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAC,CAAC;IACrF,CAAC;IAEO,WAAW;QACf,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,OAAO;QACX,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACjB,KAAK,QAAQ,CAAC;YACd,KAAK,MAAM,CAAC;YACZ,KAAK,SAAS,CAAC;YACf,KAAK,OAAO,CAAC;YACb,KAAK,SAAS;gBACV,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAoC,CAAC;gBACrF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,YAAG,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAS,CAAC,CAAC;oBAClI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;wBACjB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBACxD,CAAC;yBACI,CAAC;wBACF,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BACb,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACnC,gBAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;4BACrC,CAAC;wBACL,CAAC,CAAC,CAAC;oBACP,CAAC;gBACL,CAAC;qBACI,CAAC;oBACF,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,SAAS,CAAS,CAAC,CAAC;oBAClE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;wBACjB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBAC3D,CAAC;gBACL,CAAC;gBACD,MAAM;YACV,KAAK,SAAS,CAAC;YACf,KAAK,aAAa;gBACd,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAqC,CAAC;gBACtF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,YAAG,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAS,CAAC,CAAC;oBAClJ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;wBACjB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBACxD,CAAC;yBACI,CAAC;wBACF,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BACb,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACnC,gBAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;4BACrC,CAAC;wBACL,CAAC,CAAC,CAAC;oBACP,CAAC;gBACL,CAAC;qBACI,CAAC;oBACF,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,SAAS,CAAS,CAAC,CAAC;oBAClF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;wBACjB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBAC3D,CAAC;gBACL,CAAC;gBACD,MAAM;QACd,CAAC;IACL,CAAC;IACD,IAAY,QAAQ;;QAChB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,YAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,OAAO,EAAE,CAAC;YACd,CAAC;iBACI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC,IAAI,CAAC;YACrB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;aACI,CAAC;YACF,OAAO,MAAA,IAAI,CAAC,IAAI,mCAAI,SAAS,CAAC;QAClC,CAAC;IACL,CAAC;IAED,cAAc;IAEd,oBAAoB;IACpB,MAAM,CAAC,IAAqB;QACxB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oBAAoB;IACpB,IAAI,CAAC,IAAqB;QACtB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oBAAoB;IACpB,KAAK,CAAC,IAAoB;QACtB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oBAAoB;IACpB,OAAO,CAAC,IAAsB;QAC1B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oBAAoB;IACpB,OAAO,CAAC,IAAsB;QAC1B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oBAAoB;IACpB,OAAO,CAA8B,IAAoB;QACrD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oBAAoB;IACpB,WAAW,CAA8B,GAAe;QACpD,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,iBAAiB;IAEjB,oBAAoB;IACpB,GAAG,CAAC,KAAW;QACX,IAAK,CAAC,YAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACvD,CAAC;iBACI,CAAC;gBACF,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YACtB,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oBAAoB;IACpB,QAAQ;QACJ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oBAAoB;IACpB,KAAK,CAAC,IAAoB;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,CAAC,IAAqB;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,oBAAoB;IACpB,KAAK,CAAC,EAA2B;QAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,gBAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,QAAQ,CAAC,EAA0B;QAC/B,gBAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAC,CAAC,CAAC;QACjG,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,KAAK,CAAC,EAA0B;QAC5B,gBAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAC,CAAC,CAAC;QAC9F,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,oBAAoB;IACpB,KAAK,CAAC,GAAG,IAAc;QACnB,gBAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAC,CAAC,CAAC;QACvG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACjB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACvB,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACf,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC5B,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oBAAoB;IACpB,GAAG;QACC,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,EAA4B;QAC9B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,EAAwB;QAC5B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM;QACF,MAAM,MAAM,GAAG,EAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAkB,CAAC;QAC7F,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;aACI,CAAC;YACF,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC;QAC9B,CAAC;QACD,MAAM,IAAI,GAAG,EAAwB,CAAC;QACtC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QACnC,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,IAAY,WAAW;QACnB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,YAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IACzC,CAAC;IACD,IAAI;QACA,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;QAC7B,IAAI,YAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7C,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAW,CAAC;YAC1E,IAAI,YAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7C,CAAC;QACL,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YACpC,gCAAc,CAAC,MAAM,CACjB,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAe,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAChE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,OAAO,YAAY,KAAK,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC,CACxH,CAAC;QACN,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,gCAAc,CAAC,MAAM,CACjB,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAe,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAC7D,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,OAAO,YAAY,KAAK,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC,CACrH,CAAC;QACN,CAAC;QACD,OAAO,OAAO,KAAK,GAAG,CAAC;IAC3B,CAAC;IAED,QAAQ,CAAC,KAAc;QACnB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAe,CAAC;QAC3C,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC;YACD,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,OAAO,YAAY,KAAK,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAClH,CAAC;QACD,IAAI,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACzB,gCAAc,CAAC,MAAM,CACjB,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAS,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAC9E,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,OAAO,YAAY,KAAK,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC,CACrH,CAAC;QACN,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;;AAhUL,oCAiUC;AAjTkB,uBAAU,GAAuB;IAC5C,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,YAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAoC;IACvG,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,YAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAoC;IACnG,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,YAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAoC;IACrG,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,YAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAoC;IACzG,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,YAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAqC;IAC1G,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,YAAG,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAqC;IACjI,WAAW,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,YAAG,CAAC,WAAW,CAAC,KAAK,EAAE,GAAc,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAqC;CACrJ,CAAC"}
1
+ {"version":3,"file":"env-field.impl.js","sourceRoot":"","sources":["../../src/field/env-field.impl.ts"],"names":[],"mappings":"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"}