@gatling.io/core 3.14.500 → 3.14.600

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gatling.io/core",
3
- "version": "3.14.500",
3
+ "version": "3.14.600",
4
4
  "license": "Apache-2.0",
5
5
  "homepage": "https://gatling.io",
6
6
  "repository": "github:gatling/gatling-js",
@@ -20,16 +20,16 @@
20
20
  "main": "target/index.js",
21
21
  "types": "target/index.d.ts",
22
22
  "dependencies": {
23
- "@gatling.io/jvm-types": "3.14.500"
23
+ "@gatling.io/jvm-types": "3.14.600"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@types/jest": "30.0.0",
27
- "jest": "30.1.3",
27
+ "jest": "30.2.0",
28
28
  "prettier": "3.6.2",
29
29
  "rimraf": "6.0.1",
30
- "ts-jest": "29.4.4",
30
+ "ts-jest": "29.4.5",
31
31
  "ts-node": "10.9.2",
32
- "typescript": "5.9.2"
32
+ "typescript": "5.9.3"
33
33
  },
34
34
  "scripts": {
35
35
  "clean": "rimraf target",
@@ -57,6 +57,7 @@ exports.bodyString = bodyString;
57
57
  */
58
58
  const bodyBytes = () => ({
59
59
  ...(0, find_1.wrapCheckBuilderFind)(jvm_types_1.CoreDsl.bodyBytes()),
60
+ // FIXME only is and not?
60
61
  is: (expected) => (0, final_1.wrapCheckBuilderFinal)(typeof expected === "function"
61
62
  ? jvm_types_1.CoreDsl.bodyBytes().is((0, byteArrays_1.asByteArrayFunction)((0, session_1.underlyingSessionTo)(expected)))
62
63
  : jvm_types_1.CoreDsl.bodyBytes().is((0, byteArrays_1.asByteArray)(expected))),
@@ -27,10 +27,10 @@ export interface CheckBuilderValidate<X> extends CheckBuilderFinal {
27
27
  /**
28
28
  * Provide a default value if the check wasn't able to extract anything
29
29
  *
30
- * @param value - the default value
30
+ * @param value - the default value or a function returning the default value
31
31
  * @returns a new Validate
32
32
  */
33
- withDefault(value: X): CheckBuilderValidate<X>;
33
+ withDefault(value: X | ((session: Session) => X)): CheckBuilderValidate<X>;
34
34
  /**
35
35
  * Provide a default Gatling Expression Language value if the check wasn't able to extract
36
36
  * anything
@@ -39,13 +39,6 @@ export interface CheckBuilderValidate<X> extends CheckBuilderFinal {
39
39
  * @returns a new Validate
40
40
  */
41
41
  withDefaultEL(value: string): CheckBuilderValidate<X>;
42
- /**
43
- * Provide a default value if the check wasn't able to extract anything
44
- *
45
- * @param value - the default value as a function
46
- * @returns a new Validate
47
- */
48
- withDefault(value: SessionTo<X>): CheckBuilderValidate<X>;
49
42
  /**
50
43
  * Provide a custom validation strategy
51
44
  *
@@ -57,10 +50,10 @@ export interface CheckBuilderValidate<X> extends CheckBuilderFinal {
57
50
  /**
58
51
  * Validate the extracted value is equal to an expected value
59
52
  *
60
- * @param expected - the expected value
53
+ * @param expected - the expected value or a function returning the expected value
61
54
  * @returns a new CheckBuilderFinal
62
55
  */
63
- is(expected: X): CheckBuilderFinal;
56
+ is(expected: X | ((session: Session) => X)): CheckBuilderFinal;
64
57
  /**
65
58
  * Validate the extracted value is equal to an expected value, passed as a Gatling Expression
66
59
  * Language String
@@ -69,13 +62,6 @@ export interface CheckBuilderValidate<X> extends CheckBuilderFinal {
69
62
  * @returns a new CheckBuilderFinal
70
63
  */
71
64
  isEL(expected: string): CheckBuilderFinal;
72
- /**
73
- * Validate the extracted value is equal to an expected value, passed as a function
74
- *
75
- * @param expected - the expected value as a function
76
- * @returns a new CheckBuilderFinal
77
- */
78
- is(expected: SessionTo<X>): CheckBuilderFinal;
79
65
  /**
80
66
  * Validate the extracted value is null
81
67
  *
@@ -85,10 +71,10 @@ export interface CheckBuilderValidate<X> extends CheckBuilderFinal {
85
71
  /**
86
72
  * Validate the extracted value is not an expected value
87
73
  *
88
- * @param expected - the unexpected value
74
+ * @param expected - the unexpected value or a function returning the unexpected value
89
75
  * @returns a new CheckBuilderFinal
90
76
  */
91
- not(expected: X): CheckBuilderFinal;
77
+ not(expected: X | ((session: Session) => X)): CheckBuilderFinal;
92
78
  /**
93
79
  * Validate the extracted value is not an expected value, passed as a Gatling Expression
94
80
  * Language String
@@ -97,13 +83,6 @@ export interface CheckBuilderValidate<X> extends CheckBuilderFinal {
97
83
  * @returns a new CheckBuilderFinal
98
84
  */
99
85
  notEL(expected: string): CheckBuilderFinal;
100
- /**
101
- * Validate the extracted value is not an expected value, passed as a function
102
- *
103
- * @param expected - the unexpected value as a function
104
- * @returns a new CheckBuilderFinal
105
- */
106
- not(expected: SessionTo<X>): CheckBuilderFinal;
107
86
  /**
108
87
  * Validate the extracted value is not null
109
88
  *
@@ -113,10 +92,11 @@ export interface CheckBuilderValidate<X> extends CheckBuilderFinal {
113
92
  /**
114
93
  * Validate the extracted value belongs to an expected set
115
94
  *
116
- * @param expected - the set of possible values
95
+ * @param expectedOrFunction - either a single expected value or a function returning an array of expected values
96
+ * @param additionalValues - additional expected values (ignored if expectedOrFunction is a function)
117
97
  * @returns a new Final
118
98
  */
119
- in(...expected: X[]): CheckBuilderFinal;
99
+ in(expectedOrFunction: X | SessionTo<X[]>, ...additionalValues: X[]): CheckBuilderFinal;
120
100
  /**
121
101
  * Validate the extracted value belongs to an expected set, passed as a Gatling Expression
122
102
  * Language String
@@ -125,13 +105,6 @@ export interface CheckBuilderValidate<X> extends CheckBuilderFinal {
125
105
  * @returns a new CheckBuilderFinal
126
106
  */
127
107
  inEL(expected: string): CheckBuilderFinal;
128
- /**
129
- * Validate the extracted value belongs to an expected set, passed as a function
130
- *
131
- * @param expected - the set of possible values, as a function
132
- * @returns a new CheckBuilderFinal
133
- */
134
- in(expected: SessionTo<X[]>): CheckBuilderFinal;
135
108
  /**
136
109
  * Validate the check was able to extract any value
137
110
  *
@@ -153,10 +126,10 @@ export interface CheckBuilderValidate<X> extends CheckBuilderFinal {
153
126
  /**
154
127
  * Validate the extracted value is less than a given value
155
128
  *
156
- * @param value - the value
129
+ * @param value - the value or a function returning the value
157
130
  * @returns a new CheckBuilderFinal
158
131
  */
159
- lt(value: X): CheckBuilderFinal;
132
+ lt(value: X | ((session: Session) => X)): CheckBuilderFinal;
160
133
  /**
161
134
  * Validate the extracted value is less than a given value, passed as a Gatling Expression
162
135
  * Language String
@@ -165,20 +138,13 @@ export interface CheckBuilderValidate<X> extends CheckBuilderFinal {
165
138
  * @returns a new CheckBuilderFinal
166
139
  */
167
140
  ltEL(value: string): CheckBuilderFinal;
168
- /**
169
- * Validate the extracted value is less than a given value, passed as a function
170
- *
171
- * @param value - the value, as a function
172
- * @returns a new CheckBuilderFinal
173
- */
174
- lt(value: SessionTo<X>): CheckBuilderFinal;
175
141
  /**
176
142
  * Validate the extracted value is less than or equal to a given value
177
143
  *
178
- * @param value - the value
144
+ * @param value - the value or a function returning the value
179
145
  * @returns a new CheckBuilderFinal
180
146
  */
181
- lte(value: X): CheckBuilderFinal;
147
+ lte(value: X | ((session: Session) => X)): CheckBuilderFinal;
182
148
  /**
183
149
  * Validate the extracted value is less than or equal to a given value, passed as a Gatling
184
150
  * Expression Language String
@@ -187,20 +153,13 @@ export interface CheckBuilderValidate<X> extends CheckBuilderFinal {
187
153
  * @returns a new CheckBuilderFinal
188
154
  */
189
155
  lteEL(value: string): CheckBuilderFinal;
190
- /**
191
- * Validate the extracted value is less than or equal to a given value, passed as a function
192
- *
193
- * @param value - the value, as a function
194
- * @returns a new CheckBuilderFinal
195
- */
196
- lte(value: SessionTo<X>): CheckBuilderFinal;
197
156
  /**
198
157
  * Validate the extracted value is greater than a given value
199
158
  *
200
- * @param value - the value
159
+ * @param value - the value or a function returning the value
201
160
  * @returns a new CheckBuilderFinal
202
161
  */
203
- gt(value: X): CheckBuilderFinal;
162
+ gt(value: X | ((session: Session) => X)): CheckBuilderFinal;
204
163
  /**
205
164
  * Validate the extracted value is greater than a given value, passed as a Gatling Expression
206
165
  * Language String
@@ -209,20 +168,13 @@ export interface CheckBuilderValidate<X> extends CheckBuilderFinal {
209
168
  * @returns a new CheckBuilderFinal
210
169
  */
211
170
  gtEL(value: string): CheckBuilderFinal;
212
- /**
213
- * Validate the extracted value is greater than a given value, passed as a function
214
- *
215
- * @param value - the value, as a function
216
- * @returns a new CheckBuilderFinal
217
- */
218
- gt(value: SessionTo<X>): CheckBuilderFinal;
219
171
  /**
220
172
  * Validate the extracted value is greater than or equal to a given value
221
173
  *
222
- * @param value - the value
174
+ * @param value - the value or a function returning the value
223
175
  * @returns a new CheckBuilderFinal
224
176
  */
225
- gte(value: X): CheckBuilderFinal;
177
+ gte(value: X | ((session: Session) => X)): CheckBuilderFinal;
226
178
  /**
227
179
  * Validate the extracted value is greater than or equal to a given value, passed as a Gatling
228
180
  * Expression Language String
@@ -231,12 +183,5 @@ export interface CheckBuilderValidate<X> extends CheckBuilderFinal {
231
183
  * @returns a new CheckBuilderFinal
232
184
  */
233
185
  gteEL(value: string): CheckBuilderFinal;
234
- /**
235
- * Validate the extracted value is greater than or equal to a given value, passed as a function
236
- *
237
- * @param value - the value, as a function
238
- * @returns a new CheckBuilderFinal
239
- */
240
- gte(value: SessionTo<X>): CheckBuilderFinal;
241
186
  }
242
187
  export declare const wrapCheckBuilderValidate: <X>(_underlying: JvmCheckBuilderValidate<X>) => CheckBuilderValidate<X>;
@@ -7,35 +7,29 @@ const wrapCheckBuilderValidate = (_underlying) => ({
7
7
  ...(0, final_1.wrapCheckBuilderFinal)(_underlying),
8
8
  transform: (f) => (0, exports.wrapCheckBuilderValidate)(_underlying.transform(f)),
9
9
  transformWithSession: (f) => (0, exports.wrapCheckBuilderValidate)(_underlying.transformWithSession((0, session_1.underlyingXWithSessionTo)(f))),
10
- withDefault: (value) => (0, exports.wrapCheckBuilderValidate)(typeof value === "function"
11
- ? _underlying.withDefault((0, session_1.underlyingSessionTo)(value))
12
- : _underlying.withDefault(value)),
10
+ withDefault: (value) => (0, exports.wrapCheckBuilderValidate)((0, session_1.isSessionTo)(value) ? _underlying.withDefault((0, session_1.underlyingSessionTo)(value)) : _underlying.withDefault(value)),
13
11
  withDefaultEL: (value) => (0, exports.wrapCheckBuilderValidate)(_underlying.withDefaultEl(value)),
14
12
  validate: (name, f) => (0, final_1.wrapCheckBuilderFinal)(_underlying.validate(name, (0, session_1.underlyingXWithSessionTo)(f))),
15
- is: (expected) => (0, final_1.wrapCheckBuilderFinal)(typeof expected === "function"
16
- ? _underlying.is((0, session_1.underlyingSessionTo)(expected))
17
- : _underlying.is(expected)),
13
+ is: (expected) => (0, final_1.wrapCheckBuilderFinal)((0, session_1.isSessionTo)(expected) ? _underlying.is((0, session_1.underlyingSessionTo)(expected)) : _underlying.is(expected)),
18
14
  isEL: (expected) => (0, final_1.wrapCheckBuilderFinal)(_underlying.isEL(expected)),
19
15
  isNull: () => (0, final_1.wrapCheckBuilderFinal)(_underlying.isNull()),
20
- not: (expected) => (0, final_1.wrapCheckBuilderFinal)(typeof expected === "function"
21
- ? _underlying.not((0, session_1.underlyingSessionTo)(expected))
22
- : _underlying.not(expected)),
16
+ not: (expected) => (0, final_1.wrapCheckBuilderFinal)((0, session_1.isSessionTo)(expected) ? _underlying.not((0, session_1.underlyingSessionTo)(expected)) : _underlying.not(expected)),
23
17
  notEL: (expected) => (0, final_1.wrapCheckBuilderFinal)(_underlying.notEL(expected)),
24
18
  notNull: () => (0, final_1.wrapCheckBuilderFinal)(_underlying.notNull()),
25
- in: (expected, ...rest) => (0, final_1.wrapCheckBuilderFinal)(typeof expected === "function"
26
- ? _underlying.in((0, session_1.underlyingSessionTo)(expected))
27
- : _underlying.in([expected, ...rest])),
19
+ in: (expectedOrFunction, ...additionalValues) => (0, final_1.wrapCheckBuilderFinal)(typeof expectedOrFunction === "function"
20
+ ? _underlying.in((0, session_1.underlyingSessionTo)(expectedOrFunction))
21
+ : _underlying.in([expectedOrFunction, ...additionalValues])),
28
22
  inEL: (expected) => (0, final_1.wrapCheckBuilderFinal)(_underlying.inEL(expected)),
29
23
  exists: () => (0, final_1.wrapCheckBuilderFinal)(_underlying.exists()),
30
24
  notExists: () => (0, final_1.wrapCheckBuilderFinal)(_underlying.notExists()),
31
25
  optional: () => (0, final_1.wrapCheckBuilderFinal)(_underlying.optional()),
32
- lt: (value) => (0, final_1.wrapCheckBuilderFinal)(typeof value === "function" ? _underlying.lt((0, session_1.underlyingSessionTo)(value)) : _underlying.lt(value)),
26
+ lt: (value) => (0, final_1.wrapCheckBuilderFinal)((0, session_1.isSessionTo)(value) ? _underlying.lt((0, session_1.underlyingSessionTo)(value)) : _underlying.lt(value)),
33
27
  ltEL: (value) => (0, final_1.wrapCheckBuilderFinal)(_underlying.ltEL(value)),
34
- lte: (value) => (0, final_1.wrapCheckBuilderFinal)(typeof value === "function" ? _underlying.lte((0, session_1.underlyingSessionTo)(value)) : _underlying.lte(value)),
28
+ lte: (value) => (0, final_1.wrapCheckBuilderFinal)((0, session_1.isSessionTo)(value) ? _underlying.lte((0, session_1.underlyingSessionTo)(value)) : _underlying.lte(value)),
35
29
  lteEL: (value) => (0, final_1.wrapCheckBuilderFinal)(_underlying.lteEL(value)),
36
- gt: (value) => (0, final_1.wrapCheckBuilderFinal)(typeof value === "function" ? _underlying.gt((0, session_1.underlyingSessionTo)(value)) : _underlying.gt(value)),
30
+ gt: (value) => (0, final_1.wrapCheckBuilderFinal)((0, session_1.isSessionTo)(value) ? _underlying.gt((0, session_1.underlyingSessionTo)(value)) : _underlying.gt(value)),
37
31
  gtEL: (value) => (0, final_1.wrapCheckBuilderFinal)(_underlying.gtEL(value)),
38
- gte: (value) => (0, final_1.wrapCheckBuilderFinal)(typeof value === "function" ? _underlying.gte((0, session_1.underlyingSessionTo)(value)) : _underlying.gte(value)),
32
+ gte: (value) => (0, final_1.wrapCheckBuilderFinal)((0, session_1.isSessionTo)(value) ? _underlying.gte((0, session_1.underlyingSessionTo)(value)) : _underlying.gte(value)),
39
33
  gteEL: (value) => (0, final_1.wrapCheckBuilderFinal)(_underlying.gteEL(value))
40
34
  });
41
35
  exports.wrapCheckBuilderValidate = wrapCheckBuilderValidate;
@@ -2,4 +2,5 @@ import JvmSession = io.gatling.javaapi.core.Session;
2
2
  type JvmExpression<T> = (arg: JvmSession) => T;
3
3
  export declare const asByteArray: (v: number[]) => number[];
4
4
  export declare const asByteArrayFunction: (f: JvmExpression<number[]>) => JvmExpression<number[]>;
5
+ export declare const asByteArrayMap: (map: Record<string, number[]>) => Record<string, number[]>;
5
6
  export {};
@@ -1,8 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.asByteArrayFunction = exports.asByteArray = void 0;
3
+ exports.asByteArrayMap = exports.asByteArrayFunction = exports.asByteArray = void 0;
4
4
  const ByteArrays = Java.type("io.gatling.js.callbacks.ByteArrays");
5
5
  const asByteArray = (v) => ByteArrays.asByteArray(v);
6
6
  exports.asByteArray = asByteArray;
7
7
  const asByteArrayFunction = (f) => ByteArrays.asByteArrayFunction(f);
8
8
  exports.asByteArrayFunction = asByteArrayFunction;
9
+ const HashMap = Java.type("java.util.HashMap");
10
+ const asByteArrayMap = (map) => {
11
+ const javaMap = new HashMap();
12
+ Object.entries(map).forEach(([key, value]) => {
13
+ javaMap.put(key, (0, exports.asByteArray)(value));
14
+ });
15
+ return javaMap;
16
+ };
17
+ exports.asByteArrayMap = asByteArrayMap;
package/target/index.d.ts CHANGED
@@ -8,7 +8,7 @@ import { PopulationBuilder } from "./population";
8
8
  import { ProtocolBuilder } from "./protocol";
9
9
  import { ThrottleStep } from "./throttling";
10
10
  export { asJava } from "./gatlingJvm/collections";
11
- export { asByteArray, asByteArrayFunction } from "./gatlingJvm/byteArrays";
11
+ export { asByteArray, asByteArrayFunction, asByteArrayMap } from "./gatlingJvm/byteArrays";
12
12
  export { readResourceAsBytes, readResourceAsString } from "./gatlingJvm/resources";
13
13
  export * from "./utils/duration";
14
14
  export * from "./assertions";
package/target/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.simulation = exports.getEnvironmentVariable = exports.getOption = exports.getParameter = exports.GlobalStore = exports.dummy = exports.readResourceAsString = exports.readResourceAsBytes = exports.asByteArrayFunction = exports.asByteArray = exports.asJava = void 0;
17
+ exports.simulation = exports.getEnvironmentVariable = exports.getOption = exports.getParameter = exports.GlobalStore = exports.dummy = exports.readResourceAsString = exports.readResourceAsBytes = exports.asByteArrayMap = exports.asByteArrayFunction = exports.asByteArray = exports.asJava = void 0;
18
18
  require("@gatling.io/jvm-types");
19
19
  const pauses_1 = require("./structure/pauses");
20
20
  const duration_1 = require("./utils/duration");
@@ -25,6 +25,7 @@ Object.defineProperty(exports, "asJava", { enumerable: true, get: function () {
25
25
  var byteArrays_1 = require("./gatlingJvm/byteArrays");
26
26
  Object.defineProperty(exports, "asByteArray", { enumerable: true, get: function () { return byteArrays_1.asByteArray; } });
27
27
  Object.defineProperty(exports, "asByteArrayFunction", { enumerable: true, get: function () { return byteArrays_1.asByteArrayFunction; } });
28
+ Object.defineProperty(exports, "asByteArrayMap", { enumerable: true, get: function () { return byteArrays_1.asByteArrayMap; } });
28
29
  var resources_1 = require("./gatlingJvm/resources");
29
30
  Object.defineProperty(exports, "readResourceAsBytes", { enumerable: true, get: function () { return resources_1.readResourceAsBytes; } });
30
31
  Object.defineProperty(exports, "readResourceAsString", { enumerable: true, get: function () { return resources_1.readResourceAsString; } });
@@ -110,8 +110,11 @@ export declare const wrapSession: (_underlying: JvmSession) => Session;
110
110
  export type Expression<T> = T | ((session: Session) => T);
111
111
  export type SessionTransform = (session: Session) => Session;
112
112
  export declare const underlyingSessionTransform: (f: SessionTransform) => ((jvmSession: JvmSession) => JvmSession);
113
+ export type BiSessionTransform = (main: Session, forked: Session) => Session;
114
+ export declare const underlyingBiSessionTransform: (f: BiSessionTransform) => ((jvmMain: JvmSession, jvmForked: JvmSession) => JvmSession);
113
115
  export type SessionTo<T> = (session: Session) => T;
114
116
  export declare const underlyingSessionTo: <T>(f: SessionTo<T>) => ((jvmSession: JvmSession) => T);
117
+ export declare const isSessionTo: <T>(value: Expression<T>) => value is SessionTo<T>;
115
118
  export declare const underlyingSessionToJava: <T>(f: SessionTo<T>) => ((jvmSession: JvmSession) => unknown);
116
119
  export declare const underlyingSessionToDuration: (f: SessionTo<Duration>) => ((jvmSession: JvmSession) => java.time.Duration);
117
120
  export type XWithSessionTo<X, X2> = (x: X, session: Session) => X2;
package/target/session.js CHANGED
@@ -1,15 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.underlyingJvmXToXWithSessionToSession = exports.underlyingXWithSessionToSession = exports.underlyingXWithSessionTo = exports.underlyingSessionToDuration = exports.underlyingSessionToJava = exports.underlyingSessionTo = exports.underlyingSessionTransform = exports.wrapSession = void 0;
3
+ exports.underlyingJvmXToXWithSessionToSession = exports.underlyingXWithSessionToSession = exports.underlyingXWithSessionTo = exports.underlyingSessionToDuration = exports.underlyingSessionToJava = exports.isSessionTo = exports.underlyingSessionTo = exports.underlyingBiSessionTransform = exports.underlyingSessionTransform = exports.wrapSession = void 0;
4
4
  const byteArrays_1 = require("./gatlingJvm/byteArrays");
5
5
  const collections_1 = require("./gatlingJvm/collections");
6
6
  const duration_1 = require("./utils/duration");
7
7
  const wrapSession = (_underlying) => ({
8
8
  _underlying,
9
9
  get: (key) => _underlying.get(key),
10
+ // FIXME won't work on feeders
10
11
  set: (key, value) => {
11
12
  return (0, exports.wrapSession)(_underlying.set(key, (0, collections_1.asJava)(value)));
12
13
  },
14
+ // FIXME ???
13
15
  setByteArray: (key, value) => (0, exports.wrapSession)(_underlying.set(key, (0, byteArrays_1.asByteArray)(value))),
14
16
  setAll: (newAttributes) => {
15
17
  let session = _underlying;
@@ -33,8 +35,12 @@ const wrapSession = (_underlying) => ({
33
35
  exports.wrapSession = wrapSession;
34
36
  const underlyingSessionTransform = (f) => (jvmSession) => f((0, exports.wrapSession)(jvmSession))._underlying;
35
37
  exports.underlyingSessionTransform = underlyingSessionTransform;
38
+ const underlyingBiSessionTransform = (f) => (jvmMain, jvmForked) => f((0, exports.wrapSession)(jvmMain), (0, exports.wrapSession)(jvmForked))._underlying;
39
+ exports.underlyingBiSessionTransform = underlyingBiSessionTransform;
36
40
  const underlyingSessionTo = (f) => (jvmSession) => f((0, exports.wrapSession)(jvmSession));
37
41
  exports.underlyingSessionTo = underlyingSessionTo;
42
+ const isSessionTo = (value) => typeof value === "function";
43
+ exports.isSessionTo = isSessionTo;
38
44
  const underlyingSessionToJava = (f) => (jvmSession) => (0, collections_1.asJava)(f((0, exports.wrapSession)(jvmSession)));
39
45
  exports.underlyingSessionToJava = underlyingSessionToJava;
40
46
  const underlyingSessionToDuration = (f) => (jvmSession) => (0, duration_1.toJvmDuration)(f((0, exports.wrapSession)(jvmSession)));