windmill-cli 1.478.0 → 1.479.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.
Files changed (187) hide show
  1. package/esm/bootstrap/script_bootstrap.js +13 -0
  2. package/esm/deps/jsr.io/@std/encoding/1.0.8/_common16.js +45 -0
  3. package/esm/deps/jsr.io/@std/encoding/1.0.8/_common32.js +175 -0
  4. package/esm/deps/jsr.io/@std/encoding/1.0.8/_common64.js +98 -0
  5. package/esm/deps/jsr.io/@std/encoding/1.0.8/_common_detach.js +13 -0
  6. package/esm/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.8}/base32.js +39 -21
  7. package/esm/deps/jsr.io/@std/encoding/1.0.8/base64.js +82 -0
  8. package/esm/deps/jsr.io/@std/encoding/1.0.8/base64url.js +72 -0
  9. package/esm/deps/jsr.io/@std/encoding/1.0.8/hex.js +87 -0
  10. package/esm/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.8}/mod.js +1 -0
  11. package/esm/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/eol.js +1 -0
  12. package/esm/deps/jsr.io/@std/log/0.224.14/rotating_file_handler.js +1 -1
  13. package/esm/deps.js +2 -2
  14. package/esm/gen/core/OpenAPI.js +1 -1
  15. package/esm/gen/services.gen.js +146 -20
  16. package/esm/hub.js +11 -7
  17. package/esm/instance.js +8 -0
  18. package/esm/main.js +1 -1
  19. package/esm/metadata.js +29 -4
  20. package/esm/script.js +15 -0
  21. package/esm/script_common.js +8 -0
  22. package/esm/settings.js +3 -11
  23. package/esm/sync.js +19 -1
  24. package/esm/types.js +3 -0
  25. package/esm/wasm/csharp/windmill_parser_wasm.js +103 -0
  26. package/esm/wasm/csharp/windmill_parser_wasm_bg.wasm +0 -0
  27. package/esm/wasm/go/windmill_parser_wasm.js +103 -0
  28. package/esm/wasm/go/windmill_parser_wasm_bg.wasm +0 -0
  29. package/esm/wasm/java/windmill_parser_wasm.js +103 -0
  30. package/esm/wasm/java/windmill_parser_wasm_bg.wasm +0 -0
  31. package/esm/wasm/nu/windmill_parser_wasm.js +103 -0
  32. package/esm/wasm/nu/windmill_parser_wasm_bg.wasm +0 -0
  33. package/esm/wasm/php/windmill_parser_wasm.js +103 -0
  34. package/esm/wasm/php/windmill_parser_wasm_bg.wasm +0 -0
  35. package/esm/wasm/python/windmill_parser_wasm.js +109 -0
  36. package/esm/wasm/python/windmill_parser_wasm_bg.wasm +0 -0
  37. package/esm/wasm/regex/windmill_parser_wasm.js +270 -0
  38. package/esm/wasm/regex/windmill_parser_wasm_bg.wasm +0 -0
  39. package/esm/wasm/rust/windmill_parser_wasm.js +103 -0
  40. package/esm/wasm/rust/windmill_parser_wasm_bg.wasm +0 -0
  41. package/esm/wasm/ts/windmill_parser_wasm.js +419 -0
  42. package/esm/wasm/ts/windmill_parser_wasm_bg.wasm +0 -0
  43. package/esm/wasm/yaml/windmill_parser_wasm.js +103 -0
  44. package/esm/wasm/yaml/windmill_parser_wasm_bg.wasm +0 -0
  45. package/package.json +1 -1
  46. package/types/bootstrap/script_bootstrap.d.ts +2 -0
  47. package/types/bootstrap/script_bootstrap.d.ts.map +1 -1
  48. package/types/conf.d.ts +1 -0
  49. package/types/conf.d.ts.map +1 -1
  50. package/types/deps/jsr.io/@std/encoding/1.0.8/_common16.d.ts +21 -0
  51. package/types/deps/jsr.io/@std/encoding/1.0.8/_common16.d.ts.map +1 -0
  52. package/types/deps/jsr.io/@std/encoding/1.0.8/_common32.d.ts +21 -0
  53. package/types/deps/jsr.io/@std/encoding/1.0.8/_common32.d.ts.map +1 -0
  54. package/types/deps/jsr.io/@std/encoding/1.0.8/_common64.d.ts +21 -0
  55. package/types/deps/jsr.io/@std/encoding/1.0.8/_common64.d.ts.map +1 -0
  56. package/types/deps/jsr.io/@std/encoding/1.0.8/_common_detach.d.ts +4 -0
  57. package/types/deps/jsr.io/@std/encoding/1.0.8/_common_detach.d.ts.map +1 -0
  58. package/types/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.8}/_types.d.ts.map +1 -1
  59. package/types/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.8}/_validate_binary_like.d.ts.map +1 -1
  60. package/types/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.8}/ascii85.d.ts.map +1 -1
  61. package/types/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.8}/base32.d.ts +15 -15
  62. package/types/deps/jsr.io/@std/encoding/1.0.8/base32.d.ts.map +1 -0
  63. package/types/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.8}/base58.d.ts.map +1 -1
  64. package/types/deps/jsr.io/@std/encoding/1.0.8/base64.d.ts.map +1 -0
  65. package/types/deps/jsr.io/@std/encoding/1.0.8/base64url.d.ts.map +1 -0
  66. package/types/deps/jsr.io/@std/encoding/1.0.8/hex.d.ts.map +1 -0
  67. package/types/deps/jsr.io/@std/encoding/1.0.8/mod.d.ts.map +1 -0
  68. package/types/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.8}/varint.d.ts.map +1 -1
  69. package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/_create_walk_entry.d.ts.map +1 -1
  70. package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/_get_file_info_type.d.ts.map +1 -1
  71. package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/_is_same_path.d.ts.map +1 -1
  72. package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/_is_subdir.d.ts.map +1 -1
  73. package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/_to_path_string.d.ts.map +1 -1
  74. package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/copy.d.ts.map +1 -1
  75. package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/empty_dir.d.ts.map +1 -1
  76. package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/ensure_dir.d.ts.map +1 -1
  77. package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/ensure_file.d.ts.map +1 -1
  78. package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/ensure_link.d.ts.map +1 -1
  79. package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/ensure_symlink.d.ts.map +1 -1
  80. package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/eol.d.ts.map +1 -1
  81. package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/exists.d.ts.map +1 -1
  82. package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/expand_glob.d.ts.map +1 -1
  83. package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/mod.d.ts.map +1 -1
  84. package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/move.d.ts.map +1 -1
  85. package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/walk.d.ts.map +1 -1
  86. package/types/deps.d.ts +2 -2
  87. package/types/gen/services.gen.d.ts +75 -11
  88. package/types/gen/services.gen.d.ts.map +1 -1
  89. package/types/gen/types.gen.d.ts +102 -35
  90. package/types/gen/types.gen.d.ts.map +1 -1
  91. package/types/hub.d.ts.map +1 -1
  92. package/types/instance.d.ts +1 -0
  93. package/types/instance.d.ts.map +1 -1
  94. package/types/main.d.ts +1 -1
  95. package/types/metadata.d.ts +2 -2
  96. package/types/metadata.d.ts.map +1 -1
  97. package/types/script.d.ts +2 -0
  98. package/types/script.d.ts.map +1 -1
  99. package/types/script_common.d.ts +1 -1
  100. package/types/script_common.d.ts.map +1 -1
  101. package/types/settings.d.ts +2 -4
  102. package/types/settings.d.ts.map +1 -1
  103. package/types/sync.d.ts +2 -0
  104. package/types/sync.d.ts.map +1 -1
  105. package/types/types.d.ts.map +1 -1
  106. package/types/wasm/csharp/windmill_parser_wasm.d.ts +7 -0
  107. package/types/wasm/csharp/windmill_parser_wasm.d.ts.map +1 -0
  108. package/types/wasm/go/windmill_parser_wasm.d.ts +7 -0
  109. package/types/wasm/go/windmill_parser_wasm.d.ts.map +1 -0
  110. package/types/wasm/java/windmill_parser_wasm.d.ts +7 -0
  111. package/types/wasm/java/windmill_parser_wasm.d.ts.map +1 -0
  112. package/types/wasm/nu/windmill_parser_wasm.d.ts +7 -0
  113. package/types/wasm/nu/windmill_parser_wasm.d.ts.map +1 -0
  114. package/types/wasm/php/windmill_parser_wasm.d.ts +7 -0
  115. package/types/wasm/php/windmill_parser_wasm.d.ts.map +1 -0
  116. package/types/wasm/python/windmill_parser_wasm.d.ts +8 -0
  117. package/types/wasm/python/windmill_parser_wasm.d.ts.map +1 -0
  118. package/types/wasm/regex/windmill_parser_wasm.d.ts +52 -0
  119. package/types/wasm/regex/windmill_parser_wasm.d.ts.map +1 -0
  120. package/types/wasm/rust/windmill_parser_wasm.d.ts +7 -0
  121. package/types/wasm/rust/windmill_parser_wasm.d.ts.map +1 -0
  122. package/types/wasm/ts/windmill_parser_wasm.d.ts +19 -0
  123. package/types/wasm/ts/windmill_parser_wasm.d.ts.map +1 -0
  124. package/types/wasm/yaml/windmill_parser_wasm.d.ts +7 -0
  125. package/types/wasm/yaml/windmill_parser_wasm.d.ts.map +1 -0
  126. package/esm/deps/jsr.io/@std/encoding/1.0.7/_base32_common.js +0 -183
  127. package/esm/deps/jsr.io/@std/encoding/1.0.7/base64.js +0 -163
  128. package/esm/deps/jsr.io/@std/encoding/1.0.7/base64url.js +0 -81
  129. package/esm/deps/jsr.io/@std/encoding/1.0.7/hex.js +0 -109
  130. package/esm/wasm/windmill_parser_wasm.generated.js +0 -1135
  131. package/esm/wasm/windmill_parser_wasm_bg.wasm +0 -0
  132. package/types/deps/jsr.io/@std/encoding/1.0.7/_base32_common.d.ts +0 -18
  133. package/types/deps/jsr.io/@std/encoding/1.0.7/_base32_common.d.ts.map +0 -1
  134. package/types/deps/jsr.io/@std/encoding/1.0.7/base32.d.ts.map +0 -1
  135. package/types/deps/jsr.io/@std/encoding/1.0.7/base64.d.ts.map +0 -1
  136. package/types/deps/jsr.io/@std/encoding/1.0.7/base64url.d.ts.map +0 -1
  137. package/types/deps/jsr.io/@std/encoding/1.0.7/hex.d.ts.map +0 -1
  138. package/types/deps/jsr.io/@std/encoding/1.0.7/mod.d.ts.map +0 -1
  139. package/types/wasm/windmill_parser_wasm.generated.d.ts +0 -146
  140. package/types/wasm/windmill_parser_wasm.generated.d.ts.map +0 -1
  141. /package/esm/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.8}/_types.js +0 -0
  142. /package/esm/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.8}/_validate_binary_like.js +0 -0
  143. /package/esm/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.8}/ascii85.js +0 -0
  144. /package/esm/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.8}/base58.js +0 -0
  145. /package/esm/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.8}/varint.js +0 -0
  146. /package/esm/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/_create_walk_entry.js +0 -0
  147. /package/esm/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/_get_file_info_type.js +0 -0
  148. /package/esm/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/_is_same_path.js +0 -0
  149. /package/esm/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/_is_subdir.js +0 -0
  150. /package/esm/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/_to_path_string.js +0 -0
  151. /package/esm/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/copy.js +0 -0
  152. /package/esm/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/empty_dir.js +0 -0
  153. /package/esm/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/ensure_dir.js +0 -0
  154. /package/esm/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/ensure_file.js +0 -0
  155. /package/esm/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/ensure_link.js +0 -0
  156. /package/esm/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/ensure_symlink.js +0 -0
  157. /package/esm/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/exists.js +0 -0
  158. /package/esm/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/expand_glob.js +0 -0
  159. /package/esm/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/mod.js +0 -0
  160. /package/esm/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/move.js +0 -0
  161. /package/esm/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/walk.js +0 -0
  162. /package/types/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.8}/_types.d.ts +0 -0
  163. /package/types/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.8}/_validate_binary_like.d.ts +0 -0
  164. /package/types/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.8}/ascii85.d.ts +0 -0
  165. /package/types/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.8}/base58.d.ts +0 -0
  166. /package/types/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.8}/base64.d.ts +0 -0
  167. /package/types/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.8}/base64url.d.ts +0 -0
  168. /package/types/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.8}/hex.d.ts +0 -0
  169. /package/types/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.8}/mod.d.ts +0 -0
  170. /package/types/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.8}/varint.d.ts +0 -0
  171. /package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/_create_walk_entry.d.ts +0 -0
  172. /package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/_get_file_info_type.d.ts +0 -0
  173. /package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/_is_same_path.d.ts +0 -0
  174. /package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/_is_subdir.d.ts +0 -0
  175. /package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/_to_path_string.d.ts +0 -0
  176. /package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/copy.d.ts +0 -0
  177. /package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/empty_dir.d.ts +0 -0
  178. /package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/ensure_dir.d.ts +0 -0
  179. /package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/ensure_file.d.ts +0 -0
  180. /package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/ensure_link.d.ts +0 -0
  181. /package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/ensure_symlink.d.ts +0 -0
  182. /package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/eol.d.ts +0 -0
  183. /package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/exists.d.ts +0 -0
  184. /package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/expand_glob.d.ts +0 -0
  185. /package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/mod.d.ts +0 -0
  186. /package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/move.d.ts +0 -0
  187. /package/types/deps/jsr.io/@std/fs/{1.0.14 → 1.0.15}/walk.d.ts +0 -0
