windmill-ts 1.5.0 → 1.7.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/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "windmill-ts",
3
- "version": "1.5.0",
3
+ "version": "1.7.0",
4
4
  "description": "Type-safe client for Windmill",
5
5
  "main": "dist/src/index.js",
6
6
  "bin": "dist/src/index.js",
@@ -13,27 +13,27 @@
13
13
  "author": "Tsvetomir Bonev <me@invak.id>",
14
14
  "license": "Unlicense",
15
15
  "devDependencies": {
16
- "@types/node": "^22.9.0",
17
- "rimraf": "^6.0.1",
18
- "typescript": "^5.6.3"
16
+ "@types/node": "24.12.0",
17
+ "rimraf": "6.1.3",
18
+ "typescript": "5.9.3"
19
19
  },
20
20
  "dependencies": {
21
- "@stdlib/string-camelcase": "^0.2.2",
22
- "@stdlib/string-capitalize": "^0.3.0",
23
- "chalk": "^5.3.0",
24
- "commander": "^12.1.0",
25
- "dedent": "^1.5.3",
26
- "json-schema-to-zod": "^2.4.1",
27
- "listr2": "^8.2.5",
28
- "p-queue": "^8.0.1",
29
- "p-retry": "^7.1.0",
30
- "rxjs": "^7.8.1",
31
- "to-valid-identifier": "^0.1.1",
32
- "ts-morph": "^26.0.0",
33
- "windmill-client": "^1.522.0",
34
- "yaml": "^2.7.0",
35
- "zod": "^4.0.5",
36
- "zod-to-json-schema": "^3.24.6"
21
+ "@stdlib/string-camelcase": "0.2.3",
22
+ "@stdlib/string-capitalize": "0.3.1",
23
+ "chalk": "5.6.2",
24
+ "cli-spinners": "3.4.0",
25
+ "commander": "14.0.3",
26
+ "dedent": "1.7.2",
27
+ "json-schema-to-zod": "2.7.0",
28
+ "log-update": "7.2.0",
29
+ "p-queue": "9.1.0",
30
+ "p-retry": "7.1.1",
31
+ "to-valid-identifier": "1.0.0",
32
+ "ts-morph": "27.0.2",
33
+ "windmill-client": "1.654.0",
34
+ "yaml": "2.8.2",
35
+ "zod": "4.3.6",
36
+ "zod-to-json-schema": "3.25.1"
37
37
  },
38
38
  "repository": {
39
39
  "type": "git",
@@ -43,5 +43,6 @@
43
43
  "url": "https://github.com/invakid404/windmill-ts/issues"
44
44
  },
45
45
  "homepage": "https://github.com/invakid404/windmill-ts#readme",
46
- "files": ["dist", "README.md"]
46
+ "files": ["dist", "README.md"],
47
+ "packageManager": "pnpm@10.32.1"
47
48
  }
@@ -9,6 +9,14 @@ const TransformerSchema = z
9
9
  importExtension: z.string().default(""),
10
10
  })
11
11
  .nullish();
12
+ const EmbedSchema = z
13
+ .object({
14
+ // Resource paths whose values should be embedded in the generated client
15
+ paths: z.array(z.string()).default([]),
16
+ // Whether to resolve $var: references dynamically at runtime
17
+ resolveVariables: z.boolean().default(true),
18
+ })
19
+ .prefault({});
12
20
  const ResourceOptionsSchema = z
13
21
  .object({
14
22
  // Map from resource type to default resource path
@@ -18,6 +26,8 @@ const ResourceOptionsSchema = z
18
26
  // When true, resource type schemas will use z.looseObject() instead of z.object()
19
27
  // to allow passthrough of unknown fields
20
28
  looseSchemas: z.boolean().default(false),
29
+ // Embed resource values directly in the generated client
30
+ embed: EmbedSchema,
21
31
  })
22
32
  .prefault({});
