Auto-sync Fri Feb 13 08:51:24 UTC 2026

This commit is contained in:
Bot
2026-02-13 08:51:24 +00:00
parent 3020724dde
commit bd7cd392b4
23 changed files with 1514 additions and 94 deletions

View File

@@ -46,7 +46,7 @@ services:
condition: service_healthy
volumes:
- worker_logs:/tmp/windmill/logs
- /home/akira/develop/windmill:/workspace
logging: *default-logging
windmill_worker:

View File

@@ -0,0 +1,5 @@
summary: null
display_name: App Custom Components
extra_perms:
g/all: false
owners: []

View File

@@ -0,0 +1,5 @@
summary: null
display_name: App Groups
extra_perms:
g/all: false
owners: []

View File

@@ -0,0 +1,5 @@
summary: null
display_name: App Themes
extra_perms:
g/all: false
owners: []

View File

@@ -0,0 +1,829 @@
summary: New User Setup App
value:
css:
buttoncomponent:
button:
class: ''
style: ''
container:
class: ''
style: ''
containercomponent:
container:
class: ''
style: ''
htmlcomponent:
container:
class: ''
style: ''
imagecomponent:
image:
class: ''
style: ''
schemaformcomponent:
description:
class: ''
style: ''
container:
class: ''
style: ''
label:
class: ''
style: ''
textcomponent:
container:
class: ''
style: ''
text:
class: ''
style: ''
textinputcomponent:
input:
class: ''
style: ''
fullscreen: false
grid:
- '12':
fixed: false
h: 2
w: 11
x: 0
'y': 1
'3':
fixed: false
h: 2
w: 3
x: 0
'y': 0
id: a
data:
id: a
type: textcomponent
componentInput:
type: templatev2
value: 'Hello ${ctx.username}'
connections: []
eval: Setup your Windmill Instance
fieldType: template
configuration:
copyButton:
type: static
value: false
style:
type: static
value: Body
tooltip:
type: static
value: ''
customCss:
container:
class: ''
style: ''
text:
class: text-3xl font-semibold
style: ''
horizontalAlignment: left
verticalAlignment: center
- '12':
fixed: false
h: 2
w: 1
x: 11
'y': 1
'3':
fixed: false
h: 3
w: 3
x: 0
'y': 2
id: b
data:
id: b
type: imagecomponent
configuration:
altText:
type: static
value: ''
imageFit:
type: static
value: contain
source:
type: static
value: /logo.svg
sourceKind:
type: static
value: url
customCss:
image:
class: ''
style: ''
- '12':
fixed: false
h: 12
w: 6
x: 0
'y': 6
'3':
fixed: false
h: 11
w: 3
x: 0
'y': 6
id: d
data:
id: d
type: containercomponent
configuration: {}
customCss:
container:
class: shadow-lg rounded-lg border p-2 mr-2
style: ''
numberOfSubgrids: 1
- '12':
fixed: false
h: 12
w: 6
x: 6
'y': 6
'3':
fixed: false
h: 9
w: 3
x: 0
'y': 17
id: f
data:
id: f
type: containercomponent
configuration: {}
customCss:
container:
class: shadow-lg rounded-lg border p-2 ml-2
style: ''
numberOfSubgrids: 1
- '12':
fixed: false
h: 2
w: 9
x: 3
'y': 19
'3':
fixed: false
h: 2
w: 3
x: 0
'y': 26
id: i
data:
id: i
type: buttoncomponent
componentInput:
type: runnable
autoRefresh: false
fields:
enable_hub_sync:
type: evalv2
value: null
connections:
- id: result
componentId: h
expr: h.result
fieldType: boolean
newEmail:
type: evalv2
value: null
connections:
- id: values
componentId: c
expr: c.values.new_email
fieldType: string
newPassword:
type: evalv2
value: null
connections:
- id: values
componentId: c
expr: c.values.password
fieldType: string
oldEmail:
type: evalv2
value: null
connections:
- id: email
componentId: ctx
expr: ctx.email
fieldType: string
sync_now:
type: evalv2
value: null
connections:
- id: result
componentId: k
expr: k.result
fieldType: boolean
fieldType: any
recomputeOnInputChanged: false
runnable:
name: Change Account
inlineScript:
content: '!inline change_account.inline_script.deno.ts'
lock: '!inline change_account.inline_script.lock'
language: deno
path: g/all/setup_app/Change_Account
schema:
$schema: 'https://json-schema.org/draft/2020-12/schema'
type: object
properties:
enable_hub_sync:
type: boolean
description: ''
default: null
newEmail:
type: string
description: ''
default: null
newPassword:
type: string
description: ''
default: null
oldEmail:
type: string
description: ''
default: null
sync_now:
type: boolean
description: ''
default: null
required:
- oldEmail
- newEmail
- newPassword
- enable_hub_sync
- sync_now
configuration:
afterIcon:
type: static
value: Zap
beforeIcon:
type: static
value: ''
color:
type: static
value: dark
disabled:
type: evalv2
value: false
connections:
- id: values
componentId: c
- id: valid
componentId: c
expr: >-
c?.values?.new_email === '' || c?.values?.password === ''||c.valid
=== false
fillContainer:
type: static
value: false
label:
type: static
value: Set admin account and hub sync
onError:
type: oneOf
configuration:
close:
id:
type: static
value: ''
errorOverlay: {}
gotoUrl:
newTab:
type: static
value: true
url:
type: static
value: ''
open:
id:
type: static
value: ''
sendErrorToast:
appendError:
type: static
value: true
message:
type: static
value: ''
setTab:
setTab:
type: static
value:
- id: p
index: 0
selected: setTab
onSuccess:
type: oneOf
configuration:
clearFiles:
id:
type: static
value: ''
close:
id:
type: static
value: ''
closeModal:
modalId:
type: static
value: ''
gotoUrl:
newTab:
type: static
value: false
url:
type: evalv2
value: ''
connections:
- id: result
componentId: bg_1
expr: bg_1.result
none: {}
open:
id:
type: static
value: ''
openModal:
modalId:
type: static
value: ''
sendToast:
message:
type: static
value: ''
setTab:
setTab:
type: static
value:
- id: p
index: 1
selected: gotoUrl
size:
type: static
value: lg
triggerOnAppLoad:
type: static
value: false
customCss:
button:
class: ''
style: ''
container:
class: ''
style: ''
horizontalAlignment: right
recomputeIds: []
verticalAlignment: center
- '12':
fixed: false
h: 7
w: 12
x: 0
'y': 21
'3':
fixed: false
h: 8
w: 3
x: 0
'y': 28
id: p
data:
id: p
type: conditionalwrapper
conditions:
- type: evalv2
connections:
- id: result
componentId: i
expr: i?.result.error
fieldType: boolean
- type: evalv2
connections: []
expr: 'true'
fieldType: boolean
configuration: {}
customCss:
container:
class: ''
style: ''
numberOfSubgrids: 2
hiddenInlineScripts:
- type: runnableByName
name: Background Runnable 0
fields: {}
hidden: true
- name: Compute URL
autoRefresh: true
fields: {}
inlineScript:
content: '!inline compute_url.inline_script.frontend.js'
language: frontend
path: u/faton/captivating_app/Compute_URL
refreshOn:
- id: c
key: values
suggestedRefreshOn: []
recomputeIds: []
recomputeOnInputChanged: true
norefreshbar: true
subgrids:
d-0:
- '12':
fixed: false
h: 1
w: 12
x: 0
'y': 0
'3':
fixed: false
h: 1
w: 3
x: 0
'y': 0
id: e
data:
id: e
type: textcomponent
componentInput:
type: templatev2
value: 'Hello ${ctx.username}'
connections: []
eval: Setup a secure account
fieldType: template
configuration:
copyButton:
type: static
value: false
style:
type: static
value: Body
tooltip:
type: static
value: ''
customCss:
container:
class: ''
style: ''
text:
class: text-xl font-semibold px-2
style: ''
horizontalAlignment: left
verticalAlignment: center
- '12':
fixed: false
h: 5
w: 12
x: 0
'y': 2
'3':
fixed: false
h: 5
w: 3
x: 0
'y': 2
id: c
data:
id: c
type: schemaformcomponent
componentInput:
type: static
value:
order:
- new_email
- password
properties:
new_email:
type: string
description: ''
default: ''
format: email
pattern: '^[\w-.]+@([\w-]+\.)+[\w-]{2,4}$'
password:
type: string
description: ''
customErrorMessage: Must have at least 2 chars
default: ''
password: true
pattern: ^..+$
required: []
fieldType: schema
configuration:
defaultValues:
type: static
value: {}
displayType:
type: static
value: false
dynamicEnums:
type: static
value: {}
largeGap:
type: static
value: false
customCss:
description:
class: ''
style: ''
container:
class: ''
style: ''
label:
class: ''
style: ''
- '12':
fixed: false
h: 1
w: 12
x: 0
'y': 10
'3':
fixed: false
h: 1
w: 3
x: 0
'y': 9
id: l
data:
id: l
type: textcomponent
componentInput:
type: templatev2
value: 'Hello ${ctx.username}'
connections:
- id: email
componentId: ctx
eval: 'Current email: ${ctx.email}'
fieldType: template
configuration:
copyButton:
type: static
value: false
style:
type: static
value: Caption
tooltip:
type: static
value: ''
customCss:
container:
class: ''
style: ''
text:
class: px-2
style: ''
horizontalAlignment: left
verticalAlignment: top
f-0:
- '12':
fixed: false
h: 1
w: 12
x: 0
'y': 0
'3':
fixed: false
h: 1
w: 3
x: 0
'y': 0
id: g
data:
id: g
type: textcomponent
componentInput:
type: templatev2
value: 'Hello ${ctx.username}'
connections: []
eval: Hub Sync
fieldType: template
configuration:
copyButton:
type: static
value: false
style:
type: static
value: Body
tooltip:
type: static
value: ''
customCss:
container:
class: ''
style: ''
text:
class: text-xl font-semibold px-2
style: ''
horizontalAlignment: left
verticalAlignment: center
- '12':
fixed: false
h: 6
w: 12
x: 0
'y': 2
'3':
fixed: false
h: 3
w: 3
x: 0
'y': 2
id: m
data:
id: m
type: containercomponent
configuration: {}
customCss:
container:
class: ''
style: ''
numberOfSubgrids: 1
- '12':
fixed: false
h: 1
w: 12
x: 0
'y': 10
'3':
fixed: false
h: 2
w: 3
x: 0
'y': 6
id: 'n'
data:
id: 'n'
type: textcomponent
componentInput:
type: templatev2
value: 'Hello ${ctx.username}'
connections: []
eval: The schedule synchronizes resource types from the Hub every day.
fieldType: template
configuration:
copyButton:
type: static
value: false
style:
type: static
value: Caption
tooltip:
type: static
value: ''
customCss:
container:
class: ''
style: ''
text:
class: px-2 xs
style: ''
horizontalAlignment: left
verticalAlignment: top
m-0:
- '12':
fixed: false
h: 2
w: 12
x: 0
'y': 0
'3':
fixed: false
h: 1
w: 3
x: 0
'y': 0
id: k
data:
id: k
type: checkboxcomponent
configuration:
defaultValue:
type: static
value: true
disabled:
type: static
value: false
label:
type: static
value: Sync resource types now
customCss:
container:
class: ''
style: ''
text:
class: ''
style: ''
horizontalAlignment: left
recomputeIds: []
verticalAlignment: center
- '12':
fixed: false
h: 2
w: 12
x: 0
'y': 2
'3':
fixed: false
h: 1
w: 3
x: 0
'y': 1
id: h
data:
id: h
type: checkboxcomponent
configuration:
defaultValue:
type: static
value: true
disabled:
type: static
value: false
label:
type: static
value: Sync resource types every day
customCss:
container:
class: ''
style: ''
text:
class: ''
style: ''
horizontalAlignment: left
recomputeIds: []
verticalAlignment: center
p-0:
- '12':
fixed: false
h: 3
w: 12
x: 0
'y': 0
'3':
fixed: false
h: 1
w: 2
x: 0
'y': 0
id: j
data:
id: j
type: alertcomponent
configuration:
type:
type: static
value: error
description:
type: evalv2
value: Description
connections:
- id: result
componentId: i
expr: i?.result?.error?.message
collapsible:
type: static
value: false
initiallyCollapsed:
type: static
value: false
notRounded:
type: static
value: false
size:
type: static
value: sm
title:
type: static
value: 'There were an error with your setup:'
tooltip:
type: static
value: ''
customCss:
description:
class: ''
style: ''
background:
class: ''
style: ''
container:
class: ''
style: ''
icon:
class: ''
style: ''
title:
class: ''
style: ''
verticalAlignment: center
p-1: []
theme:
type: path
path: f/app_themes/theme_0
unusedInlineScripts: []

