@eggjs/mock 7.0.0-beta.19 → 7.0.0-beta.21

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.
Files changed (63) hide show
  1. package/dist/app/extend/agent.d.ts +33 -38
  2. package/dist/app/extend/agent.js +45 -47
  3. package/dist/app/extend/application.d.ts +167 -171
  4. package/dist/app/extend/application.js +442 -382
  5. package/dist/app/middleware/cluster_app_mock.d.ts +2 -5
  6. package/dist/app/middleware/cluster_app_mock.js +99 -96
  7. package/dist/app.d.ts +5 -9
  8. package/dist/app.js +18 -17
  9. package/dist/bootstrap.d.ts +5 -9
  10. package/dist/bootstrap.js +12 -11
  11. package/dist/index.d.ts +76 -80
  12. package/dist/index.js +81 -38
  13. package/dist/inject_mocha.d.ts +1 -1
  14. package/dist/inject_mocha.js +28 -27
  15. package/dist/lib/agent_handler.d.ts +3 -7
  16. package/dist/lib/agent_handler.js +20 -22
  17. package/dist/lib/app.d.ts +3 -7
  18. package/dist/lib/app.js +285 -248
  19. package/dist/lib/app_handler.d.ts +5 -9
  20. package/dist/lib/app_handler.js +62 -49
  21. package/dist/lib/cluster.d.ts +92 -97
  22. package/dist/lib/cluster.js +335 -278
  23. package/dist/lib/context.d.ts +1 -4
  24. package/dist/lib/context.js +11 -10
  25. package/dist/lib/format_options.d.ts +2 -7
  26. package/dist/lib/format_options.js +88 -60
  27. package/dist/lib/inject_context.d.ts +1 -4
  28. package/dist/lib/inject_context.js +123 -103
  29. package/dist/lib/mock_agent.d.ts +4 -8
  30. package/dist/lib/mock_agent.js +42 -42
  31. package/dist/lib/mock_custom_loader.d.ts +1 -4
  32. package/dist/lib/mock_custom_loader.js +33 -34
  33. package/dist/lib/mock_http_server.d.ts +2 -6
  34. package/dist/lib/mock_http_server.js +17 -16
  35. package/dist/lib/mock_httpclient.d.ts +34 -38
  36. package/dist/lib/mock_httpclient.js +142 -106
  37. package/dist/lib/parallel/agent.d.ts +19 -23
  38. package/dist/lib/parallel/agent.js +113 -107
  39. package/dist/lib/parallel/app.d.ts +19 -23
  40. package/dist/lib/parallel/app.js +108 -96
  41. package/dist/lib/parallel/util.d.ts +3 -6
  42. package/dist/lib/parallel/util.js +64 -57
  43. package/dist/lib/prerequire.d.ts +1 -1
  44. package/dist/lib/prerequire.js +25 -1
  45. package/dist/lib/request_call_function.d.ts +1 -1
  46. package/dist/lib/request_call_function.js +47 -34
  47. package/dist/lib/restore.d.ts +1 -4
  48. package/dist/lib/restore.js +11 -14
  49. package/dist/lib/start-cluster.d.ts +2 -1
  50. package/dist/lib/start-cluster.js +14 -15
  51. package/dist/lib/supertest.d.ts +6 -11
  52. package/dist/lib/supertest.js +36 -35
  53. package/dist/lib/tmp/empty.d.ts +1 -1
  54. package/dist/lib/tmp/empty.js +2 -1
  55. package/dist/lib/types.d.ts +64 -68
  56. package/dist/lib/types.js +2 -1
  57. package/dist/lib/utils.d.ts +8 -11
  58. package/dist/lib/utils.js +63 -34
  59. package/dist/register.d.ts +7 -9
  60. package/dist/register.js +40 -36
  61. package/package.json +7 -8
  62. package/dist/_virtual/rolldown_runtime.js +0 -7
  63. package/dist/typings/index.d.ts +0 -1
package/dist/lib/app.js CHANGED
@@ -1,254 +1,291 @@
1
- import { createServer } from "./mock_http_server.js";
2
- import { getProperty, getSourceDirname, rimraf, sleep } from "./utils.js";
1
+ import { debuglog } from 'node:util';
2
+ import { strict as assert } from 'node:assert';
3
+ import os from 'node:os';
4
+ import path from 'node:path';
5
+ import { Base } from 'sdk-base';
6
+ import { detectPort } from 'detect-port';
7
+ import { importModule } from '@eggjs/utils';
8
+ import { sleep, rimraf, getProperty, getSourceDirname } from "./utils.js";
3
9
  import { formatOptions } from "./format_options.js";