23
33
  const ScriptOptionsSchema = z
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,iBAAiB,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,0DAA0D;IAC1D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,mCAAmC;IACnC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,yEAAyE;IACzE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACxC,CAAC;KACD,OAAO,EAAE,CAAC;AAEb,MAAM,qBAAqB,GAAG,CAAC;KAC5B,MAAM,CAAC;IACN,kDAAkD;IAClD,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACjE,WAAW,EAAE,iBAAiB;IAC9B,6BAA6B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACzD,kFAAkF;IAClF,yCAAyC;IACzC,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACzC,CAAC;KACD,QAAQ,CAAC,EAAE,CAAC,CAAC;AAEhB,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACtC,CAAC;KACD,QAAQ,CAAC,EAAE,CAAC,CAAC;AAEhB,MAAM,iBAAiB,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACtC,CAAC;KACD,QAAQ,CAAC,EAAE,CAAC,CAAC;AAEhB,MAAM,uBAAuB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACjD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAClD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;CACrC,CAAC;KACD,QAAQ,CAAC,EAAE,CAAC,CAAC;AAEhB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,SAAS,EAAE,qBAAqB;IAChC,OAAO,EAAE,mBAAmB;IAC5B,KAAK,EAAE,iBAAiB;IACxB,UAAU,EAAE,uBAAuB;CACpC,CAAC;KACD,QAAQ,CAAC,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/config/schema.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,7 @@ import { generateScripts } from "./scripts.js";
6
6
  import { generateResources } from "./resources.js";
7
7
  import { generateFlows } from "./flows.js";
8
8
  import { runWithBuffer } from "./common.js";
9
- import { Listr } from "listr2";
10
- import { Observable } from "rxjs";
9
+ import { runTasks } from "./taskRunner.js";
11
10
  import { getConfig } from "../config/index.js";
