@bluelibs/runner 5.2.0 → 5.3.0
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/README.md +73 -10
- package/dist/browser/index.cjs +149 -59
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.mjs +149 -60
- package/dist/browser/index.mjs.map +1 -1
- package/dist/edge/index.cjs +149 -59
- package/dist/edge/index.cjs.map +1 -1
- package/dist/edge/index.mjs +149 -60
- package/dist/edge/index.mjs.map +1 -1
- package/dist/node/node.cjs +384 -201
- package/dist/node/node.cjs.map +1 -1
- package/dist/node/node.mjs +382 -202
- package/dist/node/node.mjs.map +1 -1
- package/dist/types/definers/builders/error/fluent-builder.interface.d.ts +6 -0
- package/dist/types/definers/builders/error/index.d.ts +10 -1
- package/dist/types/definers/builders/error/types.d.ts +2 -0
- package/dist/types/definers/defineError.d.ts +5 -3
- package/dist/types/defs.d.ts +2 -0
- package/dist/types/globals/resources/tunnel/protocol.d.ts +3 -0
- package/dist/types/models/Store.d.ts +5 -3
- package/dist/types/models/StoreRegistry.d.ts +5 -3
- package/dist/types/node/durable/core/DurableResource.d.ts +23 -9
- package/dist/types/node/durable/core/DurableService.d.ts +15 -9
- package/dist/types/node/durable/core/interfaces/service.d.ts +27 -19
- package/dist/types/node/durable/core/interfaces/store.d.ts +1 -1
- package/dist/types/node/durable/core/managers/ExecutionManager.d.ts +34 -4
- package/dist/types/node/durable/core/managers/ScheduleManager.d.ts +5 -3
- package/dist/types/node/durable/core/managers/TaskRegistry.d.ts +5 -5
- package/dist/types/node/durable/core/managers/WaitManager.d.ts +1 -1
- package/dist/types/node/durable/index.d.ts +1 -0
- package/dist/types/node/durable/tags/durableWorkflow.tag.d.ts +14 -0
- package/dist/types/node/node.d.ts +2 -1
- package/dist/types/public.d.ts +4 -1
- package/dist/types/testing.d.ts +0 -1
- package/dist/types/types/error.d.ts +22 -1
- package/dist/types/types/resource.d.ts +2 -4
- package/dist/types/types/symbols.d.ts +2 -2
- package/dist/types/types/tagged.d.ts +18 -0
- package/dist/universal/index.cjs +149 -59
- package/dist/universal/index.cjs.map +1 -1
- package/dist/universal/index.mjs +149 -60
- package/dist/universal/index.mjs.map +1 -1
- package/package.json +2 -2
- package/readmes/AI.md +25 -9
package/dist/edge/index.mjs
CHANGED
|
@@ -164,9 +164,7 @@ var symbolPhantomTask = Symbol.for(
|
|
|
164
164
|
"runner.task.phantom"
|
|
165
165
|
);
|
|
166
166
|
var symbolResource = Symbol.for("runner.resource");
|
|
167
|
-
var
|
|
168
|
-
"runner.resourceForkedFrom"
|
|
169
|
-
);
|
|
167
|
+
var symbolForkedFrom = Symbol.for("runner.forkedFrom");
|
|
170
168
|
var symbolResourceWithConfig = Symbol.for(
|
|
171
169
|
"runner.resourceWithConfig"
|
|
172
170
|
);
|
|
@@ -233,13 +231,13 @@ __export(defs_exports, {
|
|
|
233
231
|
symbolError: () => symbolError,
|
|
234
232
|
symbolEvent: () => symbolEvent,
|
|
235
233
|
symbolFilePath: () => symbolFilePath,
|
|
234
|
+
symbolForkedFrom: () => symbolForkedFrom,
|
|
236
235
|
symbolHook: () => symbolHook,
|
|
237
236
|
symbolMiddleware: () => symbolMiddleware,
|
|
238
237
|
symbolMiddlewareConfigured: () => symbolMiddlewareConfigured,
|
|
239
238
|
symbolOptionalDependency: () => symbolOptionalDependency,
|
|
240
239
|
symbolPhantomTask: () => symbolPhantomTask,
|
|
241
240
|
symbolResource: () => symbolResource,
|
|
242
|
-
symbolResourceForkedFrom: () => symbolResourceForkedFrom,
|
|
243
241
|
symbolResourceMiddleware: () => symbolResourceMiddleware,
|
|
244
242
|
symbolResourceWithConfig: () => symbolResourceWithConfig,
|
|
245
243
|
symbolTag: () => symbolTag,
|
|
@@ -444,12 +442,26 @@ __export(errors_exports, {
|
|
|
444
442
|
});
|
|
445
443
|
|
|
446
444
|
// src/definers/defineError.ts
|
|
445
|
+
var isValidHttpCode = /* @__PURE__ */ __name((value) => Number.isInteger(value) && value >= 100 && value <= 599, "isValidHttpCode");
|
|
446
|
+
var assertHttpCode = /* @__PURE__ */ __name((value) => {
|
|
447
|
+
if (!isValidHttpCode(value)) {
|
|
448
|
+
throw new Error(
|
|
449
|
+
`Error httpCode must be an integer between 100 and 599. Received: ${value}`
|
|
450
|
+
);
|
|
451
|
+
}
|
|
452
|
+
}, "assertHttpCode");
|
|
447
453
|
var RunnerError = class extends Error {
|
|
448
|
-
constructor(id2, message, data) {
|
|
449
|
-
super(
|
|
454
|
+
constructor(id2, message, data, httpCode, remediation) {
|
|
455
|
+
super(
|
|
456
|
+
remediation !== void 0 ? `${message}
|
|
457
|
+
|
|
458
|
+
Remediation: ${remediation}` : message
|
|
459
|
+
);
|
|
450
460
|
this.id = id2;
|
|
451
461
|
this.data = data;
|
|
452
462
|
this.name = id2;
|
|
463
|
+
this.httpCode = httpCode;
|
|
464
|
+
this.remediation = remediation;
|
|
453
465
|
}
|
|
454
466
|
static {
|
|
455
467
|
__name(this, "RunnerError");
|
|
@@ -469,10 +481,20 @@ var ErrorHelper = class {
|
|
|
469
481
|
get id() {
|
|
470
482
|
return this.definition.id;
|
|
471
483
|
}
|
|
484
|
+
get httpCode() {
|
|
485
|
+
return this.definition.httpCode;
|
|
486
|
+
}
|
|
472
487
|
throw(data) {
|
|
473
488
|
const parsed = this.definition.dataSchema ? this.definition.dataSchema.parse(data) : data;
|
|
474
489
|
const message = this.definition.format(parsed);
|
|
475
|
-
|
|
490
|
+
const remediation = typeof this.definition.remediation === "function" ? this.definition.remediation(parsed) : this.definition.remediation;
|
|
491
|
+
throw new RunnerError(
|
|
492
|
+
this.definition.id,
|
|
493
|
+
message,
|
|
494
|
+
parsed,
|
|
495
|
+
this.definition.httpCode,
|
|
496
|
+
remediation
|
|
497
|
+
);
|
|
476
498
|
}
|
|
477
499
|
is(error2) {
|
|
478
500
|
return error2 instanceof RunnerError && error2.name === this.definition.id;
|
|
@@ -485,6 +507,9 @@ var ErrorHelper = class {
|
|
|
485
507
|
}
|
|
486
508
|
};
|
|
487
509
|
function defineError(definition, filePath) {
|
|
510
|
+
if (definition.httpCode !== void 0) {
|
|
511
|
+
assertHttpCode(definition.httpCode);
|
|
512
|
+
}
|
|
488
513
|
if (!definition.format) {
|
|
489
514
|
definition.format = (data) => `${JSON.stringify(data)}`;
|
|
490
515
|
}
|
|
@@ -506,9 +531,22 @@ function clone(s, patch) {
|
|
|
506
531
|
__name(clone, "clone");
|
|
507
532
|
|
|
508
533
|
// src/definers/builders/error/fluent-builder.ts
|
|
534
|
+
var isValidHttpCode2 = /* @__PURE__ */ __name((value) => Number.isInteger(value) && value >= 100 && value <= 599, "isValidHttpCode");
|
|
535
|
+
var assertHttpCode2 = /* @__PURE__ */ __name((value) => {
|
|
536
|
+
if (!isValidHttpCode2(value)) {
|
|
537
|
+
throw new Error(
|
|
538
|
+
`Error httpCode must be an integer between 100 and 599. Received: ${value}`
|
|
539
|
+
);
|
|
540
|
+
}
|
|
541
|
+
}, "assertHttpCode");
|
|
509
542
|
function makeErrorBuilder(state) {
|
|
510
543
|
const builder = {
|
|
511
544
|
id: state.id,
|
|
545
|
+
httpCode(code) {
|
|
546
|
+
assertHttpCode2(code);
|
|
547
|
+
const next = clone(state, { httpCode: code });
|
|
548
|
+
return makeErrorBuilder(next);
|
|
549
|
+
},
|
|
512
550
|
serialize(fn) {
|
|
513
551
|
const next = clone(state, { serialize: fn });
|
|
514
552
|
return makeErrorBuilder(next);
|
|
@@ -525,6 +563,10 @@ function makeErrorBuilder(state) {
|
|
|
525
563
|
const next = clone(state, { format: fn });
|
|
526
564
|
return makeErrorBuilder(next);
|
|
527
565
|
},
|
|
566
|
+
remediation(advice) {
|
|
567
|
+
const next = clone(state, { remediation: advice });
|
|
568
|
+
return makeErrorBuilder(next);
|
|
569
|
+
},
|
|
528
570
|
meta(m) {
|
|
529
571
|
const next = clone(state, { meta: m });
|
|
530
572
|
return makeErrorBuilder(next);
|
|
@@ -533,10 +575,12 @@ function makeErrorBuilder(state) {
|
|
|
533
575
|
return defineError(
|
|
534
576
|
{
|
|
535
577
|
id: state.id,
|
|
578
|
+
httpCode: state.httpCode,
|
|
536
579
|
serialize: state.serialize,
|
|
537
580
|
parse: state.parse,
|
|
538
581
|
dataSchema: state.dataSchema,
|
|
539
582
|
format: state.format,
|
|
583
|
+
remediation: state.remediation,
|
|
540
584
|
meta: state.meta
|
|
541
585
|
},
|
|
542
586
|
state.filePath
|
|
@@ -553,6 +597,7 @@ function errorBuilder(id2) {
|
|
|
553
597
|
const initial = Object.freeze({
|
|
554
598
|
id: id2,
|
|
555
599
|
filePath,
|
|
600
|
+
httpCode: void 0,
|
|
556
601
|
serialize: void 0,
|
|
557
602
|
parse: void 0,
|
|
558
603
|
dataSchema: void 0,
|
|
@@ -561,7 +606,13 @@ function errorBuilder(id2) {
|
|
|
561
606
|
return makeErrorBuilder(initial);
|
|
562
607
|
}
|
|
563
608
|
__name(errorBuilder, "errorBuilder");
|
|
564
|
-
|
|
609
|
+
function isRunnerError(error2) {
|
|
610
|
+
return error2 instanceof RunnerError;
|
|
611
|
+
}
|
|
612
|
+
__name(isRunnerError, "isRunnerError");
|
|
613
|
+
var error = Object.assign(errorBuilder, {
|
|
614
|
+
is: isRunnerError
|
|
615
|
+
});
|
|
565
616
|
|
|
566
617
|
// src/platform/adapters/node-als.ts
|
|
567
618
|
async function loadAsyncLocalStorageClass() {
|
|
@@ -992,9 +1043,13 @@ var PlatformAdapter = class {
|
|
|
992
1043
|
// src/errors.ts
|
|
993
1044
|
var duplicateRegistrationError = error("runner.errors.duplicateRegistration").format(
|
|
994
1045
|
({ type, id: id2 }) => `${type} "${id2.toString()}" already registered. You might have used the same 'id' in two different components or you may have registered the same element twice.`
|
|
1046
|
+
).remediation(
|
|
1047
|
+
({ type }) => `Ensure each ${type} has a unique id. If you need the same definition in multiple places, use .fork() to create a copy with a new id.`
|
|
995
1048
|
).build();
|
|
996
1049
|
var dependencyNotFoundError = error("runner.errors.dependencyNotFound").format(
|
|
997
1050
|
({ key }) => `Dependency ${key.toString()} not found. Did you forget to register it through a resource?`
|
|
1051
|
+
).remediation(
|
|
1052
|
+
({ key }) => `Register the dependency "${key.toString()}" in a parent resource using .register([${key.toString()}]). If the dependency is optional, use .optional() when declaring it.`
|
|
998
1053
|
).build();
|
|
999
1054
|
var unknownItemTypeError = error(
|
|
1000
1055
|
"runner.errors.unknownItemType"
|
|
@@ -1002,10 +1057,14 @@ var unknownItemTypeError = error(
|
|
|
1002
1057
|
({ item }) => `Unknown item type: ${String(
|
|
1003
1058
|
item
|
|
1004
1059
|
)}. Please ensure you are not using different versions of '@bluelibs/runner'`
|
|
1060
|
+
).remediation(
|
|
1061
|
+
"Check that all packages depend on the same version of '@bluelibs/runner'. Run 'npm ls @bluelibs/runner' to detect duplicates."
|
|
1005
1062
|
).build();
|
|
1006
1063
|
var contextError = error(
|
|
1007
1064
|
"runner.errors.context"
|
|
1008
|
-
).format(({ details }) => details ?? "Context error").
|
|
1065
|
+
).format(({ details }) => details ?? "Context error").remediation(
|
|
1066
|
+
"Verify the async context is registered in a parent resource and that .provide() was called before .use(). If the context is optional, use .optional() when declaring the dependency."
|
|
1067
|
+
).build();
|
|
1009
1068
|
var circularDependenciesError = error("runner.errors.circularDependencies").format(({ cycles }) => {
|
|
1010
1069
|
const cycleDetails = cycles.map((cycle) => ` \u2022 ${cycle}`).join("\n");
|
|
1011
1070
|
const hasMiddleware = cycles.some((cycle) => cycle.includes("middleware"));
|
|
@@ -1018,36 +1077,54 @@ var circularDependenciesError = error("runner.errors.circularDependencies").form
|
|
|
1018
1077
|
}
|
|
1019
1078
|
return `Circular dependencies detected:
|
|
1020
1079
|
${cycleDetails}${guidance}`;
|
|
1021
|
-
}).
|
|
1080
|
+
}).remediation(
|
|
1081
|
+
"Break the cycle by extracting shared state into a new resource that both sides depend on, or use events for indirect communication."
|
|
1082
|
+
).build();
|
|
1022
1083
|
var eventNotFoundError = error(
|
|
1023
1084
|
"runner.errors.eventNotFound"
|
|
1024
1085
|
).format(
|
|
1025
1086
|
({ id: id2 }) => `Event "${id2.toString()}" not found. Did you forget to register it?`
|
|
1087
|
+
).remediation(
|
|
1088
|
+
({ id: id2 }) => `Add the event "${id2.toString()}" to a parent resource via .register([yourEvent]). Ensure the event definition is built with r.event("${id2.toString()}").build().`
|
|
1026
1089
|
).build();
|
|
1027
1090
|
var resourceNotFoundError = error(
|
|
1028
1091
|
"runner.errors.resourceNotFound"
|
|
1029
1092
|
).format(
|
|
1030
1093
|
({ id: id2 }) => `Resource "${id2.toString()}" not found. Did you forget to register it or are you using the correct id?`
|
|
1094
|
+
).remediation(
|
|
1095
|
+
({ id: id2 }) => `Register the resource "${id2.toString()}" in a parent resource via .register([yourResource]). Verify the id string matches exactly (ids are case-sensitive).`
|
|
1031
1096
|
).build();
|
|
1032
1097
|
var middlewareNotRegisteredError = error("runner.errors.middlewareNotRegistered").format(
|
|
1033
1098
|
({ type, source, middlewareId }) => `Middleware inside ${type} "${source}" depends on "${middlewareId}" but it's not registered. Did you forget to register it?`
|
|
1099
|
+
).remediation(
|
|
1100
|
+
({ middlewareId }) => `Register the middleware "${middlewareId}" alongside its consumer in a parent resource via .register([yourMiddleware]).`
|
|
1034
1101
|
).build();
|
|
1035
1102
|
var tagNotFoundError = error(
|
|
1036
1103
|
"runner.errors.tagNotFound"
|
|
1037
1104
|
).format(
|
|
1038
1105
|
({ id: id2 }) => `Tag "${id2}" not registered. Did you forget to register it inside a resource?`
|
|
1106
|
+
).remediation(
|
|
1107
|
+
({ id: id2 }) => `Register the tag "${id2}" in a parent resource via .register([yourTag]). Tags must be registered before they can be queried.`
|
|
1039
1108
|
).build();
|
|
1040
1109
|
var lockedError = error(
|
|
1041
1110
|
"runner.errors.locked"
|
|
1042
1111
|
).format(
|
|
1043
1112
|
({ what }) => `Cannot modify the ${what.toString()} when it is locked.`
|
|
1113
|
+
).remediation(
|
|
1114
|
+
({ what }) => `The ${what.toString()} is locked after initialization. Perform all modifications before calling run().`
|
|
1044
1115
|
).build();
|
|
1045
1116
|
var storeAlreadyInitializedError = error(
|
|
1046
1117
|
"runner.errors.storeAlreadyInitialized"
|
|
1047
|
-
).format(() => "Store already initialized. Cannot reinitialize.").
|
|
1118
|
+
).format(() => "Store already initialized. Cannot reinitialize.").remediation(
|
|
1119
|
+
"Do not call run() more than once on the same resource tree. Create a fresh resource if you need a separate runtime."
|
|
1120
|
+
).build();
|
|
1048
1121
|
var validationError = error("runner.errors.validation").format(({ subject, id: id2, originalError }) => {
|
|
1049
1122
|
const errorMessage = originalError instanceof Error ? originalError.message : String(originalError);
|
|
1050
1123
|
return `${subject} validation failed for ${id2.toString()}: ${errorMessage}`;
|
|
1124
|
+
}).remediation(({ subject, id: id2 }) => {
|
|
1125
|
+
const lower = subject.toLowerCase();
|
|
1126
|
+
const schemaHint = lower.includes("input") ? "inputSchema" : lower.includes("config") ? "configSchema" : lower.includes("result") ? "resultSchema" : "schema";
|
|
1127
|
+
return `Check the ${subject} passed to "${id2.toString()}". Ensure it matches the schema defined via .${schemaHint}().`;
|
|
1051
1128
|
}).build();
|
|
1052
1129
|
var eventCycleError = error("runner.errors.eventCycle").format(({ path }) => {
|
|
1053
1130
|
const chain = path.map((p) => `${p.id}\u2190${p.source}`).join(" -> ");
|
|
@@ -1055,33 +1132,49 @@ var eventCycleError = error("runner.errors.eventCycle").format(({ path }) => {
|
|
|
1055
1132
|
${chain}
|
|
1056
1133
|
|
|
1057
1134
|
Break the cycle by changing hook logic (avoid mutual emits) or gate with conditions/tags.`;
|
|
1058
|
-
}).
|
|
1135
|
+
}).remediation(
|
|
1136
|
+
"Refactor hooks to avoid circular event emissions. Use conditional guards, split events into finer-grained signals, or introduce an intermediate task to break the cycle."
|
|
1137
|
+
).build();
|
|
1059
1138
|
var eventEmissionCycleError = error("runner.errors.eventEmissionCycle").format(({ cycles }) => {
|
|
1060
1139
|
const list = cycles.map((c) => ` \u2022 ${c}`).join("\n");
|
|
1061
1140
|
return `Event emission cycles detected between hooks and events:
|
|
1062
1141
|
${list}
|
|
1063
1142
|
|
|
1064
1143
|
This was detected at compile time (dry-run). Break the cycle by avoiding mutual emits between hooks or scoping hooks using tags.`;
|
|
1065
|
-
}).
|
|
1144
|
+
}).remediation(
|
|
1145
|
+
"Redesign the event/hook graph so no hook emits an event that eventually triggers itself. Use tags or conditional logic to prevent re-entrant emissions."
|
|
1146
|
+
).build();
|
|
1066
1147
|
var platformUnsupportedFunctionError = error("runner.errors.platformUnsupportedFunction").format(
|
|
1067
1148
|
({ functionName }) => `Platform function not supported in this environment: ${functionName}. Detected platform: ${detectEnvironment()}.`
|
|
1149
|
+
).remediation(
|
|
1150
|
+
({ functionName }) => `The function "${functionName}" requires a Node.js environment. If running in a browser or edge runtime, use a platform-compatible alternative or guard the call with a platform check.`
|
|
1068
1151
|
).build();
|
|
1069
1152
|
var cancellationError = error(
|
|
1070
1153
|
"runner.errors.cancellation"
|
|
1071
|
-
).format(({ reason }) => reason || "Operation cancelled").
|
|
1154
|
+
).format(({ reason }) => reason || "Operation cancelled").remediation(
|
|
1155
|
+
"The operation was cancelled, typically via an AbortController signal. If this is unexpected, check timeout middleware settings or ensure the caller is not aborting prematurely."
|
|
1156
|
+
).build();
|
|
1072
1157
|
var tunnelOwnershipConflictError = error("runner.errors.tunnelOwnershipConflict").format(
|
|
1073
1158
|
({ taskId, currentOwnerId, attemptedOwnerId }) => `Task "${taskId}" is already tunneled by resource "${currentOwnerId}". Resource "${attemptedOwnerId}" cannot tunnel it again. Ensure each task is owned by a single tunnel client.`
|
|
1159
|
+
).remediation(
|
|
1160
|
+
({ taskId }) => `Each task can only be tunneled by one client. Remove the duplicate tunnel registration for "${taskId}" or split the task into separate definitions with distinct ids.`
|
|
1074
1161
|
).build();
|
|
1075
1162
|
var phantomTaskNotRoutedError = error("runner.errors.phantomTaskNotRouted").format(
|
|
1076
1163
|
({ taskId }) => `Phantom task "${taskId}" is not routed through any tunnel. Ensure a tunnel client selects this task id (or avoid calling the phantom task directly).`
|
|
1164
|
+
).remediation(
|
|
1165
|
+
({ taskId }) => `Configure a tunnel client resource to select "${taskId}" so it routes to a remote server. Phantom tasks cannot be executed locally \u2014 they only serve as local proxies for remote tasks.`
|
|
1077
1166
|
).build();
|
|
1078
1167
|
var taskNotRegisteredError = error("runner.errors.taskNotRegistered").format(
|
|
1079
1168
|
({ taskId }) => `Task "${taskId}" is not registered in the Store. This is an internal error\u2014ensure the task is registered before execution.`
|
|
1169
|
+
).remediation(
|
|
1170
|
+
({ taskId }) => `Register the task "${taskId}" in a parent resource via .register([yourTask]) before calling run(). If this error persists, it may indicate an internal framework bug.`
|
|
1080
1171
|
).build();
|
|
1081
1172
|
var builderIncompleteError = error("runner.errors.builderIncomplete").format(({ type, builderId, missingFields }) => {
|
|
1082
1173
|
const typeLabel = type === "hook" ? "Hook" : type === "task-middleware" ? "Task middleware" : "Resource middleware";
|
|
1083
1174
|
return `${typeLabel} "${builderId}" is incomplete. Missing required: ${missingFields.join(", ")}. Call ${missingFields.map((f) => `.${f}()`).join(" and ")} before .build().`;
|
|
1084
|
-
}).
|
|
1175
|
+
}).remediation(
|
|
1176
|
+
({ missingFields }) => `Add the missing builder steps: ${missingFields.map((f) => `.${f}()`).join(", ")} before calling .build().`
|
|
1177
|
+
).build();
|
|
1085
1178
|
function isCancellationError(err) {
|
|
1086
1179
|
return cancellationError.is(err);
|
|
1087
1180
|
}
|
|
@@ -1315,6 +1408,7 @@ function defineResource(constConfig) {
|
|
|
1315
1408
|
};
|
|
1316
1409
|
},
|
|
1317
1410
|
fork(newId, options) {
|
|
1411
|
+
const forkCallerFilePath = getCallerFile();
|
|
1318
1412
|
const forkedParts = resolveForkedRegisterAndDependencies({
|
|
1319
1413
|
register: constConfig.register,
|
|
1320
1414
|
dependencies: constConfig.dependencies,
|
|
@@ -1326,11 +1420,10 @@ function defineResource(constConfig) {
|
|
|
1326
1420
|
id: newId,
|
|
1327
1421
|
register: forkedParts.register,
|
|
1328
1422
|
dependencies: forkedParts.dependencies,
|
|
1329
|
-
[symbolFilePath]:
|
|
1423
|
+
[symbolFilePath]: forkCallerFilePath
|
|
1330
1424
|
});
|
|
1331
|
-
forked[
|
|
1332
|
-
fromId: id2
|
|
1333
|
-
forkedAtFilePath: getCallerFile()
|
|
1425
|
+
forked[symbolForkedFrom] = {
|
|
1426
|
+
fromId: id2
|
|
1334
1427
|
};
|
|
1335
1428
|
return forked;
|
|
1336
1429
|
}
|
|
@@ -1561,7 +1654,7 @@ __name(defineTag, "defineTag");
|
|
|
1561
1654
|
|
|
1562
1655
|
// src/globals/middleware/requireContext.middleware.ts
|
|
1563
1656
|
var requireContextTaskMiddleware = defineTaskMiddleware({
|
|
1564
|
-
id: "globals.middleware.requireContext",
|
|
1657
|
+
id: "globals.middleware.task.requireContext",
|
|
1565
1658
|
async run({ task: task2, next }, _deps, config) {
|
|
1566
1659
|
if (!config.context) {
|
|
1567
1660
|
throw new Error(
|
|
@@ -3205,7 +3298,7 @@ var cacheFactoryTask = defineTask({
|
|
|
3205
3298
|
});
|
|
3206
3299
|
var journalKeys = {
|
|
3207
3300
|
/** Whether the result was served from cache (true) or freshly computed (false) */
|
|
3208
|
-
hit: journal.createKey("globals.middleware.cache.hit")
|
|
3301
|
+
hit: journal.createKey("globals.middleware.task.cache.hit")
|
|
3209
3302
|
};
|
|
3210
3303
|
var cacheResource = defineResource({
|
|
3211
3304
|
id: "globals.resources.cache",
|
|
@@ -3235,7 +3328,7 @@ var cacheResource = defineResource({
|
|
|
3235
3328
|
});
|
|
3236
3329
|
var defaultKeyBuilder = /* @__PURE__ */ __name((taskId, input) => `${taskId}-${JSON.stringify(input)}`, "defaultKeyBuilder");
|
|
3237
3330
|
var cacheMiddleware = defineTaskMiddleware({
|
|
3238
|
-
id: "globals.middleware.cache",
|
|
3331
|
+
id: "globals.middleware.task.cache",
|
|
3239
3332
|
dependencies: { cache: cacheResource },
|
|
3240
3333
|
async run({ task: task2, next, journal: journal2 }, deps, config) {
|
|
3241
3334
|
const { cache } = deps;
|
|
@@ -3286,11 +3379,11 @@ var CircuitBreakerOpenError = class extends Error {
|
|
|
3286
3379
|
var journalKeys2 = {
|
|
3287
3380
|
/** Current state of the circuit breaker (CLOSED, OPEN, or HALF_OPEN) */
|
|
3288
3381
|
state: journal.createKey(
|
|
3289
|
-
"globals.middleware.circuitBreaker.state"
|
|
3382
|
+
"globals.middleware.task.circuitBreaker.state"
|
|
3290
3383
|
),
|
|
3291
3384
|
/** Current failure count */
|
|
3292
3385
|
failures: journal.createKey(
|
|
3293
|
-
"globals.middleware.circuitBreaker.failures"
|
|
3386
|
+
"globals.middleware.task.circuitBreaker.failures"
|
|
3294
3387
|
)
|
|
3295
3388
|
};
|
|
3296
3389
|
var circuitBreakerResource = defineResource({
|
|
@@ -3303,7 +3396,7 @@ var circuitBreakerResource = defineResource({
|
|
|
3303
3396
|
}, "init")
|
|
3304
3397
|
});
|
|
3305
3398
|
var circuitBreakerMiddleware = defineTaskMiddleware({
|
|
3306
|
-
id: "globals.middleware.circuitBreaker",
|
|
3399
|
+
id: "globals.middleware.task.circuitBreaker",
|
|
3307
3400
|
dependencies: { state: circuitBreakerResource },
|
|
3308
3401
|
async run({ task: task2, next, journal: journal2 }, { state }, config) {
|
|
3309
3402
|
const taskId = task2.definition.id;
|
|
@@ -3883,12 +3976,12 @@ var EventManager = class {
|
|
|
3883
3976
|
|
|
3884
3977
|
// src/models/Semaphore.ts
|
|
3885
3978
|
var SemaphoreEvents = {
|
|
3886
|
-
queued: defineEvent({ id: "semaphore.queued" }),
|
|
3887
|
-
acquired: defineEvent({ id: "semaphore.acquired" }),
|
|
3888
|
-
released: defineEvent({ id: "semaphore.released" }),
|
|
3889
|
-
timeout: defineEvent({ id: "semaphore.timeout" }),
|
|
3890
|
-
aborted: defineEvent({ id: "semaphore.aborted" }),
|
|
3891
|
-
disposed: defineEvent({ id: "semaphore.disposed" })
|
|
3979
|
+
queued: defineEvent({ id: "semaphore.events.queued" }),
|
|
3980
|
+
acquired: defineEvent({ id: "semaphore.events.acquired" }),
|
|
3981
|
+
released: defineEvent({ id: "semaphore.events.released" }),
|
|
3982
|
+
timeout: defineEvent({ id: "semaphore.events.timeout" }),
|
|
3983
|
+
aborted: defineEvent({ id: "semaphore.events.aborted" }),
|
|
3984
|
+
disposed: defineEvent({ id: "semaphore.events.disposed" })
|
|
3892
3985
|
};
|
|
3893
3986
|
var Semaphore = class {
|
|
3894
3987
|
constructor(maxPermits) {
|
|
@@ -4161,7 +4254,7 @@ var concurrencyResource = defineResource({
|
|
|
4161
4254
|
}), "init")
|
|
4162
4255
|
});
|
|
4163
4256
|
var concurrencyTaskMiddleware = defineTaskMiddleware({
|
|
4164
|
-
id: "globals.middleware.concurrency",
|
|
4257
|
+
id: "globals.middleware.task.concurrency",
|
|
4165
4258
|
dependencies: { state: concurrencyResource },
|
|
4166
4259
|
async run({ task: task2, next }, { state }, config) {
|
|
4167
4260
|
let semaphore = config.semaphore;
|
|
@@ -4240,14 +4333,16 @@ var RateLimitError = class extends Error {
|
|
|
4240
4333
|
var journalKeys3 = {
|
|
4241
4334
|
/** Number of remaining requests in the current window */
|
|
4242
4335
|
remaining: journal.createKey(
|
|
4243
|
-
"globals.middleware.rateLimit.remaining"
|
|
4336
|
+
"globals.middleware.task.rateLimit.remaining"
|
|
4244
4337
|
),
|
|
4245
4338
|
/** Timestamp when the current window resets */
|
|
4246
4339
|
resetTime: journal.createKey(
|
|
4247
|
-
"globals.middleware.rateLimit.resetTime"
|
|
4340
|
+
"globals.middleware.task.rateLimit.resetTime"
|
|
4248
4341
|
),
|
|
4249
4342
|
/** Maximum requests allowed per window */
|
|
4250
|
-
limit: journal.createKey(
|
|
4343
|
+
limit: journal.createKey(
|
|
4344
|
+
"globals.middleware.task.rateLimit.limit"
|
|
4345
|
+
)
|
|
4251
4346
|
};
|
|
4252
4347
|
var rateLimitResource = defineResource({
|
|
4253
4348
|
id: "globals.resources.rateLimit",
|
|
@@ -4259,7 +4354,7 @@ var rateLimitResource = defineResource({
|
|
|
4259
4354
|
}, "init")
|
|
4260
4355
|
});
|
|
4261
4356
|
var rateLimitTaskMiddleware = defineTaskMiddleware({
|
|
4262
|
-
id: "globals.middleware.rateLimit",
|
|
4357
|
+
id: "globals.middleware.task.rateLimit",
|
|
4263
4358
|
configSchema: rateLimitConfigSchema,
|
|
4264
4359
|
dependencies: { state: rateLimitResource },
|
|
4265
4360
|
async run({ task: task2, next, journal: journal2 }, { state }, config) {
|
|
@@ -4307,7 +4402,7 @@ var temporalResource = defineResource({
|
|
|
4307
4402
|
}, "init")
|
|
4308
4403
|
});
|
|
4309
4404
|
var debounceTaskMiddleware = defineTaskMiddleware({
|
|
4310
|
-
id: "globals.middleware.debounce",
|
|
4405
|
+
id: "globals.middleware.task.debounce",
|
|
4311
4406
|
dependencies: { state: temporalResource },
|
|
4312
4407
|
async run({ task: task2, next }, { state }, config) {
|
|
4313
4408
|
const { debounceStates } = state;
|
|
@@ -4344,7 +4439,7 @@ var debounceTaskMiddleware = defineTaskMiddleware({
|
|
|
4344
4439
|
}
|
|
4345
4440
|
});
|
|
4346
4441
|
var throttleTaskMiddleware = defineTaskMiddleware({
|
|
4347
|
-
id: "globals.middleware.throttle",
|
|
4442
|
+
id: "globals.middleware.task.throttle",
|
|
4348
4443
|
dependencies: { state: temporalResource },
|
|
4349
4444
|
async run({ task: task2, next }, { state }, config) {
|
|
4350
4445
|
const { throttleStates } = state;
|
|
@@ -4416,12 +4511,12 @@ var throttleTaskMiddleware = defineTaskMiddleware({
|
|
|
4416
4511
|
|
|
4417
4512
|
// src/models/Queue.ts
|
|
4418
4513
|
var QueueEvents = {
|
|
4419
|
-
enqueue: defineEvent({ id: "queue.enqueue" }),
|
|
4420
|
-
start: defineEvent({ id: "queue.start" }),
|
|
4421
|
-
finish: defineEvent({ id: "queue.finish" }),
|
|
4422
|
-
error: defineEvent({ id: "queue.error" }),
|
|
4423
|
-
cancel: defineEvent({ id: "queue.cancel" }),
|
|
4424
|
-
disposed: defineEvent({ id: "queue.disposed" })
|
|
4514
|
+
enqueue: defineEvent({ id: "queue.events.enqueue" }),
|
|
4515
|
+
start: defineEvent({ id: "queue.events.start" }),
|
|
4516
|
+
finish: defineEvent({ id: "queue.events.finish" }),
|
|
4517
|
+
error: defineEvent({ id: "queue.events.error" }),
|
|
4518
|
+
cancel: defineEvent({ id: "queue.events.cancel" }),
|
|
4519
|
+
disposed: defineEvent({ id: "queue.events.disposed" })
|
|
4425
4520
|
};
|
|
4426
4521
|
var Queue = class {
|
|
4427
4522
|
constructor() {
|
|
@@ -4580,6 +4675,7 @@ var TunnelError = class extends Error {
|
|
|
4580
4675
|
this.name = "TunnelError";
|
|
4581
4676
|
this.code = code;
|
|
4582
4677
|
this.details = details;
|
|
4678
|
+
this.httpCode = extras?.httpCode;
|
|
4583
4679
|
this.id = extras?.id;
|
|
4584
4680
|
this.data = extras?.data;
|
|
4585
4681
|
}
|
|
@@ -4594,6 +4690,7 @@ function toTunnelError(input, fallbackMessage) {
|
|
|
4594
4690
|
const pe = input;
|
|
4595
4691
|
const msg = pe.message || fallbackMessage || "Tunnel error";
|
|
4596
4692
|
return new TunnelError(pe.code, msg, pe.details, {
|
|
4693
|
+
httpCode: pe.httpCode,
|
|
4597
4694
|
id: pe.id,
|
|
4598
4695
|
data: pe.data
|
|
4599
4696
|
});
|
|
@@ -5241,13 +5338,15 @@ var retryResourceMiddleware = defineResourceMiddleware({
|
|
|
5241
5338
|
var journalKeys6 = {
|
|
5242
5339
|
/** Whether the fallback path was taken (true) or primary succeeded (false) */
|
|
5243
5340
|
active: journal.createKey(
|
|
5244
|
-
"globals.middleware.fallback.active"
|
|
5341
|
+
"globals.middleware.task.fallback.active"
|
|
5245
5342
|
),
|
|
5246
5343
|
/** The error that triggered the fallback (only set when active is true) */
|
|
5247
|
-
error: journal.createKey(
|
|
5344
|
+
error: journal.createKey(
|
|
5345
|
+
"globals.middleware.task.fallback.error"
|
|
5346
|
+
)
|
|
5248
5347
|
};
|
|
5249
5348
|
var fallbackTaskMiddleware = defineTaskMiddleware({
|
|
5250
|
-
id: "globals.middleware.fallback",
|
|
5349
|
+
id: "globals.middleware.task.fallback",
|
|
5251
5350
|
dependencies: {
|
|
5252
5351
|
taskRunner: globalResources.taskRunner
|
|
5253
5352
|
},
|
|
@@ -7927,21 +8026,11 @@ var Store = class {
|
|
|
7927
8026
|
storeGenericItem(item) {
|
|
7928
8027
|
return this.registry.storeGenericItem(item);
|
|
7929
8028
|
}
|
|
7930
|
-
/**
|
|
7931
|
-
* Returns all tasks with the given tag.
|
|
7932
|
-
* @param tag - The tag to filter by.
|
|
7933
|
-
* @returns The tasks with the given tag.
|
|
7934
|
-
*/
|
|
7935
8029
|
getTasksWithTag(tag2) {
|
|
7936
|
-
return this.registry.getTasksWithTag(tag2);
|
|
8030
|
+
return typeof tag2 === "string" ? this.registry.getTasksWithTag(tag2) : this.registry.getTasksWithTag(tag2);
|
|
7937
8031
|
}
|
|
7938
|
-
/**
|
|
7939
|
-
* Returns all resources with the given tag.
|
|
7940
|
-
* @param tag - The tag to filter by.
|
|
7941
|
-
* @returns The resources with the given tag.
|
|
7942
|
-
*/
|
|
7943
8032
|
getResourcesWithTag(tag2) {
|
|
7944
|
-
return this.registry.getResourcesWithTag(tag2);
|
|
8033
|
+
return typeof tag2 === "string" ? this.registry.getResourcesWithTag(tag2) : this.registry.getResourcesWithTag(tag2);
|
|
7945
8034
|
}
|
|
7946
8035
|
};
|
|
7947
8036
|
|
|
@@ -10055,6 +10144,6 @@ var r = Object.freeze({
|
|
|
10055
10144
|
})
|
|
10056
10145
|
});
|
|
10057
10146
|
|
|
10058
|
-
export { DependencyProcessor, errors_exports as Errors, EventManager, LogPrinter, Logger, MiddlewareManager, PlatformAdapter, Queue, ResourceInitializer, RunResult, Semaphore, Serializer, Store, SymbolPolicy, SymbolPolicyErrorMessage, TaskRunner, allFalse, defineAsyncContext as asyncContext, bindProcessErrorHandler, createContext2 as createContext, createDefaultUnhandledError, createExposureFetch, createHttpClient, createTestResource, debug, debugLevels, defs_exports as definitions, defineEvent as event, getConfig, globals, defineHook as hook, journal, levelNormal, levelVerbose, normalizeError, defineOverride as override, r, defineResource as resource, defineResourceMiddleware as resourceMiddleware, run, safeReportUnhandledError, setPlatform, defineTag as tag, defineTask as task, defineTaskMiddleware as taskMiddleware };
|
|
10147
|
+
export { DependencyProcessor, errors_exports as Errors, EventManager, LogPrinter, Logger, MiddlewareManager, PlatformAdapter, Queue, ResourceInitializer, RunResult, RunnerError, Semaphore, Serializer, Store, SymbolPolicy, SymbolPolicyErrorMessage, TaskRunner, allFalse, defineAsyncContext as asyncContext, bindProcessErrorHandler, createContext2 as createContext, createDefaultUnhandledError, createExposureFetch, createHttpClient, createTestResource, debug, debugLevels, defs_exports as definitions, defineEvent as event, getConfig, globals, defineHook as hook, journal, levelNormal, levelVerbose, normalizeError, defineOverride as override, r, defineResource as resource, defineResourceMiddleware as resourceMiddleware, run, safeReportUnhandledError, setPlatform, defineTag as tag, defineTask as task, defineTaskMiddleware as taskMiddleware };
|
|
10059
10148
|
//# sourceMappingURL=index.mjs.map
|
|
10060
10149
|
//# sourceMappingURL=index.mjs.map
|