4
10
  import { context } from "./context.js";
5
11
  import { setCustomLoader } from "./mock_custom_loader.js";
6
- import "../app/extend/application.js";
7
- import "../app/extend/agent.js";
8
- import { strict } from "node:assert";
9
- import path from "node:path";
10
- import { debuglog } from "node:util";
11
- import os from "node:os";
12
- import { importModule } from "@eggjs/utils";
13
- import { Base } from "sdk-base";
14
- import { detectPort } from "detect-port";
15
-
16
- //#region src/lib/app.ts
17
- const debug = debuglog("egg/mock/lib/app");
18
- const apps = /* @__PURE__ */ new Map();
19
- const APP_INIT = Symbol("appInit");
20
- const MESSENGER = Symbol("messenger");
21
- const MOCK_APP_METHOD = [
22
- "ready",
23
- "closed",
24
- "isClosed",
25
- "close",
26
- "_agent",
27
- "_app",
28
- "on",
29
- "once",
30
- "then"
31
- ];
32
- var MockApplicationWorker = class extends Base {
33
- _agent;
34
- _app;
35
- baseDir;
36
- [APP_INIT] = false;
37
- _initOnListeners;
38
- _initOnceListeners;
39
- constructor(options) {
40
- super({
41
- initMethod: "_init",
42
- ...options
43
- });
44
- this.baseDir = options.baseDir;
45
- this._initOnListeners = /* @__PURE__ */ new Set();
46
- this._initOnceListeners = /* @__PURE__ */ new Set();
47
- }
48
- async _init() {
49
- if (this.options.beforeInit) {
50
- await this.options.beforeInit(this);
51
- this.options.beforeInit = void 0;
52
- }
53
- if (this.options.clean !== false) {
54
- const logDir = path.join(this.options.baseDir, "logs");
55
- try {
56
- if (os.platform() === "win32") await sleep(1e3);
57
- await rimraf(logDir);
58
- } catch (err) {
59
- console.error(`remove log dir ${logDir} failed: ${err.stack}`);
60
- }
61
- const runDir = path.join(this.options.baseDir, "run");
62
- try {
63
- if (os.platform() === "win32") await sleep(1e3);
64
- await rimraf(runDir);
65
- } catch (err) {
66
- console.error(`remove run dir ${runDir} failed: ${err.stack}`);
67
- }
68
- }
69
- this.options.clusterPort = await detectPort();
70
- debug("[init] options: %o", this.options);
71
- const egg = await importModule(this.options.framework);
72
- strict(egg.Agent, `should export Agent class from framework ${this.options.framework}`);
73
- const Agent = egg.Agent;
74
- const agent = this._agent = new Agent({ ...this.options });
75
- debug("agent instantiate");
76
- await agent.ready();
77
- debug("agent ready");
78
- const app = this._app = new (bindMessenger(egg.Application, agent))({ ...this.options });
79
- app.agent = agent;
80
- Reflect.set(agent, "app", app);
81
- Object.assign(app.context, context);
82
- debug("app instantiate");
83
- this[APP_INIT] = true;
84
- debug("this[APP_INIT] = true");
85
- this.#bindEvent();
86
- debug("http server instantiate");
87
- createServer(app);
88
- await app.ready();
89
- setCustomLoader(app);
90
- const msg = {
91
- action: "egg-ready",
92
- data: this.options
93
- };
94
- app.messenger.onMessage(msg);
95
- agent.messenger.onMessage(msg);
96
- debug("app ready");
97
- }
98
- #bindEvent() {
99
- debug("bind cache events to app");
100
- for (const args of this._initOnListeners) {
101
- debug("on(%s), use cache and pass to app", args);
102
- this._app.on(args[0], args[1]);
103
- this.removeListener(args[0], args[1]);
104
- }
105
- for (const args of this._initOnceListeners) {
106
- debug("once(%s), use cache and pass to app", args);
107
- this._app.once(args[0], args[1]);
108
- this.removeListener(args[0], args[1]);
109
- }
110
- }
111
- on(...args) {
112
- if (this[APP_INIT]) {
113
- debug("on(%s), pass to app", args);
114
- this._app.on(args[0], args[1]);
115
- } else {
116
- debug("on(%s), cache it because app has not init", args);
117
- this._initOnListeners.add(args);
118
- super.on(args[0], args[1]);
119
- }
120
- return this;
121
- }
122
- once(...args) {
123
- if (this[APP_INIT]) {
124
- debug("once(%s), pass to app", args);
125
- this._app.once(args[0], args[1]);
126
- } else {
127
- debug("once(%s), cache it because app has not init", args);
128
- this._initOnceListeners.add(args);
129
- super.on(args[0], args[1]);
130
- }
131
- return this;
132
- }
133
- /**
134
- * close app
135
- */
136
- async _close() {
137
- const baseDir = this.baseDir;
138
- if (this._app) await this._app.close();
139
- else await sleep(200);
140
- if (this._agent) await this._agent.close();
141
- apps.delete(baseDir);
142
- debug("delete app cache %s, remain %s", baseDir, [...apps.keys()]);
143
- if (os.platform() === "win32") await sleep(1e3);
144
- }
145
- /**
146
- * @deprecated please use isClosed instead, keep compatible with old version
147
- */
148
- get closed() {
149
- return this.isClosed;
150
- }
151
- };
152
- function createApp(createOptions) {
153
- const options = formatOptions({
154
- ...createOptions,
155
- mode: "all-in-one-process"
156
- });
157
- debug("[createApp] options: %o", options);
158
- if (options.cache && apps.has(options.baseDir)) {
159
- const app = apps.get(options.baseDir);
160
- if (app && !app.isClosed) {
161
- debug("use cache app %s", options.baseDir);
162
- return app;
163
- }
164
- apps.delete(options.baseDir);
165
- }
166
- const appWorker = new MockApplicationWorker(options);
167
- const proxyApp = new Proxy(appWorker, {
168
- get(target, prop) {
169
- if (MOCK_APP_METHOD.includes(prop)) return getProperty(target, prop);
170
- if (!target[APP_INIT]) throw new Error(`can't get ${prop} before ready`);
171
- debug("proxy handler.get %s", prop);
172
- return target._app[prop];
173
- },
174
- set(target, prop, value) {
175
- if (MOCK_APP_METHOD.includes(prop)) return true;
176
- if (!target[APP_INIT]) throw new Error(`can't set ${prop} before ready`);
177
- debug("proxy handler.set %s", prop);
178
- target._app[prop] = value;
179
- return true;
180
- },
181
- defineProperty(target, prop, descriptor) {
182
- if (MOCK_APP_METHOD.includes(prop)) return true;
183
- if (!target[APP_INIT]) throw new Error(`can't defineProperty ${prop} before ready`);
184
- debug("proxy handler.defineProperty %s", prop);
185
- Object.defineProperty(target._app, prop, descriptor);
186
- return true;
187
- },
188
- deleteProperty(target, prop) {
189
- if (MOCK_APP_METHOD.includes(prop)) return true;
190
- if (!target[APP_INIT]) throw new Error(`can't delete ${prop} before ready`);
191
- debug("proxy handler.deleteProperty %s", prop);
192
- delete target._app[prop];
193
- return true;
194
- },
195
- getOwnPropertyDescriptor(target, prop) {
196
- if (MOCK_APP_METHOD.includes(prop)) return Object.getOwnPropertyDescriptor(target, prop);
197
- if (!target[APP_INIT]) throw new Error(`can't getOwnPropertyDescriptor ${prop} before ready`);
198
- debug("proxy handler.getOwnPropertyDescriptor %s", prop);
199
- return Object.getOwnPropertyDescriptor(target._app, prop);
200
- },
201
- getPrototypeOf(target) {
202
- if (!target[APP_INIT]) throw new Error("can't getPrototypeOf before ready");
203
- debug("proxy handler.getPrototypeOf %s");
204
- return Object.getPrototypeOf(target._app);
205
- }
206
- });
207
- apps.set(options.baseDir, proxyApp);
208
- return proxyApp;
12
+ import { createServer } from "./mock_http_server.js";
13
+ import ApplicationUnittest from "../app/extend/application.js";
14
+ import AgentUnittest from "../app/extend/agent.js";
15
+ const debug = debuglog('egg/mock/lib/app');
16
+ const apps = new Map();
17
+ const APP_INIT = Symbol('appInit');
18
+ const MESSENGER = Symbol('messenger');
19
+ const MOCK_APP_METHOD = ['ready', 'closed', 'isClosed', 'close', '_agent', '_app', 'on', 'once', 'then'];
20
+ class MockApplicationWorker extends Base {
21
+ _agent;
22
+ _app;
23
+ baseDir;
24
+ [APP_INIT] = false;
25
+ _initOnListeners;
26
+ _initOnceListeners;
27
+ constructor(options) {
28
+ super({
29
+ initMethod: '_init',
30
+ ...options,
31
+ });
32
+ this.baseDir = options.baseDir;
33
+ this._initOnListeners = new Set();
34
+ this._initOnceListeners = new Set();
35
+ }
36
+ async _init() {
37
+ if (this.options.beforeInit) {
38
+ await this.options.beforeInit(this);
39
+ // init once
40
+ this.options.beforeInit = undefined;
41
+ }
42
+ if (this.options.clean !== false) {
43
+ const logDir = path.join(this.options.baseDir, 'logs');
44
+ try {
45
+ if (os.platform() === 'win32') {
46
+ await sleep(1000);
47
+ }
48
+ await rimraf(logDir);
49
+ }
50
+ catch (err) {
51
+ console.error(`remove log dir ${logDir} failed: ${err.stack}`);
52
+ }
53
+ const runDir = path.join(this.options.baseDir, 'run');
54
+ try {
55
+ if (os.platform() === 'win32') {
56
+ await sleep(1000);
57
+ }
58
+ await rimraf(runDir);
59
+ }
60
+ catch (err) {
61
+ console.error(`remove run dir ${runDir} failed: ${err.stack}`);
62
+ }
63
+ }
64
+ this.options.clusterPort = await detectPort();
65
+ debug('[init] options: %o', this.options);
66
+ const egg = await importModule(this.options.framework);
67
+ assert(egg.Agent, `should export Agent class from framework ${this.options.framework}`);
68
+ const Agent = egg.Agent;
69
+ const agent = (this._agent = new Agent({ ...this.options }));
70
+ debug('agent instantiate');
71
+ await agent.ready();
72
+ debug('agent ready');
73
+ const ApplicationClass = bindMessenger(egg.Application, agent);
74
+ const app = (this._app = new ApplicationClass({ ...this.options }));
75
+ // https://github.com/eggjs/egg/blob/8bb7c7e7d59d6aeca4b2ed1eb580368dcb731a4d/lib/egg.js#L125
76
+ // egg single mode mount this at start(), so egg-mock should impel it.
77
+ app.agent = agent;
78
+ Reflect.set(agent, 'app', app);
79
+ // egg-mock plugin need to override egg context
80
+ Object.assign(app.context, context);
81
+ debug('app instantiate');
82
+ this[APP_INIT] = true;
83
+ debug('this[APP_INIT] = true');
84
+ this.#bindEvent();
85
+ debug('http server instantiate');
86
+ createServer(app);
87
+ await app.ready();
88
+ // work for config ready
89
+ setCustomLoader(app);
90
+ const msg = {
91
+ action: 'egg-ready',
92
+ data: this.options,
93
+ };
94
+ app.messenger.onMessage(msg);
95
+ agent.messenger.onMessage(msg);
96
+ debug('app ready');
97
+ }
98
+ #bindEvent() {
99
+ debug('bind cache events to app');
100
+ for (const args of this._initOnListeners) {
101
+ debug('on(%s), use cache and pass to app', args);
102
+ this._app.on(args[0], args[1]);
103
+ this.removeListener(args[0], args[1]);
104
+ }
105
+ for (const args of this._initOnceListeners) {
106
+ debug('once(%s), use cache and pass to app', args);
107
+ this._app.once(args[0], args[1]);
108
+ this.removeListener(args[0], args[1]);
109
+ }
110
+ }
111
+ on(...args) {
112
+ if (this[APP_INIT]) {
113
+ debug('on(%s), pass to app', args);
114
+ this._app.on(args[0], args[1]);
115
+ }
116
+ else {
117
+ debug('on(%s), cache it because app has not init', args);
118
+ this._initOnListeners.add(args);
119
+ super.on(args[0], args[1]);
120
+ }
121
+ return this;
122
+ }
123
+ once(...args) {
124
+ if (this[APP_INIT]) {
125
+ debug('once(%s), pass to app', args);
126
+ this._app.once(args[0], args[1]);
127
+ }
128
+ else {
129
+ debug('once(%s), cache it because app has not init', args);
130
+ this._initOnceListeners.add(args);
131
+ // maybe some edge case bug here
132
+ super.on(args[0], args[1]);
133
+ }
134
+ return this;
135
+ }
136
+ /**
137
+ * close app
138
+ */
139
+ async _close() {
140
+ const baseDir = this.baseDir;
141
+ if (this._app) {
142
+ await this._app.close();
143
+ }
144
+ else {
145
+ // when app init throws an exception, must wait for app quit gracefully
146
+ await sleep(200);
147
+ }
148
+ if (this._agent) {
149
+ await this._agent.close();
150
+ }
151
+ apps.delete(baseDir);
152
+ debug('delete app cache %s, remain %s', baseDir, [...apps.keys()]);
153
+ if (os.platform() === 'win32') {
154
+ await sleep(1000);
155
+ }
156
+ }
157
+ /**
158
+ * @deprecated please use isClosed instead, keep compatible with old version
159
+ */
160
+ get closed() {
161
+ return this.isClosed;
162
+ }
163
+ }
164
+ export function createApp(createOptions) {
165
+ const options = formatOptions({
166
+ ...createOptions,
167
+ mode: 'all-in-one-process',
168
+ });
169
+ debug('[createApp] options: %o', options);
170
+ if (options.cache && apps.has(options.baseDir)) {
171
+ const app = apps.get(options.baseDir);
172
+ // return cache when it hasn't been killed
173
+ if (app && !app.isClosed) {
174
+ debug('use cache app %s', options.baseDir);
175
+ return app;
176
+ }
177
+ // delete the cache when it's closed
178
+ apps.delete(options.baseDir);
179
+ }
180
+ const appWorker = new MockApplicationWorker(options);
181
+ const proxyApp = new Proxy(appWorker, {
182
+ get(target, prop) {
183
+ // don't delegate properties on MockApplication
184
+ if (MOCK_APP_METHOD.includes(prop)) {
185
+ return getProperty(target, prop);
186
+ }
187
+ if (!target[APP_INIT]) {
188
+ throw new Error(`can't get ${prop} before ready`);
189
+ }
190
+ // it's asynchronous when agent and app are loading,
191
+ // so should get the properties after loader ready
192
+ debug('proxy handler.get %s', prop);
193
+ return target._app[prop];
194
+ },
195
+ set(target, prop, value) {
196
+ if (MOCK_APP_METHOD.includes(prop))
197
+ return true;
198
+ if (!target[APP_INIT])
199
+ throw new Error(`can't set ${prop} before ready`);
200
+ debug('proxy handler.set %s', prop);
201
+ target._app[prop] = value;
202
+ return true;
203
+ },
204
+ defineProperty(target, prop, descriptor) {
205
+ // can't define properties on MockApplication
206
+ if (MOCK_APP_METHOD.includes(prop))
207
+ return true;
208
+ if (!target[APP_INIT])
209
+ throw new Error(`can't defineProperty ${prop} before ready`);
210
+ debug('proxy handler.defineProperty %s', prop);
211
+ Object.defineProperty(target._app, prop, descriptor);
212
+ return true;
213
+ },
214
+ deleteProperty(target, prop) {
215
+ // can't delete properties on MockApplication
216
+ if (MOCK_APP_METHOD.includes(prop))
217
+ return true;
218
+ if (!target[APP_INIT])
219
+ throw new Error(`can't delete ${prop} before ready`);
220
+ debug('proxy handler.deleteProperty %s', prop);
221
+ delete target._app[prop];
222
+ return true;
223
+ },
224
+ getOwnPropertyDescriptor(target, prop) {
225
+ if (MOCK_APP_METHOD.includes(prop)) {
226
+ return Object.getOwnPropertyDescriptor(target, prop);
227
+ }
228
+ if (!target[APP_INIT]) {
229
+ throw new Error(`can't getOwnPropertyDescriptor ${prop} before ready`);
230
+ }
231
+ debug('proxy handler.getOwnPropertyDescriptor %s', prop);
232
+ return Object.getOwnPropertyDescriptor(target._app, prop);
233
+ },
234
+ getPrototypeOf(target) {
235
+ if (!target[APP_INIT]) {
236
+ throw new Error("can't getPrototypeOf before ready");
237
+ }
238
+ debug('proxy handler.getPrototypeOf %s');
239
+ return Object.getPrototypeOf(target._app);
240
+ },
241
+ });
242
+ apps.set(options.baseDir, proxyApp);
243
+ return proxyApp;
209
244
  }