View File

@@ -0,0 +1,72 @@
import * as wmill from "https://deno.land/x/windmill@v1.99.0/mod.ts";
export async function main(
oldEmail: string,
newEmail: string,
newPassword: string,
enable_hub_sync: boolean,
sync_now: boolean,
) {
try {
await wmill.UserService.createUserGlobally({
requestBody: {
email: newEmail,
password: newPassword,
super_admin: true,
},
});
} catch (e) {
throw Error("User already exists: " + e.body);
}
let new_token;
try {
new_token = await wmill.UserService.login({
requestBody: {
email: newEmail,
password: newPassword,
},
});
} catch (e) {
throw Error("Login failed: " + e.body);
}
wmill.setClient(new_token, Deno.env.get("BASE_INTERNAL_URL")!);
if (sync_now) {
try {
await wmill.JobService.runScriptByPath({
workspace: "admins",
path: "u/admin/hub_sync",
requestBody: {},
});
} catch (e) {
throw Error("Hub sync failed:" + e.body);
}
}
if (enable_hub_sync) {
try {
await wmill.ScheduleService.createSchedule({
workspace: "admins",
requestBody: {
path: "g/all/hub_sync",
schedule: "0 0 0 * * *",
script_path: "u/admin/hub_sync",
is_flow: false,
args: {},
enabled: true,
timezone: "Etc/UTC",
},
});
} catch (e) {
throw Error("Error creating schedule: " + e.body);
}
}
try {
await wmill.UserService.globalUserDelete({ email: oldEmail });
} catch (e) {
throw Error("Deleting old account failed: " + e.body);
}
}

View File