12
11
  const subtasks = {
13
12
  "Generate resources": {
@@ -29,21 +28,11 @@ export const generate = async (output, outputDir, options) => {
29
28
  const allResourceTypes = await listResourceTypes();
30
29
  return run(output, outputDir, allResourceTypes, async () => {
31
30
  await writePreamble();
32
- const tasks = new Listr(Object.entries(subtasks).map(([name, task], idx) => {
33
- return {
34
- title: name,
35
- task: (ctx) => new Observable((subscriber) => {
36
- ctx.results ??= [];
37
- ctx.results[idx] = runWithBuffer(() => task.runner(subscriber));
38
- }),
39
- enabled: !config || task.isEnabled(config),
40
- rendererOptions: {
41
- persistentOutput: true,
42
- },
43
- };
44
- }), { concurrent: true, renderer: spinners ? "default" : "silent" });
45
- const ctx = await tasks.run();
46
- const results = await Promise.all(ctx.results).then((results) => results.filter((result) => result != null));
31
+ const results = (await runTasks(Object.entries(subtasks).map(([name, task]) => ({
32
+ title: name,
33
+ task: (observer) => runWithBuffer(() => task.runner(observer)),
34
+ enabled: !config || task.isEnabled(config),
35
+ })), { silent: !spinners })).filter((result) => result != null);
47
36
  for (const { buffer } of results) {
48
37
  await pipeline(buffer, output, { end: false });
49
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generator/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generator/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAiB,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAU,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAavD,MAAM,QAAQ,GAAG;IACf,oBAAoB,EAAE;QACpB,MAAM,EAAE,iBAAiB;QACzB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI;KACtB;IACD,kBAAkB,EAAE;QAClB,MAAM,EAAE,eAAe;QACvB,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;KAC9C;IACD,gBAAgB,EAAE;QAChB,MAAM,EAAE,aAAa;QACrB,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO;KAC5C;CACsC,CAAC;AAE1C,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,MAAgB,EAChB,SAAiB,EACjB,OAAyB,EACzB,EAAE;IACF,MAAM,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAE3C,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IAEjC,MAAM,gBAAgB,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAEnD,OAAO,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,aAAa,EAAE,CAAC;QAEtB,MAAM,OAAO,GAAG,CACd,MAAM,QAAQ,CACZ,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9C,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,CAAC,QAAkB,EAAE,EAAE,CAC3B,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC5C,OAAO,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;SAC3C,CAAC,CAAC,EACH,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,CACtB,CACF,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;QAErC,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YACjC,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import toValidIdentifier from "to-valid-identifier";
2
- import { listResources } from "../windmill/resources.js";
2
+ import { listResources, getResourceValue } from "../windmill/resources.js";
3
3
  import { getContext } from "./context.js";
4
4
  import { schemaToZod } from "./common.js";
5
5
  import dedent from "dedent";
@@ -11,6 +11,8 @@ const resourceTypesTypeName = "ResourceTypes";
11
11
  const resourceTransformerName = "_resourcesTransformer";
12
12
  const defaultResourceTransformerName = "_DefaultResourceTransformer";
13
13
  const defaultPerResourceTypeMap = "defaultPerResourceType";
14
+ const embeddedResourcesMapName = "_embeddedResources";
15
+ const resolveVariablesFnName = "_resolveVariables";
14
16
  const defaultResourceTransformer = dedent `
15
17
  class ${defaultResourceTransformerName} implements Transformer {
16
18
  arg: unknown
@@ -19,7 +21,41 @@ const defaultResourceTransformer = dedent `
19
21
  }
20
22
  }
21
23
  `;
22
- const preamble = dedent `
24
+ const resolveVariablesFnCode = dedent `
25
+ async function ${resolveVariablesFnName}(obj: unknown): Promise<unknown> {
26
+ if (typeof obj === "string" && obj.startsWith("$var:")) {
27
+ return wmill.getVariable(obj.substring(5));
28
+ }
29
+ if (Array.isArray(obj)) {
30
+ return Promise.all(obj.map(${resolveVariablesFnName}));
31
+ }
32
+ if (obj != null && typeof obj === "object") {
33
+ const entries = await Promise.all(
34
+ Object.entries(obj).map(async ([k, v]) => [k, await ${resolveVariablesFnName}(v)] as const)
35
+ );
36
+ return Object.fromEntries(entries);
37
+ }
38
+ return obj;
39
+ }
40
+ `;
41
+ const getDataFetchExpr = (embed) => {
42
+ if (!embed.enabled)
43
+ return `await wmill.getResource(path)`;
44
+ const entry = `${embeddedResourcesMapName}[path]`;
45
+ if (!embed.resolveVariables || !embed.hasResourcesWithVars)
46
+ return `path in ${embeddedResourcesMapName} ? structuredClone(${entry}.value) : await wmill.getResource(path)`;
47
+ return `path in ${embeddedResourcesMapName} ? (${entry}.hasVars ? await ${resolveVariablesFnName}(${entry}.value) : structuredClone(${entry}.value)) : await wmill.getResource(path)`;
48
+ };
49
+ const hasVarReferences = (obj) => {
50
+ if (typeof obj === "string")
51
+ return obj.startsWith("$var:");
52
+ if (Array.isArray(obj))
53
+ return obj.some(hasVarReferences);
54
+ if (obj != null && typeof obj === "object")
55
+ return Object.values(obj).some(hasVarReferences);
56
+ return false;
57
+ };
58
+ const getPreamble = (embed) => dedent `
23
59
  export type Cast<T, U> = T extends U ? T : U;
24
60
 
25
61
  export interface Transformer {
@@ -69,7 +105,7 @@ const preamble = dedent `
69
105
  );
70
106
  }
71
107
 
72
- const data = await wmill.getResource(path);
108
+ const data = ${getDataFetchExpr(embed)};
73
109
  const parsedData = options?.skipValidation ? data : schema.parse(data);
74
110
 
75
111
  const transformer = ${resourceTransformerName}.prototype.do;
@@ -178,16 +214,52 @@ export const generateResources = async (observer) => {
178
214
  else {
179
215
  await write(`const ${resourceTransformerName} = ${defaultResourceTransformerName};`);
180
216
  }
181
- await write(preamble);
182
217
  observer.next("Fetching all resources...");
183
218
  const resourcesByType = new Map();
219
+ const allWorkspacePaths = new Map();
184
220
  for await (const { resource_type: resourceTypeName, path, } of listResources()) {
221
+ allWorkspacePaths.set(path, resourceTypeName);
185
222
  if (!(resourceTypeName in allResourceTypes)) {
186
223
  continue;
187
224
  }
188
225
  const paths = resourcesByType.get(resourceTypeName) ?? [];
189
226
  resourcesByType.set(resourceTypeName, [...paths, path]);
190
227
  }
228
+ const hasEmbeddedResources = config.resources.embed.paths.length > 0;
229
+ const embeddedValues = new Map();
230
+ const embeddedPathsWithVars = new Set();
231
+ if (hasEmbeddedResources) {
232
+ observer.next("Fetching embedded resource values...");
233
+ const allKnownPaths = new Set([...resourcesByType.values()].flat());
234
+ for (const embedPath of config.resources.embed.paths) {
235
+ if (!allKnownPaths.has(embedPath)) {
236
+ const resourceType = allWorkspacePaths.get(embedPath);
237
+ if (resourceType != null) {
238
+ throw new Error(`Embedded resource ${JSON.stringify(embedPath)} has unsupported resource type ${JSON.stringify(resourceType)}`);
239
+ }
240
+ throw new Error(`Embedded resource path ${JSON.stringify(embedPath)} not found in workspace`);
241
+ }
242
+ }
243
+ for (const embedPath of config.resources.embed.paths) {
244
+ let value;
245
+ try {
246
+ value = await getResourceValue(embedPath);
247
+ }
248
+ catch (err) {
249
+ throw new Error(`Failed to fetch embedded resource ${JSON.stringify(embedPath)}: ${err instanceof Error ? err.message : err}`);
250
+ }
251
+ embeddedValues.set(embedPath, value);
252
+ if (hasVarReferences(value)) {
253
+ embeddedPathsWithVars.add(embedPath);
254
+ }
255
+ }
256
+ }
257
+ const hasResourcesWithVars = embeddedPathsWithVars.size > 0;
258
+ await write(getPreamble({
259
+ enabled: hasEmbeddedResources,
260
+ resolveVariables: config.resources.embed.resolveVariables,
261
+ hasResourcesWithVars,
262
+ }));
191
263
  observer.next("Generating schemas...");
192
264
  const defaultPerResourceType = new Map();
193
265
  for (const [resourceTypeName, paths] of resourcesByType) {
@@ -211,6 +283,17 @@ export const generateResources = async (observer) => {
211
283
  defaultPerResourceType.set(resourceTypeName, defaultPath);
212
284
  }
213
285
  }
286
+ if (embeddedValues.size > 0) {
287
+ if (config.resources.embed.resolveVariables && hasResourcesWithVars) {
288
+ await write(resolveVariablesFnCode);
289
+ }
290
+ await write(`const ${embeddedResourcesMapName} = {`);
291
+ for (const [resPath, value] of embeddedValues) {
292
+ const hasVars = embeddedPathsWithVars.has(resPath);
293
+ await write(` ${JSON.stringify(resPath)}: { value: ${JSON.stringify(value)}, hasVars: ${hasVars} },`);
294
+ }
295
+ await write(`} as const;`);
296
+ }
214
297
  await write(`const ${resourceToTypeMap} = lazyObject(() => ({`);
215
298
  for (const [resourceTypeName, paths] of resourcesByType) {
216
299
  const typeSchemaName = resourceTypeSchemaName(resourceTypeName);
@@ -1 +1 @@
1
- {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/generator/resources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/generator/resources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ import logUpdate from "log-update";
2
+ import cliSpinners from "cli-spinners";
3
+ import chalk from "chalk";
4
+ export const runTasks = async (definitions, options) => {
5
+ const { silent = false } = options ?? {};
6
+ const tasks = definitions
7
+ .filter((d) => d.enabled !== false)
8
+ .map((def) => {
9
+ const task = {
10
+ title: def.title,
11
+ status: "running",
12
+ message: "",
13
+ promise: undefined,
14
+ };
15
+ const observer = {
16
+ next(message) {
17
+ task.message = message;
18
+ },
19
+ error(err) {
20
+ task.status = "failed";
21
+ task.error = err;
22
+ },
23
+ complete() {
24
+ if (task.status === "running") {
25
+ task.status = "done";
26
+ }
27
+ },
28
+ };
29
+ task.promise = def.task(observer).then((result) => {
30
+ if (task.status === "failed") {
31
+ throw task.error;
32
+ }
33
+ if (task.status === "running")
34
+ task.status = "done";
35
+ return result;
36
+ }, (err) => {
37
+ task.status = "failed";
38
+ task.error ??= err;
39
+ throw err;
40
+ });
41
+ return task;
42
+ });
43
+ if (silent) {
44
+ return Promise.all(tasks.map((t) => t.promise));
45
+ }
46
+ const isTTY = process.stdout.isTTY ?? false;
47
+ if (!isTTY) {
48
+ const settled = await Promise.allSettled(tasks.map((t) => t.promise));
49
+ for (const task of tasks) {
50
+ const icon = task.status === "failed" ? "✖" : "✔";
51
+ const suffix = task.message ? ` [${task.message}]` : "";
52
+ console.log(`${icon} ${task.title}${suffix}`);
53
+ }
54
+ const results = [];
55
+ for (const outcome of settled) {
56
+ if (outcome.status === "rejected") {
57
+ throw outcome.reason;
58
+ }
59
+ results.push(outcome.value);
60
+ }
61
+ return results;
62
+ }
63
+ const spinner = cliSpinners.dots;
64
+ let frameIdx = 0;
65
+ const render = () => {
66
+ const frame = spinner.frames[frameIdx % spinner.frames.length];
67
+ frameIdx++;
68
+ const lines = tasks.map((task) => {
69
+ const suffix = task.message ? chalk.dim(` [${task.message}]`) : "";
70
+ switch (task.status) {
71
+ case "running":
72
+ return `${chalk.yellow(frame)} ${task.title}${suffix}`;
73
+ case "done":
74
+ return `${chalk.green("✔")} ${task.title}${suffix}`;
75
+ case "failed":
76
+ return `${chalk.red("✖")} ${task.title}${suffix}`;
77
+ }
78
+ });
79
+ logUpdate(lines.join("\n"));
80
+ };
81
+ const interval = setInterval(render, spinner.interval);
82
+ render();
83
+ try {
84
+ return await Promise.all(tasks.map((t) => t.promise));
85
+ }
86
+ finally {
87
+ clearInterval(interval);
88
+ render();
89
+ logUpdate.done();
90
+ }
91
+ };
92
+ //# sourceMappingURL=taskRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskRunner.js","sourceRoot":"","sources":["../../../src/generator/taskRunner.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export async function* listFlows(concurrency) {
16
16
  const promises = pageData.map(({ path }) => queue.add(() => wmill.FlowService.getFlowByPath({
17
17
  workspace,
18
18
  path,
19
- }), { throwOnTimeout: true }));
19
+ })));
20
20
  yield* promises;
21
21
  }
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"flows.js","sourceRoot":"","sources":["../../../src/windmill/flows.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAC;AAEzC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,SAAS,CAAC,WAAoB;IACnD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,EAAE,WAAW,EAAE,WAAW,IAAI,CAAC,EAAE,CAAC,CAAC;IAE5D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC;IAE/C,KAAK,IAAI,IAAI,GAAG,CAAC,GAAI,EAAE,IAAI,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC;YACjD,SAAS;YACT,IAAI;YACJ,OAAO,EAAE,QAAQ;SAClB,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACzC,KAAK,CAAC,GAAG,CACP,GAAG,EAAE,CACH,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC;YAC9B,SAAS;YACT,IAAI;SACL,CAAC,EACJ,EAAE,cAAc,EAAE,IAAI,EAAE,CACzB,CACF,CAAC;QAEF,KAAK,CAAC,CAAC,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"flows.js","sourceRoot":"","sources":["../../../src/windmill/flows.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAC;AAEzC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,SAAS,CAAC,WAAoB;IACnD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,EAAE,WAAW,EAAE,WAAW,IAAI,CAAC,EAAE,CAAC,CAAC;IAE5D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC;IAE/C,KAAK,IAAI,IAAI,GAAG,CAAC,GAAI,EAAE,IAAI,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC;YACjD,SAAS;YACT,IAAI;YACJ,OAAO,EAAE,QAAQ;SAClB,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACzC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CACb,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC;YAC9B,SAAS;YACT,IAAI;SACL,CAAC,CACH,CACF,CAAC;QAEF,KAAK,CAAC,CAAC,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -1,5 +1,13 @@
1
1
  import * as wmill from "windmill-client";
2
2
  const PER_PAGE = 20;
3
+ /**
4
+ * Fetches the raw (non-interpolated) value of a resource.
5
+ * $var: references are NOT resolved — they remain as literal strings.
6
+ */
7
+ export async function getResourceValue(path) {
8
+ const workspace = process.env["WM_WORKSPACE"];
9
+ return wmill.ResourceService.getResourceValue({ workspace, path });
10
+ }
3
11
  export async function* listResources(resourceType) {
4
12
  const workspace = process.env["WM_WORKSPACE"];
5
13
  for (let page = 1;; ++page) {
@@ -1 +1 @@
1
- {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/windmill/resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAC;AAEzC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,aAAa,CAAC,YAAqB;IACxD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC;IAE/C,KAAK,IAAI,IAAI,GAAG,CAAC,GAAI,EAAE,IAAI,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC;YACxD,SAAS;YACT,IAAI;YACJ,OAAO,EAAE,QAAQ;YACjB,mBAAmB,EAAE,kCAAkC;YACvD,GAAG,CAAC,YAAY,IAAI,IAAI,IAAI,EAAE,YAAY,EAAE,CAAC;SAC9C,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM;QACR,CAAC;QAED,KAAK,CAAC,CAAC,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/windmill/resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAC;AAEzC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY;IACjD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC;IAC/C,OAAO,KAAK,CAAC,eAAe,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,aAAa,CAAC,YAAqB;IACxD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC;IAE/C,KAAK,IAAI,IAAI,GAAG,CAAC,GAAI,EAAE,IAAI,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC;YACxD,SAAS;YACT,IAAI;YACJ,OAAO,EAAE,QAAQ;YACjB,mBAAmB,EAAE,kCAAkC;YACvD,GAAG,CAAC,YAAY,IAAI,IAAI,IAAI,EAAE,YAAY,EAAE,CAAC;SAC9C,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM;QACR,CAAC;QAED,KAAK,CAAC,CAAC,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -16,7 +16,7 @@ export async function* listScripts(concurrency) {
16
16
  const promises = pageData.map(({ path }) => queue.add(() => wmill.ScriptService.getScriptByPath({
17
17
  workspace,
18
18
  path,
19
- }), { throwOnTimeout: true }));
19
+ })));
20
20
  yield* promises;
21
21
  }
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../../src/windmill/scripts.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAC;AAEzC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,WAAW,CAAC,WAAoB;IACrD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,EAAE,WAAW,EAAE,WAAW,IAAI,CAAC,EAAE,CAAC,CAAC;IAE5D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC;IAE/C,KAAK,IAAI,IAAI,GAAG,CAAC,GAAI,EAAE,IAAI,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC;YACrD,SAAS;YACT,IAAI;YACJ,OAAO,EAAE,QAAQ;SAClB,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACzC,KAAK,CAAC,GAAG,CACP,GAAG,EAAE,CACH,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC;YAClC,SAAS;YACT,IAAI;SACL,CAAC,EACJ,EAAE,cAAc,EAAE,IAAI,EAAE,CACzB,CACF,CAAC;QAEF,KAAK,CAAC,CAAC,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../../src/windmill/scripts.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAC;AAEzC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,WAAW,CAAC,WAAoB;IACrD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,EAAE,WAAW,EAAE,WAAW,IAAI,CAAC,EAAE,CAAC,CAAC;IAE5D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC;IAE/C,KAAK,IAAI,IAAI,GAAG,CAAC,GAAI,EAAE,IAAI,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC;YACrD,SAAS;YACT,IAAI;YACJ,OAAO,EAAE,QAAQ;SAClB,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACzC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CACb,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC;YAClC,SAAS;YACT,IAAI;SACL,CAAC,CACH,CACF,CAAC;QAEF,KAAK,CAAC,CAAC,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "windmill-ts",
3
- "version": "1.5.0",
3
+ "version": "1.7.0",
4
4
  "description": "Type-safe client for Windmill",