@@ -1,4 +1,5 @@
1
1
  // Copyright 2018-2025 the Deno authors. MIT license.
2
+ // This module is browser compatible.
2
3
  /**
3
4
  * Utilities for encoding and decoding common formats like hex, base64, and varint.
4
5
  *
@@ -1,4 +1,5 @@
1
1
  // Copyright 2018-2025 the Deno authors. MIT license.
2
+ // This module is browser compatible.
2
3
  /** End-of-line character for POSIX platforms such as macOS and Linux. */
3
4
  import * as dntShim from "../../../../../_dnt.shims.js";
4
5
  export const LF = "\n";
@@ -12,7 +12,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
12
12
  var _RotatingFileHandler_maxBytes, _RotatingFileHandler_maxBackupCount, _RotatingFileHandler_currentFileSize;
13
13
  // Copyright 2018-2025 the Deno authors. MIT license.
14
14
  import * as dntShim from "../../../../../_dnt.shims.js";
15
- import { existsSync } from "../../fs/1.0.14/exists.js";
15
+ import { existsSync } from "../../fs/1.0.15/exists.js";
16
16
  import { FileHandler } from "./file_handler.js";
17
17
  import { encoderSymbol, filenameSymbol, fileSymbol, modeSymbol, openOptionsSymbol, } from "./_file_handler_symbols.js";
