windmill-cli 1.600.0 → 1.601.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/esm/gen/core/OpenAPI.js +1 -1
- package/esm/src/commands/app/app_metadata.js +9 -3
- package/esm/src/commands/app/dev.js +5 -4
- package/esm/src/commands/app/lint.js +3 -2
- package/esm/src/commands/app/new.js +2 -1
- package/esm/src/commands/dev/dev.js +5 -3
- package/esm/src/commands/flow/flow_metadata.js +2 -3
- package/esm/src/commands/init/init.js +1 -0
- package/esm/src/commands/script/script.js +20 -7
- package/esm/src/commands/sync/sync.js +22 -24
- package/esm/src/commands/workspace/fork.js +1 -1
- package/esm/src/core/conf.js +4 -0
- package/esm/src/core/constants.js +5 -0
- package/esm/src/core/context.js +1 -1
- package/esm/src/main.js +3 -2
- package/esm/src/types.js +10 -9
- package/esm/src/utils/git.js +1 -1
- package/esm/src/utils/resource_folders.js +329 -0
- package/esm/src/utils/utils.js +2 -1
- package/esm/windmill-utils-internal/src/inline-scripts/extractor.js +3 -2
- package/esm/windmill-utils-internal/src/path-utils/path-assigner.js +11 -3
- package/package.json +1 -1
- package/types/src/commands/app/app_metadata.d.ts.map +1 -1
- package/types/src/commands/app/dev.d.ts.map +1 -1
- package/types/src/commands/app/lint.d.ts.map +1 -1
- package/types/src/commands/app/new.d.ts.map +1 -1
- package/types/src/commands/dev/dev.d.ts.map +1 -1
- package/types/src/commands/flow/flow_metadata.d.ts.map +1 -1
- package/types/src/commands/init/init.d.ts.map +1 -1
- package/types/src/commands/script/script.d.ts +10 -0
- package/types/src/commands/script/script.d.ts.map +1 -1
- package/types/src/commands/sync/sync.d.ts.map +1 -1
- package/types/src/core/conf.d.ts +2 -1
- package/types/src/core/conf.d.ts.map +1 -1
- package/types/src/core/constants.d.ts +6 -0
- package/types/src/core/constants.d.ts.map +1 -0
- package/types/src/main.d.ts +2 -2
- package/types/src/main.d.ts.map +1 -1
- package/types/src/types.d.ts.map +1 -1
- package/types/src/utils/resource_folders.d.ts +160 -0
- package/types/src/utils/resource_folders.d.ts.map +1 -0
- package/types/src/utils/utils.d.ts.map +1 -1
- package/types/windmill-utils-internal/src/inline-scripts/extractor.d.ts +9 -1
- package/types/windmill-utils-internal/src/inline-scripts/extractor.d.ts.map +1 -1
- package/types/windmill-utils-internal/src/path-utils/path-assigner.d.ts +9 -1
- package/types/windmill-utils-internal/src/path-utils/path-assigner.d.ts.map +1 -1
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility module for handling resource folder naming conventions.
|
|
3
|
+
*
|
|
4
|
+
* This module centralizes the logic for detecting and manipulating paths
|
|
5
|
+
* that contain resource folders (.flow, .app, .raw_app).
|
|
6
|
+
*
|
|
7
|
+
* The folder suffixes can be configured to use either dot-prefixed names
|
|
8
|
+
* (.flow, .app, .raw_app) or dunder-prefixed names (__flow, __app, __raw_app).
|
|
9
|
+
*/
|
|
10
|
+
import { log, SEP } from "../../deps.js";
|
|
11
|
+
// Configuration for folder suffixes - can be switched between dot and dunder prefixes
|
|
12
|
+
// The default uses dot-prefixed names (.flow, .app, .raw_app)
|
|
13
|
+
const DOTTED_SUFFIXES = {
|
|
14
|
+
flow: ".flow",
|
|
15
|
+
app: ".app",
|
|
16
|
+
raw_app: ".raw_app",
|
|
17
|
+
};
|
|
18
|
+
// Alternative dunder-prefixed names (__flow, __app, __raw_app)
|
|
19
|
+
const NON_DOTTED_SUFFIXES = {
|
|
20
|
+
flow: "__flow",
|
|
21
|
+
app: "__app",
|
|
22
|
+
raw_app: "__raw_app",
|
|
23
|
+
};
|
|
24
|
+
// Global state for nonDottedPaths configuration
|
|
25
|
+
let _nonDottedPaths = false;
|
|
26
|
+
/**
|
|
27
|
+
* Set whether to use non-dotted paths (__flow, __app, __raw_app)
|
|
28
|
+
* instead of dotted paths (.flow, .app, .raw_app).
|
|
29
|
+
* This should be called once at startup based on wmill.yaml configuration.
|
|
30
|
+
*/
|
|
31
|
+
export function setNonDottedPaths(value) {
|
|
32
|
+
if (value) {
|
|
33
|
+
log.info("Using non-dotted paths (__flow, __app, __raw_app)");
|
|
34
|
+
}
|
|
35
|
+
_nonDottedPaths = value;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get the current nonDottedPaths setting.
|
|
39
|
+
*/
|
|
40
|
+
export function getNonDottedPaths() {
|
|
41
|
+
return _nonDottedPaths;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get the folder suffixes based on the global configuration.
|
|
45
|
+
*/
|
|
46
|
+
export function getFolderSuffixes() {
|
|
47
|
+
return _nonDottedPaths ? NON_DOTTED_SUFFIXES : DOTTED_SUFFIXES;
|
|
48
|
+
}
|
|
49
|
+
// Metadata file names inside each folder type
|
|
50
|
+
const METADATA_FILES = {
|
|
51
|
+
flow: { yaml: "flow.yaml", json: "flow.json" },
|
|
52
|
+
app: { yaml: "app.yaml", json: "app.json" },
|
|
53
|
+
raw_app: { yaml: "raw_app.yaml", json: "raw_app.json" },
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Get the folder suffix for a resource type (e.g., ".flow", ".app", ".raw_app" or "__flow", "__app", "__raw_app")
|
|
57
|
+
*/
|
|
58
|
+
export function getFolderSuffix(type) {
|
|
59
|
+
return getFolderSuffixes()[type];
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get the folder suffix with path separator (e.g., ".flow/", ".app/", ".raw_app/")
|
|
63
|
+
*/
|
|
64
|
+
export function getFolderSuffixWithSep(type) {
|
|
65
|
+
return getFolderSuffixes()[type] + SEP;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Get the metadata file name for a resource type
|
|
69
|
+
*/
|
|
70
|
+
export function getMetadataFileName(type, format) {
|
|
71
|
+
return METADATA_FILES[type][format];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Get the full metadata file path suffix (e.g., ".flow/flow.yaml" or "__flow/flow.yaml")
|
|
75
|
+
*/
|
|
76
|
+
export function getMetadataPathSuffix(type, format) {
|
|
77
|
+
return getFolderSuffixes()[type] + "/" + METADATA_FILES[type][format];
|
|
78
|
+
}
|
|
79
|
+
// ============================================================================
|
|
80
|
+
// Path Detection Functions
|
|
81
|
+
// ============================================================================
|
|
82
|
+
/**
|
|
83
|
+
* Check if a path is inside a flow folder
|
|
84
|
+
*/
|
|
85
|
+
export function isFlowPath(p) {
|
|
86
|
+
return p.includes(getFolderSuffixes().flow + SEP);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Check if a path is inside an app folder
|
|
90
|
+
*/
|
|
91
|
+
export function isAppPath(p) {
|
|
92
|
+
return p.includes(getFolderSuffixes().app + SEP);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Check if a path is inside a raw_app folder
|
|
96
|
+
*/
|
|
97
|
+
export function isRawAppPath(p) {
|
|
98
|
+
return p.includes(getFolderSuffixes().raw_app + SEP);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Check if a path is inside any folder-based resource (flow, app, or raw_app)
|
|
102
|
+
*/
|
|
103
|
+
export function isFolderResourcePath(p) {
|
|
104
|
+
return isFlowPath(p) || isAppPath(p) || isRawAppPath(p);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Detect the resource type from a path, if any
|
|
108
|
+
*/
|
|
109
|
+
export function detectFolderResourceType(p) {
|
|
110
|
+
if (isFlowPath(p))
|
|
111
|
+
return "flow";
|
|
112
|
+
if (isAppPath(p))
|
|
113
|
+
return "app";
|
|
114
|
+
if (isRawAppPath(p))
|
|
115
|
+
return "raw_app";
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Check if a path is inside a raw app backend folder.
|
|
120
|
+
* Matches patterns like: .../myApp.raw_app/backend/... or .../myApp__raw_app/backend/...
|
|
121
|
+
*/
|
|
122
|
+
export function isRawAppBackendPath(filePath) {
|
|
123
|
+
const suffixes = getFolderSuffixes();
|
|
124
|
+
// Normalize path separators for consistent matching
|
|
125
|
+
const normalizedPath = filePath.replaceAll(SEP, "/");
|
|
126
|
+
// Check if path contains pattern: *.[suffix]/backend/
|
|
127
|
+
const escapedSuffix = suffixes.raw_app.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
128
|
+
const pattern = new RegExp(`${escapedSuffix}/backend/`);
|
|
129
|
+
return pattern.test(normalizedPath);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Check if a path is inside a normal app folder (inline script).
|
|
133
|
+
* Matches patterns like: .../myApp.app/... or .../myApp__app/...
|
|
134
|
+
* This is used to detect inline scripts that belong to normal apps.
|
|
135
|
+
*/
|
|
136
|
+
export function isAppInlineScriptPath(filePath) {
|
|
137
|
+
const suffixes = getFolderSuffixes();
|
|
138
|
+
// Normalize path separators for consistent matching
|
|
139
|
+
const normalizedPath = filePath.replaceAll(SEP, "/");
|
|
140
|
+
// Check if path contains pattern: *.[suffix]/
|
|
141
|
+
const escapedSuffix = suffixes.app.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
142
|
+
const pattern = new RegExp(`${escapedSuffix}/`);
|
|
143
|
+
return pattern.test(normalizedPath);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Check if a path is inside a flow folder (inline script).
|
|
147
|
+
* Matches patterns like: .../myFlow.flow/... or .../myFlow__flow/...
|
|
148
|
+
* This is used to detect inline scripts that belong to flows.
|
|
149
|
+
*/
|
|
150
|
+
export function isFlowInlineScriptPath(filePath) {
|
|
151
|
+
const suffixes = getFolderSuffixes();
|
|
152
|
+
// Normalize path separators for consistent matching
|
|
153
|
+
const normalizedPath = filePath.replaceAll(SEP, "/");
|
|
154
|
+
// Check if path contains pattern: *.[suffix]/
|
|
155
|
+
const escapedSuffix = suffixes.flow.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
156
|
+
const pattern = new RegExp(`${escapedSuffix}/`);
|
|
157
|
+
return pattern.test(normalizedPath);
|
|
158
|
+
}
|
|
159
|
+
// ============================================================================
|
|
160
|
+
// Path Manipulation Functions
|
|
161
|
+
// ============================================================================
|
|
162
|
+
/**
|
|
163
|
+
* Extract the resource name from a path (the part before the folder suffix)
|
|
164
|
+
* e.g., "f/my_flow.flow/flow.yaml" -> "f/my_flow"
|
|
165
|
+
*/
|
|
166
|
+
export function extractResourceName(p, type) {
|
|
167
|
+
const suffix = getFolderSuffixes()[type] + SEP;
|
|
168
|
+
const index = p.indexOf(suffix);
|
|
169
|
+
if (index === -1)
|
|
170
|
+
return null;
|
|
171
|
+
return p.substring(0, index);
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Extract the folder path (resource name + folder suffix)
|
|
175
|
+
* e.g., "f/my_flow.flow/flow.yaml" -> "f/my_flow.flow/"
|
|
176
|
+
*/
|
|
177
|
+
export function extractFolderPath(p, type) {
|
|
178
|
+
const suffix = getFolderSuffixes()[type] + SEP;
|
|
179
|
+
const index = p.indexOf(suffix);
|
|
180
|
+
if (index === -1)
|
|
181
|
+
return null;
|
|
182
|
+
return p.substring(0, index) + suffix;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Build a folder path from a resource name
|
|
186
|
+
* e.g., ("f/my_flow", "flow") -> "f/my_flow.flow"
|
|
187
|
+
*/
|
|
188
|
+
export function buildFolderPath(resourceName, type) {
|
|
189
|
+
return resourceName + getFolderSuffixes()[type];
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Build a metadata file path from a resource name
|
|
193
|
+
* e.g., ("f/my_flow", "flow", "yaml") -> "f/my_flow.flow/flow.yaml"
|
|
194
|
+
*/
|
|
195
|
+
export function buildMetadataPath(resourceName, type, format) {
|
|
196
|
+
return (resourceName +
|
|
197
|
+
getFolderSuffixes()[type] +
|
|
198
|
+
SEP +
|
|
199
|
+
METADATA_FILES[type][format]);
|
|
200
|
+
}
|
|
201
|
+
// ============================================================================
|
|
202
|
+
// Folder Validation Functions
|
|
203
|
+
// ============================================================================
|
|
204
|
+
/**
|
|
205
|
+
* Check if a directory name ends with a specific resource folder suffix
|
|
206
|
+
* e.g., "my_app.raw_app" ends with ".raw_app" or "my_app__raw_app" ends with "__raw_app"
|
|
207
|
+
*/
|
|
208
|
+
export function hasFolderSuffix(dirName, type) {
|
|
209
|
+
return dirName.endsWith(getFolderSuffixes()[type]);
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Validate that a directory name has the expected folder suffix
|
|
213
|
+
* Returns an error message if invalid, null if valid
|
|
214
|
+
*/
|
|
215
|
+
export function validateFolderName(dirName, type) {
|
|
216
|
+
const suffixes = getFolderSuffixes();
|
|
217
|
+
if (!hasFolderSuffix(dirName, type)) {
|
|
218
|
+
return `'${dirName}' does not end with '${suffixes[type]}'`;
|
|
219
|
+
}
|
|
220
|
+
return null;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Extract the resource name from a folder name by removing the suffix
|
|
224
|
+
* e.g., "my_app.raw_app" -> "my_app" or "my_app__raw_app" -> "my_app"
|
|
225
|
+
*/
|
|
226
|
+
export function extractNameFromFolder(folderName, type) {
|
|
227
|
+
const suffix = getFolderSuffixes()[type];
|
|
228
|
+
if (folderName.endsWith(suffix)) {
|
|
229
|
+
return folderName.substring(0, folderName.length - suffix.length);
|
|
230
|
+
}
|
|
231
|
+
return folderName;
|
|
232
|
+
}
|
|
233
|
+
// ============================================================================
|
|
234
|
+
// Metadata File Detection Functions
|
|
235
|
+
// ============================================================================
|
|
236
|
+
/**
|
|
237
|
+
* Check if a path ends with a flow metadata file suffix.
|
|
238
|
+
* Detects BOTH API format (always dotted: .flow.json) and local format (user-configured).
|
|
239
|
+
* This is necessary because the API always returns dotted format, but local files
|
|
240
|
+
* may use non-dotted format if nonDottedPaths is configured.
|
|
241
|
+
*/
|
|
242
|
+
export function isFlowMetadataFile(p) {
|
|
243
|
+
// Always check API format (dotted)
|
|
244
|
+
if (p.endsWith(DOTTED_SUFFIXES.flow + ".json") ||
|
|
245
|
+
p.endsWith(DOTTED_SUFFIXES.flow + ".yaml")) {
|
|
246
|
+
return true;
|
|
247
|
+
}
|
|
248
|
+
// Also check non-dotted format for local files
|
|
249
|
+
if (_nonDottedPaths) {
|
|
250
|
+
return (p.endsWith(NON_DOTTED_SUFFIXES.flow + ".json") ||
|
|
251
|
+
p.endsWith(NON_DOTTED_SUFFIXES.flow + ".yaml"));
|
|
252
|
+
}
|
|
253
|
+
return false;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Check if a path ends with an app metadata file suffix.
|
|
257
|
+
* Detects BOTH API format (always dotted: .app.json) and local format (user-configured).
|
|
258
|
+
*/
|
|
259
|
+
export function isAppMetadataFile(p) {
|
|
260
|
+
// Always check API format (dotted)
|
|
261
|
+
if (p.endsWith(DOTTED_SUFFIXES.app + ".json") ||
|
|
262
|
+
p.endsWith(DOTTED_SUFFIXES.app + ".yaml")) {
|
|
263
|
+
return true;
|
|
264
|
+
}
|
|
265
|
+
// Also check non-dotted format for local files
|
|
266
|
+
if (_nonDottedPaths) {
|
|
267
|
+
return (p.endsWith(NON_DOTTED_SUFFIXES.app + ".json") ||
|
|
268
|
+
p.endsWith(NON_DOTTED_SUFFIXES.app + ".yaml"));
|
|
269
|
+
}
|
|
270
|
+
return false;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Check if a path ends with a raw_app metadata file suffix.
|
|
274
|
+
* Detects BOTH API format (always dotted: .raw_app.json) and local format (user-configured).
|
|
275
|
+
*/
|
|
276
|
+
export function isRawAppMetadataFile(p) {
|
|
277
|
+
// Always check API format (dotted)
|
|
278
|
+
if (p.endsWith(DOTTED_SUFFIXES.raw_app + ".json") ||
|
|
279
|
+
p.endsWith(DOTTED_SUFFIXES.raw_app + ".yaml")) {
|
|
280
|
+
return true;
|
|
281
|
+
}
|
|
282
|
+
// Also check non-dotted format for local files
|
|
283
|
+
if (_nonDottedPaths) {
|
|
284
|
+
return (p.endsWith(NON_DOTTED_SUFFIXES.raw_app + ".json") ||
|
|
285
|
+
p.endsWith(NON_DOTTED_SUFFIXES.raw_app + ".yaml"));
|
|
286
|
+
}
|
|
287
|
+
return false;
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Check if a path ends with a specific raw_app metadata file
|
|
291
|
+
* (inside the folder, e.g., ".raw_app/raw_app.yaml" or "__raw_app/raw_app.yaml")
|
|
292
|
+
*/
|
|
293
|
+
export function isRawAppFolderMetadataFile(p) {
|
|
294
|
+
return (p.endsWith(getMetadataPathSuffix("raw_app", "yaml")) ||
|
|
295
|
+
p.endsWith(getMetadataPathSuffix("raw_app", "json")));
|
|
296
|
+
}
|
|
297
|
+
// ============================================================================
|
|
298
|
+
// Sync-related Path Functions
|
|
299
|
+
// ============================================================================
|
|
300
|
+
/**
|
|
301
|
+
* Get the path suffix to remove when converting local path to API path
|
|
302
|
+
* for delete operations
|
|
303
|
+
*/
|
|
304
|
+
export function getDeleteSuffix(type, format) {
|
|
305
|
+
return getFolderSuffixes()[type] + "/" + METADATA_FILES[type][format];
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Transform a JSON path from API format to local directory path for sync.
|
|
309
|
+
* The API always returns dotted format (.flow.json, .app.json, .raw_app.json).
|
|
310
|
+
* This function transforms to the user's configured format (dotted or non-dotted).
|
|
311
|
+
* e.g., with nonDottedPaths=true: "f/my_flow.flow.json" -> "f/my_flow__flow"
|
|
312
|
+
* e.g., with nonDottedPaths=false: "f/my_flow.flow.json" -> "f/my_flow.flow"
|
|
313
|
+
*/
|
|
314
|
+
export function transformJsonPathToDir(p, type) {
|
|
315
|
+
// API always returns dotted format
|
|
316
|
+
const apiSuffix = DOTTED_SUFFIXES[type] + ".json";
|
|
317
|
+
if (p.endsWith(apiSuffix)) {
|
|
318
|
+
// Remove the API suffix and add user's configured suffix
|
|
319
|
+
const basePath = p.substring(0, p.length - apiSuffix.length);
|
|
320
|
+
return basePath + getFolderSuffixes()[type];
|
|
321
|
+
}
|
|
322
|
+
// Also handle the case where path already has user's configured format
|
|
323
|
+
const userSuffix = getFolderSuffixes()[type] + ".json";
|
|
324
|
+
if (p.endsWith(userSuffix)) {
|
|
325
|
+
return p.substring(0, p.length - 5); // Remove ".json"
|
|
326
|
+
}
|
|
327
|
+
// Path doesn't match expected suffix pattern, return unchanged
|
|
328
|
+
return p;
|
|
329
|
+
}
|
package/esm/src/utils/utils.js
CHANGED
|
@@ -6,6 +6,7 @@ import { colors, encodeHex, log, SEP } from "../../deps.js";
|
|
|
6
6
|
import crypto from "node:crypto";
|
|
7
7
|
import { fetchVersion } from "../core/context.js";
|
|
8
8
|
import { updateGlobalVersions } from "../commands/sync/global.js";
|
|
9
|
+
import { isRawAppPath } from "./resource_folders.js";
|
|
9
10
|
export function deepEqual(a, b) {
|
|
10
11
|
if (a === b)
|
|
11
12
|
return true;
|
|
@@ -138,7 +139,7 @@ export function isFileResource(path) {
|
|
|
138
139
|
splitPath[splitPath.length - 2] == "file");
|
|
139
140
|
}
|
|
140
141
|
export function isRawAppFile(path) {
|
|
141
|
-
return path
|
|
142
|
+
return isRawAppPath(path);
|
|
142
143
|
}
|
|
143
144
|
export function isWorkspaceDependencies(path) {
|
|
144
145
|
return path.startsWith("dependencies/");
|
|
@@ -8,11 +8,12 @@ import { newPathAssigner } from "../path-utils/path-assigner.js";
|
|
|
8
8
|
* @param separator - Path separator to use
|
|
9
9
|
* @param defaultTs - Default TypeScript runtime to use ("bun" or "deno")
|
|
10
10
|
* @param pathAssigner - Optional path assigner to reuse (for nested calls)
|
|
11
|
+
* @param options - Optional configuration options
|
|
11
12
|
* @returns Array of inline scripts with their paths and content
|
|
12
13
|
*/
|
|
13
|
-
export function extractInlineScripts(modules, mapping = {}, separator = "/", defaultTs, pathAssigner) {
|
|
14
|
+
export function extractInlineScripts(modules, mapping = {}, separator = "/", defaultTs, pathAssigner, options) {
|
|
14
15
|
// Create pathAssigner only if not provided (top-level call), but reuse it for nested calls
|
|
15
|
-
const assigner = pathAssigner ?? newPathAssigner(defaultTs ?? "bun");
|
|
16
|
+
const assigner = pathAssigner ?? newPathAssigner(defaultTs ?? "bun", { skipInlineScriptSuffix: options?.skipInlineScriptSuffix });
|
|
16
17
|
return modules.flatMap((m) => {
|
|
17
18
|
if (m.value.type == "rawscript") {
|
|
18
19
|
const [basePath, ext] = assigner.assignPath(m.summary, m.value.language);
|
|
@@ -95,9 +95,15 @@ export function getLanguageFromExtension(ext, defaultTs = "bun") {
|
|
|
95
95
|
* Creates a new path assigner for inline scripts.
|
|
96
96
|
*
|
|
97
97
|
* @param defaultTs - Default TypeScript runtime ("bun" or "deno")
|
|
98
|
+
* @param options - Optional configuration (can pass options object instead of defaultTs)
|
|
98
99
|
* @returns Path assigner function
|
|
99
100
|
*/
|
|
100
|
-
export function newPathAssigner(defaultTs) {
|
|
101
|
+
export function newPathAssigner(defaultTs, options) {
|
|
102
|
+
// Handle both old signature (defaultTs string) and new signature (options object)
|
|
103
|
+
const resolvedOptions = typeof defaultTs === "object"
|
|
104
|
+
? defaultTs
|
|
105
|
+
: { defaultTs, skipInlineScriptSuffix: options?.skipInlineScriptSuffix };
|
|
106
|
+
const { defaultTs: tsRuntime, skipInlineScriptSuffix } = resolvedOptions;
|
|
101
107
|
let counter = 0;
|
|
102
108
|
const seen_names = new Set();
|
|
103
109
|
function assignPath(summary, language) {
|
|
@@ -113,8 +119,10 @@ export function newPathAssigner(defaultTs) {
|
|
|
113
119
|
name = `${original_name}_${counter}`;
|
|
114
120
|
}
|
|
115
121
|
seen_names.add(name);
|
|
116
|
-
const ext = getLanguageExtension(language,
|
|
117
|
-
|
|
122
|
+
const ext = getLanguageExtension(language, tsRuntime);
|
|
123
|
+
// When skipInlineScriptSuffix is true, don't add .inline_script. to the path
|
|
124
|
+
const suffix = skipInlineScriptSuffix ? "." : ".inline_script.";
|
|
125
|
+
return [`${name}${suffix}`, ext];
|
|
118
126
|
}
|
|
119
127
|
return { assignPath };
|
|
120
128
|
}
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app_metadata.d.ts","sourceRoot":"","sources":["../../../../src/src/commands/app/app_metadata.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAgB/C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAYtD,OAAO,EAA6B,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"app_metadata.d.ts","sourceRoot":"","sources":["../../../../src/src/commands/app/app_metadata.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAgB/C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAYtD,OAAO,EAA6B,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAM5E,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAgD5C;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,aAAa,GAAG;IACpB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B,EACD,sBAAsB,CAAC,EAAE,OAAO,EAChC,cAAc,CAAC,EAAE,OAAO,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsIxB;AAuXD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,GAAG,CAAC;CACb;AAED;;;;;;;;GAQG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CA8F3C;AAQD,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,aAAa,GAAG;IACpB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B,GAAG,WAAW,EACf,OAAO,EAAE,MAAM,GAAG,SAAS,iBA+H5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../../src/src/commands/app/dev.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,OAAO,EAOR,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../../src/src/commands/app/dev.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,OAAO,EAOR,MAAM,kBAAkB,CAAC;AA4sC1B,QAAA,MAAM,OAAO;;;;;;;;;;;;;;mBAgBQ,CAAC;AAEtB,eAAe,OAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../../../src/src/commands/app/lint.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAA8B,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../../../src/src/commands/app/lint.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAA8B,MAAM,kBAAkB,CAAC;AAwNvE,QAAA,MAAM,OAAO;;;;;;;;mBAIS,CAAC;AAEvB,eAAe,OAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../../../src/src/commands/app/new.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,OAAO,EAOR,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../../../src/src/commands/app/new.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,OAAO,EAOR,MAAM,kBAAkB,CAAC;AAwoB1B,QAAA,MAAM,OAAO;;;;;;mBAEW,CAAC;AAEzB,eAAe,OAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../../src/src/commands/dev/dev.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EAUR,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../../src/src/commands/dev/dev.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EAUR,MAAM,kBAAkB,CAAC;AAiN1B,QAAA,MAAM,OAAO;;;;;;;;mBAOQ,CAAC;AAEtB,eAAe,OAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow_metadata.d.ts","sourceRoot":"","sources":["../../../../src/src/commands/flow/flow_metadata.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAe/C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"flow_metadata.d.ts","sourceRoot":"","sources":["../../../../src/src/commands/flow/flow_metadata.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAe/C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAuBtD,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,aAAa,GAAG;IACpB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B,EACD,sBAAsB,CAAC,EAAE,OAAO,EAChC,cAAc,CAAC,EAAE,OAAO,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAuGxB;AAED,wBAAsB,UAAU,CAC9B,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,SAAS,EACrB,UAAU,EAAE,MAAM,EAClB,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/C,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CA8EhC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../src/src/commands/init/init.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,OAAO,EAA+B,MAAM,kBAAkB,CAAC;AAShF,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../src/src/commands/init/init.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,OAAO,EAA+B,MAAM,kBAAkB,CAAC;AAShF,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AA+QD,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;mBAae,CAAC;AAE7B,eAAe,OAAO,CAAC"}
|
|
@@ -18,6 +18,16 @@ export interface ScriptFile {
|
|
|
18
18
|
* Matches patterns like: .../myApp.raw_app/backend/...
|
|
19
19
|
*/
|
|
20
20
|
export declare function isRawAppBackendPath(filePath: string): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Checks if a path is inside a normal app folder (inline script).
|
|
23
|
+
* Matches patterns like: .../myApp.app/... or .../myApp__app/...
|
|
24
|
+
*/
|
|
25
|
+
export declare function isAppInlineScriptPath(filePath: string): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Checks if a path is inside a flow folder (inline script).
|
|
28
|
+
* Matches patterns like: .../myFlow.flow/... or .../myFlow__flow/...
|
|
29
|
+
*/
|
|
30
|
+
export declare function isFlowInlineScriptPath(filePath: string): boolean;
|
|
21
31
|
export declare function findResourceFile(path: string): Promise<string>;
|
|
22
32
|
export declare function handleScriptMetadata(path: string, workspace: Workspace, alreadySynced: string[], message: string | undefined, rawWorkspaceDependencies: Record<string, string>, codebases: SyncCodebase[], opts: GlobalOptions): Promise<boolean>;
|
|
23
33
|
export interface OutputFile {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../../../src/src/commands/script/script.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,EAEL,OAAO,EAQR,MAAM,kBAAkB,CAAC;AAW1B,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAMtD,OAAO,EACL,6BAA6B,EAC7B,cAAc,EAGf,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAIL,KAAK,EAEN,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAAE,YAAY,EAAqB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../../../src/src/commands/script/script.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../../src/src/commands/sync/sync.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,OAAO,EAUR,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAEL,aAAa,EAKd,MAAM,gBAAgB,CAAC;AAmBxB,OAAO,EAGL,WAAW,EAEZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAOL,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AAItC,OAAO,EAAqB,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAS1E,OAAO,EAGL,YAAY,EACb,MAAM,kEAAkE,CAAC;
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../../src/src/commands/sync/sync.ts"],"names":[],"mappings":"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"}
|
package/types/src/core/conf.d.ts
CHANGED
|
@@ -33,6 +33,7 @@ export interface SyncOptions {
|
|
|
33
33
|
codebases?: Codebase[];
|
|
34
34
|
parallel?: number;
|
|
35
35
|
jsonOutput?: boolean;
|
|
36
|
+
nonDottedPaths?: boolean;
|
|
36
37
|
gitBranches?: {
|
|
37
38
|
commonSpecificItems?: {
|
|
38
39
|
variables?: string[];
|
|
@@ -98,7 +99,7 @@ export declare const GLOBAL_CONFIG_OPT: {
|
|
|
98
99
|
};
|
|
99
100
|
export declare function getWmillYamlPath(): string | null;
|
|
100
101
|
export declare function readConfigFile(): Promise<SyncOptions>;
|
|
101
|
-
export declare const DEFAULT_SYNC_OPTIONS: Readonly<Required<Pick<SyncOptions, "defaultTs" | "includes" | "excludes" | "codebases" | "skipVariables" | "skipResources" | "skipResourceTypes" | "skipSecrets" | "includeSchedules" | "includeTriggers" | "skipWorkspaceDependencies" | "skipScripts" | "skipFlows" | "skipApps" | "skipFolders" | "includeUsers" | "includeGroups" | "includeSettings" | "includeKey">>>;
|
|
102
|
+
export declare const DEFAULT_SYNC_OPTIONS: Readonly<Required<Pick<SyncOptions, "defaultTs" | "includes" | "excludes" | "codebases" | "skipVariables" | "skipResources" | "skipResourceTypes" | "skipSecrets" | "includeSchedules" | "includeTriggers" | "skipWorkspaceDependencies" | "skipScripts" | "skipFlows" | "skipApps" | "skipFolders" | "includeUsers" | "includeGroups" | "includeSettings" | "includeKey" | "nonDottedPaths">>>;
|
|
102
103
|
export declare function mergeConfigWithConfigFile<T>(opts: T): Promise<T & SyncOptions>;
|
|
103
104
|
export declare function validateBranchConfiguration(opts: Pick<SyncOptions, "skipBranchValidation" | "yes">): Promise<void>;
|
|
104
105
|
export declare function getEffectiveSettings(config: SyncOptions, promotion?: string, skipBranchValidation?: boolean, suppressLogs?: boolean): Promise<SyncOptions>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conf.d.ts","sourceRoot":"","sources":["../../../src/src/core/conf.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"conf.d.ts","sourceRoot":"","sources":["../../../src/src/core/conf.ts"],"names":[],"mappings":"AAYA,eAAO,IAAI,SAAS,SAAQ,CAAC;AAC7B,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,QAE1C;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE;QACZ,mBAAmB,CAAC,EAAE;YACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;YACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;YACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;SACrB,CAAC;KACH,GAAG;QACF,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG;YAClC,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YACjC,kBAAkB,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,aAAa,CAAC,EAAE;gBACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;gBACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;gBACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;aACrB,CAAC;SACH,CAAC;KACH,CAAC;IAEF,YAAY,CAAC,EAAE;QACb,mBAAmB,CAAC,EAAE;YACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;YACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;YACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;SACrB,CAAC;KACH,GAAG;QACF,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG;YAClC,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YACjC,kBAAkB,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,aAAa,CAAC,EAAE;gBACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;gBACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;gBACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;aACrB,CAAC;SACH,CAAC;KACH,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;KACZ,EAAE,CAAC;IACJ,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACvB,MAAM,CAAC,EAAE;QACP,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;KAC1B,CAAC;CACD;AAcD,eAAO,MAAM,iBAAiB;;CAAwB,CAAC;AAwDvD,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAsI3D;AAGD,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CACzC,QAAQ,CACN,IAAI,CACF,WAAW,EACT,WAAW,GACX,UAAU,GACV,UAAU,GACV,WAAW,GACX,eAAe,GACf,eAAe,GACf,mBAAmB,GACnB,aAAa,GACb,kBAAkB,GAClB,iBAAiB,GACjB,2BAA2B,GAC3B,aAAa,GACb,WAAW,GACX,UAAU,GACV,aAAa,GACb,cAAc,GACd,eAAe,GACf,iBAAiB,GACjB,YAAY,GACZ,gBAAgB,CACnB,CACF,CAsBO,CAAC;AAEX,wBAAsB,yBAAyB,CAAC,CAAC,EAC/C,IAAI,EAAE,CAAC,GACN,OAAO,CAAC,CAAC,GAAG,WAAW,CAAC,CAG1B;AAGD,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,sBAAsB,GAAG,KAAK,CAAC,GACtD,OAAO,CAAC,IAAI,CAAC,CA6Gf;AAGD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,WAAW,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,oBAAoB,CAAC,EAAE,OAAO,EAC9B,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC,WAAW,CAAC,CAqEtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/src/core/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,cAAc,YAAY,CAAC"}
|
package/types/src/main.d.ts
CHANGED
|
@@ -22,8 +22,8 @@ import { pull as hubPull } from "./commands/hub/hub.js";
|
|
|
22
22
|
import { pull, push } from "./commands/sync/sync.js";
|
|
23
23
|
import { add as workspaceAdd } from "./commands/workspace/workspace.js";
|
|
24
24
|
export { flow, app, script, workspace, resource, resourceType, user, variable, hub, folder, schedule, trigger, sync, gitsyncSettings, instance, dev, hubPull, pull, push, workspaceAdd, };
|
|
25
|
-
export declare const VERSION = "1.
|
|
26
|
-
export
|
|
25
|
+
export declare const VERSION = "1.601.0";
|
|
26
|
+
export { WM_FORK_PREFIX } from "./core/constants.js";
|
|
27
27
|
declare const command: Command<{
|
|
28
28
|
workspace?: (import("../deps/jsr.io/@windmill-labs/cliffy-command/1.0.0-rc.5/mod.js").StringType & string) | undefined;
|
|
29
29
|
} & {
|
package/types/src/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/src/main.ts"],"names":[],"mappings":";AACA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,sBAAsB,CAAC;AAE9B,OAAO,EACL,OAAO,EAKR,MAAM,YAAY,CAAC;AACpB,OAAO,IAAI,MAAM,yBAAyB,CAAC;AAC3C,OAAO,GAAG,MAAM,uBAAuB,CAAC;AACxC,OAAO,MAAM,MAAM,6BAA6B,CAAC;AACjD,OAAO,SAEN,MAAM,mCAAmC,CAAC;AAC3C,OAAO,QAAQ,MAAM,iCAAiC,CAAC;AACvD,OAAO,YAAY,MAAM,2CAA2C,CAAC;AACrE,OAAO,IAAI,MAAM,yBAAyB,CAAC;AAC3C,OAAO,QAAQ,MAAM,iCAAiC,CAAC;AACvD,OAAO,GAAG,MAAM,uBAAuB,CAAC;AACxC,OAAO,MAAM,MAAM,6BAA6B,CAAC;AACjD,OAAO,QAAQ,MAAM,iCAAiC,CAAC;AACvD,OAAO,OAAO,MAAM,+BAA+B,CAAC;AACpD,OAAO,IAAI,MAAM,yBAAyB,CAAC;AAC3C,OAAO,eAAe,MAAM,iDAAiD,CAAC;AAC9E,OAAO,QAAQ,MAAM,iCAAiC,CAAC;AAGvD,OAAO,GAAG,MAAM,uBAAuB,CAAC;AAMxC,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,GAAG,IAAI,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAQxE,OAAO,EACL,IAAI,EACJ,GAAG,EACH,MAAM,EACN,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,GAAG,EACH,MAAM,EACN,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,eAAe,EACf,QAAQ,EACR,GAAG,EACH,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,YAAY,GACb,CAAC;AASF,eAAO,MAAM,OAAO,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/src/main.ts"],"names":[],"mappings":";AACA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,sBAAsB,CAAC;AAE9B,OAAO,EACL,OAAO,EAKR,MAAM,YAAY,CAAC;AACpB,OAAO,IAAI,MAAM,yBAAyB,CAAC;AAC3C,OAAO,GAAG,MAAM,uBAAuB,CAAC;AACxC,OAAO,MAAM,MAAM,6BAA6B,CAAC;AACjD,OAAO,SAEN,MAAM,mCAAmC,CAAC;AAC3C,OAAO,QAAQ,MAAM,iCAAiC,CAAC;AACvD,OAAO,YAAY,MAAM,2CAA2C,CAAC;AACrE,OAAO,IAAI,MAAM,yBAAyB,CAAC;AAC3C,OAAO,QAAQ,MAAM,iCAAiC,CAAC;AACvD,OAAO,GAAG,MAAM,uBAAuB,CAAC;AACxC,OAAO,MAAM,MAAM,6BAA6B,CAAC;AACjD,OAAO,QAAQ,MAAM,iCAAiC,CAAC;AACvD,OAAO,OAAO,MAAM,+BAA+B,CAAC;AACpD,OAAO,IAAI,MAAM,yBAAyB,CAAC;AAC3C,OAAO,eAAe,MAAM,iDAAiD,CAAC;AAC9E,OAAO,QAAQ,MAAM,iCAAiC,CAAC;AAGvD,OAAO,GAAG,MAAM,uBAAuB,CAAC;AAMxC,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,GAAG,IAAI,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAQxE,OAAO,EACL,IAAI,EACJ,GAAG,EACH,MAAM,EACN,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,GAAG,EACH,MAAM,EACN,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,eAAe,EACf,QAAQ,EACR,GAAG,EACH,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,YAAY,GACb,CAAC;AASF,eAAO,MAAM,OAAO,YAAY,CAAC;AAGjC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAmGsC,CAAC;AAyEpD,eAAe,OAAO,CAAC"}
|
package/types/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/src/types.ts"],"names":[],"mappings":"AAqCA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1B,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1B,QAAQ,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1B,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,GAAG,CAAC;CACf;AAED,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAEhF,eAAO,MAAM,aAAa,4FAUhB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B,CAAC;AAEF,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC5B,OAAO,CAkBT;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QA2BrD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAKvE;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,OAAO,CAC3B,SAAS,EAAE,MAAM,EACjB,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,GAAG,EACX,YAAY,EAAE,OAAO,EACrB,aAAa,EAAE,MAAM,EAAE,EACvB,OAAO,CAAC,EAAE,MAAM,EAChB,iBAAiB,CAAC,EAAE,MAAM,iBA2D3B;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG,CAQ7D;AACD,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAQ5C;AACD,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,MAAM,GAEP,QAAQ,GACR,UAAU,GACV,MAAM,GACN,UAAU,GACV,eAAe,GACf,QAAQ,GACR,KAAK,GACL,SAAS,GACT,UAAU,GACV,cAAc,GACd,mBAAmB,GACnB,eAAe,GACf,cAAc,GACd,kBAAkB,GAClB,cAAc,GACd,aAAa,GACb,aAAa,GACb,eAAe,GACf,MAAM,GACN,OAAO,GACP,UAAU,GACV,gBAAgB,GAChB,wBAAwB,CAmE3B;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAWnD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAc3D"}
|