210
245
  function bindMessenger(ApplicationClass, agent) {
211
- const agentMessenger = agent.messenger;
212
- return class MessengerApplication extends ApplicationClass {
213
- [MESSENGER];
214
- constructor(options) {
215
- super(options);
216
- this.messenger.sendRandom = (action, data) => {
217
- this.messenger.sendToAgent(action, data);
218
- };
219
- agentMessenger.on("egg-ready", () => {
220
- agentMessenger.sendRandom = (action, data) => {
221
- agentMessenger.sendToApp(action, data);
222
- return agentMessenger;
223
- };
224
- });
225
- agentMessenger.send = new Proxy(agentMessenger.send, { apply: this._sendMessage.bind(this) });
226
- }
227
- _sendMessage(_target, _thisArg, [action, data, to]) {
228
- const appMessenger = this.messenger;
229
- setImmediate(() => {
230
- if (to === "app") appMessenger.onMessage({
231
- action,
232
- data
233
- });
234
- else agentMessenger.onMessage({
235
- action,
236
- data
237
- });
238
- });
239
- }
240
- get messenger() {
241
- return this[MESSENGER];
242
- }
243
- set messenger(m) {
244
- m.send = new Proxy(m.send, { apply: this._sendMessage.bind(this) });
245
- this[MESSENGER] = m;
246
- }
247
- get [Symbol.for("egg#eggPath")]() {
248
- return path.join(getSourceDirname(), "lib/tmp");
249
- }
250
- };
246
+ const agentMessenger = agent.messenger;
247
+ return class MessengerApplication extends ApplicationClass {
248
+ [MESSENGER];
249
+ constructor(options) {
250
+ super(options);
251
+ // enable app to send to a random agent
252
+ this.messenger.sendRandom = (action, data) => {
253
+ this.messenger.sendToAgent(action, data);
254
+ };
255
+ // enable agent to send to a random app
256
+ agentMessenger.on('egg-ready', () => {
257
+ agentMessenger.sendRandom = (action, data) => {
258
+ agentMessenger.sendToApp(action, data);
259
+ return agentMessenger;
260
+ };
261
+ });
262
+ agentMessenger.send = new Proxy(agentMessenger.send, {
263
+ apply: this._sendMessage.bind(this),
264
+ });
265
+ }
266
+ _sendMessage(_target, _thisArg, [action, data, to]) {
267
+ const appMessenger = this.messenger;
268
+ setImmediate(() => {
269
+ if (to === 'app') {
270
+ appMessenger.onMessage({ action, data });
271
+ }
272
+ else {
273
+ agentMessenger.onMessage({ action, data });
274
+ }
275
+ });
276
+ }
277
+ get messenger() {
278
+ return this[MESSENGER];
279
+ }
280
+ set messenger(m) {
281
+ m.send = new Proxy(m.send, {
282
+ apply: this._sendMessage.bind(this),
283
+ });
284
+ this[MESSENGER] = m;
285
+ }
286
+ get [Symbol.for('egg#eggPath')]() {
287
+ return path.join(getSourceDirname(), 'lib/tmp');
288
+ }
289
+ };
251
290
  }
