@vite-hub/workflow 0.0.4 → 0.1.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 +34 -14
- package/dist/{_app-DgwN4ulW.d.ts → app-BojnC_yf.d.ts} +1 -4
- package/dist/{app-BZpq2cwC.js → app-CzPoP84f.js} +2 -1
- package/dist/client-DsGM3M4U.js +389 -0
- package/dist/cloudflare-env-BNrYo29x.js +113 -0
- package/dist/{cloudflare-D0Di-QYL.js → cloudflare-nF4abPd4.js} +20 -4
- package/dist/cloudflare-shared-CaxrMD1A.d.ts +1 -0
- package/dist/{cloudflare-vite-BkDgB6Sr.js → cloudflare-vite-B3IabBsv.js} +5 -4
- package/dist/{config-BHknO_rT.js → config-IJMb0eeZ.js} +38 -30
- package/dist/error-diagnostics-A_8Kp-48.js +116 -0
- package/dist/error-diagnostics-pwNFvAHP.js +67 -0
- package/dist/index.d.ts +20 -21
- package/dist/index.js +25 -369
- package/dist/inspect-B72iFyj-.js +70 -0
- package/dist/operations-B_rYG71W.js +230 -0
- package/dist/operations-tNUdj3G4.d.ts +212 -0
- package/dist/operations.d.ts +37 -0
- package/dist/operations.js +887 -0
- package/dist/out-CsaJxg8m.js +21755 -0
- package/dist/rolldown-runtime-CMFfr-1z.js +26 -0
- package/dist/runtime/cloudflare-runner.d.ts +5 -15
- package/dist/runtime/cloudflare-runner.js +40 -5
- package/dist/runtime/cloudflare-shared.d.ts +1 -0
- package/dist/runtime/cloudflare-shared.js +1 -1
- package/dist/runtime/cloudflare-vite.d.ts +8 -10
- package/dist/runtime/cloudflare-vite.js +1 -1
- package/dist/runtime/execute.d.ts +8 -7
- package/dist/runtime/execute.js +28 -5
- package/dist/runtime/openworkflow-worker.d.ts +6 -8
- package/dist/runtime/openworkflow-worker.js +5 -4
- package/dist/runtime/openworkflow.d.ts +8 -10
- package/dist/runtime/openworkflow.js +23 -17
- package/dist/runtime/state.d.ts +20 -21
- package/dist/runtime/state.js +90 -20
- package/dist/runtime/vercel-vite.d.ts +10 -12
- package/dist/runtime/vercel-vite.js +2 -2
- package/dist/runtime-type-DBCvIh5x.js +7 -0
- package/dist/{types-B9RdRkKh.d.ts → types-D82WmfZa.d.ts} +23 -12
- package/dist/{vercel-B0MuIVgJ.js → vercel-D-ZNtB_u.js} +34 -9
- package/dist/vite.d.ts +325 -11
- package/dist/vite.js +1267 -691
- package/package.json +79 -29
- package/dist/cloudflare-env-DjxQNbrx.js +0 -58
- package/dist/cloudflare-shared-BVVgDSdq.d.ts +0 -1
- package/dist/runtime-type-DGUn8Ple.js +0 -37
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { t as workflowErrorDiagnostics } from "./error-diagnostics-pwNFvAHP.js";
|
|
1
2
|
//#region ../internal/src/integrations/hex.ts
|
|
2
3
|
const textEncoder = new TextEncoder();
|
|
3
4
|
new TextDecoder();
|
|
@@ -8,6 +9,14 @@ function encodeNameHex(name) {
|
|
|
8
9
|
//#region src/integrations/cloudflare.ts
|
|
9
10
|
const cloudflareWorkflowNameMaxLength = 64;
|
|
10
11
|
function shortHash(value) {
|
|
12
|
+
let hash = 14695981039346656037n;
|
|
13
|
+
for (const char of value) {
|
|
14
|
+
hash ^= BigInt(char.codePointAt(0) || 0);
|
|
15
|
+
hash = BigInt.asUintN(64, hash * 1099511628211n);
|
|
16
|
+
}
|
|
17
|
+
return hash.toString(16).padStart(16, "0");
|
|
18
|
+
}
|
|
19
|
+
function legacyShortHash(value) {
|
|
11
20
|
let hash = 2166136261;
|
|
12
21
|
for (const char of value) {
|
|
13
22
|
hash ^= char.codePointAt(0) || 0;
|
|
@@ -15,6 +24,9 @@ function shortHash(value) {
|
|
|
15
24
|
}
|
|
16
25
|
return (hash >>> 0).toString(16).padStart(8, "0");
|
|
17
26
|
}
|
|
27
|
+
function workflowClassPrefix(name) {
|
|
28
|
+
return name.split(/[^a-z0-9]+/i).filter(Boolean).map((segment) => `${segment.charAt(0).toUpperCase()}${segment.slice(1)}`).join("") || "Default";
|
|
29
|
+
}
|
|
18
30
|
function getCloudflareWorkflowBindingName(name) {
|
|
19
31
|
return `WORKFLOW_${encodeNameHex(name).toUpperCase()}`;
|
|
20
32
|
}
|
|
@@ -23,16 +35,20 @@ function getCloudflareWorkflowName(name) {
|
|
|
23
35
|
const fullName = `workflow--${encoded}`;
|
|
24
36
|
if (fullName.length <= cloudflareWorkflowNameMaxLength) return fullName;
|
|
25
37
|
const hash = shortHash(name);
|
|
26
|
-
const prefixLength =
|
|
38
|
+
const prefixLength = 53 - hash.length;
|
|
27
39
|
return `workflow--${encoded.slice(0, prefixLength)}-${hash}`;
|
|
28
40
|
}
|
|
29
41
|
function getCloudflareWorkflowClassName(name) {
|
|
30
|
-
return `ViteHub${name
|
|
42
|
+
return `ViteHub${workflowClassPrefix(name)}${shortHash(name)}Workflow`;
|
|
43
|
+
}
|
|
44
|
+
/** The pre-64-bit class export kept for existing Cloudflare Workflow instances. */
|
|
45
|
+
function getLegacyCloudflareWorkflowClassName(name) {
|
|
46
|
+
return `ViteHub${workflowClassPrefix(name)}${legacyShortHash(name)}Workflow`;
|
|
31
47
|
}
|
|
32
48
|
function createCloudflareWorkflowBindings(definitions, options) {
|
|
33
49
|
if (!definitions.length) return;
|
|
34
50
|
const configurable = definitions.filter((definition) => definition.source !== "agent-workflow-recovery");
|
|
35
|
-
if (configurable.length > 1 && options && (options.binding || options.name)) throw
|
|
51
|
+
if (configurable.length > 1 && options && (options.binding || options.name)) throw workflowErrorDiagnostics.WORKFLOW_R0001({ message: "Cloudflare workflow binding and name overrides are only supported when one workflow is discovered." });
|
|
36
52
|
return definitions.map((definition) => ({
|
|
37
53
|
binding: configurable.length === 1 && configurable[0] === definition && options ? options.binding || getCloudflareWorkflowBindingName(definition.name) : getCloudflareWorkflowBindingName(definition.name),
|
|
38
54
|
class_name: getCloudflareWorkflowClassName(definition.name),
|
|
@@ -40,4 +56,4 @@ function createCloudflareWorkflowBindings(definitions, options) {
|
|
|
40
56
|
}));
|
|
41
57
|
}
|
|
42
58
|
//#endregion
|
|
43
|
-
export {
|
|
59
|
+
export { getLegacyCloudflareWorkflowClassName as a, getCloudflareWorkflowName as i, getCloudflareWorkflowBindingName as n, encodeNameHex as o, getCloudflareWorkflowClassName as r, createCloudflareWorkflowBindings as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { t as normalizeWorkflowOptions } from "./config-
|
|
2
|
-
import { i as runWithActiveCloudflareEnv, t as createCloudflareRuntimeEvent } from "./cloudflare-env-
|
|
1
|
+
import { t as normalizeWorkflowOptions } from "./config-IJMb0eeZ.js";
|
|
2
|
+
import { i as runWithActiveCloudflareEnv, t as createCloudflareRuntimeEvent } from "./cloudflare-env-BNrYo29x.js";
|
|
3
3
|
import { runWithWorkflowRuntimeEvent, setWorkflowRuntimeConfig, setWorkflowRuntimeRegistry } from "./runtime/state.js";
|
|
4
|
-
import { t as resolveAppFetch } from "./app-
|
|
4
|
+
import { t as resolveAppFetch } from "./app-CzPoP84f.js";
|
|
5
5
|
//#region ../internal/src/runtime/cloudflare-hosted.ts
|
|
6
6
|
function createWebRequestHandler(appHandler) {
|
|
7
7
|
return async (request, context) => await Promise.resolve(appHandler ? appHandler(request, context) : new Response(JSON.stringify({
|
|
@@ -28,7 +28,8 @@ function createCloudflareHostedWorker(adapter) {
|
|
|
28
28
|
//#endregion
|
|
29
29
|
//#region src/runtime/cloudflare-vite.ts
|
|
30
30
|
function installWorkflowCloudflareRuntime(options = {}) {
|
|
31
|
-
|
|
31
|
+
const workflowConfig = options.workflow === false ? false : normalizeWorkflowOptions(options.workflow, { hosting: "cloudflare" });
|
|
32
|
+
setWorkflowRuntimeConfig(workflowConfig);
|
|
32
33
|
setWorkflowRuntimeRegistry(options.registry);
|
|
33
34
|
}
|
|
34
35
|
function createWorkflowCloudflareWorker(options = {}) {
|
|
@@ -1,42 +1,56 @@
|
|
|
1
|
+
import { t as workflowErrorDiagnostics } from "./error-diagnostics-pwNFvAHP.js";
|
|
1
2
|
import { defu } from "defu";
|
|
3
|
+
function deploymentPresetFromNitro(value) {
|
|
4
|
+
const normalized = value?.trim().toLowerCase().replaceAll("_", "-");
|
|
5
|
+
if (!normalized) return;
|
|
6
|
+
if (normalized.startsWith("cloudflare")) return "cloudflare";
|
|
7
|
+
if (normalized.startsWith("deno")) return "deno";
|
|
8
|
+
if (normalized.startsWith("netlify")) return "netlify";
|
|
9
|
+
if (normalized === "node" || normalized.startsWith("node-")) return "node";
|
|
10
|
+
if (normalized.startsWith("vercel")) return "vercel";
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
2
13
|
//#region ../internal/src/hosting.ts
|
|
3
14
|
function normalizeHosting(hosting) {
|
|
4
15
|
const normalized = hosting?.trim().toLowerCase().replaceAll("_", "-") || "";
|
|
5
16
|
if (normalized === "cloudflare") return "cloudflare-module";
|
|
6
17
|
return normalized;
|
|
7
18
|
}
|
|
19
|
+
/** Narrows a preset or host name to the hosts that have a native provider: Cloudflare, Netlify, or Vercel. */
|
|
20
|
+
function getHostingProvider(hosting) {
|
|
21
|
+
const preset = deploymentPresetFromNitro(hosting);
|
|
22
|
+
if (preset === "cloudflare" || preset === "netlify" || preset === "vercel") return preset;
|
|
23
|
+
}
|
|
8
24
|
//#endregion
|
|
9
25
|
//#region ../internal/src/object.ts
|
|
10
26
|
function isPlainObject(value) {
|
|
11
27
|
if (value === null || Object(value) !== value || Array.isArray(value)) return false;
|
|
12
|
-
|
|
13
|
-
Function.prototype.toString.call(value);
|
|
14
|
-
return false;
|
|
15
|
-
} catch {
|
|
16
|
-
return true;
|
|
17
|
-
}
|
|
28
|
+
return typeof value === "object";
|
|
18
29
|
}
|
|
19
30
|
//#endregion
|
|
20
31
|
//#region src/config.ts
|
|
21
|
-
const knownProviders = new Set([
|
|
32
|
+
const knownProviders = /* @__PURE__ */ new Set([
|
|
22
33
|
"cloudflare",
|
|
23
34
|
"openworkflow",
|
|
24
35
|
"vercel"
|
|
25
36
|
]);
|
|
26
37
|
function readString(value, label) {
|
|
27
38
|
if (typeof value === "undefined") return;
|
|
28
|
-
if (typeof value !== "string" || !value.trim()) throw
|
|
39
|
+
if (typeof value !== "string" || !value.trim()) throw workflowErrorDiagnostics.WORKFLOW_C0001({ message: `\`${label}\` must be a non-empty string when provided.` });
|
|
29
40
|
return value.trim();
|
|
30
41
|
}
|
|
31
|
-
function readRuntimeConfigValue(value, label) {
|
|
42
|
+
function readRuntimeConfigValue(value, label, preserveWhitespace = false) {
|
|
32
43
|
if (typeof value === "undefined") return;
|
|
33
|
-
if (typeof value === "string")
|
|
34
|
-
|
|
44
|
+
if (typeof value === "string") {
|
|
45
|
+
const normalized = readString(value, label);
|
|
46
|
+
return preserveWhitespace ? value : normalized;
|
|
47
|
+
}
|
|
48
|
+
if (!isRuntimeEnvDeclaration(value)) throw workflowErrorDiagnostics.WORKFLOW_C0002({ message: `\`${label}\` must be a string or runtime env declaration.` });
|
|
35
49
|
return value;
|
|
36
50
|
}
|
|
37
51
|
function readBoolean(value, label) {
|
|
38
52
|
if (typeof value === "undefined") return;
|
|
39
|
-
if (typeof value !== "boolean") throw
|
|
53
|
+
if (typeof value !== "boolean") throw workflowErrorDiagnostics.WORKFLOW_C0003({ message: `\`${label}\` must be a boolean when provided.` });
|
|
40
54
|
return value;
|
|
41
55
|
}
|
|
42
56
|
function isRuntimeEnvDeclaration(value) {
|
|
@@ -45,17 +59,14 @@ function isRuntimeEnvDeclaration(value) {
|
|
|
45
59
|
function isRuntimeEnvSource(value) {
|
|
46
60
|
return isPlainObject(value) && value.kind === "env" && typeof value.name === "string" && (!("names" in value) || Array.isArray(value.names) && value.names.every((name) => typeof name === "string"));
|
|
47
61
|
}
|
|
48
|
-
function readDatabaseName(value) {
|
|
49
|
-
return readString(value, "workflow.database");
|
|
50
|
-
}
|
|
51
62
|
function readPositiveInteger(value, label) {
|
|
52
63
|
if (typeof value === "undefined") return;
|
|
53
|
-
if (!Number.isInteger(value) || value <= 0) throw
|
|
64
|
+
if (!Number.isInteger(value) || value <= 0) throw workflowErrorDiagnostics.WORKFLOW_C0004({ message: `\`${label}\` must be a positive integer when provided.` });
|
|
54
65
|
return value;
|
|
55
66
|
}
|
|
56
67
|
function normalizeOpenWorkflowPostgresOptions(value) {
|
|
57
68
|
if (typeof value === "undefined") return;
|
|
58
|
-
if (!isPlainObject(value)) throw
|
|
69
|
+
if (!isPlainObject(value)) throw workflowErrorDiagnostics.WORKFLOW_C0005({ message: "`workflow.postgres` must be a plain object." });
|
|
59
70
|
const namespaceId = readString(value.namespaceId, "workflow.postgres.namespaceId");
|
|
60
71
|
const runMigrations = readBoolean(value.runMigrations, "workflow.postgres.runMigrations");
|
|
61
72
|
const schema = readString(value.schema, "workflow.postgres.schema");
|
|
@@ -69,9 +80,9 @@ function normalizeOpenWorkflowPostgresOptions(value) {
|
|
|
69
80
|
}
|
|
70
81
|
function normalizeOpenWorkflowSqliteOptions(value) {
|
|
71
82
|
if (typeof value === "undefined") return;
|
|
72
|
-
if (!isPlainObject(value)) throw
|
|
83
|
+
if (!isPlainObject(value)) throw workflowErrorDiagnostics.WORKFLOW_C0006({ message: "`workflow.sqlite` must be a plain object." });
|
|
73
84
|
const namespaceId = readString(value.namespaceId, "workflow.sqlite.namespaceId");
|
|
74
|
-
const path = readRuntimeConfigValue(value.path, "workflow.sqlite.path");
|
|
85
|
+
const path = readRuntimeConfigValue(value.path, "workflow.sqlite.path", true);
|
|
75
86
|
const runMigrations = readBoolean(value.runMigrations, "workflow.sqlite.runMigrations");
|
|
76
87
|
return {
|
|
77
88
|
...namespaceId ? { namespaceId } : {},
|
|
@@ -81,19 +92,19 @@ function normalizeOpenWorkflowSqliteOptions(value) {
|
|
|
81
92
|
}
|
|
82
93
|
function normalizeOpenWorkflowWorkerOptions(value) {
|
|
83
94
|
if (typeof value === "undefined") return;
|
|
84
|
-
if (!isPlainObject(value)) throw
|
|
95
|
+
if (!isPlainObject(value)) throw workflowErrorDiagnostics.WORKFLOW_C0007({ message: "`workflow.worker` must be a plain object." });
|
|
85
96
|
const concurrency = readPositiveInteger(value.concurrency, "workflow.worker.concurrency");
|
|
86
97
|
return typeof concurrency === "number" ? { concurrency } : {};
|
|
87
98
|
}
|
|
88
99
|
function hasOpenWorkflowStorageConfig(options) {
|
|
89
|
-
return
|
|
100
|
+
return isPlainObject(options.postgres) && isDefinedRuntimeConfigValue(options.postgres.url) || isPlainObject(options.sqlite) && isDefinedRuntimeConfigValue(options.sqlite.path);
|
|
90
101
|
}
|
|
91
102
|
function isDefinedRuntimeConfigValue(value) {
|
|
92
103
|
return typeof value === "string" && !!value.trim() || isRuntimeEnvDeclaration(value);
|
|
93
104
|
}
|
|
94
105
|
function inferProvider(provider, hosting) {
|
|
95
106
|
if (provider === "cloudflare" || provider === "openworkflow" || provider === "vercel") return provider;
|
|
96
|
-
if (hosting.includes("netlify")) throw
|
|
107
|
+
if (hosting.includes("netlify")) throw workflowErrorDiagnostics.WORKFLOW_C0008({ message: "`workflow.provider` cannot be inferred for Netlify hosting. Set `workflow.provider` explicitly or disable `workflow`." });
|
|
97
108
|
if (hosting.includes("cloudflare")) return "cloudflare";
|
|
98
109
|
return "vercel";
|
|
99
110
|
}
|
|
@@ -107,19 +118,15 @@ function resolveProvider(options, hosting) {
|
|
|
107
118
|
...typeof options.name === "string" ? { name: options.name } : {}
|
|
108
119
|
};
|
|
109
120
|
const provider = options.provider;
|
|
110
|
-
if (typeof provider === "string" && !knownProviders.has(provider)) throw
|
|
121
|
+
if (typeof provider === "string" && !knownProviders.has(provider)) throw workflowErrorDiagnostics.WORKFLOW_C0009({ message: `Unknown \`workflow.provider\`: ${JSON.stringify(provider)}. Expected "cloudflare", "openworkflow", or "vercel".` });
|
|
111
122
|
const resolved = inferProviderFromOptions(options, hosting);
|
|
112
123
|
if (resolved === "cloudflare") return defu(shared, { provider: "cloudflare" });
|
|
113
124
|
if (resolved === "openworkflow") {
|
|
114
|
-
const database = readDatabaseName(options.database);
|
|
115
125
|
const postgres = normalizeOpenWorkflowPostgresOptions(options.postgres);
|
|
116
126
|
const sqlite = normalizeOpenWorkflowSqliteOptions(options.sqlite);
|
|
117
127
|
const worker = normalizeOpenWorkflowWorkerOptions(options.worker);
|
|
118
|
-
if (
|
|
119
|
-
if (database && sqlite?.path) throw new TypeError("`workflow.database` and `workflow.sqlite.path` cannot both configure OpenWorkflow storage.");
|
|
120
|
-
if (postgres?.url && sqlite?.path) throw new TypeError("`workflow.postgres.url` and `workflow.sqlite.path` cannot both configure OpenWorkflow storage.");
|
|
128
|
+
if (postgres?.url && sqlite?.path) throw workflowErrorDiagnostics.WORKFLOW_C0012({ message: "`workflow.postgres.url` and `workflow.sqlite.path` cannot both configure OpenWorkflow storage." });
|
|
121
129
|
return defu({
|
|
122
|
-
...database ? { database } : {},
|
|
123
130
|
...postgres ? { postgres } : {},
|
|
124
131
|
...sqlite ? { sqlite } : {},
|
|
125
132
|
...worker ? { worker } : {}
|
|
@@ -129,8 +136,9 @@ function resolveProvider(options, hosting) {
|
|
|
129
136
|
}
|
|
130
137
|
function normalizeWorkflowOptions(options, input = {}) {
|
|
131
138
|
if (options === false) return void 0;
|
|
132
|
-
if (typeof options !== "undefined" && !isPlainObject(options)) throw
|
|
139
|
+
if (typeof options !== "undefined" && !isPlainObject(options)) throw workflowErrorDiagnostics.WORKFLOW_C0013({ message: "`workflow` must be a plain object." });
|
|
140
|
+
if (options && Object.hasOwn(options, "database") && options.database !== void 0) throw workflowErrorDiagnostics.WORKFLOW_C0017({ message: "`workflow.database` is not supported. Set `workflow.sqlite.path` or `workflow.postgres.url` explicitly." });
|
|
133
141
|
return resolveProvider(options || {}, normalizeHosting(input.hosting));
|
|
134
142
|
}
|
|
135
143
|
//#endregion
|
|
136
|
-
export { isPlainObject as n,
|
|
144
|
+
export { normalizeHosting as i, isPlainObject as n, getHostingProvider as r, normalizeWorkflowOptions as t };
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { defineDiagnostics } from "nostics";
|
|
2
|
+
//#region ../internal/src/error-diagnostics.ts
|
|
3
|
+
const dynamicError = { why: ({ message }) => message === void 0 ? "" : String(message) };
|
|
4
|
+
const internalErrorDiagnostics = /*#__PURE__*/ defineDiagnostics({
|
|
5
|
+
docsBase: () => "https://vitehub.dev/docs/reference/diagnostics",
|
|
6
|
+
codes: {
|
|
7
|
+
INTERNAL_R0012: dynamicError,
|
|
8
|
+
INTERNAL_R0013: dynamicError,
|
|
9
|
+
INTERNAL_R0014: {
|
|
10
|
+
why: ({ path }) => `Cannot read Provision State from "${path}".`,
|
|
11
|
+
fix: "Check file access and restore valid JSON while preserving existing resource IDs."
|
|
12
|
+
},
|
|
13
|
+
INTERNAL_R0020: {
|
|
14
|
+
fix: "Give the operation a name like `content.publish`, a description, a section, a kind, an input schema, and a run function.",
|
|
15
|
+
why: ({ message }) => message === void 0 ? "" : String(message)
|
|
16
|
+
},
|
|
17
|
+
INTERNAL_R0021: {
|
|
18
|
+
fix: "Run `vitehub inspect definitions --kind operation` to list the operations of this app.",
|
|
19
|
+
why: ({ message }) => message === void 0 ? "" : String(message)
|
|
20
|
+
},
|
|
21
|
+
INTERNAL_R0022: {
|
|
22
|
+
fix: "Send input that matches the schema of the operation. `vitehub <namespace> <command> --help` shows the fields.",
|
|
23
|
+
why: ({ message }) => message === void 0 ? "" : String(message)
|
|
24
|
+
},
|
|
25
|
+
INTERNAL_R0024: {
|
|
26
|
+
fix: "Start the dev server with `vite dev`, or pass `--url <origin>` of a deployed app with credentials in VITEHUB_CONSOLE_AUTHORIZATION, VITEHUB_CONSOLE_COOKIE, or CF_ACCESS_CLIENT_ID and CF_ACCESS_CLIENT_SECRET.",
|
|
27
|
+
why: ({ message }) => message === void 0 ? "" : String(message)
|
|
28
|
+
},
|
|
29
|
+
INTERNAL_R0023: {
|
|
30
|
+
fix: "Ask for access to the section of this operation.",
|
|
31
|
+
why: ({ message }) => message === void 0 ? "" : String(message)
|
|
32
|
+
},
|
|
33
|
+
INTERNAL_B0001: dynamicError,
|
|
34
|
+
INTERNAL_B0002: dynamicError,
|
|
35
|
+
INTERNAL_B0003: dynamicError,
|
|
36
|
+
INTERNAL_B0004: dynamicError,
|
|
37
|
+
INTERNAL_B0005: dynamicError,
|
|
38
|
+
INTERNAL_B0006: dynamicError,
|
|
39
|
+
INTERNAL_B0007: dynamicError,
|
|
40
|
+
INTERNAL_B0008: dynamicError,
|
|
41
|
+
INTERNAL_B0009: dynamicError,
|
|
42
|
+
INTERNAL_B0010: dynamicError,
|
|
43
|
+
INTERNAL_B0011: dynamicError,
|
|
44
|
+
INTERNAL_B0012: dynamicError,
|
|
45
|
+
INTERNAL_B0013: dynamicError,
|
|
46
|
+
INTERNAL_B0014: dynamicError,
|
|
47
|
+
INTERNAL_B0015: dynamicError,
|
|
48
|
+
INTERNAL_B0016: dynamicError,
|
|
49
|
+
INTERNAL_B0017: dynamicError,
|
|
50
|
+
INTERNAL_B0018: dynamicError,
|
|
51
|
+
INTERNAL_B0019: dynamicError,
|
|
52
|
+
INTERNAL_B0020: dynamicError,
|
|
53
|
+
INTERNAL_B0021: dynamicError,
|
|
54
|
+
INTERNAL_B0022: dynamicError,
|
|
55
|
+
INTERNAL_B0023: dynamicError,
|
|
56
|
+
INTERNAL_B0024: dynamicError,
|
|
57
|
+
INTERNAL_B0025: dynamicError,
|
|
58
|
+
INTERNAL_B0026: dynamicError,
|
|
59
|
+
INTERNAL_B0027: dynamicError,
|
|
60
|
+
INTERNAL_B0028: dynamicError,
|
|
61
|
+
INTERNAL_B0029: dynamicError,
|
|
62
|
+
INTERNAL_B0030: dynamicError,
|
|
63
|
+
INTERNAL_B0031: dynamicError,
|
|
64
|
+
INTERNAL_B0032: dynamicError,
|
|
65
|
+
INTERNAL_B0033: dynamicError,
|
|
66
|
+
INTERNAL_B0034: dynamicError,
|
|
67
|
+
INTERNAL_B0035: dynamicError,
|
|
68
|
+
INTERNAL_B0036: dynamicError,
|
|
69
|
+
INTERNAL_B0037: dynamicError,
|
|
70
|
+
INTERNAL_B0038: dynamicError,
|
|
71
|
+
INTERNAL_B0039: dynamicError,
|
|
72
|
+
INTERNAL_B0040: dynamicError,
|
|
73
|
+
INTERNAL_B0041: dynamicError,
|
|
74
|
+
INTERNAL_B0042: dynamicError,
|
|
75
|
+
INTERNAL_B0043: dynamicError,
|
|
76
|
+
INTERNAL_B0044: dynamicError,
|
|
77
|
+
INTERNAL_B0045: dynamicError,
|
|
78
|
+
INTERNAL_B0046: dynamicError,
|
|
79
|
+
INTERNAL_B0047: dynamicError,
|
|
80
|
+
INTERNAL_B0048: {
|
|
81
|
+
fix: "Rename one of the two operations. A name is `<section>.<verb>` and is unique in the app.",
|
|
82
|
+
why: ({ message }) => message === void 0 ? "" : String(message)
|
|
83
|
+
},
|
|
84
|
+
INTERNAL_B0049: {
|
|
85
|
+
fix: "Set `cli: { namespace, command }` on one of the two operations.",
|
|
86
|
+
why: ({ message }) => message === void 0 ? "" : String(message)
|
|
87
|
+
},
|
|
88
|
+
INTERNAL_B0050: {
|
|
89
|
+
fix: "Rename one of the two operations, or set `mcp: false` on it. MCP tool names replace every character outside letters, digits, `_`, and `-` with `_`.",
|
|
90
|
+
why: ({ message }) => message === void 0 ? "" : String(message)
|
|
91
|
+
},
|
|
92
|
+
INTERNAL_R0025: {
|
|
93
|
+
fix: "Start `vite dev` in the project that you run the command from, or pass `--url` of that server.",
|
|
94
|
+
why: ({ message }) => message === void 0 ? "" : String(message)
|
|
95
|
+
},
|
|
96
|
+
INTERNAL_R0026: {
|
|
97
|
+
why: "The server parsed a destructive operation that the CLI did not confirm.",
|
|
98
|
+
fix: "Review the operation, then run it again with --yes to confirm the change."
|
|
99
|
+
},
|
|
100
|
+
INTERNAL_C0001: dynamicError,
|
|
101
|
+
INTERNAL_C0002: dynamicError,
|
|
102
|
+
INTERNAL_R0001: dynamicError,
|
|
103
|
+
INTERNAL_R0002: dynamicError,
|
|
104
|
+
INTERNAL_R0003: dynamicError,
|
|
105
|
+
INTERNAL_R0004: dynamicError,
|
|
106
|
+
INTERNAL_R0005: dynamicError,
|
|
107
|
+
INTERNAL_R0006: dynamicError,
|
|
108
|
+
INTERNAL_R0007: dynamicError,
|
|
109
|
+
INTERNAL_R0008: dynamicError,
|
|
110
|
+
INTERNAL_R0009: dynamicError,
|
|
111
|
+
INTERNAL_R0010: dynamicError,
|
|
112
|
+
INTERNAL_R0011: dynamicError
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
//#endregion
|
|
116
|
+
export { internalErrorDiagnostics as t };
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { defineDiagnostics } from "nostics";
|
|
2
|
+
//#region src/error-diagnostics.ts
|
|
3
|
+
const dynamicError = { why: ({ message }) => message === void 0 ? "" : String(message) };
|
|
4
|
+
const workflowErrorDiagnostics = /*#__PURE__*/ defineDiagnostics({
|
|
5
|
+
docsBase: () => "https://vitehub.dev/docs/reference/diagnostics",
|
|
6
|
+
codes: {
|
|
7
|
+
WORKFLOW_C0001: dynamicError,
|
|
8
|
+
WORKFLOW_C0002: dynamicError,
|
|
9
|
+
WORKFLOW_C0003: dynamicError,
|
|
10
|
+
WORKFLOW_C0004: dynamicError,
|
|
11
|
+
WORKFLOW_C0005: dynamicError,
|
|
12
|
+
WORKFLOW_C0006: dynamicError,
|
|
13
|
+
WORKFLOW_C0007: dynamicError,
|
|
14
|
+
WORKFLOW_C0008: dynamicError,
|
|
15
|
+
WORKFLOW_C0009: dynamicError,
|
|
16
|
+
WORKFLOW_C0010: dynamicError,
|
|
17
|
+
WORKFLOW_C0011: dynamicError,
|
|
18
|
+
WORKFLOW_C0012: dynamicError,
|
|
19
|
+
WORKFLOW_C0013: dynamicError,
|
|
20
|
+
WORKFLOW_C0014: dynamicError,
|
|
21
|
+
WORKFLOW_C0015: dynamicError,
|
|
22
|
+
WORKFLOW_C0016: dynamicError,
|
|
23
|
+
WORKFLOW_C0017: dynamicError,
|
|
24
|
+
WORKFLOW_R0001: dynamicError,
|
|
25
|
+
WORKFLOW_R0002: dynamicError,
|
|
26
|
+
WORKFLOW_R0003: dynamicError,
|
|
27
|
+
WORKFLOW_R0004: dynamicError,
|
|
28
|
+
WORKFLOW_R0005: dynamicError,
|
|
29
|
+
WORKFLOW_R0006: dynamicError,
|
|
30
|
+
WORKFLOW_R0007: dynamicError,
|
|
31
|
+
WORKFLOW_R0008: dynamicError,
|
|
32
|
+
WORKFLOW_R0009: dynamicError,
|
|
33
|
+
WORKFLOW_R0010: dynamicError,
|
|
34
|
+
WORKFLOW_R0011: dynamicError,
|
|
35
|
+
WORKFLOW_R0012: dynamicError,
|
|
36
|
+
WORKFLOW_R0013: dynamicError,
|
|
37
|
+
WORKFLOW_R0014: dynamicError,
|
|
38
|
+
WORKFLOW_R0015: dynamicError,
|
|
39
|
+
WORKFLOW_R0016: dynamicError,
|
|
40
|
+
WORKFLOW_R0017: dynamicError,
|
|
41
|
+
WORKFLOW_R0018: dynamicError,
|
|
42
|
+
WORKFLOW_R0019: dynamicError,
|
|
43
|
+
WORKFLOW_R0020: dynamicError,
|
|
44
|
+
WORKFLOW_R0021: dynamicError,
|
|
45
|
+
WORKFLOW_R0022: dynamicError,
|
|
46
|
+
WORKFLOW_R0023: dynamicError,
|
|
47
|
+
WORKFLOW_R0024: dynamicError,
|
|
48
|
+
WORKFLOW_R0025: dynamicError,
|
|
49
|
+
WORKFLOW_R0026: dynamicError,
|
|
50
|
+
WORKFLOW_R0027: dynamicError,
|
|
51
|
+
WORKFLOW_R0028: dynamicError,
|
|
52
|
+
WORKFLOW_R0029: dynamicError,
|
|
53
|
+
WORKFLOW_R0030: dynamicError,
|
|
54
|
+
WORKFLOW_R0031: dynamicError,
|
|
55
|
+
WORKFLOW_R0032: dynamicError,
|
|
56
|
+
WORKFLOW_R0033: dynamicError,
|
|
57
|
+
WORKFLOW_R0034: dynamicError,
|
|
58
|
+
WORKFLOW_R0035: dynamicError,
|
|
59
|
+
WORKFLOW_B0001: dynamicError,
|
|
60
|
+
WORKFLOW_B0002: {
|
|
61
|
+
why: ({ root }) => `[vitehub] Cannot identify the owning Workflow build for ${JSON.stringify(root)} because its environment does not uniquely match a resolved configuration.`,
|
|
62
|
+
fix: "Use a separate Workflow plugin instance per build or preserve the resolved build options in each environment config."
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
//#endregion
|
|
67
|
+
export { workflowErrorDiagnostics as t };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import { A as
|
|
1
|
+
import { A as WorkflowStartOptions, C as WorkflowProviderOptions, D as WorkflowRunStep, E as WorkflowRunStatus, M as WorkflowStepOptions, N as WorkflowStepRunner, O as WorkflowSharedOptions, S as WorkflowProviderContext, T as WorkflowRun, _ as WorkflowHandle, a as InferredWorkflowProviderOptions, b as WorkflowModuleProviderOptions, c as OpenWorkflowWorkerOptions, d as WorkflowCreateOptions, f as WorkflowDeferOptions, g as WorkflowExecutionContext, h as WorkflowDefinitionRegistry, i as DiscoveredWorkflowDefinition, j as WorkflowStepFunction, k as WorkflowSignalResult, l as ResolvedWorkflowOptions, m as WorkflowDefinitionOptions, n as CloudflareWorkflowInstance, o as OpenWorkflowPostgresOptions, p as WorkflowDefinition, r as CloudflareWorkflowProviderOptions, s as OpenWorkflowProviderOptions, t as CloudflareWorkflowBinding, u as VercelWorkflowProviderOptions, v as WorkflowHandler, w as WorkflowProviderStep, x as WorkflowProvider, y as WorkflowModuleOptions } from "./types-D82WmfZa.js";
|
|
2
2
|
import { createWorkflowCloudflareWorker } from "./runtime/cloudflare-vite.js";
|
|
3
3
|
import { ViteHubError } from "@vite-hub/runtime";
|
|
4
|
-
|
|
5
4
|
//#region src/config.d.ts
|
|
6
5
|
interface WorkflowResolutionInput {
|
|
7
6
|
hosting?: string;
|
|
8
7
|
}
|
|
9
|
-
declare function normalizeWorkflowOptions(options: WorkflowModuleOptions | undefined, input?: WorkflowResolutionInput): ResolvedWorkflowOptions | undefined;
|
|
8
|
+
export declare function normalizeWorkflowOptions(options: WorkflowModuleOptions | undefined, input?: WorkflowResolutionInput): ResolvedWorkflowOptions | undefined;
|
|
10
9
|
//#endregion
|
|
11
10
|
//#region src/definition.d.ts
|
|
12
|
-
declare function defineWorkflow<TPayload = unknown, TResult = unknown>(handler: WorkflowHandler<TPayload, TResult>, options?: WorkflowDefinitionOptions<TPayload, TResult>): WorkflowDefinition<TPayload, TResult>;
|
|
11
|
+
export declare function defineWorkflow<TPayload = unknown, TResult = unknown>(handler: WorkflowHandler<TPayload, TResult>, options?: WorkflowDefinitionOptions<TPayload, TResult>): WorkflowDefinition<TPayload, TResult>;
|
|
13
12
|
//#endregion
|
|
14
13
|
//#region src/errors.d.ts
|
|
15
14
|
declare const workflowErrorMessages: {
|
|
@@ -51,30 +50,30 @@ type WorkflowErrorDetails<TCode extends WorkflowErrorCode = WorkflowErrorCode> =
|
|
|
51
50
|
} : TCode extends "WORKFLOW_DEFINITION_NOT_FOUND" ? WorkflowNameDetails : TCode extends "WORKFLOW_DISABLED" ? Record<string, never> : TCode extends "WORKFLOW_NATIVE_ENTRY_INVALID" | "WORKFLOW_NATIVE_ENTRY_REQUIRED" | "WORKFLOW_RUN_ID_UNSUPPORTED" ? VercelWorkflowDetails : TCode extends "WORKFLOW_OPERATION_UNSUPPORTED" ? WorkflowOperationDetails : TCode extends "WORKFLOW_PROVIDER_OPERATION_FAILED" ? WorkflowProviderOperationDetails : never;
|
|
52
51
|
//#endregion
|
|
53
52
|
//#region src/integrations/cloudflare.d.ts
|
|
54
|
-
declare function getCloudflareWorkflowBindingName(name: string): string;
|
|
55
|
-
declare function getCloudflareWorkflowName(name: string): string;
|
|
56
|
-
declare function getCloudflareWorkflowClassName(name: string): string;
|
|
53
|
+
export declare function getCloudflareWorkflowBindingName(name: string): string;
|
|
54
|
+
export declare function getCloudflareWorkflowName(name: string): string;
|
|
55
|
+
export declare function getCloudflareWorkflowClassName(name: string): string;
|
|
57
56
|
//#endregion
|
|
58
57
|
//#region src/integrations/vercel.d.ts
|
|
59
|
-
declare function getVercelWorkflowName(name: string): string;
|
|
58
|
+
export declare function getVercelWorkflowName(name: string): string;
|
|
60
59
|
//#endregion
|
|
61
60
|
//#region src/runtime/client.d.ts
|
|
62
|
-
declare function createWorkflow<TPayload = unknown, TResult = unknown>(options: WorkflowCreateOptions<TPayload, TResult> & {
|
|
61
|
+
export declare function createWorkflow<TPayload = unknown, TResult = unknown>(options: WorkflowCreateOptions<TPayload, TResult> & {
|
|
63
62
|
handler: WorkflowHandler<TPayload, TResult>;
|
|
64
63
|
name: string;
|
|
65
64
|
}): WorkflowHandle<TPayload, TResult>;
|
|
66
|
-
declare function createWorkflow<TPayload = unknown, TResult = unknown>(name: string, options: WorkflowCreateOptions<TPayload, TResult> & {
|
|
65
|
+
export declare function createWorkflow<TPayload = unknown, TResult = unknown>(name: string, options: WorkflowCreateOptions<TPayload, TResult> & {
|
|
67
66
|
handler: WorkflowHandler<TPayload, TResult>;
|
|
68
67
|
}): WorkflowHandle<TPayload, TResult>;
|
|
69
|
-
declare function createWorkflow<TPayload = unknown>(name: string, options?: Omit<WorkflowCreateOptions<TPayload, unknown>, "handler"> & {
|
|
68
|
+
export declare function createWorkflow<TPayload = unknown>(name: string, options?: Omit<WorkflowCreateOptions<TPayload, unknown>, "handler"> & {
|
|
70
69
|
handler?: never;
|
|
71
70
|
}): WorkflowHandle<TPayload, unknown>;
|
|
72
|
-
declare function createWorkflow<TPayload = unknown, TResult = unknown>(name: string, handler: WorkflowHandler<TPayload, TResult>, options?: WorkflowCreateOptions<TPayload, TResult>): WorkflowHandle<TPayload, TResult>;
|
|
73
|
-
declare function runWorkflow<TPayload = unknown>(name: string, payload?: TPayload, options?: WorkflowDeferOptions): Promise<WorkflowRun<TPayload, unknown>>;
|
|
74
|
-
declare function getWorkflowRun(name: string, id: string): Promise<WorkflowRun<unknown, unknown>>;
|
|
75
|
-
declare function cancelWorkflow(name: string, id: string): Promise<WorkflowRun<unknown, unknown>>;
|
|
76
|
-
declare function resumeWorkflowSignal<TPayload = unknown>(token: string, payload: TPayload): Promise<WorkflowSignalResult>;
|
|
77
|
-
declare function deferWorkflow<TPayload = unknown>(name: string, payload?: TPayload, options?: WorkflowStartOptions): Promise<WorkflowRun<TPayload>>;
|
|
71
|
+
export declare function createWorkflow<TPayload = unknown, TResult = unknown>(name: string, handler: WorkflowHandler<TPayload, TResult>, options?: WorkflowCreateOptions<TPayload, TResult>): WorkflowHandle<TPayload, TResult>;
|
|
72
|
+
export declare function runWorkflow<TPayload = unknown>(name: string, payload?: TPayload, options?: WorkflowDeferOptions): Promise<WorkflowRun<TPayload, unknown>>;
|
|
73
|
+
export declare function getWorkflowRun(name: string, id: string): Promise<WorkflowRun<unknown, unknown>>;
|
|
74
|
+
export declare function cancelWorkflow(name: string, id: string): Promise<WorkflowRun<unknown, unknown>>;
|
|
75
|
+
export declare function resumeWorkflowSignal<TPayload = unknown>(token: string, payload: TPayload): Promise<WorkflowSignalResult>;
|
|
76
|
+
export declare function deferWorkflow<TPayload = unknown>(name: string, payload?: TPayload, options?: WorkflowStartOptions): Promise<WorkflowRun<TPayload>>;
|
|
78
77
|
//#endregion
|
|
79
78
|
//#region src/runtime/payload.d.ts
|
|
80
79
|
interface PayloadSchema<T> {
|
|
@@ -88,8 +87,8 @@ interface ParsePayloadSchema<T> {
|
|
|
88
87
|
parse: (payload: unknown) => T;
|
|
89
88
|
}
|
|
90
89
|
type PayloadValidator<T> = PayloadSchema<T> | ParsePayloadSchema<T> | ((payload: unknown) => T | Promise<T>);
|
|
91
|
-
declare function readRequestPayload<T = unknown>(request: Request): Promise<T>;
|
|
92
|
-
declare function validatePayload<T>(payload: unknown, schema: PayloadValidator<T>): Promise<T>;
|
|
93
|
-
declare function readValidatedPayload<T>(request: Request, schema: PayloadValidator<T>): Promise<T>;
|
|
90
|
+
export declare function readRequestPayload<T = unknown>(request: Request): Promise<T>;
|
|
91
|
+
export declare function validatePayload<T>(payload: unknown, schema: PayloadValidator<T>): Promise<T>;
|
|
92
|
+
export declare function readValidatedPayload<T>(request: Request, schema: PayloadValidator<T>): Promise<T>;
|
|
94
93
|
//#endregion
|
|
95
|
-
export { type CloudflareWorkflowBinding, type CloudflareWorkflowInstance, type CloudflareWorkflowProviderOptions, type DiscoveredWorkflowDefinition, type InferredWorkflowProviderOptions, type OpenWorkflowPostgresOptions, type OpenWorkflowProviderOptions, type OpenWorkflowWorkerOptions, type ResolvedWorkflowOptions, type VercelWorkflowProviderOptions, type WorkflowCreateOptions, type WorkflowDeferOptions, type WorkflowDefinition, type WorkflowDefinitionOptions, type WorkflowDefinitionRegistry, type WorkflowErrorCode, type WorkflowErrorDetails, type WorkflowExecutionContext, type WorkflowHandle, type WorkflowHandler, type WorkflowModuleOptions, type WorkflowModuleProviderOptions, type WorkflowOperationName, type WorkflowProvider, type WorkflowProviderName, type WorkflowProviderOptions, type WorkflowProviderStep, type WorkflowRun, type WorkflowRunStatus, type WorkflowRunStep, type WorkflowSharedOptions, type WorkflowSignalResult, type WorkflowStartOptions, type WorkflowStepFunction, type WorkflowStepOptions, type WorkflowStepRunner,
|
|
94
|
+
export { type CloudflareWorkflowBinding, type CloudflareWorkflowInstance, type CloudflareWorkflowProviderOptions, type DiscoveredWorkflowDefinition, type InferredWorkflowProviderOptions, type OpenWorkflowPostgresOptions, type OpenWorkflowProviderOptions, type OpenWorkflowWorkerOptions, type ResolvedWorkflowOptions, type VercelWorkflowProviderOptions, type WorkflowCreateOptions, type WorkflowDeferOptions, type WorkflowDefinition, type WorkflowDefinitionOptions, type WorkflowDefinitionRegistry, type WorkflowErrorCode, type WorkflowErrorDetails, type WorkflowExecutionContext, type WorkflowHandle, type WorkflowHandler, type WorkflowModuleOptions, type WorkflowModuleProviderOptions, type WorkflowOperationName, type WorkflowProvider, type WorkflowProviderContext, type WorkflowProviderName, type WorkflowProviderOptions, type WorkflowProviderStep, type WorkflowRun, type WorkflowRunStatus, type WorkflowRunStep, type WorkflowSharedOptions, type WorkflowSignalResult, type WorkflowStartOptions, type WorkflowStepFunction, type WorkflowStepOptions, type WorkflowStepRunner, createWorkflowCloudflareWorker };
|