5
5
  "main": "dist/src/index.js",
6
6
  "bin": "dist/src/index.js",
@@ -9,27 +9,27 @@
9
9
  "author": "Tsvetomir Bonev <me@invak.id>",
10
10
  "license": "Unlicense",
11
11
  "devDependencies": {
12
- "@types/node": "^22.9.0",
13
- "rimraf": "^6.0.1",
14
- "typescript": "^5.6.3"
12
+ "@types/node": "24.12.0",
13
+ "rimraf": "6.1.3",
14
+ "typescript": "5.9.3"
15
15
  },
16
16
  "dependencies": {
17
- "@stdlib/string-camelcase": "^0.2.2",
18
- "@stdlib/string-capitalize": "^0.3.0",
19
- "chalk": "^5.3.0",
20
- "commander": "^12.1.0",
21
- "dedent": "^1.5.3",
22
- "json-schema-to-zod": "^2.4.1",
23
- "listr2": "^8.2.5",
24
- "p-queue": "^8.0.1",
25
- "p-retry": "^7.1.0",
26
- "rxjs": "^7.8.1",
27
- "to-valid-identifier": "^0.1.1",
28
- "ts-morph": "^26.0.0",
29
- "windmill-client": "^1.522.0",
30
- "yaml": "^2.7.0",
31
- "zod": "^4.0.5",
32
- "zod-to-json-schema": "^3.24.6"
17
+ "@stdlib/string-camelcase": "0.2.3",
18
+ "@stdlib/string-capitalize": "0.3.1",
19
+ "chalk": "5.6.2",
20
+ "cli-spinners": "3.4.0",
21
+ "commander": "14.0.3",
22
+ "dedent": "1.7.2",
23
+ "json-schema-to-zod": "2.7.0",
24
+ "log-update": "7.2.0",
25
+ "p-queue": "9.1.0",
26
+ "p-retry": "7.1.1",
27
+ "to-valid-identifier": "1.0.0",
28
+ "ts-morph": "27.0.2",
29
+ "windmill-client": "1.654.0",
30
+ "yaml": "2.8.2",
31
+ "zod": "4.3.6",
32
+ "zod-to-json-schema": "3.25.1"
33
33
  },
34
34
  "repository": {
35
35
  "type": "git",