18
18
  /**
package/esm/deps.js CHANGED
@@ -12,10 +12,10 @@ export { NpmProvider } from "./deps/jsr.io/@windmill-labs/cliffy-command/1.0.0-r
12
12
  export { Provider } from "./deps/jsr.io/@windmill-labs/cliffy-command/1.0.0-rc.5/upgrade/mod.js";
13
13
  export { CompletionsCommand } from "./deps/jsr.io/@windmill-labs/cliffy-command/1.0.0-rc.5/completions/mod.js";
14
14
  // std
15
- export { ensureDir } from "./deps/jsr.io/@std/fs/1.0.14/mod.js";
15
+ export { ensureDir } from "./deps/jsr.io/@std/fs/1.0.15/mod.js";
16
16
  export { SEPARATOR as SEP } from "./deps/jsr.io/@std/path/1.0.8/mod.js";
17
17
  export * as path from "./deps/jsr.io/@std/path/1.0.8/mod.js";
18
- export { encodeHex } from "./deps/jsr.io/@std/encoding/1.0.7/mod.js";
18
+ export { encodeHex } from "./deps/jsr.io/@std/encoding/1.0.8/mod.js";
19
19
  export { writeAllSync } from "./deps/jsr.io/@std/io/0.225.2/write_all.js";
20
20
  export { copy } from "./deps/jsr.io/@std/io/0.225.2/copy.js";
21
21
  export { readAll } from "./deps/jsr.io/@std/io/0.225.2/read_all.js";
@@ -32,7 +32,7 @@ export const OpenAPI = {
32
32
  PASSWORD: undefined,
33
33
  TOKEN: getEnv("WM_TOKEN"),
34
34
  USERNAME: undefined,
35
- VERSION: '1.478.0',
35
+ VERSION: '1.479.0',
36
36
  WITH_CREDENTIALS: true,
37
37
  interceptors: {
38
38
  request: new Interceptors(),
@@ -369,6 +369,17 @@ export const deleteUser = (data) => {
369
369
  }
370
370
  });
371
371
  };
372
+ /**
373
+ * get connected repositories
374
+ * @returns GithubInstallations connected repositories
375
+ * @throws ApiError
376
+ */
377
+ export const getGlobalConnectedRepositories = () => {
378
+ return __request(OpenAPI, {
379
+ method: 'GET',
380
+ url: '/github_app/connected_repositories'
381
+ });
382
+ };
372
383
  /**
373
384
  * list all workspaces visible to me
374
385
  * @returns Workspace all workspaces
@@ -822,6 +833,102 @@ export const whoami = (data) => {
822
833
  }
823
834
  });
824
835
  };
836
+ /**
837
+ * get github app token
838
+ * @param data The data for the request.
839
+ * @param data.workspace
840
+ * @param data.requestBody jwt job token
841
+ * @returns unknown github app token
842
+ * @throws ApiError
843
+ */
844
+ export const getGithubAppToken = (data) => {
845
+ return __request(OpenAPI, {
846
+ method: 'POST',
847
+ url: '/w/{workspace}/github_app/token',
848
+ path: {
849
+ workspace: data.workspace
850
+ },
851
+ body: data.requestBody,
852
+ mediaType: 'application/json'
853
+ });
854
+ };
855
+ /**
856
+ * Install a GitHub installation from another workspace
857
+ * @param data The data for the request.
858
+ * @param data.workspace
859
+ * @param data.requestBody
860
+ * @returns unknown Installation successfully copied
861
+ * @throws ApiError
862
+ */
863
+ export const installFromWorkspace = (data) => {
864
+ return __request(OpenAPI, {
865
+ method: 'POST',
866
+ url: '/w/{workspace}/github_app/install_from_workspace',
867
+ path: {
868
+ workspace: data.workspace
869
+ },
870
+ body: data.requestBody,
871
+ mediaType: 'application/json'
872
+ });
873
+ };
874
+ /**
875
+ * Delete a GitHub installation from a workspace
876
+ * Removes a GitHub installation from the specified workspace. Requires admin privileges.
877
+ * @param data The data for the request.
878
+ * @param data.workspace
879
+ * @param data.installationId The ID of the GitHub installation to delete
880
+ * @returns unknown Installation successfully deleted
881
+ * @throws ApiError
882
+ */
883
+ export const deleteFromWorkspace = (data) => {
884
+ return __request(OpenAPI, {
885
+ method: 'DELETE',
886
+ url: '/w/{workspace}/github_app/installation/{installation_id}',
887
+ path: {
888
+ workspace: data.workspace,
889
+ installation_id: data.installationId
890
+ }
891
+ });
892
+ };
893
+ /**
894
+ * Export GitHub installation JWT token
895
+ * Exports the JWT token for a specific GitHub installation in the workspace
896
+ * @param data The data for the request.
897
+ * @param data.workspace
898
+ * @param data.installationId
899
+ * @returns unknown Successfully exported the JWT token
900
+ * @throws ApiError
901
+ */
902
+ export const exportInstallation = (data) => {
903
+ return __request(OpenAPI, {
904
+ method: 'GET',
905
+ url: '/w/{workspace}/github_app/export/{installationId}',
906
+ path: {
907
+ workspace: data.workspace,
908
+ installationId: data.installationId
909
+ }
910
+ });
911
+ };
912
+ /**
913
+ * Import GitHub installation from JWT token
914
+ * Imports a GitHub installation from a JWT token exported from another instance
915
+ * @param data The data for the request.
916
+ * @param data.workspace
917
+ * @param data.requestBody
918
+ * @returns unknown Successfully imported the installation
919
+ * @throws ApiError
920
+ */
921
+ export const importInstallation = (data) => {
922
+ return __request(OpenAPI, {
923
+ method: 'POST',
924
+ url: '/w/{workspace}/github_app/import',
925
+ path: {
926
+ workspace: data.workspace
927
+ },
928
+ body: data.requestBody,
929
+ mediaType: 'application/json'
930
+ });
931
+ };
825
932
  /**
826
933
  * accept invite to workspace
827
934
  * @param data The data for the request.
@@ -1200,25 +1307,6 @@ export const getPremiumInfo = (data) => {
1200
1307
  }
1201
1308
  });
1202
1309
  };
1203
- /**
1204
- * set automatic billing
1205
- * @param data The data for the request.
1206
- * @param data.workspace
1207
- * @param data.requestBody automatic billing
1208
- * @returns string status
1209
- * @throws ApiError
1210
- */
1211
- export const setAutomaticBilling = (data) => {
1212
- return __request(OpenAPI, {
1213
- method: 'POST',
1214
- url: '/w/{workspace}/workspaces/set_automatic_billing',
1215
- path: {
1216
- workspace: data.workspace
1217
- },
1218
- body: data.requestBody,
1219
- mediaType: 'application/json'
1220
- });
1221
- };
1222
1310
  /**
1223
1311
  * get threshold alert info
1224
1312
  * @param data The data for the request.
@@ -1461,7 +1549,7 @@ export const editCopilotConfig = (data) => {
1461
1549
  * get copilot info
1462
1550
  * @param data The data for the request.
1463
1551
  * @param data.workspace
1464
- * @returns unknown status
1552
+ * @returns AIConfig status
1465
1553
  * @throws ApiError
1466
1554
  */
