Merge branch 'main' into fr/xyflow

This commit is contained in:
Faton Ramadani
2024-08-09 13:38:23 +02:00
28 changed files with 449 additions and 86 deletions

View File

@@ -1,5 +1,12 @@
# Changelog
## [1.377.1](https://github.com/windmill-labs/windmill/compare/v1.377.0...v1.377.1) (2024-08-08)
### Bug Fixes
* **frontend:** fix timezone issues for Date only inputs ([#4215](https://github.com/windmill-labs/windmill/issues/4215)) ([2334802](https://github.com/windmill-labs/windmill/commit/2334802384e86c4269e1cbfd4f6f98a9a1e58f68))
## [1.377.0](https://github.com/windmill-labs/windmill/compare/v1.376.1...v1.377.0) (2024-08-08)

72
backend/Cargo.lock generated
View File

@@ -1012,9 +1012,9 @@ dependencies = [
[[package]]
name = "aws-smithy-runtime-api"
version = "1.7.1"
version = "1.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "30819352ed0a04ecf6a2f3477e344d2d1ba33d43e0f09ad9047c12e0d923616f"
checksum = "e086682a53d3aa241192aa110fa8dfce98f2f5ac2ead0de84d41582c7e8fdb96"
dependencies = [
"aws-smithy-async",
"aws-smithy-types",
@@ -1613,9 +1613,9 @@ dependencies = [
[[package]]
name = "cc"
version = "1.1.7"
version = "1.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26a5c3fd7bfa1ce3897a3a3501d362b2d87b7f2583ebcb4a949ec25911025cbc"
checksum = "504bdec147f2cc13c8b57ed9401fd8a147cc66b67ad5cb241394244f2c947549"
dependencies = [
"jobserver",
"libc",
@@ -1717,9 +1717,9 @@ dependencies = [
[[package]]
name = "clap"
version = "4.5.13"
version = "4.5.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc"
checksum = "c937d4061031a6d0c8da4b9a4f98a172fc2976dfb1c19213a9cf7d0d3c837e36"
dependencies = [
"clap_builder",
"clap_derive",
@@ -1727,9 +1727,9 @@ dependencies = [
[[package]]
name = "clap_builder"
version = "4.5.13"
version = "4.5.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99"
checksum = "85379ba512b21a328adf887e85f7742d12e96eb31f3ef077df4ffc26b506ffed"
dependencies = [
"anstream",
"anstyle",
@@ -4048,9 +4048,9 @@ dependencies = [
[[package]]
name = "hstr"
version = "0.2.10"
version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96274be293b8877e61974a607105d09c84caebe9620b47774aa8a6b942042dd4"
checksum = "be89918d912f61134036c4fd49b8db2935b49cca4cbf45b3a6738abd2c6e9f77"
dependencies = [
"hashbrown 0.14.5",
"new_debug_unreachable",
@@ -4443,9 +4443,9 @@ checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
[[package]]
name = "is-macro"
version = "0.3.5"
version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59a85abdc13717906baccb5a1e435556ce0df215f242892f721dff62bf25288f"
checksum = "2069faacbe981460232f880d26bf3c7634e322d49053aa48c27e3ae642f728f1"
dependencies = [
"Inflector",
"proc-macro2",
@@ -7469,9 +7469,9 @@ checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4"
[[package]]
name = "serde"
version = "1.0.204"
version = "1.0.205"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12"
checksum = "e33aedb1a7135da52b7c21791455563facbbcc43d0f0f66165b42c21b3dfb150"
dependencies = [
"serde_derive",
]
@@ -7510,9 +7510,9 @@ dependencies = [
[[package]]
name = "serde_derive"
version = "1.0.204"
version = "1.0.205"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222"
checksum = "692d6f5ac90220161d6774db30c662202721e64aed9058d2c394f451261420c1"
dependencies = [
"proc-macro2",
"quote",
@@ -10400,7 +10400,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "windmill"
version = "1.376.1"
version = "1.377.1"
dependencies = [
"anyhow",
"axum",
@@ -10440,7 +10440,7 @@ dependencies = [
[[package]]
name = "windmill-api"
version = "1.376.1"
version = "1.377.1"
dependencies = [
"anyhow",
"argon2",
@@ -10524,7 +10524,7 @@ dependencies = [
[[package]]
name = "windmill-api-client"
version = "1.376.1"
version = "1.377.1"
dependencies = [
"base64 0.21.7",
"chrono",
@@ -10542,7 +10542,7 @@ dependencies = [
[[package]]
name = "windmill-audit"
version = "1.376.1"
version = "1.377.1"
dependencies = [
"chrono",
"serde",
@@ -10555,7 +10555,7 @@ dependencies = [
[[package]]
name = "windmill-common"
version = "1.376.1"
version = "1.377.1"
dependencies = [
"anyhow",
"async-stream",
@@ -10596,7 +10596,7 @@ dependencies = [
[[package]]
name = "windmill-git-sync"
version = "1.376.1"
version = "1.377.1"
dependencies = [
"regex",
"rsmq_async",
@@ -10611,7 +10611,7 @@ dependencies = [
[[package]]
name = "windmill-indexer"
version = "1.376.1"
version = "1.377.1"
dependencies = [
"anyhow",
"bytes",
@@ -10632,7 +10632,7 @@ dependencies = [
[[package]]
name = "windmill-parser"
version = "1.376.1"
version = "1.377.1"
dependencies = [
"serde",
"serde_json",
@@ -10640,7 +10640,7 @@ dependencies = [
[[package]]
name = "windmill-parser-bash"
version = "1.376.1"
version = "1.377.1"
dependencies = [
"anyhow",
"lazy_static",
@@ -10651,7 +10651,7 @@ dependencies = [
[[package]]
name = "windmill-parser-go"
version = "1.376.1"
version = "1.377.1"
dependencies = [
"anyhow",
"gosyn",
@@ -10663,7 +10663,7 @@ dependencies = [
[[package]]
name = "windmill-parser-graphql"
version = "1.376.1"
version = "1.377.1"
dependencies = [
"anyhow",
"lazy_static",
@@ -10674,7 +10674,7 @@ dependencies = [
[[package]]
name = "windmill-parser-php"
version = "1.376.1"
version = "1.377.1"
dependencies = [
"anyhow",
"convert_case 0.6.0",
@@ -10688,7 +10688,7 @@ dependencies = [
[[package]]
name = "windmill-parser-py"
version = "1.376.1"
version = "1.377.1"
dependencies = [
"anyhow",
"itertools 0.13.0",
@@ -10699,7 +10699,7 @@ dependencies = [
[[package]]
name = "windmill-parser-py-imports"
version = "1.376.1"
version = "1.377.1"
dependencies = [
"anyhow",
"async-recursion",
@@ -10716,7 +10716,7 @@ dependencies = [
[[package]]
name = "windmill-parser-sql"
version = "1.376.1"
version = "1.377.1"
dependencies = [
"anyhow",
"lazy_static",
@@ -10727,7 +10727,7 @@ dependencies = [
[[package]]
name = "windmill-parser-ts"
version = "1.376.1"
version = "1.377.1"
dependencies = [
"anyhow",
"convert_case 0.6.0",
@@ -10746,7 +10746,7 @@ dependencies = [
[[package]]
name = "windmill-parser-wasm"
version = "1.376.1"
version = "1.377.1"
dependencies = [
"anyhow",
"getrandom 0.2.15",
@@ -10765,7 +10765,7 @@ dependencies = [
[[package]]
name = "windmill-queue"
version = "1.376.1"
version = "1.377.1"
dependencies = [
"anyhow",
"async-recursion",
@@ -10798,7 +10798,7 @@ dependencies = [
[[package]]
name = "windmill-sql-datatype-parser-wasm"
version = "1.376.1"
version = "1.377.1"
dependencies = [
"wasm-bindgen",
"wasm-bindgen-test",
@@ -10808,7 +10808,7 @@ dependencies = [
[[package]]
name = "windmill-worker"
version = "1.376.1"
version = "1.377.1"
dependencies = [
"anyhow",
"async-recursion",

View File

@@ -1,6 +1,6 @@
[package]
name = "windmill"
version = "1.376.1"
version = "1.377.1"
authors.workspace = true
edition.workspace = true
@@ -25,7 +25,7 @@ members = [
]
[workspace.package]
version = "1.376.1"
version = "1.377.1"
authors = ["Ruben Fiszel <ruben@windmill.dev>"]
edition = "2021"

View File

@@ -1,7 +1,7 @@
openapi: "3.0.3"
info:
version: 1.376.1
version: 1.377.1
title: Windmill API
contact:

View File

@@ -2,7 +2,7 @@ import { sleep } from "https://deno.land/x/sleep@v1.2.1/mod.ts";
import * as windmill from "https://deno.land/x/windmill@v1.174.0/mod.ts";
import * as api from "https://deno.land/x/windmill@v1.174.0/windmill-api/index.ts";
export const VERSION = "v1.376.1";
export const VERSION = "v1.377.1";
export async function login(email: string, password: string): Promise<string> {
return await windmill.UserService.login({

View File

@@ -32,6 +32,8 @@ export interface Codebase {
from: string;
to: string;
}[];
customBundler?: string;
external?: string[];
}
export async function readConfigFile(): Promise<SyncOptions> {

View File

@@ -34,7 +34,7 @@ addEventListener("error", (event) => {
}
});
export const VERSION = "v1.376.1";
export const VERSION = "v1.377.1";
let command: any = new Command()
.name("wmill")

View File

@@ -49,6 +49,8 @@ import { SyncCodebase, listSyncCodebases } from "./codebase.ts";
import fs from "node:fs";
import { type Tarball } from "npm:@ayonli/jsext/archive";
import { execSync } from "node:child_process";
export interface ScriptFile {
parent_hash?: string;
summary: string;
@@ -155,22 +157,28 @@ export async function handleFile(
let bundleContent: string | Tarball | undefined = undefined;
if (codebase) {
const esbuild = await import("npm:esbuild");
if (codebase.customBundler) {
log.info(`Using custom bundler ${codebase.customBundler} for ${path}`);
bundleContent = execSync(
codebase.customBundler + " " + path
).toString();
log.info("Custom bundler executed");
} else {
const esbuild = await import("npm:esbuild");
log.info(`Starting building the bundle for ${path}`);
const out = await esbuild.build({
entryPoints: [path],
format: "cjs",
bundle: true,
write: false,
platform: "node",
packages: "bundle",
target: "node20.15.1",
loader: {
".node": "file",
},
});
bundleContent = out.outputFiles[0].text;
log.info(`Starting building the bundle for ${path}`);
const out = await esbuild.build({
entryPoints: [path],
format: "cjs",
bundle: true,
write: false,
external: codebase.external,
platform: "node",
packages: "bundle",
target: "node20.15.1",
});
bundleContent = out.outputFiles[0].text;
}
if (Array.isArray(codebase.assets) && codebase.assets.length > 0) {
const archiveNpm = await import("npm:@ayonli/jsext/archive");

View File

@@ -1,12 +1,12 @@
{
"name": "windmill-components",
"version": "1.376.1",
"version": "1.377.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "windmill-components",
"version": "1.376.1",
"version": "1.377.1",
"license": "AGPL-3.0",
"dependencies": {
"@aws-crypto/sha256-js": "^4.0.0",
@@ -112,6 +112,7 @@
"typescript": "^5.1.3",
"vite": "^5",
"vite-plugin-circular-dependency": "^0.2.1",
"vite-plugin-mkcert": "^1.17.5",
"yootils": "^0.3.1"
},
"optionalDependencies": {
@@ -1299,6 +1300,173 @@
"node": ">= 8"
}
},
"node_modules/@octokit/auth-token": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz",
"integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/core": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz",
"integrity": "sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@octokit/auth-token": "^4.0.0",
"@octokit/graphql": "^7.1.0",
"@octokit/request": "^8.3.1",
"@octokit/request-error": "^5.1.0",
"@octokit/types": "^13.0.0",
"before-after-hook": "^2.2.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/endpoint": {
"version": "9.0.5",
"resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz",
"integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@octokit/types": "^13.1.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/graphql": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.0.tgz",
"integrity": "sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@octokit/request": "^8.3.0",
"@octokit/types": "^13.0.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/openapi-types": {
"version": "22.2.0",
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz",
"integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==",
"dev": true,
"license": "MIT"
},
"node_modules/@octokit/plugin-paginate-rest": {
"version": "11.3.1",
"resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.1.tgz",
"integrity": "sha512-ryqobs26cLtM1kQxqeZui4v8FeznirUsksiA+RYemMPJ7Micju0WSkv50dBksTuZks9O5cg4wp+t8fZ/cLY56g==",
"dev": true,
"license": "MIT",
"dependencies": {
"@octokit/types": "^13.5.0"
},
"engines": {
"node": ">= 18"
},
"peerDependencies": {
"@octokit/core": "5"
}
},
"node_modules/@octokit/plugin-request-log": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-4.0.1.tgz",
"integrity": "sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 18"
},
"peerDependencies": {
"@octokit/core": "5"
}
},
"node_modules/@octokit/plugin-rest-endpoint-methods": {
"version": "13.2.2",
"resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.2.2.tgz",
"integrity": "sha512-EI7kXWidkt3Xlok5uN43suK99VWqc8OaIMktY9d9+RNKl69juoTyxmLoWPIZgJYzi41qj/9zU7G/ljnNOJ5AFA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@octokit/types": "^13.5.0"
},
"engines": {
"node": ">= 18"
},
"peerDependencies": {
"@octokit/core": "^5"
}
},
"node_modules/@octokit/request": {
"version": "8.4.0",
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz",
"integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@octokit/endpoint": "^9.0.1",
"@octokit/request-error": "^5.1.0",
"@octokit/types": "^13.1.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/request-error": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz",
"integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==",
"dev": true,
"license": "MIT",
"dependencies": {
"@octokit/types": "^13.1.0",
"deprecation": "^2.0.0",
"once": "^1.4.0"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/rest": {
"version": "20.1.1",
"resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-20.1.1.tgz",
"integrity": "sha512-MB4AYDsM5jhIHro/dq4ix1iWTLGToIGk6cWF5L6vanFaMble5jTX/UBQyiv05HsWnwUtY8JrfHy2LWfKwihqMw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@octokit/core": "^5.0.2",
"@octokit/plugin-paginate-rest": "11.3.1",
"@octokit/plugin-request-log": "^4.0.0",
"@octokit/plugin-rest-endpoint-methods": "13.2.2"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/types": {
"version": "13.5.0",
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz",
"integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@octokit/openapi-types": "^22.2.0"
}
},
"node_modules/@petamoriken/float16": {
"version": "3.8.4",
"resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.8.4.tgz",
@@ -2697,6 +2865,18 @@
"postcss": "^8.1.0"
}
},
"node_modules/axios": {
"version": "1.7.3",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz",
"integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==",
"dev": true,
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
},
"node_modules/axobject-query": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz",
@@ -2739,6 +2919,13 @@
],
"optional": true
},
"node_modules/before-after-hook": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz",
"integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==",
"dev": true,
"license": "Apache-2.0"
},
"node_modules/binary-extensions": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
@@ -3760,6 +3947,13 @@
"integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
"optional": true
},
"node_modules/deprecation": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
"integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==",
"dev": true,
"license": "ISC"
},
"node_modules/dequal": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
@@ -4599,6 +4793,27 @@
"integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
"dev": true
},
"node_modules/follow-redirects": {
"version": "1.15.6",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
"dev": true,
"funding": [
{
"type": "individual",
"url": "https://github.com/sponsors/RubenVerborgh"
}
],
"license": "MIT",
"engines": {
"node": ">=4.0"
},
"peerDependenciesMeta": {
"debug": {
"optional": true
}
}
},
"node_modules/form-data": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
@@ -8326,6 +8541,13 @@
"resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz",
"integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw=="
},
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
"dev": true,
"license": "MIT"
},
"node_modules/prr": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
@@ -10221,6 +10443,13 @@
"url": "https://opencollective.com/unified"
}
},
"node_modules/universal-user-agent": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz",
"integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==",
"dev": true,
"license": "ISC"
},
"node_modules/update-browserslist-db": {
"version": "1.0.13",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
@@ -10374,6 +10603,25 @@
"chalk": "^4.1.2"
}
},
"node_modules/vite-plugin-mkcert": {
"version": "1.17.5",
"resolved": "https://registry.npmjs.org/vite-plugin-mkcert/-/vite-plugin-mkcert-1.17.5.tgz",
"integrity": "sha512-KKGY3iHx/9zb7ow8JJ+nLN2HiNIBuPBwj34fJ+jAJT89/8qfk7msO7G7qipR8VDEm9xMCys0xT11QOJbZcg3/Q==",
"dev": true,
"license": "MIT",
"dependencies": {
"@octokit/rest": "^20.0.2",
"axios": "^1.6.8",
"debug": "^4.3.4",
"picocolors": "^1.0.0"
},
"engines": {
"node": ">=v16.7.0"
},
"peerDependencies": {
"vite": ">=3"
}
},
"node_modules/vitefu": {
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.5.tgz",

View File

@@ -1,6 +1,6 @@
{
"name": "windmill-components",
"version": "1.376.1",
"version": "1.377.1",
"scripts": {
"dev": "vite dev",
"build": "vite build",
@@ -65,6 +65,7 @@
"typescript": "^5.1.3",
"vite": "^5",
"vite-plugin-circular-dependency": "^0.2.1",
"vite-plugin-mkcert": "^1.17.5",
"yootils": "^0.3.1"
},
"overrides": {

View File

@@ -19,7 +19,7 @@
}
try {
let dateFromValue: Date | undefined = newDate ? new Date(newDate) : undefined
let dateFromValue: Date | undefined = newDate ? new Date(newDate + 'T00:00:00') : undefined
if (dateFromValue === undefined) {
return

View File

@@ -247,21 +247,24 @@
let last = root ? undefined : flowJobIds?.flowJobs?.[flowJobIds?.flowJobs.length - 1]
// console.log(innerModule, modId)
Object.entries(recursiveRefresh).forEach(([key, v]) => {
if (modId) {
if ((root && key == loopJob?.job) || key == last) {
v(false)
} else {
}
} else {
v(false)
}
})
let njob = flowJobIds
? root && modId
? storedListJobs?.[loopJob.job]
: storedListJobs[flowJobIds.length - 1]
: storedListJobs?.[flowJobIds.length - 1]
: job
if (njob) {
dispatch('jobsLoaded', { job: njob, force: true })
}

View File

@@ -15,11 +15,13 @@
import { sendUserToast } from '$lib/toast'
import { isCloudHosted } from '$lib/cloud'
import { refreshSuperadmin } from '$lib/refreshUser'
import { createEventDispatcher } from 'svelte'
export let rd: string | undefined = undefined
export let email: string | undefined = undefined
export let password: string | undefined = undefined
export let error: string | undefined = undefined
export let popup: boolean = false
const providers = [
{
@@ -160,6 +162,20 @@
}
}
const dispatch = createEventDispatcher()
function popupListener(event) {
let data = event.data
if (event.origin !== window.location.origin) {
return
}
if (data.type === 'error') {
sendUserToast(event.data.error, true)
} else if (data.type === 'success') {
dispatch('login')
}
}
function storeRedirect(provider: string) {
if (rd) {
try {
@@ -168,7 +184,14 @@
console.error('Could not persist redirection to local storage', e)
}
}
window.location.href = base + '/api/oauth/login/' + provider
let url = base + '/api/oauth/login/' + provider
if (popup) {
localStorage.setItem('closeUponLogin', 'true')
window.addEventListener('message', popupListener, { once: true })
window.open(url, '_blank', 'popup')
} else {
window.location.href = url
}
}
$: error && sendUserToast(error, true)

View File

@@ -266,8 +266,7 @@
{#if format == 'date'}
<div class="mt-1" />
<div class="grid grid-cols-3 gap-2"
>x
<div class="grid grid-cols-3 gap-2">
<Label label="Date format passed to script" class="col-span-2">
<svelte:fragment slot="header">
<Tooltip light>

View File

@@ -66,11 +66,6 @@
author: policy.on_behalf_of_email
}
function hashchange(e: HashChangeEvent) {
ncontext.hash = e.newURL.split('#')[1]
ncontext = ncontext
}
function resizeWindow() {
!isEditor && ($breakpoint = window.innerWidth < 769 ? 'sm' : 'lg')
}
@@ -84,8 +79,31 @@
let parentContext = getContext<AppViewerContext>('AppViewerContext')
let worldStore = buildWorld(ncontext)
$: onContextChange(context)
function onContextChange(context: any) {
Object.assign(ncontext, context)
ncontext = ncontext
worldStore.update((x) => {
Object.entries(context).forEach(([key, value]) => {
x.outputsById?.['ctx']?.[key].set(value, true)
})
return x
})
}
function hashchange(e: HashChangeEvent) {
ncontext.hash = e.newURL.split('#')[1]
ncontext = ncontext
worldStore.update((x) => {
x.outputsById?.['ctx']?.['hash'].set(ncontext.hash, true)
return x
})
}
setContext<AppViewerContext>('AppViewerContext', {
worldStore: buildWorld(ncontext),
worldStore: worldStore,
initialized: writable({ initialized: false, initializedComponents: [] }),
app: appStore,
summary: writable(summary),
@@ -196,7 +214,7 @@
<svelte:window on:hashchange={hashchange} on:resize={resizeWindow} />
<div class="relative h-full" bind:clientHeight={appHeight}>
<div class="relative h-full grow" bind:clientHeight={appHeight}>
<div id="app-editor-top-level-drawer" />
<div id="app-editor-select" />

View File

@@ -39,7 +39,7 @@
{#key app}
<div
class={twMerge(
'min-h-screen h-full w-full',
'min-h-screen h-full w-full flex flex-col',
app?.value.css?.['app']?.['viewer']?.class,
'wm-app-viewer'
)}

View File

@@ -31,6 +31,8 @@
workspace: $page.params.workspace,
path: $page.params.secret
})
noPermission = false
notExists = false
} catch (e) {
if (e.status == 401) {
noPermission = true
@@ -42,8 +44,9 @@
if (BROWSER) {
setLicense()
loadApp()
loadUser()
loadUser().then(() => {
loadApp()
})
}
async function loadUser() {
@@ -95,7 +98,17 @@
in and have read access for this app{/if}</div
>
<div class="px-2 mx-auto mt-20 max-w-xl w-full">
<Login rd={$page.url.toString()} />
<Login
on:login={() => {
// window.location.reload()
loadUser().then(() => {
loadApp()
})
app = app
}}
popup
rd={$page.url.toString()}
/>
</div>
{:else if app}
{#key app}

View File

@@ -0,0 +1,10 @@
<script lang="ts">
import CenteredModal from '$lib/components/CenteredModal.svelte'
import { Button } from '$lib/components/common'
</script>
<CenteredModal>
There was an error during login
<Button on:click={() => window.close()}>close</Button>
</CenteredModal>

View File

@@ -22,18 +22,33 @@
if (rd) {
localStorage.removeItem('rd')
}
const closeUponLogin = localStorage.getItem('closeUponLogin') == 'true'
if (error) {
sendUserToast(`Error trying to login with ${clientName} ${error}`, true)
if (closeUponLogin) {
goto('/user/close')
return
}
await logoutWithRedirect(rd ?? undefined)
} else if (code && state && clientName) {
try {
await UserService.loginWithOauth({ requestBody: { code, state }, clientName })
} catch (e) {
if (closeUponLogin) {
goto('/user/close')
return
}
await logoutWithRedirect(rd ?? undefined)
sendUserToast(e.body ?? e.message, true)
return
}
if (rd?.startsWith('http')) {
if (closeUponLogin) {
window.opener.postMessage({ type: 'success' }, '*')
window.close()
return
}
window.location.href = rd
return
}
@@ -56,6 +71,11 @@
const allWorkspaces = $usersWorkspaceStore?.workspaces
if (allWorkspaces?.length == 1) {
$workspaceStore = allWorkspaces[0].id
if (closeUponLogin) {
window.opener.postMessage({ type: 'success' }, '*')
window.close()
return
}
if (rd) {
goto(rd, { replaceState: true })
} else {
@@ -64,6 +84,11 @@
return
}
if (closeUponLogin) {
window.close()
return
}
if (rd) {
goto('/user/workspaces?rd=' + encodeURIComponent(rd), { replaceState: true })
} else {
@@ -71,6 +96,10 @@
}
}
} else {
if (closeUponLogin) {
goto('/user/close')
return
}
sendUserToast('Missing code or state as query params', true)
await logoutWithRedirect(rd ?? undefined)
}

View File

@@ -2,6 +2,7 @@ import { sveltekit } from '@sveltejs/kit/vite'
import { readFileSync } from 'fs'
import { fileURLToPath } from 'url'
import circleDependency from 'vite-plugin-circular-dependency'
import mkcert from 'vite-plugin-mkcert'
const file = fileURLToPath(new URL('package.json', import.meta.url))
const json = readFileSync(file, 'utf8')
@@ -10,6 +11,7 @@ const version = JSON.parse(json)
/** @type {import('vite').UserConfig} */
const config = {
server: {
https: true,
port: 3000,
proxy: {
'^/api/.*': {
@@ -32,7 +34,7 @@ const config = {
preview: {
port: 3000
},
plugins: [sveltekit(), circleDependency({ circleImportThrowErr: false })],
plugins: [mkcert(), sveltekit(), circleDependency({ circleImportThrowErr: false })],
define: {
__pkg__: version
},

View File

@@ -4,8 +4,8 @@ verify_ssl = true
name = "pypi"
[packages]
wmill = ">=1.376.1"
wmill_pg = ">=1.376.1"
wmill = ">=1.377.1"
wmill_pg = ">=1.377.1"
sendgrid = "*"
mysql-connector-python = "*"
pymongo = "*"

View File

@@ -1,7 +1,7 @@
openapi: "3.0.3"
info:
version: 1.376.1
version: 1.377.1
title: OpenFlow Spec
contact:
name: Ruben Fiszel

View File

@@ -12,7 +12,7 @@
RootModule = 'WindmillClient.psm1'
# Version number of this module.
ModuleVersion = '1.376.1'
ModuleVersion = '1.377.1'
# Supported PSEditions
# CompatiblePSEditions = @()

View File

@@ -1,6 +1,6 @@
[tool.poetry]
name = "wmill"
version = "1.376.1"
version = "1.377.1"
description = "A client library for accessing Windmill server wrapping the Windmill client API"
license = "Apache-2.0"
homepage = "https://windmill.dev"

View File

@@ -1,6 +1,6 @@
[tool.poetry]
name = "wmill-pg"
version = "1.376.1"
version = "1.377.1"
description = "An extension client for the wmill client library focused on pg"
license = "Apache-2.0"
homepage = "https://windmill.dev"

View File

@@ -1,6 +1,6 @@
{
"name": "@windmill/windmill",
"version": "1.376.1",
"version": "1.377.1",
"exports": "./src/index.ts",
"publish": {
"exclude": ["!src", "./s3Types.ts", "./client.ts"]

View File

@@ -1,7 +1,7 @@
{
"name": "windmill-client",
"description": "Windmill SDK client for browsers and Node.js",
"version": "1.376.1",
"version": "1.377.1",
"author": "Ruben Fiszel",
"license": "Apache 2.0",
"devDependencies": {

View File

@@ -1 +1 @@
1.377.0
1.377.1