@eggjs/core 6.0.0 → 6.0.1

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.
@@ -1,403 +0,0 @@
1
- "use strict";
2
- // import type KoaApplication from '@eggjs/koa';
3
- // // import type depd = require('depd');
4
- // import type { Logger } from 'egg-logger';
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- // export type EggType = 'application' | 'agent';
7
- // interface PlainObject<T = any> {
8
- // [key: string]: T;
9
- // }
10
- // export interface EggCoreOptions {
11
- // /** egg type, application or agent */
12
- // type?: EggType;
13
- // /** the directory of application */
14
- // baseDir?: EggAppInfo['baseDir'];
15
- // /** server scope */
16
- // serverScope?: string;
17
- // /** custom plugins */
18
- // plugins?: Plugins;
19
- // }
20
- // export interface EggLoaderOptions {
21
- // /** Application instance */
22
- // app: EggCore;
23
- // /** the directory of application */
24
- // baseDir: EggAppInfo['baseDir'];
25
- // /** egg logger */
26
- // logger: Logger;
27
- // /** server scope */
28
- // serverScope?: string;
29
- // /** custom plugins */
30
- // plugins?: Plugins;
31
- // }
32
- // export interface PluginInfo {
33
- // /** the plugin name, it can be used in `dep` */
34
- // name: string;
35
- // /** the package name of plugin */
36
- // package: string;
37
- // /** whether enabled */
38
- // enable: boolean;
39
- // /** the directory of the plugin package */
40
- // path: string;
41
- // /** the dependent plugins, you can use the plugin name */
42
- // dependencies: string[];
43
- // /** the optional dependent plugins. */
44
- // optionalDependencies: string[];
45
- // /** specify the serverEnv that only enable the plugin in it */
46
- // env: string[];
47
- // /** the file plugin config in. */
48
- // from: string;
49
- // }
50
- // export interface Plugins extends PlainObject<PluginInfo> { }
51
- // export interface EggCoreBase<Config> extends KoaApplication {
52
- // /**
53
- // * Whether `application` or `agent`
54
- // * @member {String}
55
- // * @since 1.0.0
56
- // */
57
- // type: EggType;
58
- // /**
59
- // * The current directory of application
60
- // * @member {String}
61
- // * @see {@link EggAppInfo#baseDir}
62
- // * @since 1.0.0
63
- // */
64
- // baseDir: EggAppInfo['baseDir'];
65
- // /**
66
- // * The name of application
67
- // * @member {String}
68
- // * @see {@link EggAppInfo#name}
69
- // * @since 1.0.0
70
- // */
71
- // name: EggAppInfo['name'];
72
- // /**
73
- // * Convert a generator function to a promisable one.
74
- // *
75
- // * Notice: for other kinds of functions, it directly returns you what it is.
76
- // *
77
- // * @param {Function} fn The inputted function.
78
- // * @return {AsyncFunction} An async promise-based function.
79
- // * @example
80
- // * ```javascript
81
- // * const fn = function* (arg) {
82
- // return arg;
83
- // };
84
- // const wrapped = app.toAsyncFunction(fn);
85
- // wrapped(true).then((value) => console.log(value));
86
- // * ```
87
- // */
88
- // toAsyncFunction<T = any>(fn: (...args: any[]) => IterableIterator<T>): (...args: any[]) => Promise<T>;
89
- // /**
90
- // * Convert an object with generator functions to a Promisable one.
91
- // * @param {Mixed} obj The inputted object.
92
- // * @return {Promise} A Promisable result.
93
- // * @example
94
- // * ```javascript
95
- // * const fn = function* (arg) {
96
- // return arg;
97
- // };
98
- // const arr = [ fn(1), fn(2) ];
99
- // const promise = app.toPromise(arr);
100
- // promise.then(res => console.log(res));
101
- // * ```
102
- // */
103
- // toPromise<T = any>(obj: any): Promise<T>;
104
- // /**
105
- // * register an callback function that will be invoked when application is ready.
106
- // * @see https://github.com/node-modules/ready
107
- // * @since 1.0.0
108
- // * @param {boolean|Error|Function} flagOrFunction -
109
- // * @return {Promise|null} return promise when argument is undefined
110
- // * @example
111
- // * const app = new Application(...);
112
- // * app.ready(err => {
113
- // * if (err) throw err;
114
- // * console.log('done');
115
- // * });
116
- // */
117
- // ready(fn?: (err?: Error) => void): any;
118
- // /**
119
- // * Close all, it wil close
120
- // * - callbacks registered by beforeClose
121
- // * - emit `close` event
122
- // * - remove add listeners
123
- // *
124
- // * If error is thrown when it's closing, the promise will reject.
125
- // * It will also reject after following call.
126
- // * @return {Promise} promise
127
- // * @since 1.0.0
128
- // */
129
- // close(): Promise<any>;
130
- // /**
131
- // * If a client starts asynchronously, you can register `readyCallback`,
132
- // * then the application will wait for the callback to ready
133
- // *
134
- // * It will log when the callback is not invoked after 10s
135
- // *
136
- // * Recommend to use {@link EggCore#beforeStart}
137
- // * @since 1.0.0
138
- // *
139
- // * @param {String} name - readyCallback task name
140
- // * @param {object} opts -
141
- // * - {Number} [timeout=10000] - emit `ready_timeout` when it doesn't finish but reach the timeout
142
- // * - {Boolean} [isWeakDep=false] - whether it's a weak dependency
143
- // * @return {Function} - a callback
144
- // * @example
145
- // * const done = app.readyCallback('mysql');
146
- // * mysql.ready(done);
147
- // */
148
- // readyCallback(name: string, opts?: { timeout?: number; isWeakDep?: boolean }): () => void;
149
- // /**
150
- // * The loader instance, the default class is {@link EggLoader}.
151
- // * If you want define
152
- // * @member {EggLoader} EggCore#loader
153
- // * @since 1.0.0
154
- // */
155
- // loader: EggLoader<this, Config>;
156
- // /**
157
- // * The configuration of application
158
- // * @member {Config}
159
- // * @since 1.0.0
160
- // */
161
- // config: Config;
162
- // /**
163
- // * Retrieve enabled plugins
164
- // * @member {Object}
165
- // * @since 1.0.0
166
- // */
167
- // plugins: Plugins;
168
- // /**
169
- // * Register a function that will be called when app close
170
- // */
171
- // beforeClose(fn: () => void): void;
172
- // /**
173
- // * Execute scope after loaded and before app start
174
- // */
175
- // beforeStart(scope: () => void): void;
176
- // /**
177
- // * Alias to {@link https://npmjs.com/package/depd}
178
- // * @member {Function}
179
- // * @since 1.0.0
180
- // */
181
- // deprecate: depd.Deprecate;
182
- // }
183
- // export interface EggCore<Config = PlainObject> extends EggCoreBase<Config> {
184
- // Controller: typeof BaseContextClass;
185
- // Service: typeof BaseContextClass;
186
- // }
187
- // export class EggCore {
188
- // /**
189
- // * @class
190
- // * @param {Object} options - options
191
- // * @param {String} [options.baseDir=process.cwd()] - the directory of application
192
- // * @param {String} [options.type=application|agent] - whether it's running in app worker or agent worker
193
- // * @param {Object} [options.plugins] - custom plugins
194
- // * @since 1.0.0
195
- // */
196
- // constructor(options?: EggCoreOptions);
197
- // }
198
- // /**
199
- // * egg app info
200
- // * @example
201
- // * ```js
202
- // * // config/config.default.ts
203
- // * import { EggAppInfo } from 'egg';
204
- // *
205
- // * export default (appInfo: EggAppInfo) => {
206
- // * return {
207
- // * keys: appInfo.name + '123456',
208
- // * };
209
- // * }
210
- // * ```
211
- // */
212
- // export interface EggAppInfo {
213
- // /** package.json */
214
- // pkg: PlainObject;
215
- // /** the application name from package.json */
216
- // name: string;
217
- // /** current directory of application */
218
- // baseDir: string;
219
- // /** equals to serverEnv */
220
- // env: string;
221
- // /** home directory of the OS */
222
- // HOME: string;
223
- // /** baseDir when local and unittest, HOME when other environment */
224
- // root: string;
225
- // }
226
- // /**
227
- // * BaseContextClass is a base class that can be extended,
228
- // * it's instantiated in context level,
229
- // * {@link Helper}, {@link Service} is extending it.
230
- // */
231
- // export class BaseContextClass<
232
- // Context = any,
233
- // Application = any,
234
- // EggAppConfig = any,
235
- // Service = any
236
- // > {
237
- // constructor(ctx: Context);
238
- // /** request context */
239
- // protected ctx: Context;
240
- // /** Application */
241
- // protected app: Application;
242
- // /** Application config object */
243
- // protected config: EggAppConfig;
244
- // /** service */
245
- // protected service: Service;
246
- // }
247
- // declare interface FileLoaderBase {
248
- // /**
249
- // * attach items to target object. Mapping the directory to properties.
250
- // * `app/controller/group/repository.js` => `target.group.repository`
251
- // * @return {Object} target
252
- // * @since 1.0.0
253
- // */
254
- // load(): object;
255
- // /**
256
- // * Parse files from given directories, then return an items list, each item contains properties and exports.
257
- // *
258
- // * For example, parse `app/controller/group/repository.js`
259
- // *
260
- // * ```js
261
- // * module.exports = app => {
262
- // * return class RepositoryController extends app.Controller {};
263
- // * }
264
- // * ```
265
- // *
266
- // * It returns a item
267
- // *
268
- // * ```js
269
- // * {
270
- // * properties: [ 'group', 'repository' ],
271
- // * exports: app => { ... },
272
- // * }
273
- // * ```
274
- // *
275
- // * `Properties` is an array that contains the directory of a filepath.
276
- // *
277
- // * `Exports` depends on type, if exports is a function, it will be called. if initializer is specified, it will be called with exports for customizing.
278
- // * @return {Array} items
279
- // * @since 1.0.0
280
- // */
281
- // parse(): Array<{ fullpath: string; properties: string[]; exports: any; }>;
282
- // }
283
- // declare interface ContextLoaderBase extends FileLoaderBase {}
284
- // export interface FileLoader {
285
- // /**
286
- // * Load files from directory to target object.
287
- // * @since 1.0.0
288
- // */
289
- // new (options: FileLoaderOption): FileLoaderBase;
290
- // }
291
- // export interface ContextLoader {
292
- // /**
293
- // * Same as {@link FileLoader}, but it will attach file to `inject[fieldClass]`. The exports will be lazy loaded, such as `ctx.group.repository`.
294
- // * @augments FileLoader
295
- // * @since 1.0.0
296
- // */
297
- // new (options: ContextLoaderOption): ContextLoaderBase;
298
- // }
299
- // export class EggLoader<
300
- // T = EggCore,
301
- // Config = any,
302
- // Options extends EggLoaderOptions = EggLoaderOptions
303
- // > {
304
- // app: T;
305
- // eggPaths: string[];
306
- // pkg: PlainObject;
307
- // appInfo: EggAppInfo;
308
- // serverScope: string;
309
- // plugins: Plugins;
310
- // config: Config;
311
- // options: Options;
312
- // /**
313
- // * @class
314
- // * @param {Object} options - options
315
- // * @param {String} options.baseDir - the directory of application
316
- // * @param {EggCore} options.app - Application instance
317
- // * @param {Logger} options.logger - logger
318
- // * @param {Object} [options.plugins] - custom plugins
319
- // * @since 1.0.0
320
- // */
321
- // constructor(options: EggLoaderOptions);
322
- // /**
323
- // * Get home directory
324
- // * @return {String} home directory
325
- // * @since 3.4.0
326
- // */
327
- // getHomedir(): EggAppInfo['HOME'];
328
- // /**
329
- // * Get app info
330
- // * @return {EggAppInfo} appInfo
331
- // * @since 1.0.0
332
- // */
333
- // getAppInfo(): EggAppInfo;
334
- // // Low Level API
335
- // /**
336
- // * Load single file, will invoke when export is function
337
- // *
338
- // * @param {String} filepath - fullpath
339
- // * @param {Array} arguments - pass rest arguments into the function when invoke
340
- // * @return {Object} exports
341
- // * @example
342
- // * ```js
343
- // * app.loader.loadFile(path.join(app.options.baseDir, 'config/router.js'));
344
- // * ```
345
- // * @since 1.0.0
346
- // */
347
- // loadFile<T = any>(filepath: string, ...inject: any[]): T;
348
- // /**
349
- // * Get all loadUnit
350
- // *
351
- // * loadUnit is a directory that can be loaded by EggLoader, it has the same structure.
352
- // * loadUnit has a path and a type(app, framework, plugin).
353
- // *
354
- // * The order of the loadUnits:
355
- // *
356
- // * 1. plugin
357
- // * 2. framework
358
- // * 3. app
359
- // *
360
- // * @return {Array} loadUnits
361
- // * @since 1.0.0
362
- // */
363
- // getLoadUnits(): Array<{ path: string; type: string; }>;
364
- // getEggPaths(): string[];
365
- // getServerEnv(): string;
366
- // /**
367
- // * Load files using {@link FileLoader}, inject to {@link Application}
368
- // * @param {String|Array} directory - see {@link FileLoader}
369
- // * @param {String} property - see {@link FileLoader}
370
- // * @param {Object} opt - see {@link FileLoader}
371
- // * @since 1.0.0
372
- // */
373
- // loadToApp(directory: string | string[], property: string, opt?: Partial<FileLoaderOption>): void;
374
- // /**
375
- // * Load files using {@link ContextLoader}
376
- // * @param {String|Array} directory - see {@link ContextLoader}
377
- // * @param {String} property - see {@link ContextLoader}
378
- // * @param {Object} opt - see {@link ContextLoader}
379
- // * @since 1.0.0
380
- // */
381
- // loadToContext(directory: string | string[], property: string, opt?: Partial<ContextLoaderOption>): void;
382
- // getTypeFiles(filename: string): string[];
383
- // resolveModule(filepath: string): string | undefined;
384
- // FileLoader: FileLoader;
385
- // ContextLoader: ContextLoader;
386
- // // load methods
387
- // protected loadConfig(): void;
388
- // protected loadController(opt?: Partial<FileLoaderOption>): void;
389
- // protected loadCustomLoader(): void;
390
- // protected loadCustomApp(): void;
391
- // protected loadCustomAgent(): void;
392
- // protected loadAgentExtend(): void;
393
- // protected loadApplicationExtend(): void;
394
- // protected loadRequestExtend(): void;
395
- // protected loadResponseExtend(): void;
396
- // protected loadContextExtend(): void;
397
- // protected loadHelperExtend(): void;
398
- // protected loadMiddleware(opt?: Partial<FileLoaderOption>): void;
399
- // protected loadPlugin(): void;
400
- // protected loadRouter(): void;
401
- // protected loadService(opt?: Partial<ContextLoaderOption>): void;
402
- // }
403
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGdEQUFnRDtBQUNoRCx5Q0FBeUM7QUFDekMsNENBQTRDOztBQUU1QyxpREFBaUQ7QUFFakQsbUNBQW1DO0FBQ25DLHNCQUFzQjtBQUN0QixJQUFJO0FBRUosb0NBQW9DO0FBQ3BDLDBDQUEwQztBQUMxQyxvQkFBb0I7QUFDcEIsd0NBQXdDO0FBQ3hDLHFDQUFxQztBQUNyQyx3QkFBd0I7QUFDeEIsMEJBQTBCO0FBQzFCLDBCQUEwQjtBQUMxQix1QkFBdUI7QUFDdkIsSUFBSTtBQUVKLHNDQUFzQztBQUN0QyxnQ0FBZ0M7QUFDaEMsa0JBQWtCO0FBQ2xCLHdDQUF3QztBQUN4QyxvQ0FBb0M7QUFDcEMsc0JBQXNCO0FBQ3RCLG9CQUFvQjtBQUNwQix3QkFBd0I7QUFDeEIsMEJBQTBCO0FBQzFCLDBCQUEwQjtBQUMxQix1QkFBdUI7QUFDdkIsSUFBSTtBQUVKLGdDQUFnQztBQUNoQyxvREFBb0Q7QUFDcEQsa0JBQWtCO0FBQ2xCLHNDQUFzQztBQUN0QyxxQkFBcUI7QUFDckIsMkJBQTJCO0FBQzNCLHFCQUFxQjtBQUNyQiwrQ0FBK0M7QUFDL0Msa0JBQWtCO0FBQ2xCLDhEQUE4RDtBQUM5RCw0QkFBNEI7QUFDNUIsMkNBQTJDO0FBQzNDLG9DQUFvQztBQUNwQyxtRUFBbUU7QUFDbkUsbUJBQW1CO0FBQ25CLHNDQUFzQztBQUN0QyxrQkFBa0I7QUFDbEIsSUFBSTtBQUVKLCtEQUErRDtBQUUvRCxnRUFBZ0U7QUFDaEUsUUFBUTtBQUNSLHdDQUF3QztBQUN4Qyx3QkFBd0I7QUFDeEIsb0JBQW9CO0FBQ3BCLFFBQVE7QUFDUixtQkFBbUI7QUFFbkIsUUFBUTtBQUNSLDRDQUE0QztBQUM1Qyx3QkFBd0I7QUFDeEIsdUNBQXVDO0FBQ3ZDLG9CQUFvQjtBQUNwQixRQUFRO0FBQ1Isb0NBQW9DO0FBRXBDLFFBQVE7QUFDUiwrQkFBK0I7QUFDL0Isd0JBQXdCO0FBQ3hCLG9DQUFvQztBQUNwQyxvQkFBb0I7QUFDcEIsUUFBUTtBQUNSLDhCQUE4QjtBQUU5QixRQUFRO0FBQ1IseURBQXlEO0FBQ3pELE9BQU87QUFDUCxpRkFBaUY7QUFDakYsT0FBTztBQUNQLG9EQUFvRDtBQUNwRCxnRUFBZ0U7QUFDaEUsZ0JBQWdCO0FBQ2hCLHFCQUFxQjtBQUNyQixxQ0FBcUM7QUFDckMsc0JBQXNCO0FBQ3RCLFdBQVc7QUFDWCxpREFBaUQ7QUFDakQsMkRBQTJEO0FBQzNELFdBQVc7QUFDWCxRQUFRO0FBQ1IsMkdBQTJHO0FBRTNHLFFBQVE7QUFDUix1RUFBdUU7QUFDdkUsZ0RBQWdEO0FBQ2hELDhDQUE4QztBQUM5QyxnQkFBZ0I7QUFDaEIscUJBQXFCO0FBQ3JCLHFDQUFxQztBQUNyQyxzQkFBc0I7QUFDdEIsV0FBVztBQUNYLHNDQUFzQztBQUN0Qyw0Q0FBNEM7QUFDNUMsK0NBQStDO0FBQy9DLFdBQVc7QUFDWCxRQUFRO0FBQ1IsOENBQThDO0FBRTlDLFFBQVE7QUFDUixxRkFBcUY7QUFDckYsa0RBQWtEO0FBQ2xELG9CQUFvQjtBQUNwQix3REFBd0Q7QUFDeEQsd0VBQXdFO0FBQ3hFLGdCQUFnQjtBQUNoQix5Q0FBeUM7QUFDekMsMEJBQTBCO0FBQzFCLDZCQUE2QjtBQUM3Qiw4QkFBOEI7QUFDOUIsV0FBVztBQUNYLFFBQVE7QUFDUiw0Q0FBNEM7QUFFNUMsUUFBUTtBQUNSLCtCQUErQjtBQUMvQiw2Q0FBNkM7QUFDN0MsNEJBQTRCO0FBQzVCLDhCQUE4QjtBQUM5QixPQUFPO0FBQ1Asc0VBQXNFO0FBQ3RFLGlEQUFpRDtBQUNqRCxpQ0FBaUM7QUFDakMsb0JBQW9CO0FBQ3BCLFFBQVE7QUFDUiwyQkFBMkI7QUFFM0IsUUFBUTtBQUNSLDRFQUE0RTtBQUM1RSxnRUFBZ0U7QUFDaEUsT0FBTztBQUNQLDhEQUE4RDtBQUM5RCxPQUFPO0FBQ1Asb0RBQW9EO0FBQ3BELG9CQUFvQjtBQUNwQixPQUFPO0FBQ1Asc0RBQXNEO0FBQ3RELDhCQUE4QjtBQUM5Qix3R0FBd0c7QUFDeEcsd0VBQXdFO0FBQ3hFLHVDQUF1QztBQUN2QyxnQkFBZ0I7QUFDaEIsZ0RBQWdEO0FBQ2hELDBCQUEwQjtBQUMxQixRQUFRO0FBQ1IsK0ZBQStGO0FBRS9GLFFBQVE7QUFDUixvRUFBb0U7QUFDcEUsMEJBQTBCO0FBQzFCLDBDQUEwQztBQUMxQyxvQkFBb0I7QUFDcEIsUUFBUTtBQUNSLHFDQUFxQztBQUVyQyxRQUFRO0FBQ1Isd0NBQXdDO0FBQ3hDLHdCQUF3QjtBQUN4QixvQkFBb0I7QUFDcEIsUUFBUTtBQUNSLG9CQUFvQjtBQUVwQixRQUFRO0FBQ1IsZ0NBQWdDO0FBQ2hDLHdCQUF3QjtBQUN4QixvQkFBb0I7QUFDcEIsUUFBUTtBQUNSLHNCQUFzQjtBQUV0QixRQUFRO0FBQ1IsOERBQThEO0FBQzlELFFBQVE7QUFDUix1Q0FBdUM7QUFFdkMsUUFBUTtBQUNSLHVEQUF1RDtBQUN2RCxRQUFRO0FBQ1IsMENBQTBDO0FBRTFDLFFBQVE7QUFDUix1REFBdUQ7QUFDdkQsMEJBQTBCO0FBQzFCLG9CQUFvQjtBQUNwQixRQUFRO0FBQ1IsK0JBQStCO0FBQy9CLElBQUk7QUFFSiwrRUFBK0U7QUFDL0UseUNBQXlDO0FBQ3pDLHNDQUFzQztBQUN0QyxJQUFJO0FBRUoseUJBQXlCO0FBQ3pCLFFBQVE7QUFDUixjQUFjO0FBQ2QseUNBQXlDO0FBQ3pDLHNGQUFzRjtBQUN0Riw2R0FBNkc7QUFDN0csMERBQTBEO0FBQzFELG9CQUFvQjtBQUNwQixRQUFRO0FBQ1IsMkNBQTJDO0FBQzNDLElBQUk7QUFFSixNQUFNO0FBQ04sa0JBQWtCO0FBQ2xCLGNBQWM7QUFDZCxXQUFXO0FBQ1gsaUNBQWlDO0FBQ2pDLHVDQUF1QztBQUN2QyxLQUFLO0FBQ0wsK0NBQStDO0FBQy9DLGdCQUFnQjtBQUNoQix3Q0FBd0M7QUFDeEMsVUFBVTtBQUNWLE9BQU87QUFDUCxTQUFTO0FBQ1QsTUFBTTtBQUNOLGdDQUFnQztBQUNoQyx3QkFBd0I7QUFDeEIsc0JBQXNCO0FBQ3RCLGtEQUFrRDtBQUNsRCxrQkFBa0I7QUFDbEIsNENBQTRDO0FBQzVDLHFCQUFxQjtBQUNyQiwrQkFBK0I7QUFDL0IsaUJBQWlCO0FBQ2pCLG9DQUFvQztBQUNwQyxrQkFBa0I7QUFDbEIsd0VBQXdFO0FBQ3hFLGtCQUFrQjtBQUNsQixJQUFJO0FBRUosTUFBTTtBQUNOLDREQUE0RDtBQUM1RCx5Q0FBeUM7QUFDekMsc0RBQXNEO0FBQ3RELE1BQU07QUFDTixpQ0FBaUM7QUFDakMsbUJBQW1CO0FBQ25CLHVCQUF1QjtBQUN2Qix3QkFBd0I7QUFDeEIsa0JBQWtCO0FBQ2xCLE1BQU07QUFDTiwrQkFBK0I7QUFFL0IsMkJBQTJCO0FBQzNCLDRCQUE0QjtBQUU1Qix1QkFBdUI7QUFDdkIsZ0NBQWdDO0FBRWhDLHFDQUFxQztBQUNyQyxvQ0FBb0M7QUFFcEMsbUJBQW1CO0FBQ25CLGdDQUFnQztBQUNoQyxJQUFJO0FBRUoscUNBQXFDO0FBQ3JDLFFBQVE7QUFDUiwyRUFBMkU7QUFDM0UseUVBQXlFO0FBQ3pFLCtCQUErQjtBQUMvQixvQkFBb0I7QUFDcEIsUUFBUTtBQUNSLG9CQUFvQjtBQUVwQixRQUFRO0FBQ1IsaUhBQWlIO0FBQ2pILE9BQU87QUFDUCwrREFBK0Q7QUFDL0QsT0FBTztBQUNQLGFBQWE7QUFDYixpQ0FBaUM7QUFDakMsc0VBQXNFO0FBQ3RFLFNBQVM7QUFDVCxXQUFXO0FBQ1gsT0FBTztBQUNQLHlCQUF5QjtBQUN6QixPQUFPO0FBQ1AsYUFBYTtBQUNiLFNBQVM7QUFDVCxnREFBZ0Q7QUFDaEQsa0NBQWtDO0FBQ2xDLFNBQVM7QUFDVCxXQUFXO0FBQ1gsT0FBTztBQUNQLDJFQUEyRTtBQUMzRSxPQUFPO0FBQ1AsNEpBQTRKO0FBQzVKLDZCQUE2QjtBQUM3QixvQkFBb0I7QUFDcEIsUUFBUTtBQUNSLCtFQUErRTtBQUMvRSxJQUFJO0FBRUosZ0VBQWdFO0FBRWhFLGdDQUFnQztBQUNoQyxRQUFRO0FBQ1IsbURBQW1EO0FBQ25ELG9CQUFvQjtBQUNwQixRQUFRO0FBQ1IscURBQXFEO0FBQ3JELElBQUk7QUFFSixtQ0FBbUM7QUFDbkMsUUFBUTtBQUNSLHFKQUFxSjtBQUNySiw0QkFBNEI7QUFDNUIsb0JBQW9CO0FBQ3BCLFFBQVE7QUFDUiwyREFBMkQ7QUFDM0QsSUFBSTtBQUVKLDBCQUEwQjtBQUMxQixpQkFBaUI7QUFDakIsa0JBQWtCO0FBQ2xCLHdEQUF3RDtBQUN4RCxNQUFNO0FBQ04sWUFBWTtBQUNaLHdCQUF3QjtBQUN4QixzQkFBc0I7QUFDdEIseUJBQXlCO0FBQ3pCLHlCQUF5QjtBQUN6QixzQkFBc0I7QUFDdEIsb0JBQW9CO0FBQ3BCLHNCQUFzQjtBQUV0QixRQUFRO0FBQ1IsY0FBYztBQUNkLHlDQUF5QztBQUN6QyxzRUFBc0U7QUFDdEUsMkRBQTJEO0FBQzNELCtDQUErQztBQUMvQywwREFBMEQ7QUFDMUQsb0JBQW9CO0FBQ3BCLFFBQVE7QUFDUiw0Q0FBNEM7QUFFNUMsUUFBUTtBQUNSLDBCQUEwQjtBQUMxQix1Q0FBdUM7QUFDdkMsb0JBQW9CO0FBQ3BCLFFBQVE7QUFDUixzQ0FBc0M7QUFFdEMsUUFBUTtBQUNSLG9CQUFvQjtBQUNwQixvQ0FBb0M7QUFDcEMsb0JBQW9CO0FBQ3BCLFFBQVE7QUFDUiw4QkFBOEI7QUFFOUIscUJBQXFCO0FBRXJCLFFBQVE7QUFDUiw2REFBNkQ7QUFDN0QsT0FBTztBQUNQLDJDQUEyQztBQUMzQyxvRkFBb0Y7QUFDcEYsZ0NBQWdDO0FBQ2hDLGdCQUFnQjtBQUNoQixhQUFhO0FBQ2IsZ0ZBQWdGO0FBQ2hGLFdBQVc7QUFDWCxvQkFBb0I7QUFDcEIsUUFBUTtBQUNSLDhEQUE4RDtBQUU5RCxRQUFRO0FBQ1Isd0JBQXdCO0FBQ3hCLE9BQU87QUFDUCwyRkFBMkY7QUFDM0YsK0RBQStEO0FBQy9ELE9BQU87QUFDUCxtQ0FBbUM7QUFDbkMsT0FBTztBQUNQLGlCQUFpQjtBQUNqQixvQkFBb0I7QUFDcEIsY0FBYztBQUNkLE9BQU87QUFDUCxpQ0FBaUM7QUFDakMsb0JBQW9CO0FBQ3BCLFFBQVE7QUFDUiw0REFBNEQ7QUFFNUQsNkJBQTZCO0FBRTdCLDRCQUE0QjtBQUU1QixRQUFRO0FBQ1IsMEVBQTBFO0FBQzFFLGdFQUFnRTtBQUNoRSx5REFBeUQ7QUFDekQsb0RBQW9EO0FBQ3BELG9CQUFvQjtBQUNwQixRQUFRO0FBQ1Isc0dBQXNHO0FBRXRHLFFBQVE7QUFDUiw4Q0FBOEM7QUFDOUMsbUVBQW1FO0FBQ25FLDREQUE0RDtBQUM1RCx1REFBdUQ7QUFDdkQsb0JBQW9CO0FBQ3BCLFFBQVE7QUFDUiw2R0FBNkc7QUFFN0csOENBQThDO0FBQzlDLHlEQUF5RDtBQUV6RCw0QkFBNEI7QUFDNUIsa0NBQWtDO0FBRWxDLG9CQUFvQjtBQUNwQixrQ0FBa0M7QUFDbEMscUVBQXFFO0FBQ3JFLHdDQUF3QztBQUN4QyxxQ0FBcUM7QUFDckMsdUNBQXVDO0FBQ3ZDLHVDQUF1QztBQUN2Qyw2Q0FBNkM7QUFDN0MseUNBQXlDO0FBQ3pDLDBDQUEwQztBQUMxQyx5Q0FBeUM7QUFDekMsd0NBQXdDO0FBQ3hDLHFFQUFxRTtBQUNyRSxrQ0FBa0M7QUFDbEMsa0NBQWtDO0FBQ2xDLHFFQUFxRTtBQUNyRSxJQUFJIn0=
@@ -1 +0,0 @@
1
- export {};