@appium/base-driver 9.11.2 → 9.11.3
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/build/lib/basedriver/driver.d.ts.map +1 -1
- package/build/lib/basedriver/driver.js +43 -25
- package/build/lib/basedriver/driver.js.map +1 -1
- package/build/lib/protocol/routes.d.ts +1 -1
- package/build/lib/protocol/routes.js +1 -1
- package/lib/basedriver/driver.ts +43 -29
- package/lib/protocol/routes.js +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../lib/basedriver/driver.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,0BAA0B,EAC/B,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACzB,MAAM,eAAe,CAAC;AAOvB,OAAO,EAAC,UAAU,EAAC,MAAM,QAAQ,CAAC;AASlC,qBAAa,UAAU,CACnB,KAAK,CAAC,CAAC,SAAS,WAAW,EAC3B,KAAK,SAAS,YAAY,GAAG,YAAY,EACzC,QAAQ,SAAS,YAAY,GAAG,YAAY,EAC5C,YAAY,GAAG,0BAA0B,CAAC,CAAC,CAAC,EAC5C,YAAY,GAAG,0BAA0B,EACzC,WAAW,SAAS,YAAY,GAAG,YAAY,CAEjD,SAAQ,UAAU,CAAC,CAAC,EAAE,QAAQ,CAC9B,YAAW,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC;IAE9E,OAAO,EAAE,KAAK,GAAG,UAAU,CAAC;IAC5B,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACpB,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAC/B,qBAAqB,EAAE,CAAC,CAAC;IACzB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;gBAER,IAAI,EAAE,WAAW,EAAE,kBAAkB,UAAO;IAOxD;;;;;;OAMG;IACH,SAAS,KAAK,sBAAsB,IAAI,QAAQ,CAAC,wBAAwB,GAAG,CAAC,CAAC,CAE7E;IAED;;;;;OAKG;IACG,cAAc,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../lib/basedriver/driver.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,0BAA0B,EAC/B,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACzB,MAAM,eAAe,CAAC;AAOvB,OAAO,EAAC,UAAU,EAAC,MAAM,QAAQ,CAAC;AASlC,qBAAa,UAAU,CACnB,KAAK,CAAC,CAAC,SAAS,WAAW,EAC3B,KAAK,SAAS,YAAY,GAAG,YAAY,EACzC,QAAQ,SAAS,YAAY,GAAG,YAAY,EAC5C,YAAY,GAAG,0BAA0B,CAAC,CAAC,CAAC,EAC5C,YAAY,GAAG,0BAA0B,EACzC,WAAW,SAAS,YAAY,GAAG,YAAY,CAEjD,SAAQ,UAAU,CAAC,CAAC,EAAE,QAAQ,CAC9B,YAAW,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC;IAE9E,OAAO,EAAE,KAAK,GAAG,UAAU,CAAC;IAC5B,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACpB,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAC/B,qBAAqB,EAAE,CAAC,CAAC;IACzB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;gBAER,IAAI,EAAE,WAAW,EAAE,kBAAkB,UAAO;IAOxD;;;;;;OAMG;IACH,SAAS,KAAK,sBAAsB,IAAI,QAAQ,CAAC,wBAAwB,GAAG,CAAC,CAAC,CAE7E;IAED;;;;;OAKG;IACG,cAAc,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAoFpE,uBAAuB,CAC3B,GAAG,GAAE,KAA8E;IAa/E,sBAAsB;IAqB5B,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAWrE,KAAK;IA8BX;;;;;;OAMG;IACG,aAAa,CACjB,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC,EAClC,gBAAgB,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EACnC,eAAe,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAElC,UAAU,CAAC,EAAE,UAAU,EAAE,GACxB,OAAO,CAAC,YAAY,CAAC;IAoFlB,WAAW;IAajB;;OAEG;IACG,UAAU;IAOV,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAa7C,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAUlC,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC;IAqB/C,cAAc,CAAC,WAAW,EAAE,QAAQ;IAOpC,WAAW;CAMlB;AAED,cAAc,YAAY,CAAC;AAE3B,eAAe,UAAU,CAAC"}
|
|
@@ -74,35 +74,53 @@ class BaseDriver extends core_1.DriverCore {
|
|
|
74
74
|
}
|
|
75
75
|
// If we don't have this command, it must not be implemented
|
|
76
76
|
if (!this[cmd]) {
|
|
77
|
+
await this.startNewCommandTimeout();
|
|
77
78
|
throw new protocol_1.errors.NotYetImplementedError();
|
|
78
79
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
80
|
+
const runCommandPromise = async () => {
|
|
81
|
+
let unexpectedShutdownRejecter = null;
|
|
82
|
+
let unexpectedShutdownResolver = null;
|
|
83
|
+
let wasSessionShutdownUnexpectedly = false;
|
|
84
|
+
const onUnexpectedShutdown = (e) => {
|
|
85
|
+
wasSessionShutdownUnexpectedly = true;
|
|
86
|
+
unexpectedShutdownRejecter?.(e);
|
|
87
|
+
};
|
|
88
|
+
try {
|
|
89
|
+
return await bluebird_1.default.race([
|
|
90
|
+
this[cmd](...args),
|
|
91
|
+
// This promise is needed to monitor if the session has been
|
|
92
|
+
// shut down unexpectedly while the command was running
|
|
93
|
+
new bluebird_1.default((resolve, reject) => {
|
|
94
|
+
unexpectedShutdownResolver = resolve;
|
|
95
|
+
unexpectedShutdownRejecter = reject;
|
|
96
|
+
this.eventEmitter.once(ON_UNEXPECTED_SHUTDOWN_EVENT, onUnexpectedShutdown);
|
|
97
|
+
})
|
|
98
|
+
]);
|
|
91
99
|
}
|
|
92
|
-
|
|
100
|
+
finally {
|
|
101
|
+
if (unexpectedShutdownRejecter && unexpectedShutdownResolver) {
|
|
102
|
+
// This is needed to prevent memory leaks
|
|
103
|
+
this.eventEmitter.removeListener(ON_UNEXPECTED_SHUTDOWN_EVENT, onUnexpectedShutdown);
|
|
104
|
+
unexpectedShutdownRejecter = null;
|
|
105
|
+
// @ts-ignore typescript cannot understand this
|
|
106
|
+
unexpectedShutdownResolver?.();
|
|
107
|
+
unexpectedShutdownResolver = null;
|
|
108
|
+
}
|
|
109
|
+
// if we have set a new command timeout (which is the default), start a
|
|
110
|
+
// timer once we've finished executing this command. If we don't clear
|
|
111
|
+
// the timer (which is done when a new command comes in), we will trigger
|
|
112
|
+
// automatic session deletion in this.onCommandTimeout. Of course we don't
|
|
113
|
+
// want to trigger the timer when the user is shutting down the session
|
|
114
|
+
// intentionally
|
|
115
|
+
if (!wasSessionShutdownUnexpectedly && this.isCommandsQueueEnabled && cmd !== protocol_1.DELETE_SESSION_COMMAND) {
|
|
116
|
+
// resetting existing timeout
|
|
117
|
+
await this.startNewCommandTimeout();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
};
|
|
93
121
|
const res = this.isCommandsQueueEnabled
|
|
94
|
-
? await this.commandsQueueGuard.acquire(BaseDriver.name,
|
|
95
|
-
: await
|
|
96
|
-
// if we have set a new command timeout (which is the default), start a
|
|
97
|
-
// timer once we've finished executing this command. If we don't clear
|
|
98
|
-
// the timer (which is done when a new command comes in), we will trigger
|
|
99
|
-
// automatic session deletion in this.onCommandTimeout. Of course we don't
|
|
100
|
-
// want to trigger the timer when the user is shutting down the session
|
|
101
|
-
// intentionally
|
|
102
|
-
if (this.isCommandsQueueEnabled && cmd !== protocol_1.DELETE_SESSION_COMMAND) {
|
|
103
|
-
// resetting existing timeout
|
|
104
|
-
await this.startNewCommandTimeout();
|
|
105
|
-
}
|
|
122
|
+
? await this.commandsQueueGuard.acquire(BaseDriver.name, runCommandPromise)
|
|
123
|
+
: await runCommandPromise();
|
|
106
124
|
// log timing information about this command
|
|
107
125
|
const endTime = Date.now();
|
|
108
126
|
this._eventHistory.commands.push({ cmd, startTime, endTime });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../lib/basedriver/driver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,6CAAqC;AACrC,yCAiBuB;AACvB,wDAAyB;AACzB,oDAAuB;AACvB,0DAA2D;AAC3D,gDAAiD;AACjD,0CAA8E;AAC9E,iDAAiE;AACjE,iCAAkC;AAClC,wDAAgC;AAEhC,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AACjD,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAChD,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AACxD,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;AACtD,MAAM,4BAA4B,GAAG,sBAAsB,CAAC;AAE5D,MAAa,UAQX,SAAQ,iBAAuB;IAY/B,YAAY,IAAiB,EAAE,kBAAkB,GAAG,IAAI;QACtD,KAAK,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QAEhC,IAAI,CAAC,IAAI,GAAG,EAAmB,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,EAAwB,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,IAAc,sBAAsB;QAClC,OAAO,MAAM,CAAC,MAAM,CAAC,gBAAC,CAAC,KAAK,CAAC,EAAE,EAAE,oCAA4B,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAc,GAAW,EAAE,GAAG,IAAW;QAC3D,4DAA4D;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,GAAG,KAAK,eAAe,EAAE,CAAC;YAC5B,mGAAmG;YACnG,IAAI,CAAC,QAAQ,GAAG,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,GAAG,KAAK,iCAAsB,EAAE,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;QAC1C,CAAC;QAED,sEAAsE;QACtE,8CAA8C;QAC9C,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAEpC,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,MAAM,IAAI,iBAAM,CAAC,iBAAiB,CAAC,wCAAwC,CAAC,CAAC;QAC/E,CAAC;QAED,4DAA4D;QAC5D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,iBAAM,CAAC,sBAAsB,EAAE,CAAC;QAC5C,CAAC;QAED,IAAI,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../lib/basedriver/driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1243,7 +1243,7 @@ export const METHOD_MAP: {
|
|
|
1243
1243
|
readonly POST: {
|
|
1244
1244
|
readonly command: "setWindowRect";
|
|
1245
1245
|
readonly payloadParams: {
|
|
1246
|
-
readonly
|
|
1246
|
+
readonly optional: readonly ["x", "y", "width", "height"];
|
|
1247
1247
|
};
|
|
1248
1248
|
};
|
|
1249
1249
|
};
|
|
@@ -821,7 +821,7 @@ exports.METHOD_MAP = ({
|
|
|
821
821
|
GET: { command: 'getWindowRect' },
|
|
822
822
|
POST: {
|
|
823
823
|
command: 'setWindowRect',
|
|
824
|
-
payloadParams: {
|
|
824
|
+
payloadParams: { optional: ['x', 'y', 'width', 'height'] },
|
|
825
825
|
},
|
|
826
826
|
},
|
|
827
827
|
'/session/:sessionId/window/maximize': {
|
package/lib/basedriver/driver.ts
CHANGED
|
@@ -98,41 +98,55 @@ export class BaseDriver<
|
|
|
98
98
|
|
|
99
99
|
// If we don't have this command, it must not be implemented
|
|
100
100
|
if (!this[cmd]) {
|
|
101
|
+
await this.startNewCommandTimeout();
|
|
101
102
|
throw new errors.NotYetImplementedError();
|
|
102
103
|
}
|
|
103
104
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
105
|
+
const runCommandPromise = async () => {
|
|
106
|
+
let unexpectedShutdownRejecter: ((error?: any) => void) | null = null;
|
|
107
|
+
let unexpectedShutdownResolver: ((x?: unknown) => void) | null = null;
|
|
108
|
+
let wasSessionShutdownUnexpectedly = false;
|
|
109
|
+
const onUnexpectedShutdown = (e: Error) => {
|
|
110
|
+
wasSessionShutdownUnexpectedly = true;
|
|
111
|
+
unexpectedShutdownRejecter?.(e);
|
|
112
|
+
};
|
|
113
|
+
try {
|
|
114
|
+
return await B.race([
|
|
115
|
+
this[cmd](...args),
|
|
116
|
+
// This promise is needed to monitor if the session has been
|
|
117
|
+
// shut down unexpectedly while the command was running
|
|
118
|
+
new B((resolve, reject) => {
|
|
119
|
+
unexpectedShutdownResolver = resolve;
|
|
120
|
+
unexpectedShutdownRejecter = reject;
|
|
121
|
+
this.eventEmitter.once(ON_UNEXPECTED_SHUTDOWN_EVENT, onUnexpectedShutdown);
|
|
122
|
+
})
|
|
123
|
+
]);
|
|
124
|
+
} finally {
|
|
125
|
+
if (unexpectedShutdownRejecter && unexpectedShutdownResolver) {
|
|
114
126
|
// This is needed to prevent memory leaks
|
|
115
|
-
this.eventEmitter.removeListener(
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
);
|
|
119
|
-
|
|
127
|
+
this.eventEmitter.removeListener(ON_UNEXPECTED_SHUTDOWN_EVENT, onUnexpectedShutdown);
|
|
128
|
+
unexpectedShutdownRejecter = null;
|
|
129
|
+
// @ts-ignore typescript cannot understand this
|
|
130
|
+
unexpectedShutdownResolver?.();
|
|
131
|
+
unexpectedShutdownResolver = null;
|
|
120
132
|
}
|
|
121
|
-
|
|
133
|
+
|
|
134
|
+
// if we have set a new command timeout (which is the default), start a
|
|
135
|
+
// timer once we've finished executing this command. If we don't clear
|
|
136
|
+
// the timer (which is done when a new command comes in), we will trigger
|
|
137
|
+
// automatic session deletion in this.onCommandTimeout. Of course we don't
|
|
138
|
+
// want to trigger the timer when the user is shutting down the session
|
|
139
|
+
// intentionally
|
|
140
|
+
if (!wasSessionShutdownUnexpectedly && this.isCommandsQueueEnabled && cmd !== DELETE_SESSION_COMMAND) {
|
|
141
|
+
// resetting existing timeout
|
|
142
|
+
await this.startNewCommandTimeout();
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
|
|
122
147
|
const res = this.isCommandsQueueEnabled
|
|
123
|
-
? await this.commandsQueueGuard.acquire(BaseDriver.name,
|
|
124
|
-
: await
|
|
125
|
-
|
|
126
|
-
// if we have set a new command timeout (which is the default), start a
|
|
127
|
-
// timer once we've finished executing this command. If we don't clear
|
|
128
|
-
// the timer (which is done when a new command comes in), we will trigger
|
|
129
|
-
// automatic session deletion in this.onCommandTimeout. Of course we don't
|
|
130
|
-
// want to trigger the timer when the user is shutting down the session
|
|
131
|
-
// intentionally
|
|
132
|
-
if (this.isCommandsQueueEnabled && cmd !== DELETE_SESSION_COMMAND) {
|
|
133
|
-
// resetting existing timeout
|
|
134
|
-
await this.startNewCommandTimeout();
|
|
135
|
-
}
|
|
148
|
+
? await this.commandsQueueGuard.acquire(BaseDriver.name, runCommandPromise)
|
|
149
|
+
: await runCommandPromise();
|
|
136
150
|
|
|
137
151
|
// log timing information about this command
|
|
138
152
|
const endTime = Date.now();
|
package/lib/protocol/routes.js
CHANGED
|
@@ -824,7 +824,7 @@ export const METHOD_MAP = /** @type {const} */ ({
|
|
|
824
824
|
GET: {command: 'getWindowRect'},
|
|
825
825
|
POST: {
|
|
826
826
|
command: 'setWindowRect',
|
|
827
|
-
payloadParams: {
|
|
827
|
+
payloadParams: {optional: ['x', 'y', 'width', 'height']},
|
|
828
828
|
},
|
|
829
829
|
},
|
|
830
830
|
'/session/:sessionId/window/maximize': {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appium/base-driver",
|
|
3
|
-
"version": "9.11.
|
|
3
|
+
"version": "9.11.3",
|
|
4
4
|
"description": "Base driver class for Appium drivers",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"automation",
|
|
@@ -44,30 +44,30 @@
|
|
|
44
44
|
"test:types": "tsd"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@appium/support": "^5.1.
|
|
48
|
-
"@appium/types": "^0.21.
|
|
47
|
+
"@appium/support": "^5.1.3",
|
|
48
|
+
"@appium/types": "^0.21.2",
|
|
49
49
|
"@colors/colors": "1.6.0",
|
|
50
50
|
"@types/async-lock": "1.4.2",
|
|
51
51
|
"@types/bluebird": "3.5.42",
|
|
52
52
|
"@types/express": "4.17.21",
|
|
53
|
-
"@types/lodash": "4.17.
|
|
53
|
+
"@types/lodash": "4.17.7",
|
|
54
54
|
"@types/method-override": "0.0.35",
|
|
55
55
|
"@types/serve-favicon": "2.5.7",
|
|
56
56
|
"async-lock": "1.4.1",
|
|
57
57
|
"asyncbox": "3.0.0",
|
|
58
|
-
"axios": "1.7.
|
|
58
|
+
"axios": "1.7.3",
|
|
59
59
|
"bluebird": "3.7.2",
|
|
60
60
|
"body-parser": "1.20.2",
|
|
61
61
|
"express": "4.19.2",
|
|
62
62
|
"http-status-codes": "2.3.0",
|
|
63
63
|
"lodash": "4.17.21",
|
|
64
|
-
"lru-cache": "10.3
|
|
64
|
+
"lru-cache": "10.4.3",
|
|
65
65
|
"method-override": "3.0.0",
|
|
66
66
|
"morgan": "1.10.0",
|
|
67
|
-
"path-to-regexp": "7.
|
|
67
|
+
"path-to-regexp": "7.1.0",
|
|
68
68
|
"serve-favicon": "2.5.0",
|
|
69
69
|
"source-map-support": "0.5.21",
|
|
70
|
-
"type-fest": "4.
|
|
70
|
+
"type-fest": "4.23.0",
|
|
71
71
|
"validate.js": "0.13.1"
|
|
72
72
|
},
|
|
73
73
|
"optionalDependencies": {
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
"publishConfig": {
|
|
81
81
|
"access": "public"
|
|
82
82
|
},
|
|
83
|
-
"gitHead": "
|
|
83
|
+
"gitHead": "edf2593e1729d8f06002fa5c5622e26d71d79545",
|
|
84
84
|
"tsd": {
|
|
85
85
|
"directory": "test/types"
|
|
86
86
|
}
|