1467
1555
  export const getCopilotInfo = (data) => {
@@ -3307,6 +3395,24 @@ export const getScriptHistoryByPath = (data) => {
3307
3395
  }
3308
3396
  });
3309
3397
  };
3398
+ /**
3399
+ * list script paths using provided script as a relative import
3400
+ * @param data The data for the request.
3401
+ * @param data.workspace
3402
+ * @param data.path
3403
+ * @returns string list of script paths
3404
+ * @throws ApiError
3405
+ */
3406
+ export const listScriptPathsFromWorkspaceRunnable = (data) => {
3407
+ return __request(OpenAPI, {
3408
+ method: 'GET',
3409
+ url: '/w/{workspace}/scripts/list_paths_from_workspace_runnable/{path}',
3410
+ path: {
3411
+ workspace: data.workspace,
3412
+ path: data.path
3413
+ }
3414
+ });
3415
+ };
3310
3416
  /**
3311
3417
  * get scripts's latest version (hash)
3312
3418
  * @param data The data for the request.
@@ -4352,6 +4458,26 @@ export const getAppLatestVersion = (data) => {
4352
4458
  }
4353
4459
  });
4354
4460
  };
4461
+ /**
4462
+ * list app paths from workspace runnable
4463
+ * @param data The data for the request.
4464
+ * @param data.workspace
4465
+ * @param data.runnableKind
4466
+ * @param data.path
4467
+ * @returns string list of app paths
4468
+ * @throws ApiError
4469
+ */
4470
+ export const listAppPathsFromWorkspaceRunnable = (data) => {
4471
+ return __request(OpenAPI, {
4472
+ method: 'GET',
4473
+ url: '/w/{workspace}/apps/list_paths_from_workspace_runnable/{runnable_kind}/{path}',
4474
+ path: {
4475
+ workspace: data.workspace,
4476
+ runnable_kind: data.runnableKind,
4477
+ path: data.path
4478
+ }
4479
+ });
4480
+ };
4355
4481
  /**
4356
4482
  * update app history
4357
4483
  * @param data The data for the request.
package/esm/hub.js CHANGED
@@ -4,6 +4,7 @@ import * as wmill from "./gen/services.gen.js";
4
4
  import { requireLogin, resolveWorkspace } from "./context.js";
5
5
  import { pushResourceType } from "./resource-type.js";
6
6
  import { deepEqual } from "./utils.js";
7
+ const DEFAULT_HUB_BASE_URL = "https://hub.windmill.dev";
7
8
  export async function pull(opts) {
8
9
  const workspace = await resolveWorkspace(opts);
9
10
  if (workspace.workspaceId !== "admins") {
@@ -15,8 +16,8 @@ export async function pull(opts) {
15
16
  key: "uid",
16
17
  }));
17
18
  const hubBaseUrl = (await wmill.getGlobal({
18
- key: "hubBaseUrl",
19
- })) ?? "https://hub.windmill.dev";
19
+ key: "hub_base_url",
20
+ })) ?? DEFAULT_HUB_BASE_URL;
20
21
  const headers = {
21
22
  Accept: "application/json",
22
23
  "X-email": userInfo.email,
@@ -24,16 +25,19 @@ export async function pull(opts) {
24
25
  if (uid) {
25
26
  headers["X-uid"] = uid;
26
27
  }
27
- const list = await fetch(hubBaseUrl + "/resource_types/list", {
28
+ let preList = await fetch(hubBaseUrl + "/resource_types/list", {
28
29
  headers,
29
- })
30
- .then((r) => r.json())
31
- .then((list) => list.map((x) => fetch(hubBaseUrl + "/resource_types/" + x.id + "/" + x.name, {
30
+ }).then((r) => r.json());
31
+ if (preList && preList.length === 0 && hubBaseUrl !== DEFAULT_HUB_BASE_URL) {
32
+ preList = await fetch(DEFAULT_HUB_BASE_URL + "/resource_types/list", {
33
+ headers,
34
+ }).then((r) => r.json());
35
+ }
36
+ let list = await Promise.all(preList.map((x) => fetch(hubBaseUrl + "/resource_types/" + x.id + "/" + x.name, {
32
37
  headers: {
33
38
  Accept: "application/json",
34
39
  },
35
40
  })))
36
- .then((x) => Promise.all(x))
37
41
  .then((x) => x.map((x) => x.json().catch((e) => {
38
42
  log.info(e);
39
43
  return undefined;
package/esm/instance.js CHANGED
@@ -187,6 +187,10 @@ async function instancePull(opts) {
187
187
  const rootDir = dntShim.Deno.cwd();
188
188
  if (totalChanges > 0) {
189
189
  let confirm = true;
190
+ if (opts.dryRun) {
191
+ log.info(colors.gray(`Dry run complete.`));
192
+ return;
193
+ }
190
194
  if (opts.yes !== true) {
191
195
  confirm = await Confirm.prompt({
192
196
  message: `Do you want to pull these ${totalChanges} instance-level changes?`,
@@ -255,6 +259,7 @@ async function instancePull(opts) {
255
259
  includeUsers: true,
256
260
  includeKey: true,
257
261
  yes: opts.yes,
262
+ dryRun: opts.dryRun,
258
263
  });
259
264
  }
260
265
  const localWorkspacesToDelete = localWorkspaces.filter((w) => !remoteWorkspaces.find((r) => r.id === w.id));
@@ -388,6 +393,7 @@ async function instancePush(opts) {
388
393
  includeUsers: true,
389
394
  includeKey: true,
390
395
  yes: opts.yes,
396
+ dryRun: opts.dryRun,
391
397
  });
392
398
  }
393
399
  const workspacesToDelete = remoteWorkspaces.filter((w) => !localWorkspaces.find((l) => l.id === w.id));
@@ -529,6 +535,7 @@ const command = new Command()
529
535
  .command("pull")
530
536
  .description("Pull instance settings, users, configs, instance groups and overwrite local")
531
537
  .option("--yes", "Pull without needing confirmation")
538
+ .option("--dry-run", "Perform a dry run without making changes")
532
539
  .option("--skip-users", "Skip pulling users")
533
540
  .option("--skip-settings", "Skip pulling settings")
534
541
  .option("--skip-configs", "Skip pulling configs (worker groups and SMTP)")
@@ -542,6 +549,7 @@ const command = new Command()
542
549
  .command("push")
543
550
  .description("Push instance settings, users, configs, group and overwrite remote")
544
551
  .option("--yes", "Push without needing confirmation")
552
+ .option("--dry-run", "Perform a dry run without making changes")
545
553
  .option("--skip-users", "Skip pushing users")
546
554
  .option("--skip-settings", "Skip pushing settings")
547
555
  .option("--skip-configs", "Skip pushing configs (worker groups and SMTP)")
package/esm/main.js CHANGED
@@ -34,7 +34,7 @@ export { flow, app, script, workspace, resource, user, variable, hub, folder, sc
34
34
  // console.error(JSON.stringify(event.error, null, 4));
35
35
  // }
36
36
  // });
37
- export const VERSION = "1.478.0";
37
+ export const VERSION = "1.479.0";
38
38
  const command = new Command()
39
39
  .name("wmill")
40
40
  .action(() => log.info(`Welcome to Windmill CLI ${VERSION}. Use -h for help.`))
package/esm/metadata.js CHANGED
@@ -2,7 +2,6 @@
2
2
  import * as dntShim from "./_dnt.shims.js";
3
3
  import { SEP, colors, log, path, yamlParseFile, yamlStringify, } from "./deps.js";
4
4
  import { defaultScriptMetadata, } from "./bootstrap/script_bootstrap.js";
5
- import { instantiate as instantiateWasm, parse_ansible, parse_bash, parse_bigquery, parse_deno, parse_go, parse_graphql, parse_mssql, parse_mysql, parse_php, parse_powershell, parse_python, parse_rust, parse_csharp, parse_snowflake, parse_sql, parse_oracledb, } from "./wasm/windmill_parser_wasm.generated.js";
6
5
  import { inferContentTypeFromFilePath } from "./script_common.js";
7
6
  import { exts } from "./script.js";
8
7
  import { FSFSElement, extractInlineScriptsForFlows, findCodebase, newPathAssigner, yamlOptions, } from "./sync.js";
@@ -170,8 +169,7 @@ export async function generateScriptMetadataInternal(scriptPath, workspace, opts
170
169
  }
171
170
  export async function updateScriptSchema(scriptContent, language, metadataContent, path) {
172
171
  // infer schema from script content and update it inplace
173
- await instantiateWasm();
174
- const result = inferSchema(language, scriptContent, metadataContent.schema, path);
172
+ const result = await inferSchema(language, scriptContent, metadataContent.schema, path);
175
173
  metadataContent.schema = result.schema;
176
174
  if (result.has_preprocessor) {
177
175
  metadataContent.has_preprocessor = result.has_preprocessor;
@@ -286,24 +284,30 @@ export async function updateFlow(workspace, flow_value, remotePath) {
286
284
  ////////////////////////////////////////////////////////////////////////////////////////////
287
285
  // below functions copied from Windmill's FE inferArgs function. TODO: refactor //
288
286
  ////////////////////////////////////////////////////////////////////////////////////////////
289
- export function inferSchema(language, content, currentSchema, path) {
287
+ export async function inferSchema(language, content, currentSchema, path) {
290
288
  let inferedSchema;
291
289
  if (language === "python3") {
290
+ const { parse_python } = await import('./wasm/python/windmill_parser_wasm.js');
292
291
  inferedSchema = JSON.parse(parse_python(content));
293
292
  }
294
293
  else if (language === "nativets") {
294
+ const { parse_deno } = await import('./wasm/ts/windmill_parser_wasm.js');
295
295
  inferedSchema = JSON.parse(parse_deno(content));
296
296
  }
297
297
  else if (language === "bun") {
298
+ const { parse_deno } = await import('./wasm/ts/windmill_parser_wasm.js');
298
299
  inferedSchema = JSON.parse(parse_deno(content));
299
300
  }
300
301
  else if (language === "deno") {
302
+ const { parse_deno } = await import('./wasm/ts/windmill_parser_wasm.js');
301
303
  inferedSchema = JSON.parse(parse_deno(content));
302
304
  }
303
305
  else if (language === "go") {
306
+ const { parse_go } = await import("./wasm/go/windmill_parser_wasm.js");
304
307
  inferedSchema = JSON.parse(parse_go(content));
305
308
  }
306
309
  else if (language === "mysql") {
310
+ const { parse_mysql } = await import("./wasm/regex/windmill_parser_wasm.js");
307
311
  inferedSchema = JSON.parse(parse_mysql(content));
308
312
  inferedSchema.args = [
309
313
  { name: "database", typ: { resource: "mysql" } },
@@ -311,6 +315,7 @@ export function inferSchema(language, content, currentSchema, path) {
311
315
  ];
312
316
  }
313
317
  else if (language === "bigquery") {
318
+ const { parse_bigquery } = await import("./wasm/regex/windmill_parser_wasm.js");
314
319
  inferedSchema = JSON.parse(parse_bigquery(content));
315
320
  inferedSchema.args = [
316
321
  { name: "database", typ: { resource: "bigquery" } },
@@ -318,6 +323,7 @@ export function inferSchema(language, content, currentSchema, path) {
318
323
  ];
319
324
  }
320
325
  else if (language === "oracledb") {
326
+ const { parse_oracledb } = await import("./wasm/regex/windmill_parser_wasm.js");
321
327
  inferedSchema = JSON.parse(parse_oracledb(content));
322
328
  inferedSchema.args = [
323
329
  { name: "database", typ: { resource: "oracledb" } },
@@ -325,6 +331,7 @@ export function inferSchema(language, content, currentSchema, path) {
325
331
  ];
326
332
  }
327
333
  else if (language === "snowflake") {
334
+ const { parse_snowflake } = await import("./wasm/regex/windmill_parser_wasm.js");
328
335
  inferedSchema = JSON.parse(parse_snowflake(content));
329
336
  inferedSchema.args = [
330
337
  { name: "database", typ: { resource: "snowflake" } },
@@ -332,6 +339,7 @@ export function inferSchema(language, content, currentSchema, path) {
332
339
  ];
333
340
  }
334
341
  else if (language === "mssql") {
342
+ const { parse_mssql } = await import("./wasm/regex/windmill_parser_wasm.js");
335
343
  inferedSchema = JSON.parse(parse_mssql(content));
336
344
  inferedSchema.args = [
337
345
  { name: "database", typ: { resource: "ms_sql_server" } },
@@ -339,6 +347,7 @@ export function inferSchema(language, content, currentSchema, path) {
339
347
  ];
340
348
  }
341
349
  else if (language === "postgresql") {
350
+ const { parse_sql } = await import("./wasm/regex/windmill_parser_wasm.js");
342
351
  inferedSchema = JSON.parse(parse_sql(content));
343
352
  inferedSchema.args = [
344
353
  { name: "database", typ: { resource: "postgresql" } },
@@ -346,6 +355,7 @@ export function inferSchema(language, content, currentSchema, path) {
346
355
  ];
347
356
  }
348
357
  else if (language === "graphql") {
358
+ const { parse_graphql } = await import("./wasm/regex/windmill_parser_wasm.js");
349
359
  inferedSchema = JSON.parse(parse_graphql(content));
350
360
  inferedSchema.args = [
351
361
  { name: "api", typ: { resource: "graphql" } },
@@ -353,23 +363,38 @@ export function inferSchema(language, content, currentSchema, path) {
353
363
  ];
354
364
  }
355
365
  else if (language === "bash") {
366
+ const { parse_bash } = await import("./wasm/regex/windmill_parser_wasm.js");
356
367
  inferedSchema = JSON.parse(parse_bash(content));
357
368
  }
358
369
  else if (language === "powershell") {
370
+ const { parse_powershell } = await import("./wasm/regex/windmill_parser_wasm.js");
359
371
  inferedSchema = JSON.parse(parse_powershell(content));
360
372
  }
361
373
  else if (language === "php") {
374
+ const { parse_php } = await import("./wasm/php/windmill_parser_wasm.js");
362
375
  inferedSchema = JSON.parse(parse_php(content));
363
376
  }
364
377
  else if (language === "rust") {
378
+ const { parse_rust } = await import("./wasm/rust/windmill_parser_wasm.js");
365
379
  inferedSchema = JSON.parse(parse_rust(content));
366
380
  }
367
381
  else if (language === "csharp") {
382
+ const { parse_csharp } = await import("./wasm/csharp/windmill_parser_wasm.js");
368
383
  inferedSchema = JSON.parse(parse_csharp(content));
369
384
  }
385
+ else if (language === "nu") {
386
+ const { parse_nu } = await import("./wasm/nu/windmill_parser_wasm.js");
387
+ inferedSchema = JSON.parse(parse_nu(content));
388
+ }
370
389
  else if (language === "ansible") {
390
+ const { parse_ansible } = await import("./wasm/yaml/windmill_parser_wasm.js");
371
391
  inferedSchema = JSON.parse(parse_ansible(content));
372
392
  }
393
+ else if (language === "java") {
394
+ const { parse_java } = await import("./wasm/java/windmill_parser_wasm.js");
395
+ inferedSchema = JSON.parse(parse_java(content));
396
+ // KJQXZ
397
+ }
373
398
  else {
374
399
  throw new Error("Invalid language: " + language);
375
400
  }
package/esm/script.js CHANGED
@@ -398,6 +398,13 @@ export function filePathExtensionFromContentType(language, defaultTs) {
398
398
  else if (language === "csharp") {
399
399
  return ".cs";
400
400
  }
401
+ else if (language === "nu") {
402
+ return ".nu";
403
+ }
404
+ else if (language === "java") {
405
+ return ".java";
406
+ // KJQXZ
407
+ }
401
408
  else {
402
409
  throw new Error("Invalid language: " + language);
403
410
  }
@@ -422,7 +429,10 @@ export const exts = [
422
429
  ".php",
423
430
  ".rs",
424
431
  ".cs",
432
+ ".nu",
425
433
  ".playbook.yml",
434
+ ".java"
435
+ // KJQXZ
426
436
  ];
427
437
  export function removeExtensionToPath(path) {
428
438
  for (const ext of exts) {
@@ -689,6 +699,10 @@ async function generateMetadata(opts, scriptPath) {
689
699
  }
690
700
  }
691
701
  if (hasAny) {
702
+ if (opts.dryRun) {
703
+ log.info(colors.gray(`Dry run complete.`));
704
+ return;
705
+ }
692
706
  if (!opts.yes &&
693
707
  !(await Confirm.prompt({
694
708
  message: "Update the metadata of the above scripts?",
@@ -729,6 +743,7 @@ const command = new Command()
729
743
  .command("generate-metadata", "re-generate the metadata file updating the lock and the script schema (for flows, use `wmill flow generate-locks`)")
730
744
  .arguments("[script:file]")
731
745
  .option("--yes", "Skip confirmation prompt")
746
+ .option("--dry-run", "Perform a dry run without making changes")
732
747
  .option("--lock-only", "re-generate only the lock")
733
748
  .option("--schema-only", "re-generate only script schema")
734
749
  .option("-i --includes <patterns:file[]>", "Comma separated patterns to specify which file to take into account (among files that are compatible with windmill). Patterns can include * (any string until '/') and ** (any string)")
@@ -1,3 +1,4 @@
1
+ // KJQXZ
1
2
  export function inferContentTypeFromFilePath(contentPath, defaultTs) {
2
3
  if (contentPath.endsWith(".py")) {
3
4
  return "python3";
@@ -56,6 +57,13 @@ export function inferContentTypeFromFilePath(contentPath, defaultTs) {
56
57
  else if (contentPath.endsWith(".playbook.yml")) {
57
58
  return "ansible";
58
59
  }
60
+ else if (contentPath.endsWith(".nu")) {
61
+ return "nu";
62
+ }
63
+ else if (contentPath.endsWith(".java")) {
64
+ return "java";
65
+ // KJQXZ
66
+ }
59
67
  else {
60
68
  throw new Error("Invalid language: " + contentPath.substring(contentPath.lastIndexOf(".")));
61
69
  }
package/esm/settings.js CHANGED
@@ -43,9 +43,7 @@ export async function pushWorkspaceSettings(workspace, _path, settings, localSet
43
43
  error_handler: remoteSettings.error_handler,
44
44
  error_handler_extra_args: remoteSettings.error_handler_extra_args,
45
45
  error_handler_muted_on_cancel: remoteSettings.error_handler_muted_on_cancel,
46
- ai_resource: remoteSettings.ai_resource,
47
- code_completion_model: remoteSettings.code_completion_model,
48
- ai_models: remoteSettings.ai_models,
46
+ ai_config: remoteSettings.ai_config,
49
47
  large_file_storage: remoteSettings.large_file_storage,
50
48
  git_sync: remoteSettings.git_sync,
51
49
  default_app: remoteSettings.default_app,
@@ -110,17 +108,11 @@ export async function pushWorkspaceSettings(workspace, _path, settings, localSet
110
108
  });
111
109
  }
112
110
  }
113
- if (localSettings.ai_resource != settings.ai_resource ||
114
- localSettings.code_completion_model != settings.code_completion_model ||
115
- !deepEqual(localSettings.ai_models, settings.ai_models)) {
111
+ if (!deepEqual(localSettings.ai_config, settings.ai_config)) {
116
112
  log.debug(`Updating copilot settings...`);
117
113
  await wmill.editCopilotConfig({
118
114
  workspace,
119
- requestBody: {
120
- ai_resource: localSettings.ai_resource,
121
- code_completion_model: localSettings.code_completion_model,
122
- ai_models: localSettings.ai_models,
123
- },
115
+ requestBody: localSettings.ai_config ?? {},
124
116
  });
125
117
  }
126
118
  if (localSettings.error_handler != settings.error_handler ||
package/esm/sync.js CHANGED
@@ -276,8 +276,13 @@ export function newPathAssigner(defaultTs) {
276
276
  ext = "rs";
277
277
  else if (language == "csharp")
278
278
  ext = "cs";
279
+ else if (language == "nu")
280
+ ext = "nu";
279
281
  else if (language == "ansible")
280
282
  ext = "playbook.yml";
283
+ else if (language == "java")
284
+ ext = "java";
285
+ // KJQXZ
281
286
  else
282
287
  ext = "no_ext";
283
288
  return [`${name}.inline_script.`, ext];
@@ -566,6 +571,9 @@ export async function elementsToMap(els, ignore, json, skips) {
566
571
  "rs",
567
572
  "cs",
568
573
  "yml",
574
+ "nu",
575
+ "java",
576
+ // KJQXZ
569
577
  ].includes(path.split(".").pop() ?? "") &&
570
578
  !isFileResource(path))
571
579
  continue;
@@ -702,7 +710,7 @@ async function compareDynFSElement(els1, els2, ignore, json, skips, ignoreMetada
702
710
  continue;
703
711
  }
704
712
  const c = findCodebase(tsFile, codebases);
705
- if (await c?.getDigest() != v) {
713
+ if ((await c?.getDigest()) != v) {
706
714
  changes.push({
707
715
  name: "edited",
708
716
  path: tsFile,
@@ -927,6 +935,10 @@ export async function pull(opts) {
927
935
  log.info(`remote (${workspace.name}) -> local: ${changes.length} changes to apply`);
928
936
  if (changes.length > 0) {
929
937
  prettyChanges(changes);
938
+ if (opts.dryRun) {
939
+ log.info(colors.gray(`Dry run complete.`));
940
+ return;
941
+ }
930
942
  if (!opts.yes &&
931
943
  !(await Confirm.prompt({
932
944
  message: `Do you want to apply these ${changes.length} changes to your local files?`,
@@ -1146,6 +1158,10 @@ export async function push(opts) {
1146
1158
  log.info(`remote (${workspace.name}) <- local: ${changes.length} changes to apply`);
1147
1159
  if (changes.length > 0) {
1148
1160
  prettyChanges(changes);
1161
+ if (opts.dryRun) {
1162
+ log.info(colors.gray(`Dry run complete.`));
1163
+ return;
1164
+ }
1149
1165
  if (!opts.yes &&
1150
1166
  !(await Confirm.prompt({
1151
1167
  message: `Do you want to apply these ${changes.length} changes to the remote?`,
@@ -1420,6 +1436,7 @@ const command = new Command()
1420
1436
  .command("pull")
1421
1437
  .description("Pull any remote changes and apply them locally.")
1422
1438
  .option("--yes", "Pull without needing confirmation")
1439
+ .option("--dry-run", "Show changes that would be pulled without actually pushing")
1423
1440
  .option("--plain-secrets", "Pull secrets as plain text")
1424
1441
  .option("--json", "Use JSON instead of YAML")
1425
1442
  .option("--skip-variables", "Skip syncing variables (including secrets)")
@@ -1441,6 +1458,7 @@ const command = new Command()
1441
1458
  .command("push")
1442
1459
  .description("Push any local changes and apply them remotely.")
1443
1460
  .option("--yes", "Push without needing confirmation")
1461
+ .option("--dry-run", "Show changes that would be pushed without actually pushing")
1444
1462
  .option("--plain-secrets", "Push secrets as plain text")
1445
1463
  .option("--json", "Use JSON instead of YAML")
1446
1464
  .option("--skip-variables", "Skip syncing variables (including secrets)")
package/esm/types.js CHANGED
@@ -168,6 +168,9 @@ export function getTypeStrFromPath(p) {
168
168
  parsed.ext == ".php" ||
169
169
  parsed.ext == ".rs" ||
170
170
  parsed.ext == ".cs" ||
171
+ parsed.ext == ".nu" ||
172
+ parsed.ext == ".java" ||
173
+ // KJQXZ
171
174
  (parsed.ext == ".yml" && parsed.name.split(".").pop() == "playbook")) {
172
175
  return "script";
173
176
  }