252
-
253
- //#endregion
254
- export { createApp };
291
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9hcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDekIsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBRTdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJELE9BQU8sbUJBQW1CLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxhQUFhLE1BQU0sd0JBQXdCLENBQUM7QUFFbkQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFFM0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQStCLENBQUM7QUFDcEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ25DLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUN0QyxNQUFNLGVBQWUsR0FBRyxDQUFDLE9B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
@@ -1,9 +1,5 @@
1
- import ApplicationUnittest from "../app/extend/application.js";
2
-
3
- //#region src/lib/app_handler.d.ts
4
- declare function setupApp(): ApplicationUnittest;
5
- declare function setGetAppCallback(cb: (suite: unknown, test?: unknown) => any): void;
6
- declare function getApp(suite?: unknown, test?: unknown): Promise<any>;
7
- declare function getBootstrapApp(): ApplicationUnittest;
8
- //#endregion
9
- export { getApp, getBootstrapApp, setGetAppCallback, setupApp };
1
+ import ApplicationUnittest from '../app/extend/application.ts';
2
+ export declare function setupApp(): ApplicationUnittest;
3
+ export declare function setGetAppCallback(cb: (suite: unknown, test?: unknown) => any): void;
4
+ export declare function getApp(suite?: unknown, test?: unknown): Promise<any>;
5
+ export declare function getBootstrapApp(): ApplicationUnittest;