@@ -0,0 +1,172 @@
{
"version": "4",
"remote": {
"https://deno.land/std@0.160.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74",
"https://deno.land/std@0.160.0/_util/os.ts": "8a33345f74990e627b9dfe2de9b040004b08ea5146c7c9e8fe9a29070d193934",
"https://deno.land/std@0.160.0/async/abortable.ts": "87aa7230be8360c24ad437212311c9e8d4328854baec27b4c7abb26e85515c06",
"https://deno.land/std@0.160.0/async/deadline.ts": "48ac998d7564969f3e6ec6b6f9bf0217ebd00239b1b2292feba61272d5dd58d0",
"https://deno.land/std@0.160.0/async/debounce.ts": "dc8b92d4a4fe7eac32c924f2b8d3e62112530db70cadce27042689d82970b350",
"https://deno.land/std@0.160.0/async/deferred.ts": "d8fb253ffde2a056e4889ef7e90f3928f28be9f9294b6505773d33f136aab4e6",
"https://deno.land/std@0.160.0/async/delay.ts": "0419dfc993752849692d1f9647edf13407c7facc3509b099381be99ffbc9d699",
"https://deno.land/std@0.160.0/async/mod.ts": "dd0a8ed4f3984ffabe2fcca7c9f466b7932d57b1864ffee148a5d5388316db6b",
"https://deno.land/std@0.160.0/async/mux_async_iterator.ts": "3447b28a2a582224a3d4d3596bccbba6e85040da3b97ed64012f7decce98d093",
"https://deno.land/std@0.160.0/async/pool.ts": "ef9eb97b388543acbf0ac32647121e4dbe629236899586c4d4311a8770fbb239",
"https://deno.land/std@0.160.0/async/tee.ts": "9af3a3e7612af75861308b52249e167f5ebc3dcfc8a1a4d45462d96606ee2b70",
"https://deno.land/std@0.160.0/bytes/bytes_list.ts": "aba5e2369e77d426b10af1de0dcc4531acecec27f9b9056f4f7bfbf8ac147ab4",
"https://deno.land/std@0.160.0/bytes/equals.ts": "3c3558c3ae85526f84510aa2b48ab2ad7bdd899e2e0f5b7a8ffc85acb3a6043a",
"https://deno.land/std@0.160.0/bytes/mod.ts": "b2e342fd3669176a27a4e15061e9d588b89c1aaf5008ab71766e23669565d179",
"https://deno.land/std@0.160.0/crypto/_fnv/fnv32.ts": "aa9bddead8c6345087d3abd4ef35fb9655622afc333fc41fff382b36e64280b5",
"https://deno.land/std@0.160.0/crypto/_fnv/fnv64.ts": "625d7e7505b6cb2e9801b5fd6ed0a89256bac12b2bbb3e4664b85a88b0ec5bef",
"https://deno.land/std@0.160.0/crypto/_fnv/index.ts": "a8f6a361b4c6d54e5e89c16098f99b6962a1dd6ad1307dbc97fa1ecac5d7060a",
"https://deno.land/std@0.160.0/crypto/_fnv/util.ts": "4848313bed7f00f55be3cb080aa0583fc007812ba965b03e4009665bde614ce3",
"https://deno.land/std@0.160.0/crypto/_wasm_crypto/lib/deno_std_wasm_crypto.generated.mjs": "258b484c2da27578bec61c01d4b62c21f72268d928d03c968c4eb590cb3bd830",
"https://deno.land/std@0.160.0/crypto/_wasm_crypto/mod.ts": "6c60d332716147ded0eece0861780678d51b560f533b27db2e15c64a4ef83665",
"https://deno.land/std@0.160.0/crypto/keystack.ts": "e481eed28007395e554a435e880fee83a5c73b9259ed8a135a75e4b1e4f381f7",
"https://deno.land/std@0.160.0/crypto/mod.ts": "fadedc013b4a86fda6305f1adc6d1c02225834d53cff5d95cc05f62b25127517",
"https://deno.land/std@0.160.0/crypto/timing_safe_equal.ts": "82a29b737bc8932d75d7a20c404136089d5d23629e94ba14efa98a8cc066c73e",
"https://deno.land/std@0.160.0/datetime/formatter.ts": "7c8e6d16a0950f400aef41b9f1eb9168249869776ec520265dfda785d746589e",
"https://deno.land/std@0.160.0/datetime/mod.ts": "ea927ca96dfb28c7b9a5eed5bdc7ac46bb9db38038c4922631895cea342fea87",
"https://deno.land/std@0.160.0/datetime/tokenizer.ts": "7381e28f6ab51cb504c7e132be31773d73ef2f3e1e50a812736962b9df1e8c47",
"https://deno.land/std@0.160.0/encoding/base64.ts": "c57868ca7fa2fbe919f57f88a623ad34e3d970d675bdc1ff3a9d02bba7409db2",
"https://deno.land/std@0.160.0/encoding/base64url.ts": "a5f82a9fa703bd85a5eb8e7c1296bc6529e601ebd9642cc2b5eaa6b38fa9e05a",
"https://deno.land/std@0.160.0/encoding/hex.ts": "4cc5324417cbb4ac9b828453d35aed45b9cc29506fad658f1f138d981ae33795",
"https://deno.land/std@0.160.0/fmt/colors.ts": "9e36a716611dcd2e4865adea9c4bec916b5c60caad4cdcdc630d4974e6bb8bd4",
"https://deno.land/std@0.160.0/io/buffer.ts": "fae02290f52301c4e0188670e730cd902f9307fb732d79c4aa14ebdc82497289",
"https://deno.land/std@0.160.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3",
"https://deno.land/std@0.160.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09",
"https://deno.land/std@0.160.0/path/_util.ts": "d16be2a16e1204b65f9d0dfc54a9bc472cafe5f4a190b3c8471ec2016ccd1677",
"https://deno.land/std@0.160.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633",
"https://deno.land/std@0.160.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee",
"https://deno.land/std@0.160.0/path/mod.ts": "56fec03ad0ebd61b6ab39ddb9b0ddb4c4a5c9f2f4f632e09dd37ec9ebfd722ac",
"https://deno.land/std@0.160.0/path/posix.ts": "6b63de7097e68c8663c84ccedc0fd977656eb134432d818ecd3a4e122638ac24",
"https://deno.land/std@0.160.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9",
"https://deno.land/std@0.160.0/path/win32.ts": "ee8826dce087d31c5c81cd414714e677eb68febc40308de87a2ce4b40e10fb8d",
"https://deno.land/std@0.160.0/testing/_diff.ts": "a23e7fc2b4d8daa3e158fa06856bedf5334ce2a2831e8bf9e509717f455adb2c",
"https://deno.land/std@0.160.0/testing/_format.ts": "cd11136e1797791045e639e9f0f4640d5b4166148796cad37e6ef75f7d7f3832",
"https://deno.land/std@0.160.0/testing/asserts.ts": "1e340c589853e82e0807629ba31a43c84ebdcdeca910c4a9705715dfdb0f5ce8",
"https://deno.land/x/postgres@v0.17.0/client.ts": "348779c9f6a1c75ef1336db662faf08dce7d2101ff72f0d1e341ba1505c8431d",
"https://deno.land/x/postgres@v0.17.0/client/error.ts": "0817583b666fd546664ed52c1d37beccc5a9eebcc6e3c2ead20ada99b681e5f7",
"https://deno.land/x/postgres@v0.17.0/connection/auth.ts": "1070125e2ac4ca4ade36d69a4222d37001903092826d313217987583edd61ce9",
"https://deno.land/x/postgres@v0.17.0/connection/connection.ts": "428ed3efa055870db505092b5d3545ef743497b7b4b72cf8f0593e7dd4788acd",
"https://deno.land/x/postgres@v0.17.0/connection/connection_params.ts": "52bfe90e8860f584b95b1b08c254dde97c3aa763c4b6bee0c80c5930e35459e0",
"https://deno.land/x/postgres@v0.17.0/connection/message.ts": "f9257948b7f87d58bfbfe3fc6e2e08f0de3ef885655904d56a5f73655cc22c5a",
"https://deno.land/x/postgres@v0.17.0/connection/message_code.ts": "466719008b298770c366c5c63f6cf8285b7f76514dadb4b11e7d9756a8a1ddbf",
"https://deno.land/x/postgres@v0.17.0/connection/packet.ts": "050aeff1fc13c9349e89451a155ffcd0b1343dc313a51f84439e3e45f64b56c8",
"https://deno.land/x/postgres@v0.17.0/connection/scram.ts": "0c7a2551fe7b1a1c62dd856b7714731a7e7534ccca10093336782d1bfc5b2bd2",
"https://deno.land/x/postgres@v0.17.0/deps.ts": "f47ccb41f7f97eaad455d94f407ef97146ae99443dbe782894422c869fbba69e",
"https://deno.land/x/postgres@v0.17.0/mod.ts": "a1e18fd9e6fedc8bc24e5aeec3ae6de45e2274be1411fb66e9081420c5e81d7d",
"https://deno.land/x/postgres@v0.17.0/pool.ts": "892db7b5e1787988babecc994a151ebbd7d017f080905cbe9c3d7b44a73032a9",
"https://deno.land/x/postgres@v0.17.0/query/array_parser.ts": "f8a229d82c3801de8266fa2cc4afe12e94fef8d0c479e73655c86ed3667ef33f",
"https://deno.land/x/postgres@v0.17.0/query/decode.ts": "44a4a6cbcf494ed91a4fecae38a57dce63a7b519166f02c702791d9717371419",
"https://deno.land/x/postgres@v0.17.0/query/decoders.ts": "16cb0e60227d86692931e315421b15768c78526e3aeb84e25fcc4111096de9fd",
"https://deno.land/x/postgres@v0.17.0/query/encode.ts": "5f1418a2932b7c2231556e4a5f5f56efef48728014070cfafe7656963f342933",
"https://deno.land/x/postgres@v0.17.0/query/oid.ts": "8c33e1325f34e4ca9f11a48b8066c8cfcace5f64bc1eb17ad7247af4936999e1",
"https://deno.land/x/postgres@v0.17.0/query/query.ts": "edb473cbcfeff2ee1c631272afb25d079d06b66b5853f42492725b03ffa742b6",
"https://deno.land/x/postgres@v0.17.0/query/transaction.ts": "8e75c3ce0aca97da7fe126e68f8e6c08d640e5c8d2016e62cee5c254bebe7fe8",
"https://deno.land/x/postgres@v0.17.0/query/types.ts": "a6dc8024867fe7ccb0ba4b4fa403ee5d474c7742174128c8e689c3b5e5eaa933",
"https://deno.land/x/postgres@v0.17.0/utils/deferred.ts": "dd94f2a57355355c47812b061a51b55263f72d24e9cb3fdb474c7519f4d61083",
"https://deno.land/x/postgres@v0.17.0/utils/utils.ts": "19c3527ddd5c6c4c49ae36397120274c7f41f9d3cbf479cb36065d23329e9f90",
"https://deno.land/x/windmill@v1.99.0/mod.ts": "6a2f2eb7c25c0e305b29acca5ae0a04ddd223d313c6d659fdb4a9b0c99b29040",
"https://deno.land/x/windmill@v1.99.0/pg.ts": "841515a5633464ba2e70777e264eaad104f0e0191ad93f8eb7e85070a71de0e3",
"https://deno.land/x/windmill@v1.99.0/windmill-api/core/ApiError.ts": "d3139fc732bcb6207b01c086f6f46b7e2c244f752ac01921a70cabb380d9c921",
"https://deno.land/x/windmill@v1.99.0/windmill-api/core/ApiRequestOptions.ts": "dbf0cddf0fff4e97e9fc76d142fec32da4fcb9c16be80efbf37144434fb716a5",
"https://deno.land/x/windmill@v1.99.0/windmill-api/core/ApiResult.ts": "203f365871242de44402e927f08b07888d99db13f1c4dd56cd9bd5b706de169c",
"https://deno.land/x/windmill@v1.99.0/windmill-api/core/CancelablePromise.ts": "9512059962d4dd415cb7678a8a3accccc92f2ebb581e3bfb19200d83ebaea344",
"https://deno.land/x/windmill@v1.99.0/windmill-api/core/OpenAPI.ts": "dc44d4a7ea75373c2bdb4f97a73dd071d55c8dfa9115522aeefee02ed6210010",
"https://deno.land/x/windmill@v1.99.0/windmill-api/core/request.ts": "7cdd1fb083e30793e46d144d6c20a899286648e56af5ae2635ee721253608aea",
"https://deno.land/x/windmill@v1.99.0/windmill-api/index.ts": "08a4f211d5c7ea6dc952de585f1d0103bdd7a0f1db3f670c290fcf70cb3ba416",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/AppWithLastVersion.ts": "fd70d4c9791bd4af4ea19e1c55addbbde896190556be3f7678ea52e561d920ef",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/AppWithLastVersionWDraft.ts": "ab55799c1cd2ded12280e6deeb6e2980e6d6bbc53224f84fe842cc98f356cbc7",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/AuditLog.ts": "87bffeef830ca2563395c020ddbadbfc03c5eaae08f23b219a622a4259aa7a5c",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/BranchAll.ts": "341fac8a2375c875020599ddd41012e13928f61a0f5aceacd40faf8365f918df",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/BranchOne.ts": "1d1bd9aa993382aa1005aa77d265694cc06b1fcce79f6438faa10230f76e9e89",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/CompletedJob.ts": "d3bf510ab51d81692b33a2045e3bbdfd50e7c1e341e9176666180ea1fd3479a1",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/ContextualVariable.ts": "5fe49f330cf2b64e9e7588d8c5e22835897e89d107bc79611764316809d00b4c",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/CreateInput.ts": "65738017b52963d452344fb7fb87e01d9db3b376ec94efaa0393ea5b8ed9ad54",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/CreateResource.ts": "9d0e6f1647b958d5f8fb60b955bd8a20c2bcd6fec76f5ca10afd4138dd40c83c",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/CreateVariable.ts": "8e1364b48f1712a4f3b9247ed0a98d0c9102e6f85592cb5874770344122e9d1e",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/CreateWorkspace.ts": "13bf9b0ae70670144005e801d3fcecfe97369f99a8c4f7fde2ec9efc40ab8c94",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/EditResource.ts": "9d26febafb3320817125a92d0ea30fd32d8cdb7ae3e3ebd172638f8ec3e21fad",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/EditResourceType.ts": "b0a230f4c6fc34727ed0bc0dfaeec55235b2ad32fae7f27554639274fbf9601b",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/EditSchedule.ts": "777ea972a331340caad293adbea815d6fe3a23b77bb4c9b74123b0b54f900156",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/EditVariable.ts": "d68944af3ae8f86df55e5c3cf0404adf591f297f4d96326824b3134622aacfbb",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/EditWorkspaceUser.ts": "fdef3e980effab27c4c63840282c09e59c0dfc52b10ecaf3cb94f4f476f507a9",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/Flow.ts": "b1a0915ea1fdc0582ee9e7fc0885672dc877a73c33cee156711c202abb10b845",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/FlowMetadata.ts": "e5ea1c783e436e1d34f1af2b312692b88672287a8228b3ef023fa9d76106480b",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/FlowModule.ts": "e56541538c1b7b03050e2b5484b9a730e98851617360447e9636b683f4247109",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/FlowModuleValue.ts": "2fb026379e6f5d9a19aba26d9826aac6b6718ca6c45d8c7519ecfe8bd8f722a3",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/FlowPreview.ts": "a65e71c62e49ddf66dcbabc7086c2e1491087ccd718d384c60b33107fdc853f0",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/FlowStatus.ts": "d594c8dce4d42d043412a2f33cb6e292f5502fbdc085d2344bc72ae987cfd48c",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/FlowStatusModule.ts": "aea0c8753c3b796de85a4b901d6d0429e99534cf1d54f5271d479809d95b8c67",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/FlowValue.ts": "1a1c25f1c9f8b8c7928121c4a0332b2bfaa3f167da8c01702d1f573fcd174b0b",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/Folder.ts": "46cda8b84fc8cbf4c707263752d587e08aee309e2744d6644b9fc5fdd56539a0",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/ForloopFlow.ts": "cb0253e564e83232a75c9443a9591cb95b5233b15b269d71f545a4f53f3b225c",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/GlobalUserInfo.ts": "9b9eb0c6fd730c2242158b829fd0475f74509de82ffcaceceb0a48c306347bb3",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/Group.ts": "078299123198e5620e88b49160e9c8054d3b454f0e675fb7dc01d2eec60b3e77",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/Identity.ts": "1bd4f508aa5c4ef594444f85bd2785e83871a0b2535bc3073217a7ae77577c3e",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/Input.ts": "6753840e944c5db46d8479ddfd40e18cabb1d5a46b11764c7f5d0e272d9a855e",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/InputTransform.ts": "8275e7297c573c771d32ce010f656f75a8262f7230c78eada40579a61f91cd25",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/JavascriptTransform.ts": "22fcd44a654281e805094c65feef9acc969ea17e83785c0cf5e7288561b52c8a",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/Job.ts": "04bc2c79d2fa55ce84236f5ec3a70d5e4f07b6a1ec754be1e23d2b2e2fe1cb39",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/ListableApp.ts": "e696f193945b2da44f824b604e9b17eec30a10b3f533dac1c60f65b48eb6d1b9",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/ListableRawApp.ts": "bfbecb5983e5257d570e49710142af0f06c89f02f2c0ddd9073de95ac3f83731",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/ListableResource.ts": "fe25a5ce0fe6829ad11737b4829d66dcf8ee67245d670d7ba7a38b2cf001e701",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/ListableVariable.ts": "520ea27e5f6d0dbcca508293dd2edbf26fafbb6d11aa52c8dadfbc0389db9f7d",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/Login.ts": "a76d0d6a9c7836aec28275a924b4bd3fb2d6cf09459eafe0eeebd881f5fc50cd",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/MainArgSignature.ts": "4d3c446540fbcdc9650a9db43ebdc5b5778e9453de5e0cf6fbd24d6cfcdf20ca",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/NewSchedule.ts": "e359529de5e2c9c742a5a04f8facd3ffd8604ce860887cf07ffd96c8efc58a6e",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/NewScript.ts": "ef7b33129041b0a3595958ac09a184f73bea2e1e0705a8b61a9970b487c8ca37",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/NewScriptWithDraft.ts": "fc342d7ddb9f98ea0df485d7111ef77eb17aa23a1e0aec5dcfce02d7976a9790",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/NewToken.ts": "d85bc25509967bda432e420a566fe1def4ee5f44f92b62cc16025a26fa7dc2cb",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/NewTokenImpersonate.ts": "25004b2acb3cdb851d2cd8bfdc4d3d3c58c4eb45c16dcbe2ef1e0e3191bea424",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/NewUser.ts": "c225f73b82771bff95e6a82707bc45fab61508cd2290dc0404d2ce650910a159",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/OpenFlow.ts": "b5afbce63fb044b203e5cdcf5b56c42802c855159d79df3cd1b4c83b55a74329",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/OpenFlowWPath.ts": "ddde2d71f030594da767f7a1d75bae875c00c1f7eb19439914afcb94c775169a",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/PathFlow.ts": "adfac10c278f00c89d36bb3af99494c04d9d817c6d0e68a6e01e8e2eb2dff77d",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/PathScript.ts": "c794d92d061017f2e3e6361e1f7cded8ce53b79a40a6bbb248002f040b31151f",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/Policy.ts": "26f3f21aa23753343eaa91f7b7e4e7c26a0b5cd95e384d8a0c91032f7b656ae5",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/Preview.ts": "2b80a56203086052f3f423a433d7b514cdd071d6cf6b4559e5601d6aa50a6a7d",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/QueuedJob.ts": "4a01170df04a07c80def5e2d2b204db925dd9cc389deed8d5aa315ba2b5cef3f",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/RawScript.ts": "7202a918347961e4706761b08555475bc3dd8b9fccca3fe8d0a242e44eec94c6",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/Resource.ts": "ac87ef39dfd2bc28dc488e6c79250772c4af28d9624affc07ff0348dc38f2c36",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/ResourceType.ts": "a001b45bcbcc9be538f38fbc8a2553987d978815a4d69346c47e426a23eb52ed",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/Retry.ts": "2b2cb6cfa6c60e6791f4fccea779f5903db101b14492a3254174e535d3c3da91",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/RunnableType.ts": "55a85e67a76736b15c5e4b4bb865539d2925006b75f0dc7e51cc88d2aff3134d",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/Schedule.ts": "418a5e3d17234d704e860141e09169288232dc8c10407e76d74b56820b4135ca",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/Script.ts": "574132858039abe37d71f4fa1256e6e68942a58457a39cf4fc08b43fc3bf32d7",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/ScriptArgs.ts": "14cdb2905b91c7356b87287978b82175f9d5f6075e063eeb47ed0a89efff41cc",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/SlackToken.ts": "d4408d75e23b9be7819f34c7717bf9e5150619603fc255b102e723fb458a9ccb",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/StaticTransform.ts": "d4f056f72abce7eb61748a543a5c6dd5cd9828f24a096a2298b4bdddb2d93f4d",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/TokenResponse.ts": "0763c5c53cbdb3406c0d944858830d283a6e33b840f807c267d3210b58c5cde7",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/TruncatedToken.ts": "3a8f0a003d9aeb5041813b3a940beae24740d1ca4432c665a1e06635681ac8ec",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/UpdateInput.ts": "7fa0e372cb44e43e25debe9204ef0e394e06a2d53672b2984114d16aa4fba602",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/Usage.ts": "a5763c34e75d5d542997bf0ba50787863639ea234478b4153500734fe687dfa4",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/User.ts": "0afba70e429b0d707315d3b7990c0041cb3a0a5b690037a100254213eee0793a",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/UserWorkspaceList.ts": "77d85559a562b3d55860c8b90914a4f5cec6ef8a4571531a9dbb3675bbda54f5",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/WorkerPing.ts": "42b66662008fe6c035bd27fd6ba498eca6352f1447c803a6552d5b3d82e090c3",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/Workspace.ts": "d9474a123d8697e3ce2da8bcf91caf01749d9d9cce2e91948f3c33ab463cb4d0",
"https://deno.land/x/windmill@v1.99.0/windmill-api/models/WorkspaceInvite.ts": "f2507959e68c78ca8ae363461f3258b233c33739bf236d38558e86838de1adb2",
"https://deno.land/x/windmill@v1.99.0/windmill-api/services/AdminService.ts": "012abc99c87013c175317dd6f77535bdaf572361762660dcdc983f8c67feab2c",
"https://deno.land/x/windmill@v1.99.0/windmill-api/services/AppService.ts": "299fe2de2ece3f8e4ef65c7d8db42ffd8cf5f3b97511dad0bc40ac3409411d71",
"https://deno.land/x/windmill@v1.99.0/windmill-api/services/AuditService.ts": "099bc1398cf91d861214e38bfad99914902682fb14a578cb33e6b6ebd7090a11",
"https://deno.land/x/windmill@v1.99.0/windmill-api/services/CaptureService.ts": "f83e9c46e43f141f029cf31ed202ce3d3da57f64fa6625370cca8bfb61ba15ad",
"https://deno.land/x/windmill@v1.99.0/windmill-api/services/DraftService.ts": "f046fd7b6337ac8479e5641ec43e44e4c926503954d3260faad568e2db8cf88e",
"https://deno.land/x/windmill@v1.99.0/windmill-api/services/FavoriteService.ts": "f0d5677a85889f20e017585ffbfae49e140241f4e88581c7e55e6f9110b05a39",
"https://deno.land/x/windmill@v1.99.0/windmill-api/services/FlowService.ts": "9c7f71a55cf7ad3d18ddd591471825bfe7e7257826a7369b6d5ac1b8b8703309",
"https://deno.land/x/windmill@v1.99.0/windmill-api/services/FolderService.ts": "a05f9ca3e1faf78498993ed23b0ae719641a67c5444cac1696ae87a5426a7283",
"https://deno.land/x/windmill@v1.99.0/windmill-api/services/GranularAclService.ts": "d765fae471bf2bf8f6ae6a4d74bd7d1202c065e9ddff5a3313999cf63314e2c9",
"https://deno.land/x/windmill@v1.99.0/windmill-api/services/GroupService.ts": "ea285dc6f2bf18f285f6c38168247839d46cb5998846e1c6a7890265ecf3fbe1",
"https://deno.land/x/windmill@v1.99.0/windmill-api/services/InputService.ts": "c45ca1e2e6e7c862cae6a3511cc926dc2d90e9b5618d393dfbf2b1f2da24c433",
"https://deno.land/x/windmill@v1.99.0/windmill-api/services/JobService.ts": "19a671e93205ee3e885e868ccd2ce0e9af021d3b894b1a20753e535d1857de03",
"https://deno.land/x/windmill@v1.99.0/windmill-api/services/OauthService.ts": "1ed3abd3e70bad4b8ef21f77d38df8cbbf18a49ccf0216dcc6b95954a47eb626",
"https://deno.land/x/windmill@v1.99.0/windmill-api/services/RawAppService.ts": "9c3efd68886a5a59f5fc07ded13ce30cc863ddee3d8f25bab6bccc8e7a6d5386",
"https://deno.land/x/windmill@v1.99.0/windmill-api/services/ResourceService.ts": "2aa344f85b6e279a9c6e9aa58a40359c40444e8ea5cd0b55b0b0bbed619662bd",
"https://deno.land/x/windmill@v1.99.0/windmill-api/services/ScheduleService.ts": "708c39f22f445c9d9fc75b5a640c25ad30057d3b68f698e37e3a9c4f24ad81b5",
"https://deno.land/x/windmill@v1.99.0/windmill-api/services/ScriptService.ts": "f7230592696702b96981ce381febd23cb8fca0b7268e8b6a0a74fd2ecf686d7e",
"https://deno.land/x/windmill@v1.99.0/windmill-api/services/SettingsService.ts": "6beb1e904073b13c4b160b08f842f128f478fdeb686529675d063e1d50660000",
"https://deno.land/x/windmill@v1.99.0/windmill-api/services/UserService.ts": "785ff14cf1bf9f50af90da2e770b211aa6b7c9e48d58f91fee1d5bf802c45e75",
"https://deno.land/x/windmill@v1.99.0/windmill-api/services/VariableService.ts": "30874fc564c7817435ca2d4ec0ab459c3394a2308f4daf22ae3f92a10ccb02cc",
"https://deno.land/x/windmill@v1.99.0/windmill-api/services/WorkerService.ts": "701afbaac9036c30f11aae87ea06804a236d3e0509438b49226996b23bffc184",
"https://deno.land/x/windmill@v1.99.0/windmill-api/services/WorkspaceService.ts": "2e945ccde1c8a2ef683597db304abae8501d81be604f051b62998642f9d39b31"
}
}

View File

@@ -0,0 +1 @@
return '/user/logout?rd=' + encodeURIComponent('/user/login?email=' + c.values.new_email)

View File

@@ -0,0 +1,283 @@
{
"dependencies": {
"windmill-cli": "1.566.1"
}
}
//bun.lock
{
"lockfileVersion": 1,
"workspaces": {
"": {
"dependencies": {
"windmill-cli": "1.566.1",
},
},
},
"packages": {
"@ayonli/jsext": ["@ayonli/jsext@1.9.0", "", { "dependencies": { "iconv-lite": "^0.6.3", "sudo-prompt": "^9.2.1", "ws": "^8.17.0", "zod": "^3.23.8" } }, "sha512-hIu6lQhoLr5e26lmt+vzopuZffaAyb623r4+8HlN/rhXgm2ywHslzk7UHiATdfDbfPjBARkB6cfXjVEi3aav6g=="],
"@deno/shim-deno": ["@deno/shim-deno@0.18.2", "", { "dependencies": { "@deno/shim-deno-test": "^0.5.0", "which": "^4.0.0" } }, "sha512-oQ0CVmOio63wlhwQF75zA4ioolPvOwAoK0yuzcS5bDC1JUvH3y1GS8xPh8EOpcoDQRU4FTG8OQfxhpR+c6DrzA=="],
"@deno/shim-deno-test": ["@deno/shim-deno-test@0.5.0", "", {}, "sha512-4nMhecpGlPi0cSzT67L+Tm+GOJqvuk8gqHBziqcUQOarnuIax1z96/gJHCSIz2Z0zhxE6Rzwb3IZXPtFh51j+w=="],
"@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.11", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg=="],
"@esbuild/android-arm": ["@esbuild/android-arm@0.25.11", "", { "os": "android", "cpu": "arm" }, "sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg=="],
"@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.11", "", { "os": "android", "cpu": "arm64" }, "sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ=="],
"@esbuild/android-x64": ["@esbuild/android-x64@0.25.11", "", { "os": "android", "cpu": "x64" }, "sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g=="],
"@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.11", "", { "os": "darwin", "cpu": "arm64" }, "sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w=="],
"@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.11", "", { "os": "darwin", "cpu": "x64" }, "sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ=="],
"@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.11", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA=="],
"@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.11", "", { "os": "freebsd", "cpu": "x64" }, "sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw=="],
"@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.11", "", { "os": "linux", "cpu": "arm" }, "sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw=="],
"@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.11", "", { "os": "linux", "cpu": "arm64" }, "sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA=="],
"@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.11", "", { "os": "linux", "cpu": "ia32" }, "sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw=="],
"@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.11", "", { "os": "linux", "cpu": "none" }, "sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw=="],
"@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.11", "", { "os": "linux", "cpu": "none" }, "sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ=="],
"@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.11", "", { "os": "linux", "cpu": "ppc64" }, "sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw=="],
"@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.11", "", { "os": "linux", "cpu": "none" }, "sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww=="],
"@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.11", "", { "os": "linux", "cpu": "s390x" }, "sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw=="],
"@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.11", "", { "os": "linux", "cpu": "x64" }, "sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ=="],
"@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.11", "", { "os": "none", "cpu": "arm64" }, "sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg=="],
"@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.11", "", { "os": "none", "cpu": "x64" }, "sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A=="],
"@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.11", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg=="],
"@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.11", "", { "os": "openbsd", "cpu": "x64" }, "sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw=="],
"@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.11", "", { "os": "none", "cpu": "arm64" }, "sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ=="],
"@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.11", "", { "os": "sunos", "cpu": "x64" }, "sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA=="],
"@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.11", "", { "os": "win32", "cpu": "arm64" }, "sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q=="],
"@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.11", "", { "os": "win32", "cpu": "ia32" }, "sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA=="],
"@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.11", "", { "os": "win32", "cpu": "x64" }, "sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA=="],
"@isaacs/balanced-match": ["@isaacs/balanced-match@4.0.1", "", {}, "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ=="],
"@isaacs/brace-expansion": ["@isaacs/brace-expansion@5.0.0", "", { "dependencies": { "@isaacs/balanced-match": "^4.0.1" } }, "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA=="],
"accepts": ["accepts@2.0.0", "", { "dependencies": { "mime-types": "^3.0.0", "negotiator": "^1.0.0" } }, "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng=="],
"body-parser": ["body-parser@2.2.0", "", { "dependencies": { "bytes": "^3.1.2", "content-type": "^1.0.5", "debug": "^4.4.0", "http-errors": "^2.0.0", "iconv-lite": "^0.6.3", "on-finished": "^2.4.1", "qs": "^6.14.0", "raw-body": "^3.0.0", "type-is": "^2.0.0" } }, "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg=="],
"bundle-name": ["bundle-name@4.1.0", "", { "dependencies": { "run-applescript": "^7.0.0" } }, "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q=="],
"bytes": ["bytes@3.1.2", "", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="],
"call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="],
"call-bound": ["call-bound@1.0.4", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="],
"content-disposition": ["content-disposition@1.0.0", "", { "dependencies": { "safe-buffer": "5.2.1" } }, "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg=="],
"content-type": ["content-type@1.0.5", "", {}, "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="],
"cookie": ["cookie@0.7.2", "", {}, "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="],
"cookie-signature": ["cookie-signature@1.2.2", "", {}, "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg=="],
"core-util-is": ["core-util-is@1.0.3", "", {}, "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="],
"debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="],
"default-browser": ["default-browser@5.2.1", "", { "dependencies": { "bundle-name": "^4.1.0", "default-browser-id": "^5.0.0" } }, "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg=="],
"default-browser-id": ["default-browser-id@5.0.0", "", {}, "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA=="],
"define-lazy-prop": ["define-lazy-prop@3.0.0", "", {}, "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg=="],
"depd": ["depd@2.0.0", "", {}, "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="],
"diff": ["diff@8.0.2", "", {}, "sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg=="],
"dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="],
"ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="],
"encodeurl": ["encodeurl@2.0.0", "", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="],
"es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="],
"es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="],
"es-main": ["es-main@1.4.0", "", {}, "sha512-/rYhbfGK/1E6L7TcoUqmrWbSnOlMoxahiZInSYKbhIZ4/dbclHtXEcrViu4Az9IzYNBT8LcXpPszfS47zbGpwA=="],
"es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="],
"esbuild": ["esbuild@0.25.11", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.11", "@esbuild/android-arm": "0.25.11", "@esbuild/android-arm64": "0.25.11", "@esbuild/android-x64": "0.25.11", "@esbuild/darwin-arm64": "0.25.11", "@esbuild/darwin-x64": "0.25.11", "@esbuild/freebsd-arm64": "0.25.11", "@esbuild/freebsd-x64": "0.25.11", "@esbuild/linux-arm": "0.25.11", "@esbuild/linux-arm64": "0.25.11", "@esbuild/linux-ia32": "0.25.11", "@esbuild/linux-loong64": "0.25.11", "@esbuild/linux-mips64el": "0.25.11", "@esbuild/linux-ppc64": "0.25.11", "@esbuild/linux-riscv64": "0.25.11", "@esbuild/linux-s390x": "0.25.11", "@esbuild/linux-x64": "0.25.11", "@esbuild/netbsd-arm64": "0.25.11", "@esbuild/netbsd-x64": "0.25.11", "@esbuild/openbsd-arm64": "0.25.11", "@esbuild/openbsd-x64": "0.25.11", "@esbuild/openharmony-arm64": "0.25.11", "@esbuild/sunos-x64": "0.25.11", "@esbuild/win32-arm64": "0.25.11", "@esbuild/win32-ia32": "0.25.11", "@esbuild/win32-x64": "0.25.11" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q=="],
"escape-html": ["escape-html@1.0.3", "", {}, "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="],
"etag": ["etag@1.8.1", "", {}, "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="],
"express": ["express@5.1.0", "", { "dependencies": { "accepts": "^2.0.0", "body-parser": "^2.2.0", "content-disposition": "^1.0.0", "content-type": "^1.0.5", "cookie": "^0.7.1", "cookie-signature": "^1.2.1", "debug": "^4.4.0", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "etag": "^1.8.1", "finalhandler": "^2.1.0", "fresh": "^2.0.0", "http-errors": "^2.0.0", "merge-descriptors": "^2.0.0", "mime-types": "^3.0.0", "on-finished": "^2.4.1", "once": "^1.4.0", "parseurl": "^1.3.3", "proxy-addr": "^2.0.7", "qs": "^6.14.0", "range-parser": "^1.2.1", "router": "^2.2.0", "send": "^1.1.0", "serve-static": "^2.2.0", "statuses": "^2.0.1", "type-is": "^2.0.1", "vary": "^1.1.2" } }, "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA=="],
"finalhandler": ["finalhandler@2.1.0", "", { "dependencies": { "debug": "^4.4.0", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "on-finished": "^2.4.1", "parseurl": "^1.3.3", "statuses": "^2.0.1" } }, "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q=="],
"forwarded": ["forwarded@0.2.0", "", {}, "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="],
"fresh": ["fresh@2.0.0", "", {}, "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A=="],
"function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="],
"get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="],
"get-port": ["get-port@7.1.0", "", {}, "sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw=="],
"get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="],
"gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="],
"has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="],
"hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="],
"http-errors": ["http-errors@2.0.0", "", { "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" } }, "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ=="],
"iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="],
"immediate": ["immediate@3.0.6", "", {}, "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="],
"inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="],
"ipaddr.js": ["ipaddr.js@1.9.1", "", {}, "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="],
"is-docker": ["is-docker@3.0.0", "", { "bin": { "is-docker": "cli.js" } }, "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="],
"is-inside-container": ["is-inside-container@1.0.0", "", { "dependencies": { "is-docker": "^3.0.0" }, "bin": { "is-inside-container": "cli.js" } }, "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA=="],
"is-promise": ["is-promise@4.0.0", "", {}, "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ=="],
"is-wsl": ["is-wsl@3.1.0", "", { "dependencies": { "is-inside-container": "^1.0.0" } }, "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw=="],
"isarray": ["isarray@1.0.0", "", {}, "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="],
"isexe": ["isexe@3.1.1", "", {}, "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ=="],
"jszip": ["jszip@3.7.1", "", { "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", "readable-stream": "~2.3.6", "set-immediate-shim": "~1.0.1" } }, "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg=="],
"lie": ["lie@3.3.0", "", { "dependencies": { "immediate": "~3.0.5" } }, "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ=="],
"math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="],
"media-typer": ["media-typer@1.1.0", "", {}, "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw=="],
"merge-descriptors": ["merge-descriptors@2.0.0", "", {}, "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g=="],
"mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="],
"mime-types": ["mime-types@3.0.1", "", { "dependencies": { "mime-db": "^1.54.0" } }, "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA=="],
"minimatch": ["minimatch@10.0.3", "", { "dependencies": { "@isaacs/brace-expansion": "^5.0.0" } }, "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw=="],
"ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
"negotiator": ["negotiator@1.0.0", "", {}, "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="],
"object-inspect": ["object-inspect@1.13.4", "", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="],
"on-finished": ["on-finished@2.4.1", "", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="],
"once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="],
"open": ["open@10.2.0", "", { "dependencies": { "default-browser": "^5.2.1", "define-lazy-prop": "^3.0.0", "is-inside-container": "^1.0.0", "wsl-utils": "^0.1.0" } }, "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA=="],
"pako": ["pako@1.0.11", "", {}, "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="],
"parseurl": ["parseurl@1.3.3", "", {}, "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="],
"path-to-regexp": ["path-to-regexp@8.3.0", "", {}, "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA=="],
"process-nextick-args": ["process-nextick-args@2.0.1", "", {}, "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="],
"proxy-addr": ["proxy-addr@2.0.7", "", { "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" } }, "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="],
"qs": ["qs@6.14.0", "", { "dependencies": { "side-channel": "^1.1.0" } }, "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w=="],
"range-parser": ["range-parser@1.2.1", "", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="],
"raw-body": ["raw-body@3.0.1", "", { "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", "iconv-lite": "0.7.0", "unpipe": "1.0.0" } }, "sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA=="],
"readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="],
"router": ["router@2.2.0", "", { "dependencies": { "debug": "^4.4.0", "depd": "^2.0.0", "is-promise": "^4.0.0", "parseurl": "^1.3.3", "path-to-regexp": "^8.0.0" } }, "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ=="],
"run-applescript": ["run-applescript@7.1.0", "", {}, "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q=="],
"safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
"safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="],
"send": ["send@1.2.0", "", { "dependencies": { "debug": "^4.3.5", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "etag": "^1.8.1", "fresh": "^2.0.0", "http-errors": "^2.0.0", "mime-types": "^3.0.1", "ms": "^2.1.3", "on-finished": "^2.4.1", "range-parser": "^1.2.1", "statuses": "^2.0.1" } }, "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw=="],
"serve-static": ["serve-static@2.2.0", "", { "dependencies": { "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "parseurl": "^1.3.3", "send": "^1.2.0" } }, "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ=="],
"set-immediate-shim": ["set-immediate-shim@1.0.1", "", {}, "sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ=="],
"setprototypeof": ["setprototypeof@1.2.0", "", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="],
"side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="],
"side-channel-list": ["side-channel-list@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="],
"side-channel-map": ["side-channel-map@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3" } }, "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA=="],
"side-channel-weakmap": ["side-channel-weakmap@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3", "side-channel-map": "^1.0.1" } }, "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="],
"statuses": ["statuses@2.0.2", "", {}, "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="],
"string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="],
"sudo-prompt": ["sudo-prompt@9.2.1", "", {}, "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw=="],
"toidentifier": ["toidentifier@1.0.1", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="],
"type-is": ["type-is@2.0.1", "", { "dependencies": { "content-type": "^1.0.5", "media-typer": "^1.1.0", "mime-types": "^3.0.0" } }, "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw=="],
"unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="],
"util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="],
"vary": ["vary@1.1.2", "", {}, "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="],
"which": ["which@4.0.0", "", { "dependencies": { "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" } }, "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg=="],
"windmill-cli": ["windmill-cli@1.566.1", "", { "dependencies": { "@ayonli/jsext": "*", "@deno/shim-deno": "~0.18.0", "diff": "*", "es-main": "*", "esbuild": "*", "express": "*", "get-port": "7.1.0", "jszip": "3.7.1", "minimatch": "*", "open": "*", "ws": "*" }, "bin": { "wmill": "esm/src/main.js" } }, "sha512-dyhcg/fBjOw1GvXxsFI/L+UGgoKTXUBzzVIF7p7HMcNUkD302Uf2l2MwnbJeyYT3czJ8L2oz46/5w2Rq2u/Vhg=="],
"wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="],
"ws": ["ws@8.18.3", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg=="],
"wsl-utils": ["wsl-utils@0.1.0", "", { "dependencies": { "is-wsl": "^3.1.0" } }, "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw=="],
"zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="],
"http-errors/statuses": ["statuses@2.0.1", "", {}, "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="],
"raw-body/iconv-lite": ["iconv-lite@0.7.0", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ=="],
"readable-stream/safe-buffer": ["safe-buffer@5.1.2", "", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="],
"string_decoder/safe-buffer": ["safe-buffer@5.1.2", "", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="],
}
}

View File

@@ -0,0 +1,11 @@
summary: Synchronize Hub Resource types with instance
description: >-
Sync latest resource types from hub to share to every workspace. Recommended
to run at least once. On a schedule by default.
lock: '!inline u/admin/hub_sync.script.lock'
kind: script
schema:
$schema: 'https://json-schema.org/draft/2020-12/schema'
type: object
properties: {}
required: []

5
u/admin/hub_sync.ts Normal file
View File

@@ -0,0 +1,5 @@
import * as wmill from "windmill-cli@1.566.1"
export async function main() {
await wmill.hubPull({ workspace: "admins", token: process.env["WM_TOKEN"], baseUrl: process.env["BASE_URL"] });
}

View File

@@ -0,0 +1,23 @@
#!/bin/bash
set -x
export WM_BASE_URL="http://windmill_server:8000"
export WM_WORKSPACE="admins"
export PATH=$HOME/.npm-global/bin:$PATH
echo "=== START SYNC ==="
if ! command -v wmill &> /dev/null; then
npm install -g windmill-cli
fi
cd /workspace
wmill sync pull --token "$WM_TOKEN" --base-url "$WM_BASE_URL" --workspace "$WM_WORKSPACE" --skip-variables --skip-secrets --skip-resources --yes --verbose || exit 1
git config --global --add safe.directory /workspace
git config --global user.email "bot@example.com"
git config --global user.name "Bot"
git add .
git commit -m "Auto-sync $(date)" || echo "No changes"
echo "=== END SYNC ==="

View File

@@ -0,0 +1,17 @@
summary: Git Sync Workflow
description: Automatically sync Windmill workflows to Git repository
value:
modules:
- id: a
value:
type: rawscript
content: '!inline a.inline_script.sh'
input_transforms: {}
lock: ''
language: bash
schema:
$schema: 'https://json-schema.org/draft/2020-12/schema'
type: object
order: []
properties: {}
required: []

View File

@@ -0,0 +1,5 @@
{
"dependencies": {}
}
//bun.lock
<empty>

View File

@@ -0,0 +1,3 @@
export async function main() {
return "Hello, World!"
}

View File

@@ -0,0 +1,17 @@
summary: hello_world_demo
description: ''
value:
modules:
- id: a
value:
type: rawscript
content: '!inline a.inline_script.ts'
input_transforms: {}
lock: '!inline a.inline_script.lock'
language: bun
schema:
$schema: 'https://json-schema.org/draft/2020-12/schema'
type: object
order: []
properties: {}
required: []

View File

@@ -0,0 +1,4 @@
def main():
print("Hello from Git Sync Test")
return {"status": "success"}

View File

@@ -0,0 +1 @@
# py: 3.12

View File

@@ -0,0 +1,9 @@
summary: Test script for Git auto-sync
description: Test workflow for Git auto-sync
lock: '!inline u/antigravity/test_git_sync.script.lock'
kind: script
schema:
$schema: 'https://json-schema.org/draft/2020-12/schema'
type: object
properties: {}
required: []

10
wmill-lock.yaml Normal file
View File

@@ -0,0 +1,10 @@
version: v2
locks:
g/all/setup_app.app+__app_hash: e739ad7d5382a4d2875292ad57674db96941cdef94b62e641fe8dc0b637ea8a3
g/all/setup_app.app+change_account.inline_script.deno.ts: 3c592cac27e9cdab0de6ae19270bcb08c7fa54355ad05253a12de2351894346b
u/admin/hub_sync: aaf9fd803fa229f3029d1bb02bbe3cc422fce680cad39c4eec8dd1da115de102
u/antigravity/git_sync.flow+__flow_hash: 2746e0693fa46e12e7e31f9d6a3f7162ddea17c45a8b9f6cf2ad82a29fcd6ba3
u/antigravity/git_sync.flow+a.inline_script.sh: 7a7723d3bdcc0509991300ee0156f77ad3617fa69f523c9e5ced41af3a8025f7
u/antigravity/hello_world_demo.flow+__flow_hash: 5573cb11888dbeb2c10fdbb67cb1ca40dd0c2cf102bf1fd2b2665c0553eb00e1
u/antigravity/hello_world_demo.flow+a.inline_script.ts: 53669a285c16d4ba322888755a33424521f769e9ebf64fc1f0cb21f9952b5958
u/antigravity/test_git_sync: 6461260a743de38a8c37d4b6083d481a73a6fde8c17cad1976d6635dca11362c

View File

@@ -1,94 +1,22 @@
#!/bin/bash
set -x
exec > >(tee -a /tmp/debug_script.log) 2>&1
export WM_BASE_URL="http://windmill_server:8000"
export WM_WORKSPACE="admins"
export PATH=$HOME/.npm-global/bin:$PATH
echo "=== Windmill Workflow Git Sync ==="
echo "=== START SYNC ==="
# -----------------------------------------------------------------------------
# Configuration & Checks
# -----------------------------------------------------------------------------
# Ensure Windmill CLI variables are set
if [[ -z "${WM_TOKEN}" ]]; then
echo "Warning: WM_TOKEN is not set. attempting to continue assuming ~/.config/windmill/config.toml exists."
echo "If this fails, please set WM_TOKEN and WM_BASE_URL variables in the Windmill workspace settings or workflow input."
fi
# Configure Git for the container
# This is necessary because the script runs inside a Docker container
# where the global git config might not be set.
echo "Configuring Git..."
git config --global --add safe.directory /workspace
if [ -z "$(git config --global user.email)" ]; then
git config --global user.email "windmill-bot@example.com"
git config --global user.name "Windmill Bot"
fi
# -----------------------------------------------------------------------------
# Execution
# -----------------------------------------------------------------------------
# Move to workspace directory (mapped to /home/akira/develop/windmill)
# We need to be in the workflows directory where wmill.yaml is likely located
# to ensure configuration (like includeSchedules) is respected.
if [ -d "/workspace/workflows" ]; then
cd /workspace/workflows
elif [ -d "/workspace" ]; then
cd /workspace
else
echo "Error: /workspace directory not found. Is the volume mounted correctly?"
exit 1
fi
# Set PATH to ensure wmill is available
export PATH=~/.npm-global/bin:$PATH
# Check if wmill is available
if ! command -v wmill &> /dev/null; then
echo "wmill command not found. Attempting to install windmill-client..."
# Try installing using pip if npm is not available, or npm
if command -v npm &> /dev/null; then
npm install -g windmill-cli
else
echo "Error: npm not found. Cannot install wmill client."
exit 1
fi
fi
# Pull latest from Windmill
echo "Pulling from Windmill..."
# wmill sync pull will use the workspace defined in wmill.yaml or env vars.
# We add --yes to avoid prompts.
if wmill sync pull --skip-variables --skip-secrets --skip-resources --yes --verbose; then
echo "Successfully pulled from Windmill."
else
echo "Error: wmill sync pull failed. Check your WM_TOKEN and connection."
exit 1
fi
wmill sync pull --token "$WM_TOKEN" --base-url "$WM_BASE_URL" --workspace "$WM_WORKSPACE" --skip-variables --skip-secrets --skip-resources --yes --verbose || exit 1
git config --global --add safe.directory /workspace
git config --global user.email "bot@example.com"
git config --global user.name "Bot"
# Check for changes
# Force add everything first to capture untracked files
git add .
git commit -m "Auto-sync $(date)" || echo "No changes"
if [[ -n $(git status --porcelain) ]]; then
echo "Changes detected, committing to Git..."
# Commit
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
# Use explicit config to ensure commit works even if global config fails
if git -c user.email="windmill-bot@example.com" -c user.name="Windmill Bot" commit -m "Auto-sync: ${TIMESTAMP}
Synced workflows from Windmill workspace"; then
echo "✓ Changes committed to Git"
echo "Successfully synced and committed changes at ${TIMESTAMP}"
else
echo "Error: Git commit failed."
exit 1
fi
else
echo "✓ No changes detected"
echo "No changes to commit"
fi
echo "=== Sync Complete ==="
echo "=== END SYNC ==="

View File

@@ -3,6 +3,8 @@ locks:
g/all/setup_app__app+__app_hash: d71add32e14e552d1a4c861c972a50d9598b07c0af201bbadec5b59bbd99d7e3
g/all/setup_app__app+change_account.deno.ts: 3c592cac27e9cdab0de6ae19270bcb08c7fa54355ad05253a12de2351894346b
u/admin/hub_sync: aaf9fd803fa229f3029d1bb02bbe3cc422fce680cad39c4eec8dd1da115de102
u/antigravity/git_sync__flow+__flow_hash: 747f089a941b4fede4e17d92132c523be583291cdbbea7f523421409f443f6f0
u/antigravity/git_sync__flow+a.sh: 615cae3132332c6b63ebc41d99bebe582577f9bb99102a9587c1f8cce56b853a
u/antigravity/hello_world_demo__flow+__flow_hash: 0adc341960f8196454876684f85fe14ef087ba470322d2aabc99b37bf61edac9
u/antigravity/hello_world_demo__flow+a.ts: 53669a285c16d4ba322888755a33424521f769e9ebf64fc1f0cb21f9952b5958
u/antigravity/test_git_sync: 6461260a743de38a8c37d4b6083d481a73a6fde8c17cad1976d6635dca11362c

13
x.txt Normal file
View File

@@ -0,0 +1,13 @@
合計 56
drwxrwxr-x 4 akira akira 4096 2月 13 17:30 .
drwxrwxr-x 5 akira akira 4096 2月 11 17:42 ..
-rw-rw-r-- 1 akira akira 479 2月 11 17:47 .env
drwxrwxr-x 8 akira akira 4096 2月 13 16:53 .git
-rw-rw-r-- 1 akira akira 592 2月 11 21:59 .gitignore
-rw-rw-r-- 1 akira akira 1041 2月 11 17:47 Caddyfile
-rw-rw-r-- 1 akira akira 7613 2月 13 14:02 docker-compose.yml
-rwxrwxr-x 1 akira akira 1092 2月 11 21:59 sync_to_git.sh
-rw-r--r-- 1 akira akira 6909 2月 11 22:05 walkthrough.md.resolved
-rw-r--r-- 1 akira akira 5917 2月 11 19:17 windmill_initial_setup_guide_ja.md.resolved
drwxrwxr-x 5 akira akira 4096 2月 11 21:52 workflows
-rw-rw-r-- 1 akira akira 0 2月 13 17:30 x.txt