18 files changed
+553
-309
.agents/AGENTS.md
+1
-1
@@ -101,7 +101,7 @@ make patch | make minor | make major | make custom VERSION=0.x.y
101
102
It commits `Release <version>` and tags `v<version>` locally; pushing is manual. Crate publishing is separate and manual (`cargo workspaces publish`, see `docs/development.md`). The per-target release workflows (`release-*.yml`) build the distributable artifacts.
103
104
-`server.json` (the MCP Registry listing) is version-synced by the same Makefile step, and `release-nuget.yml` triggers `release-mcp-registry.yml` once its publish job succeeds — the listing needs both npm and NuGet live at that version, and the registry validates its metadata against the real packages. See `docs/mcp-registry.md`.
104
+`server.json` and `server-xcrs.json` (the MCP Registry listings) are version-synced by the same Makefile step, and `release-nuget.yml` triggers `release-mcp-registry.yml` once its publish job succeeds — the listings need the npm, NuGet, and Cargo packages live at their recorded versions, and the registry validates their metadata against the real packages. See `docs/mcp-registry.md`.
105
106
---
107
.github/workflows/release-mcp-registry.yml
+45
-3
@@ -15,7 +15,7 @@ permissions:
15
16
jobs:
17
publish:
18
- name: Publish server.json to the MCP Registry
18
+ name: Publish MCP servers to the MCP Registry
19
runs-on: ubuntu-latest
20
steps:
21
- name: Checkout
@@ -44,14 +44,28 @@ jobs:
44
# NuGet proves ownership through an `mcp-name:` marker in the package README.
45
grep -q "mcp-name: ${server_name}" nuget/smbcloud-cli/README.md
46
47
- - name: Set the version in server.json
47
+ xcrs_server_name="$(jq -r '.name' server-xcrs.json)"
48
+ grep -q "mcp-name: ${xcrs_server_name}" crates/xcrs/README.md
49
+
50
+ - name: Set release versions in server metadata
51
shell: bash
52
run: |
53
jq --arg v "${RELEASE_VERSION}" \
54
'.version = $v | .packages |= map(.version = $v)' \
55
server.json > server.tmp
56
mv server.tmp server.json
57
+
58
+ xcrs_version="$(sed -n 's/^version = "\(.*\)"/\1/p' crates/xcrs/Cargo.toml | head -n 1)"
59
+ if [ "${xcrs_version}" != "${RELEASE_VERSION}" ]; then
60
+ echo "xcrs version ${xcrs_version} does not match release version ${RELEASE_VERSION}." >&2
61
+ exit 1
62
+ fi
63
+ jq --arg v "${xcrs_version}" \
64
+ '.version = $v | .packages |= map(.version = $v)' \
65
+ server-xcrs.json > server-xcrs.tmp
66
+ mv server-xcrs.tmp server-xcrs.json
67
cat server.json
68
+ cat server-xcrs.json
69
70
- name: Verify the published packages carry the ownership marker
71
shell: bash
@@ -109,6 +123,29 @@ jobs:
123
fi
124
rm package.nupkg
125
126
+ xcrs_server_name="$(jq -r '.name' server-xcrs.json)"
127
+ xcrs_version="$(jq -r '.version' server-xcrs.json)"
128
+ for attempt in $(seq 1 20); do
129
+ if curl -fsSL "https://crates.io/api/v1/crates/xcrs/${xcrs_version}" >/dev/null; then
130
+ echo "xcrs ${xcrs_version} is indexed on crates.io."
131
+ break
132
+ fi
133
+ if [ "${attempt}" -eq 20 ]; then
134
+ echo "xcrs ${xcrs_version} is still not indexed on crates.io after 10 minutes." >&2
135
+ exit 1
136
+ fi
137
+ echo "Waiting for crates.io to index xcrs ${xcrs_version} (attempt ${attempt}/20)..."
138
+ sleep 30
139
+ done
140
+
141
+ curl -fsSL -o xcrs.crate \
142
+ "https://crates.io/api/v1/crates/xcrs/${xcrs_version}/download"
143
+ if ! tar -xOf xcrs.crate "xcrs-${xcrs_version}/README.md" | grep -q "mcp-name: ${xcrs_server_name}"; then
144
+ echo "xcrs ${xcrs_version} README is missing the 'mcp-name: ${xcrs_server_name}' marker." >&2
145
+ exit 1
146
+ fi
147
+ rm xcrs.crate
148
+
149
- name: Install mcp-publisher
150
shell: bash
151
run: |
@@ -120,10 +157,15 @@ jobs:
157
158
- name: Publish
159
shell: bash
123
- run: ./mcp-publisher publish
160
+ run: |
161
+ ./mcp-publisher publish
162
+ cp server-xcrs.json server.json
163
+ ./mcp-publisher publish
164
165
- name: Verify the server is listed
166
shell: bash
167
run: |
168
server_name="$(jq -r '.name' server.json)"
169
curl -fsSL "https://registry.modelcontextprotocol.io/v0.1/servers?search=${server_name}" | jq .
170
+ xcrs_server_name="$(jq -r '.name' server-xcrs.json)"
171
+ curl -fsSL "https://registry.modelcontextprotocol.io/v0.1/servers?search=${xcrs_server_name}" | jq .
Cargo.lock
+1
-1
@@ -3996,7 +3996,7 @@ checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4"
3996
3997
[[package]]
3998
name = "xcrs"
3999
-version = "0.1.0"
3999
+version = "0.4.13"
4000
dependencies = [
4001
"anyhow",
4002
"base64",
Cargo.toml
+12
-12
@@ -29,17 +29,17 @@ schemars = "1"
29
serde = "1"
30
serde_json = "1.0.82"
31
serde_repr = "0.1"
32
-smbcloud-auth = { version = "0.4.9", path = "crates/smbcloud-auth" }
33
-smbcloud-auth-sdk = { version = "0.4.9", path = "crates/smbcloud-auth-sdk" }
34
-smbcloud-deploy = { version = "0.4.9", path = "crates/smbcloud-deploy" }
35
-smbcloud-email-sdk = { version = "0.4.9", path = "crates/smbcloud-email-sdk" }
36
-smbcloud-gresiq-sdk = { version = "0.4.9", path = "crates/smbcloud-gresiq-sdk" }
37
-smbcloud-mail = { version = "0.4.9", path = "crates/smbcloud-mail" }
38
-smbcloud-model = { version = "0.4.9", path = "crates/smbcloud-model" }
39
-smbcloud-network = { version = "0.4.9", path = "crates/smbcloud-network" }
40
-smbcloud-networking = { version = "0.4.9", path = "crates/smbcloud-networking" }
41
-smbcloud-networking-project = { version = "0.4.9", path = "crates/smbcloud-networking-project" }
42
-smbcloud-utils = { version = "0.4.9", path = "crates/smbcloud-utils" }
32
+smbcloud-auth = { version = "0.4.13", path = "crates/smbcloud-auth" }
33
+smbcloud-auth-sdk = { version = "0.4.13", path = "crates/smbcloud-auth-sdk" }
34
+smbcloud-deploy = { version = "0.4.13", path = "crates/smbcloud-deploy" }
35
+smbcloud-email-sdk = { version = "0.4.13", path = "crates/smbcloud-email-sdk" }
36
+smbcloud-gresiq-sdk = { version = "0.4.13", path = "crates/smbcloud-gresiq-sdk" }
37
+smbcloud-mail = { version = "0.4.13", path = "crates/smbcloud-mail" }
38
+smbcloud-model = { version = "0.4.13", path = "crates/smbcloud-model" }
39
+smbcloud-network = { version = "0.4.13", path = "crates/smbcloud-network" }
40
+smbcloud-networking = { version = "0.4.13", path = "crates/smbcloud-networking" }
41
+smbcloud-networking-project = { version = "0.4.13", path = "crates/smbcloud-networking-project" }
42
+smbcloud-utils = { version = "0.4.13", path = "crates/smbcloud-utils" }
43
spinners = "4.1.0"
44
strum = "0.27"
45
strum_macros = "0.27"
@@ -56,4 +56,4 @@ tsync = "2"
56
uniffi = "0.31"
57
url-builder = "0.1.1"
58
wasm-bindgen = "0.2"
59
-xcrs = { version = "0.1.0", path = "crates/xcrs" }
59
+xcrs = { version = "0.4.13", path = "crates/xcrs" }
Makefile
+10
-4
@@ -1,11 +1,11 @@
1
-.PHONY: help release patch minor major custom sync-release-metadata regenerate-release-lockfiles
1
+.PHONY: help release patch minor major custom sync-release-metadata regenerate-release-lockfiles check-release-versions
2
3
help:
4
@echo "Release commands:"
5
@echo " make patch"
6
@echo " make minor"
7
@echo " make major"
8
- @echo " make custom VERSION=0.3.40"
8
+ @echo " make custom VERSION=0.4.14"
9
10
release:
11
@test -n "$(BUMP)" || (echo "BUMP is required" && exit 1)
@@ -19,6 +19,7 @@ release:
19
fi
20
@$(MAKE) sync-release-metadata
21
@$(MAKE) regenerate-release-lockfiles
22
+ @$(MAKE) check-release-versions
23
@release_version=$$(sed -n 's/^version = "\(.*\)"/\1/p' crates/cli/Cargo.toml | head -n 1); \
24
if [ -z "$$release_version" ]; then echo "Unable to determine release version from crates/cli/Cargo.toml"; exit 1; fi; \
25
git add -A; \
@@ -32,9 +33,14 @@ sync-release-metadata:
33
34
regenerate-release-lockfiles:
35
@cargo generate-lockfile --manifest-path sdk/gems/auth/Cargo.toml
36
+ @cargo generate-lockfile --manifest-path sdk/gems/email/Cargo.toml
37
@cargo generate-lockfile --manifest-path sdk/gems/model/Cargo.toml
36
- @bundle lock --gemfile sdk/gems/auth/Gemfile
37
- @bundle lock --gemfile sdk/gems/model/Gemfile
38
+ @BUNDLE_GEMFILE=sdk/gems/auth/Gemfile bundle lock
39
+ @BUNDLE_GEMFILE=sdk/gems/email/Gemfile bundle lock
40
+ @BUNDLE_GEMFILE=sdk/gems/model/Gemfile bundle lock
41
+
42
+check-release-versions:
43
+ @node ./scripts/check-release-versions.mjs
44
45
patch:
46
@$(MAKE) release BUMP=patch
crates/xcrs/Cargo.toml
+1
-1
@@ -1,6 +1,6 @@
1
[package]
2
name = "xcrs"
3
-version = "0.1.0"
3
+version = "0.4.13"
4
edition = "2021"
5
authors = ["Seto Elkahfi <seto@smbcloud.xyz>"]
6
description = "Rust abstraction for Xcode command line tools."
crates/xcrs/README.md
new
+18
@@ -0,0 +1,18 @@
1
+# XCRS
2
+
3
+Rust-native Xcode command-line and Apple simulator automation tools with an
4
+MCP server for simulator and ControlKit workflows.
5
+
6
+MCP Registry name: `mcp-name: io.github.smbcloudXYZ/xcrs`
7
+
8
+## Run the MCP server
9
+
10
+```sh
11
+cargo install xcrs
12
+xcrs --mcp
13
+```
14
+
15
+## Repository
16
+
17
+Source and documentation are available in the
18
+[smbcloud-cli repository](https://github.com/smbcloudXYZ/smbcloud-cli/tree/main/crates/xcrs).
docs/mcp-registry.md
+20
-12
@@ -1,10 +1,13 @@
1
# MCP Registry
2
3
-The smbCloud CLI's MCP server is listed in the [official MCP Registry](https://registry.modelcontextprotocol.io)
4
-as **`io.github.smbcloudXYZ/smbcloud-cli`**. The registry is a metadata index —
5
-it doesn't host binaries — so the listing points at packages we already publish
6
-to npm and NuGet, and clients that browse the registry can offer a one-click
7
-install of `smb --mcp`.
3
+The repository publishes two MCP servers to the [official MCP Registry](https://registry.modelcontextprotocol.io):
4
+
5
+- **`io.github.smbcloudXYZ/smbcloud-cli`** — the `smb --mcp` server for smbCloud resources, simulators, and ControlKit runners.
6
+- **`io.github.smbcloudXYZ/xcrs`** — the standalone Rust `xcrs --mcp` server for Xcode and Apple simulator tooling.
7
+
8
+The registry is a metadata index — it doesn't host binaries. The smbCloud
9
+listing points at packages published to npm and NuGet, while the standalone
10
+XCRS listing points at the `xcrs` crate on crates.io.
11
12
For running and configuring the server itself, see [MCP Server](./mcp.md).
13
@@ -12,9 +15,11 @@ For running and configuring the server itself, see [MCP Server](./mcp.md).
15
16
| Piece | Where |
17
| --- | --- |
15
-| Server metadata | [`server.json`](../server.json) at the repo root |
18
+| smbCloud server metadata | [`server.json`](../server.json) at the repo root |
19
+| XCRS server metadata | [`server-xcrs.json`](../server-xcrs.json) at the repo root |
20
| npm ownership proof | `mcpName` in the generated `@smbcloud/cli` `package.json` (`npm/scripts/render-main-package.cjs`) |
21
| NuGet ownership proof | `<!-- mcp-name: ... -->` in `nuget/smbcloud-cli/README.md` |
22
+| Cargo ownership proof | Visible `mcp-name: ...` text in `crates/xcrs/README.md` |
23
| Publishing | `.github/workflows/release-mcp-registry.yml` |
24
25
The registry checks each listed package for a marker naming the server. If the
@@ -60,9 +65,9 @@ documented in [Install](./cli-install.md).
65
66
## Releasing a new version
67
63
-`server.json` carries the version twice — once for the server, once per package
64
-— and both are updated by `make patch | minor | major` along with the rest of
65
-the release metadata (`scripts/sync-release-version.mjs`).
68
+Each server metadata file carries its version twice — once for the server, once
69
+per package — and both are updated by `make patch | minor | major` along with
70
+the rest of the release metadata (`scripts/sync-release-version.mjs`).
71
72
Publishing is chained off the release: pushing a `v*` tag runs the crates.io
73
workflow, which fans out to the distribution workflows, and **NuGet CLI
@@ -83,10 +88,11 @@ the tag:
88
gh workflow run release-mcp-registry.yml -f tag=v0.4.13
89
```
90
86
-Confirm the listing afterwards:
91
+Confirm both listings afterwards:
92
93
```sh
94
curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.smbcloudXYZ/smbcloud-cli"
95
+curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.smbcloudXYZ/xcrs"
96
```
97
98
## Publishing by hand
@@ -99,5 +105,7 @@ mcp-publisher login github # device flow, needs push access to smbcloudXY
105
mcp-publisher publish # reads ./server.json
106
```
107
102
-Versions are immutable — republishing the same version is rejected. Fixing a
103
-bad listing means shipping a new patch version.
108
+The release workflow publishes `server.json`, then temporarily swaps in
109
+`server-xcrs.json` and publishes the standalone entry as well. Versions are
110
+immutable — republishing the same version is rejected. Fixing a bad listing
111
+means shipping a new patch version.
npm/smbcloud-cli/package-lock.json
+7
-7
@@ -1,12 +1,12 @@
1
{
2
"name": "@smbcloud/cli",
3
- "version": "0.4.7",
3
+ "version": "0.4.13",
4
"lockfileVersion": 3,
5
"requires": true,
6
"packages": {
7
"": {
8
"name": "@smbcloud/cli",
9
- "version": "0.4.7",
9
+ "version": "0.4.13",
10
"license": "Apache-2.0",
11
"bin": {
12
"smb": "lib/index.js"
@@ -19,11 +19,11 @@
19
"typescript": "^5.0.0"
20
},
21
"optionalDependencies": {
22
- "@smbcloud/cli-darwin-arm64": "0.4.7",
23
- "@smbcloud/cli-darwin-x64": "0.4.7",
24
- "@smbcloud/cli-linux-x64": "0.4.7",
25
- "@smbcloud/cli-windows-arm64": "0.4.7",
26
- "@smbcloud/cli-windows-x64": "0.4.7"
22
+ "@smbcloud/cli-darwin-arm64": "0.4.13",
23
+ "@smbcloud/cli-darwin-x64": "0.4.13",
24
+ "@smbcloud/cli-linux-x64": "0.4.13",
25
+ "@smbcloud/cli-windows-arm64": "0.4.13",
26
+ "@smbcloud/cli-windows-x64": "0.4.13"
27
}
28
},
29
"node_modules/@eslint-community/eslint-utils": {
npm/smbcloud-cli/package.json
+6
-6
@@ -1,6 +1,6 @@
1
{
2
"name": "@smbcloud/cli",
3
- "version": "0.4.7",
3
+ "version": "0.4.13",
4
"keywords": [
5
"smbcloud",
6
"cli",
@@ -58,10 +58,10 @@
58
"typescript": "^5.0.0"
59
},
60
"optionalDependencies": {
61
- "@smbcloud/cli-darwin-arm64": "0.4.7",
62
- "@smbcloud/cli-darwin-x64": "0.4.7",
63
- "@smbcloud/cli-linux-x64": "0.4.7",
64
- "@smbcloud/cli-windows-arm64": "0.4.7",
65
- "@smbcloud/cli-windows-x64": "0.4.7"
61
+ "@smbcloud/cli-darwin-arm64": "0.4.13",
62
+ "@smbcloud/cli-darwin-x64": "0.4.13",
63
+ "@smbcloud/cli-linux-x64": "0.4.13",
64
+ "@smbcloud/cli-windows-arm64": "0.4.13",
65
+ "@smbcloud/cli-windows-x64": "0.4.13"
66
}
67
}
nuget/smbcloud-cli/SmbCloud.Cli.csproj
+1
-1
@@ -7,7 +7,7 @@
7
<PackAsTool>true</PackAsTool>
8
<ToolCommandName>smb</ToolCommandName>
9
<PackageId>SmbCloud.Cli</PackageId>
10
- <PackageVersion>0.0.0-local</PackageVersion>
10
+ <PackageVersion>0.4.13</PackageVersion>
11
<Version>$(PackageVersion)</Version>
12
<Authors>Seto Elkahfi</Authors>
13
<Description>smbCloud command line interface.</Description>
scripts/check-release-versions.mjs
new
+102
@@ -0,0 +1,102 @@
1
+import { existsSync, readFileSync, readdirSync } from "node:fs";
2
+import { resolve } from "node:path";
3
+
4
+const repoRoot = resolve(import.meta.dirname, "..");
5
+const expectedVersion = readFileSync(resolve(repoRoot, "crates/cli/Cargo.toml"), "utf8")
6
+ .match(/^version\s*=\s*"([^"]+)"/m)?.[1];
7
+
8
+if (!expectedVersion) {
9
+ throw new Error("Unable to determine the release version from crates/cli/Cargo.toml");
10
+}
11
+
12
+const mismatches = [];
13
+
14
+function read(path) {
15
+ return readFileSync(resolve(repoRoot, path), "utf8");
16
+}
17
+
18
+function check(path, actualVersion) {
19
+ if (actualVersion !== expectedVersion) {
20
+ mismatches.push(`${path}: ${actualVersion ?? "missing"} (expected ${expectedVersion})`);
21
+ }
22
+}
23
+
24
+function cargoPackageVersion(path) {
25
+ return read(path).match(/^\[package\][\s\S]*?^version\s*=\s*"([^"]+)"/m)?.[1];
26
+}
27
+
28
+for (const directory of ["crates", "sdk/gems"]) {
29
+ const directoryPath = resolve(repoRoot, directory);
30
+ for (const entry of readdirSync(directoryPath, { withFileTypes: true })) {
31
+ if (!entry.isDirectory()) {
32
+ continue;
33
+ }
34
+
35
+ const candidates = [
36
+ `${directory}/${entry.name}/Cargo.toml`,
37
+ ...readdirSync(resolve(directoryPath, entry.name), { withFileTypes: true })
38
+ .filter((nestedEntry) => nestedEntry.isDirectory())
39
+ .map((nestedEntry) => `${directory}/${entry.name}/${nestedEntry.name}/Cargo.toml`),
40
+ ];
41
+
42
+ for (const candidate of candidates) {
43
+ if (existsSync(resolve(repoRoot, candidate))) {
44
+ const version = cargoPackageVersion(candidate);
45
+ if (version) {
46
+ check(candidate, version);
47
+ }
48
+ }
49
+ }
50
+ }
51
+}
52
+
53
+for (const match of read("Cargo.toml").matchAll(
54
+ /^([\w-]+)\s*=\s*\{\s*version\s*=\s*"([^"]+)"\s*,\s*path\s*=\s*"crates\//gm,
55
+)) {
56
+ check(`Cargo.toml workspace dependency ${match[1]}`, match[2]);
57
+}
58
+
59
+for (const path of [
60
+ "sdk/gems/auth/lib/auth/version.rb",
61
+ "sdk/gems/email/lib/email/version.rb",
62
+ "sdk/gems/model/lib/model/version.rb",
63
+]) {
64
+ check(path, read(path).match(/VERSION\s*=\s*['"]([^'"]+)['"]/)?.[1]);
65
+}
66
+
67
+const npmPackage = JSON.parse(read("npm/smbcloud-cli/package.json"));
68
+check("npm/smbcloud-cli/package.json", npmPackage.version);
69
+
70
+const sdkNpmPackage = JSON.parse(read("sdk/npm/smbcloud-auth/package.json"));
71
+check("sdk/npm/smbcloud-auth/package.json", sdkNpmPackage.version);
72
+
73
+const npmLock = JSON.parse(read("npm/smbcloud-cli/package-lock.json"));
74
+check("npm/smbcloud-cli/package-lock.json", npmLock.version);
75
+check("npm/smbcloud-cli/package-lock.json packages root", npmLock.packages?.[""]?.version);
76
+
77
+for (const path of ["server.json", "server-xcrs.json"]) {
78
+ const server = JSON.parse(read(path));
79
+ check(path, server.version);
80
+ for (const [index, packageEntry] of (server.packages ?? []).entries()) {
81
+ check(`${path} package ${index + 1}`, packageEntry.version);
82
+ }
83
+}
84
+
85
+check(
86
+ "nuget/smbcloud-cli/SmbCloud.Cli.csproj",
87
+ read("nuget/smbcloud-cli/SmbCloud.Cli.csproj").match(/<PackageVersion>([^<]+)<\/PackageVersion>/)?.[1],
88
+);
89
+check(
90
+ "sdk/gems/email/Gemfile.lock",
91
+ read("sdk/gems/email/Gemfile.lock").match(/smbcloud-email \(([^)]+)\)/)?.[1],
92
+);
93
+
94
+if (mismatches.length > 0) {
95
+ console.error(`Release version mismatch detected for ${expectedVersion}:`);
96
+ for (const mismatch of mismatches) {
97
+ console.error(`- ${mismatch}`);
98
+ }
99
+ process.exit(1);
100
+}
101
+
102
+console.log(`All release artifacts use version ${expectedVersion}.`);
scripts/sync-release-version.mjs
+105
@@ -3,12 +3,19 @@ import { resolve } from "node:path";
3
4
const repoRoot = resolve(import.meta.dirname, "..");
5
const cliCargoTomlPath = resolve(repoRoot, "crates/cli/Cargo.toml");
6
+const npmCliPackageJsonPath = resolve(repoRoot, "npm/smbcloud-cli/package.json");
7
+const npmCliPackageLockPath = resolve(repoRoot, "npm/smbcloud-cli/package-lock.json");
8
+const nugetCliProjectPath = resolve(repoRoot, "nuget/smbcloud-cli/SmbCloud.Cli.csproj");
9
const sdkNpmPackageJsonPath = resolve(repoRoot, "sdk/npm/smbcloud-auth/package.json");
10
const authGemVersionPath = resolve(repoRoot, "sdk/gems/auth/lib/auth/version.rb");
11
const authGemCargoTomlPath = resolve(repoRoot, "sdk/gems/auth/ext/auth/Cargo.toml");
12
const modelGemVersionPath = resolve(repoRoot, "sdk/gems/model/lib/model/version.rb");
13
const modelGemCargoTomlPath = resolve(repoRoot, "sdk/gems/model/ext/model/Cargo.toml");
14
+const emailGemVersionPath = resolve(repoRoot, "sdk/gems/email/lib/email/version.rb");
15
+const emailGemCargoTomlPath = resolve(repoRoot, "sdk/gems/email/ext/email/Cargo.toml");
16
+const emailGemLockPath = resolve(repoRoot, "sdk/gems/email/Gemfile.lock");
17
const mcpServerJsonPath = resolve(repoRoot, "server.json");
18
+const xcrsMcpServerJsonPath = resolve(repoRoot, "server-xcrs.json");
19
20
function readText(path) {
21
return readFileSync(path, "utf8");
@@ -53,6 +60,50 @@ const [major = "0", minor = "0"] = releaseVersion.split(".");
60
const rubySdkRequirement = `${major}.${minor}`;
61
const updatedPaths = [];
62
63
+if (
64
+ updateFile(npmCliPackageJsonPath, (content) => {
65
+ const parsed = JSON.parse(content);
66
+ parsed.version = releaseVersion;
67
+
68
+ for (const packageName of Object.keys(parsed.optionalDependencies ?? {})) {
69
+ parsed.optionalDependencies[packageName] = releaseVersion;
70
+ }
71
+
72
+ return `${JSON.stringify(parsed, null, 2)}\n`;
73
+ })
74
+) {
75
+ updatedPaths.push(npmCliPackageJsonPath);
76
+}
77
+
78
+if (
79
+ updateFile(npmCliPackageLockPath, (content) => {
80
+ const parsed = JSON.parse(content);
81
+ parsed.version = releaseVersion;
82
+ parsed.packages[""].version = releaseVersion;
83
+
84
+ for (const packageName of Object.keys(parsed.packages[""].optionalDependencies ?? {})) {
85
+ parsed.packages[""].optionalDependencies[packageName] = releaseVersion;
86
+ }
87
+
88
+ return `${JSON.stringify(parsed, null, 2)}\n`;
89
+ })
90
+) {
91
+ updatedPaths.push(npmCliPackageLockPath);
92
+}
93
+
94
+if (
95
+ updateFile(nugetCliProjectPath, (content) =>
96
+ replaceOrThrow(
97
+ content,
98
+ /<PackageVersion>[^<]+<\/PackageVersion>/,
99
+ `<PackageVersion>${releaseVersion}</PackageVersion>`,
100
+ `${nugetCliProjectPath} package version`,
101
+ ),
102
+ )
103
+) {
104
+ updatedPaths.push(nugetCliProjectPath);
105
+}
106
+
107
if (
108
updateFile(sdkNpmPackageJsonPath, (content) => {
109
const parsed = JSON.parse(content);
@@ -130,6 +181,45 @@ if (
181
updatedPaths.push(modelGemCargoTomlPath);
182
}
183
184
+if (
185
+ updateFile(emailGemVersionPath, (content) =>
186
+ replaceOrThrow(
187
+ content,
188
+ /VERSION\s*=\s*'[^']+'/,
189
+ `VERSION = '${releaseVersion}'`,
190
+ `${emailGemVersionPath} VERSION constant`,
191
+ ),
192
+ )
193
+) {
194
+ updatedPaths.push(emailGemVersionPath);
195
+}
196
+
197
+if (
198
+ updateFile(emailGemCargoTomlPath, (content) =>
199
+ replaceOrThrow(
200
+ content,
201
+ /^version\s*=\s*"[^"]+"/m,
202
+ `version = "${releaseVersion}"`,
203
+ `${emailGemCargoTomlPath} package version`,
204
+ ),
205
+ )
206
+) {
207
+ updatedPaths.push(emailGemCargoTomlPath);
208
+}
209
+
210
+if (
211
+ updateFile(emailGemLockPath, (content) =>
212
+ replaceOrThrow(
213
+ content,
214
+ /(smbcloud-email \()[^)]+(\))/,
215
+ `$1${releaseVersion}$2`,
216
+ `${emailGemLockPath} gem version`,
217
+ ),
218
+ )
219
+) {
220
+ updatedPaths.push(emailGemLockPath);
221
+}
222
+
223
if (
224
updateFile(mcpServerJsonPath, (content) => {
225
const parsed = JSON.parse(content);
@@ -145,6 +235,21 @@ if (
235
updatedPaths.push(mcpServerJsonPath);
236
}
237
238
+if (
239
+ updateFile(xcrsMcpServerJsonPath, (content) => {
240
+ const parsed = JSON.parse(content);
241
+ parsed.version = releaseVersion;
242
+
243
+ for (const pkg of parsed.packages ?? []) {
244
+ pkg.version = releaseVersion;
245
+ }
246
+
247
+ return `${JSON.stringify(parsed, null, 2)}\n`;
248
+ })
249
+) {
250
+ updatedPaths.push(xcrsMcpServerJsonPath);
251
+}
252
+
253
console.log(`Release version: ${releaseVersion}`);
254
255
if (updatedPaths.length === 0) {
sdk/gems/email/Cargo.lock
+169
-258
@@ -114,7 +114,7 @@ version = "0.72.1"
114
source = "registry+https://github.com/rust-lang/crates.io-index"
115
checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895"
116
dependencies = [
117
- "bitflags 2.13.0",
117
+ "bitflags 2.13.1",
118
"cexpr",
119
"clang-sys",
120
"itertools",
@@ -123,7 +123,7 @@ dependencies = [
123
"regex",
124
"rustc-hash",
125
"shlex 1.3.0",
126
- "syn 2.0.118",
126
+ "syn 2.0.119",
127
]
128
129
[[package]]
@@ -134,9 +134,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
134
135
[[package]]
136
name = "bitflags"
137
-version = "2.13.0"
137
+version = "2.13.1"
138
source = "registry+https://github.com/rust-lang/crates.io-index"
139
-checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8"
139
+checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da"
140
141
[[package]]
142
name = "bumpalo"
@@ -146,15 +146,15 @@ checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649"
146
147
[[package]]
148
name = "bytes"
149
-version = "1.12.0"
149
+version = "1.12.1"
150
source = "registry+https://github.com/rust-lang/crates.io-index"
151
-checksum = "8ae3f5d315924270530207e2a68396c3cc547f6dca3fbdca317cfb1a51edb593"
151
+checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04"
152
153
[[package]]
154
name = "cc"
155
-version = "1.2.65"
155
+version = "1.4.0"
156
source = "registry+https://github.com/rust-lang/crates.io-index"
157
-checksum = "e228eec9be7c17ccb640b59b36a5cd805ea2a564a4c5e162c2f659fea30d3b96"
157
+checksum = "5add81bb678e6cb321aff7fa0dc7689ad82b112dbc032cea19f91d6b8e3582b9"
158
dependencies = [
159
"find-msvc-tools",
160
"shlex 2.0.1",
@@ -177,9 +177,20 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
177
178
[[package]]
179
name = "cfg_aliases"
180
-version = "0.2.1"
180
+version = "0.2.2"
181
+source = "registry+https://github.com/rust-lang/crates.io-index"
182
+checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527"
183
+
184
+[[package]]
185
+name = "chacha20"
186
+version = "0.10.1"
187
source = "registry+https://github.com/rust-lang/crates.io-index"
182
-checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
188
+checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81"
189
+dependencies = [
190
+ "cfg-if",
191
+ "cpufeatures",
192
+ "rand_core",
193
+]
194
195
[[package]]
196
name = "chrono"
@@ -197,9 +208,9 @@ dependencies = [
208
209
[[package]]
210
name = "clang-sys"
200
-version = "1.8.1"
211
+version = "1.9.1"
212
source = "registry+https://github.com/rust-lang/crates.io-index"
202
-checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
213
+checksum = "157a8ba7b480713b56f4c09fd13fc3e0a22a5dfab8097ba61cbc5feef950788a"
214
dependencies = [
215
"glob",
216
"libc",
@@ -223,9 +234,9 @@ dependencies = [
234
235
[[package]]
236
name = "clap"
226
-version = "4.6.1"
237
+version = "4.6.4"
238
source = "registry+https://github.com/rust-lang/crates.io-index"
228
-checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51"
239
+checksum = "d91e0c145792ef73a6ad36d27c75ac09f1832222a3c209689d90f534685ee5b7"
240
dependencies = [
241
"clap_builder",
242
"clap_derive",
@@ -233,9 +244,9 @@ dependencies = [
244
245
[[package]]
246
name = "clap_builder"
236
-version = "4.6.0"
247
+version = "4.6.2"
248
source = "registry+https://github.com/rust-lang/crates.io-index"
238
-checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f"
249
+checksum = "f09628afdcc538b57f3c6341e9c8e9970f18e4a481690a64974d7023bd33548b"
250
dependencies = [
251
"anstream",
252
"anstyle",
@@ -245,14 +256,14 @@ dependencies = [
256
257
[[package]]
258
name = "clap_derive"
248
-version = "4.6.1"
259
+version = "4.6.4"
260
source = "registry+https://github.com/rust-lang/crates.io-index"
250
-checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9"
261
+checksum = "d012d2b9d65aca7f18f4d9878a045bc17899bba951561ba5ec3c2ba1eed9a061"
262
dependencies = [
263
"heck 0.5.0",
264
"proc-macro2",
265
"quote",
255
- "syn 2.0.118",
266
+ "syn 3.0.3",
267
]
268
269
[[package]]
@@ -292,26 +303,35 @@ version = "0.8.7"
303
source = "registry+https://github.com/rust-lang/crates.io-index"
304
checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
305
306
+[[package]]
307
+name = "cpufeatures"
308
+version = "0.3.0"
309
+source = "registry+https://github.com/rust-lang/crates.io-index"
310
+checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201"
311
+dependencies = [
312
+ "libc",
313
+]
314
+
315
[[package]]
316
name = "displaydoc"
297
-version = "0.2.6"
317
+version = "0.2.7"
318
source = "registry+https://github.com/rust-lang/crates.io-index"
299
-checksum = "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f"
319
+checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8"
320
dependencies = [
321
"proc-macro2",
322
"quote",
303
- "syn 2.0.118",
323
+ "syn 3.0.3",
324
]
325
326
[[package]]
327
name = "either"
308
-version = "1.16.0"
328
+version = "1.17.0"
329
source = "registry+https://github.com/rust-lang/crates.io-index"
310
-checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e"
330
+checksum = "9e5e8f6c15a24b9a3ee5efec809ccd006d3b30e8b3bb63c39af737c7f87daa1d"
331
332
[[package]]
333
name = "email"
314
-version = "0.4.7"
334
+version = "0.4.13"
335
dependencies = [
336
"magnus",
337
"serde_json",
@@ -336,30 +356,30 @@ dependencies = [
356
357
[[package]]
358
name = "futures-channel"
339
-version = "0.3.32"
359
+version = "0.3.33"
360
source = "registry+https://github.com/rust-lang/crates.io-index"
341
-checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d"
361
+checksum = "262590f4fe6afeb0bc83be1daa64e52657fe185690a958af7f3ad0e92085c5ae"
362
dependencies = [
363
"futures-core",
364
]
365
366
[[package]]
367
name = "futures-core"
348
-version = "0.3.32"
368
+version = "0.3.33"
369
source = "registry+https://github.com/rust-lang/crates.io-index"
350
-checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d"
370
+checksum = "2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7"
371
372
[[package]]
373
name = "futures-task"
354
-version = "0.3.32"
374
+version = "0.3.33"
375
source = "registry+https://github.com/rust-lang/crates.io-index"
356
-checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393"
376
+checksum = "b231ed28831efb4a61a08580c4bc233ec56bc009f4cd8f52da2c3cb97df0c109"
377
378
[[package]]
379
name = "futures-util"
360
-version = "0.3.32"
380
+version = "0.3.33"
381
source = "registry+https://github.com/rust-lang/crates.io-index"
362
-checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6"
382
+checksum = "a77a90a256fce34da66415271e30f94ee91c57b04b8a2c042d9cf3220179deaa"
383
dependencies = [
384
"futures-core",
385
"futures-task",
@@ -395,23 +415,23 @@ dependencies = [
415
416
[[package]]
417
name = "getrandom"
398
-version = "0.3.4"
418
+version = "0.4.3"
419
source = "registry+https://github.com/rust-lang/crates.io-index"
400
-checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
420
+checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099"
421
dependencies = [
422
"cfg-if",
423
"js-sys",
424
"libc",
425
"r-efi",
406
- "wasip2",
426
+ "rand_core",
427
"wasm-bindgen",
428
]
429
430
[[package]]
431
name = "glob"
412
-version = "0.3.3"
432
+version = "0.3.4"
433
source = "registry+https://github.com/rust-lang/crates.io-index"
414
-checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"
434
+checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b"
435
436
[[package]]
437
name = "heck"
@@ -445,9 +465,9 @@ dependencies = [
465
466
[[package]]
467
name = "http"
448
-version = "1.4.2"
468
+version = "1.5.0"
469
source = "registry+https://github.com/rust-lang/crates.io-index"
450
-checksum = "6970f50e31d6fc17d3fa27329444bfa74e196cf62e95052a3f6fee181dba6425"
470
+checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0"
471
dependencies = [
472
"bytes",
473
"itoa",
@@ -455,9 +475,9 @@ dependencies = [
475
476
[[package]]
477
name = "http-body"
458
-version = "1.0.1"
478
+version = "1.1.0"
479
source = "registry+https://github.com/rust-lang/crates.io-index"
460
-checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184"
480
+checksum = "ca2a8f2913ee65f60facd6a5905613afaa448497a0230cc41ce022d93290bc2c"
481
dependencies = [
482
"bytes",
483
"http",
@@ -465,9 +485,9 @@ dependencies = [
485
486
[[package]]
487
name = "http-body-util"
468
-version = "0.1.3"
488
+version = "0.1.4"
489
source = "registry+https://github.com/rust-lang/crates.io-index"
470
-checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a"
490
+checksum = "e9f41fd6a08e4d4ec69df65976da761afd5ad5e58a9d4acb46bd1c953a9e3ff2"
491
dependencies = [
492
"bytes",
493
"futures-core",
@@ -484,9 +504,9 @@ checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
504
505
[[package]]
506
name = "hyper"
487
-version = "1.10.1"
507
+version = "1.11.0"
508
source = "registry+https://github.com/rust-lang/crates.io-index"
489
-checksum = "55281c53a1894c864990125767da440a4e630446785086f52523b20033b74498"
509
+checksum = "d22053281f852e11534f5198498373cbb59295120a20771d90f7ed1897490a72"
510
dependencies = [
511
"atomic-waker",
512
"bytes",
@@ -715,9 +735,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
735
736
[[package]]
737
name = "libc"
718
-version = "0.2.186"
738
+version = "0.2.189"
739
source = "registry+https://github.com/rust-lang/crates.io-index"
720
-checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
740
+checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
741
742
[[package]]
743
name = "libloading"
@@ -782,7 +802,7 @@ checksum = "5968c820e2960565f647819f5928a42d6e874551cab9d88d75e3e0660d7f71e3"
802
dependencies = [
803
"proc-macro2",
804
"quote",
785
- "syn 2.0.118",
805
+ "syn 2.0.119",
806
]
807
808
[[package]]
@@ -802,9 +822,9 @@ dependencies = [
822
823
[[package]]
824
name = "memchr"
805
-version = "2.8.2"
825
+version = "2.8.3"
826
source = "registry+https://github.com/rust-lang/crates.io-index"
807
-checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4"
827
+checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
828
829
[[package]]
830
name = "minimal-lexical"
@@ -814,9 +834,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
834
835
[[package]]
836
name = "mio"
817
-version = "1.2.1"
837
+version = "1.2.2"
838
source = "registry+https://github.com/rust-lang/crates.io-index"
819
-checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda"
839
+checksum = "30d65c71f1ce40ab09135ce117d742b9f8a19ff91a41a8b57ed50bc2de59c427"
840
dependencies = [
841
"libc",
842
"wasi",
@@ -890,15 +910,6 @@ dependencies = [
910
"zerovec",
911
]
912
893
-[[package]]
894
-name = "ppv-lite86"
895
-version = "0.2.21"
896
-source = "registry+https://github.com/rust-lang/crates.io-index"
897
-checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
898
-dependencies = [
899
- "zerocopy",
900
-]
901
-
913
[[package]]
914
name = "proc-macro-error"
915
version = "1.0.4"
@@ -925,9 +936,9 @@ dependencies = [
936
937
[[package]]
938
name = "proc-macro2"
928
-version = "1.0.106"
939
+version = "1.0.107"
940
source = "registry+https://github.com/rust-lang/crates.io-index"
930
-checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
941
+checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
942
dependencies = [
943
"unicode-ident",
944
]
@@ -954,14 +965,15 @@ dependencies = [
965
966
[[package]]
967
name = "quinn-proto"
957
-version = "0.11.15"
968
+version = "0.11.16"
969
source = "registry+https://github.com/rust-lang/crates.io-index"
959
-checksum = "4fcb935c5bec503c2f0e306bdd3e58bb9029dcb14fa8d9ac76e3a5256ac0763e"
970
+checksum = "2f4bfc015262b9df63c8845072ce59068853ff5872180c2ce2f13038b970e560"
971
dependencies = [
972
"bytes",
962
- "getrandom 0.3.4",
973
+ "getrandom 0.4.3",
974
"lru-slab",
975
"rand",
976
+ "rand_pcg",
977
"ring",
978
"rustc-hash",
979
"rustls",
@@ -975,60 +987,57 @@ dependencies = [
987
988
[[package]]
989
name = "quinn-udp"
978
-version = "0.5.14"
990
+version = "0.5.15"
991
source = "registry+https://github.com/rust-lang/crates.io-index"
980
-checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd"
992
+checksum = "35a133f956daabe89a61a685c2649f13d82d5aa4bd5d12d1277e1072a21c0694"
993
dependencies = [
994
"cfg_aliases",
995
"libc",
996
"once_cell",
997
"socket2",
998
"tracing",
987
- "windows-sys 0.60.2",
999
+ "windows-sys 0.61.2",
1000
]
1001
1002
[[package]]
1003
name = "quote"
992
-version = "1.0.46"
1004
+version = "1.0.47"
1005
source = "registry+https://github.com/rust-lang/crates.io-index"
994
-checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368"
1006
+checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
1007
dependencies = [
1008
"proc-macro2",
1009
]
1010
1011
[[package]]
1012
name = "r-efi"
1001
-version = "5.3.0"
1013
+version = "6.0.0"
1014
source = "registry+https://github.com/rust-lang/crates.io-index"
1003
-checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
1015
+checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
1016
1017
[[package]]
1018
name = "rand"
1007
-version = "0.9.4"
1019
+version = "0.10.2"
1020
source = "registry+https://github.com/rust-lang/crates.io-index"
1009
-checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea"
1021
+checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80"
1022
dependencies = [
1011
- "rand_chacha",
1023
+ "chacha20",
1024
+ "getrandom 0.4.3",
1025
"rand_core",
1026
]
1027
1028
[[package]]
1016
-name = "rand_chacha"
1017
-version = "0.9.0"
1029
+name = "rand_core"
1030
+version = "0.10.1"
1031
source = "registry+https://github.com/rust-lang/crates.io-index"
1019
-checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
1020
-dependencies = [
1021
- "ppv-lite86",
1022
- "rand_core",
1023
-]
1032
+checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69"
1033
1034
[[package]]
1026
-name = "rand_core"
1027
-version = "0.9.5"
1035
+name = "rand_pcg"
1036
+version = "0.10.2"
1037
source = "registry+https://github.com/rust-lang/crates.io-index"
1029
-checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c"
1038
+checksum = "caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a"
1039
dependencies = [
1031
- "getrandom 0.3.4",
1040
+ "rand_core",
1041
]
1042
1043
[[package]]
@@ -1052,7 +1061,7 @@ dependencies = [
1061
"quote",
1062
"regex",
1063
"shell-words",
1055
- "syn 2.0.118",
1064
+ "syn 2.0.119",
1065
]
1066
1067
[[package]]
@@ -1063,9 +1072,9 @@ checksum = "a35802679f07360454b418a5d1735c89716bde01d35b1560fc953c1415a0b3bb"
1072
1073
[[package]]
1074
name = "regex"
1066
-version = "1.12.4"
1075
+version = "1.13.1"
1076
source = "registry+https://github.com/rust-lang/crates.io-index"
1068
-checksum = "f1292b7759ae1cb9ec195452d1390a074f0cd8541ab7a5a8c31cd6db45d4a6ba"
1077
+checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d"
1078
dependencies = [
1079
"aho-corasick",
1080
"memchr",
@@ -1075,9 +1084,9 @@ dependencies = [
1084
1085
[[package]]
1086
name = "regex-automata"
1078
-version = "0.4.14"
1087
+version = "0.4.16"
1088
source = "registry+https://github.com/rust-lang/crates.io-index"
1080
-checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f"
1089
+checksum = "8fcfdb36bda0c880c5931cdc7a2bcdc8ba4556847b9d912bca70bc94708711ad"
1090
dependencies = [
1091
"aho-corasick",
1092
"memchr",
@@ -1145,15 +1154,15 @@ dependencies = [
1154
1155
[[package]]
1156
name = "rustc-hash"
1148
-version = "2.1.2"
1157
+version = "2.1.3"
1158
source = "registry+https://github.com/rust-lang/crates.io-index"
1150
-checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe"
1159
+checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d"
1160
1161
[[package]]
1162
name = "rustls"
1154
-version = "0.23.41"
1163
+version = "0.23.43"
1164
source = "registry+https://github.com/rust-lang/crates.io-index"
1156
-checksum = "6b92b125634d9b795e7beca796cc790df15a7fb38323bf3196fda83292d06b1f"
1165
+checksum = "0283386ce02abc0151e1761d08802dfe86c173b0b494af5cbc086574e453da06"
1166
dependencies = [
1167
"once_cell",
1168
"ring",
@@ -1177,9 +1186,9 @@ dependencies = [
1186
1187
[[package]]
1188
name = "rustls-pki-types"
1180
-version = "1.14.1"
1189
+version = "1.15.1"
1190
source = "registry+https://github.com/rust-lang/crates.io-index"
1182
-checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9"
1191
+checksum = "2f4925028c7eb5d1fcdaf196971378ed9d2c1c4efc7dc5d011256f76c99c0a96"
1192
dependencies = [
1193
"web-time",
1194
"zeroize",
@@ -1198,9 +1207,9 @@ dependencies = [
1207
1208
[[package]]
1209
name = "rustversion"
1201
-version = "1.0.22"
1210
+version = "1.0.23"
1211
source = "registry+https://github.com/rust-lang/crates.io-index"
1203
-checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
1212
+checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
1213
1214
[[package]]
1215
name = "ryu"
@@ -1238,7 +1247,7 @@ version = "3.7.0"
1247
source = "registry+https://github.com/rust-lang/crates.io-index"
1248
checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d"
1249
dependencies = [
1241
- "bitflags 2.13.0",
1250
+ "bitflags 2.13.1",
1251
"core-foundation",
1252
"core-foundation-sys",
1253
"libc",
@@ -1263,9 +1272,9 @@ checksum = "1bc711410fbe7399f390ca1c3b60ad0f53f80e95c5eb935e52268a0e2cd49acc"
1272
1273
[[package]]
1274
name = "serde"
1266
-version = "1.0.228"
1275
+version = "1.0.229"
1276
source = "registry+https://github.com/rust-lang/crates.io-index"
1268
-checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
1277
+checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
1278
dependencies = [
1279
"serde_core",
1280
"serde_derive",
@@ -1273,29 +1282,29 @@ dependencies = [
1282
1283
[[package]]
1284
name = "serde_core"
1276
-version = "1.0.228"
1285
+version = "1.0.229"
1286
source = "registry+https://github.com/rust-lang/crates.io-index"
1278
-checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
1287
+checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
1288
dependencies = [
1289
"serde_derive",
1290
]
1291
1292
[[package]]
1293
name = "serde_derive"
1285
-version = "1.0.228"
1294
+version = "1.0.229"
1295
source = "registry+https://github.com/rust-lang/crates.io-index"
1287
-checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
1296
+checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
1297
dependencies = [
1298
"proc-macro2",
1299
"quote",
1291
- "syn 2.0.118",
1300
+ "syn 3.0.3",
1301
]
1302
1303
[[package]]
1304
name = "serde_json"
1296
-version = "1.0.150"
1305
+version = "1.0.151"
1306
source = "registry+https://github.com/rust-lang/crates.io-index"
1298
-checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9"
1307
+checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14"
1308
dependencies = [
1309
"itoa",
1310
"memchr",
@@ -1306,13 +1315,13 @@ dependencies = [
1315
1316
[[package]]
1317
name = "serde_repr"
1309
-version = "0.1.20"
1318
+version = "0.1.21"
1319
source = "registry+https://github.com/rust-lang/crates.io-index"
1311
-checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c"
1320
+checksum = "8d3b1629de253c70a0508c3899572da79ca359fdab27c7920ff00406df418906"
1321
dependencies = [
1322
"proc-macro2",
1323
"quote",
1315
- "syn 2.0.118",
1324
+ "syn 3.0.3",
1325
]
1326
1327
[[package]]
@@ -1368,7 +1377,7 @@ checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90"
1377
1378
[[package]]
1379
name = "smbcloud-email-sdk"
1371
-version = "0.4.7"
1380
+version = "0.4.13"
1381
dependencies = [
1382
"log",
1383
"reqwest",
@@ -1382,7 +1391,7 @@ dependencies = [
1391
1392
[[package]]
1393
name = "smbcloud-model"
1385
-version = "0.4.7"
1394
+version = "0.4.13"
1395
dependencies = [
1396
"chrono",
1397
"log",
@@ -1398,9 +1407,9 @@ dependencies = [
1407
1408
[[package]]
1409
name = "smbcloud-network"
1401
-version = "0.4.7"
1410
+version = "0.4.13"
1411
dependencies = [
1403
- "clap 4.6.1",
1412
+ "clap 4.6.4",
1413
"log",
1414
"reqwest",
1415
"serde",
@@ -1411,9 +1420,9 @@ dependencies = [
1420
1421
[[package]]
1422
name = "socket2"
1414
-version = "0.6.4"
1423
+version = "0.6.5"
1424
source = "registry+https://github.com/rust-lang/crates.io-index"
1416
-checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51"
1425
+checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4"
1426
dependencies = [
1427
"libc",
1428
"windows-sys 0.61.2",
@@ -1518,7 +1527,7 @@ dependencies = [
1527
"heck 0.5.0",
1528
"proc-macro2",
1529
"quote",
1521
- "syn 2.0.118",
1530
+ "syn 2.0.119",
1531
]
1532
1533
[[package]]
@@ -1540,9 +1549,20 @@ dependencies = [
1549
1550
[[package]]
1551
name = "syn"
1543
-version = "2.0.118"
1552
+version = "2.0.119"
1553
source = "registry+https://github.com/rust-lang/crates.io-index"
1545
-checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422"
1554
+checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
1555
+dependencies = [
1556
+ "proc-macro2",
1557
+ "quote",
1558
+ "unicode-ident",
1559
+]
1560
+
1561
+[[package]]
1562
+name = "syn"
1563
+version = "3.0.3"
1564
+source = "registry+https://github.com/rust-lang/crates.io-index"
1565
+checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3"
1566
dependencies = [
1567
"proc-macro2",
1568
"quote",
@@ -1566,7 +1586,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
1586
dependencies = [
1587
"proc-macro2",
1588
"quote",
1569
- "syn 2.0.118",
1589
+ "syn 2.0.119",
1590
]
1591
1592
[[package]]
@@ -1580,29 +1600,29 @@ dependencies = [
1600
1601
[[package]]
1602
name = "thiserror"
1583
-version = "2.0.18"
1603
+version = "2.0.19"
1604
source = "registry+https://github.com/rust-lang/crates.io-index"
1585
-checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
1605
+checksum = "09a43598840e33d5b0331f38c5e30d13bb11c11210a4b58f0d9b18a5a5eefcd9"
1606
dependencies = [
1607
"thiserror-impl",
1608
]
1609
1610
[[package]]
1611
name = "thiserror-impl"
1592
-version = "2.0.18"
1612
+version = "2.0.19"
1613
source = "registry+https://github.com/rust-lang/crates.io-index"
1594
-checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
1614
+checksum = "43cbfe0cf76104d42a574802844187e84a305e531ed54455f11fbde0f10541cd"
1615
dependencies = [
1616
"proc-macro2",
1617
"quote",
1598
- "syn 2.0.118",
1618
+ "syn 3.0.3",
1619
]
1620
1621
[[package]]
1622
name = "thread_local"
1603
-version = "1.1.9"
1623
+version = "1.1.10"
1624
source = "registry+https://github.com/rust-lang/crates.io-index"
1605
-checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185"
1625
+checksum = "1ad99c4c6d32803332c548b1af0540b357b3f5fc0be8f6c6bfe8b2e6ae784070"
1626
dependencies = [
1627
"cfg-if",
1628
]
@@ -1619,9 +1639,9 @@ dependencies = [
1639
1640
[[package]]
1641
name = "tinyvec"
1622
-version = "1.11.0"
1642
+version = "1.12.0"
1643
source = "registry+https://github.com/rust-lang/crates.io-index"
1624
-checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3"
1644
+checksum = "bb4ebadaa0af04fab11ae01eb5f9fdb5f9c5b875506e210e71c07873528baa7f"
1645
dependencies = [
1646
"tinyvec_macros",
1647
]
@@ -1634,9 +1654,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
1654
1655
[[package]]
1656
name = "tokio"
1637
-version = "1.52.3"
1657
+version = "1.53.1"
1658
source = "registry+https://github.com/rust-lang/crates.io-index"
1639
-checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe"
1659
+checksum = "202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed"
1660
dependencies = [
1661
"bytes",
1662
"libc",
@@ -1677,7 +1697,7 @@ version = "0.6.11"
1697
source = "registry+https://github.com/rust-lang/crates.io-index"
1698
checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840"
1699
dependencies = [
1680
- "bitflags 2.13.0",
1700
+ "bitflags 2.13.1",
1701
"bytes",
1702
"futures-util",
1703
"http",
@@ -1720,7 +1740,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
1740
dependencies = [
1741
"proc-macro2",
1742
"quote",
1723
- "syn 2.0.118",
1743
+ "syn 2.0.119",
1744
]
1745
1746
[[package]]
@@ -1779,7 +1799,7 @@ dependencies = [
1799
"quote",
1800
"state",
1801
"structopt",
1782
- "syn 2.0.118",
1802
+ "syn 2.0.119",
1803
"tsync-macro",
1804
"walkdir",
1805
]
@@ -1881,15 +1901,6 @@ version = "0.11.1+wasi-snapshot-preview1"
1901
source = "registry+https://github.com/rust-lang/crates.io-index"
1902
checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
1903
1884
-[[package]]
1885
-name = "wasip2"
1886
-version = "1.0.4+wasi-0.2.12"
1887
-source = "registry+https://github.com/rust-lang/crates.io-index"
1888
-checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487"
1889
-dependencies = [
1890
- "wit-bindgen",
1891
-]
1892
-
1904
[[package]]
1905
name = "wasm-bindgen"
1906
version = "0.2.126"
@@ -1932,7 +1943,7 @@ dependencies = [
1943
"bumpalo",
1944
"proc-macro2",
1945
"quote",
1935
- "syn 2.0.118",
1946
+ "syn 2.0.119",
1947
"wasm-bindgen-shared",
1948
]
1949
@@ -1967,9 +1978,9 @@ dependencies = [
1978
1979
[[package]]
1980
name = "webpki-roots"
1970
-version = "1.0.8"
1981
+version = "1.0.9"
1982
source = "registry+https://github.com/rust-lang/crates.io-index"
1972
-checksum = "bf85cb06032201fa7c6f829d7db5a7e5aa45bcc0655327713065f6f0576731bf"
1983
+checksum = "7dcd9d09a39985f5344844e66b0c530a33843579125f23e21e9f0f220850f22a"
1984
dependencies = [
1985
"rustls-pki-types",
1986
]
@@ -2035,7 +2046,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
2046
dependencies = [
2047
"proc-macro2",
2048
"quote",
2038
- "syn 2.0.118",
2049
+ "syn 2.0.119",
2050
]
2051
2052
[[package]]
@@ -2046,7 +2057,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
2057
dependencies = [
2058
"proc-macro2",
2059
"quote",
2049
- "syn 2.0.118",
2060
+ "syn 2.0.119",
2061
]
2062
2063
[[package]]
@@ -2082,15 +2093,6 @@ dependencies = [
2093
"windows-targets 0.52.6",
2094
]
2095
2085
-[[package]]
2086
-name = "windows-sys"
2087
-version = "0.60.2"
2088
-source = "registry+https://github.com/rust-lang/crates.io-index"
2089
-checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb"
2090
-dependencies = [
2091
- "windows-targets 0.53.5",
2092
-]
2093
-
2096
[[package]]
2097
name = "windows-sys"
2098
version = "0.61.2"
@@ -2124,30 +2126,13 @@ dependencies = [
2126
"windows_aarch64_gnullvm 0.52.6",
2127
"windows_aarch64_msvc 0.52.6",
2128
"windows_i686_gnu 0.52.6",
2127
- "windows_i686_gnullvm 0.52.6",
2129
+ "windows_i686_gnullvm",
2130
"windows_i686_msvc 0.52.6",
2131
"windows_x86_64_gnu 0.52.6",
2132
"windows_x86_64_gnullvm 0.52.6",
2133
"windows_x86_64_msvc 0.52.6",
2134
]
2135
2134
-[[package]]
2135
-name = "windows-targets"
2136
-version = "0.53.5"
2137
-source = "registry+https://github.com/rust-lang/crates.io-index"
2138
-checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3"
2139
-dependencies = [
2140
- "windows-link",
2141
- "windows_aarch64_gnullvm 0.53.1",
2142
- "windows_aarch64_msvc 0.53.1",
2143
- "windows_i686_gnu 0.53.1",
2144
- "windows_i686_gnullvm 0.53.1",
2145
- "windows_i686_msvc 0.53.1",
2146
- "windows_x86_64_gnu 0.53.1",
2147
- "windows_x86_64_gnullvm 0.53.1",
2148
- "windows_x86_64_msvc 0.53.1",
2149
-]
2150
-
2136
[[package]]
2137
name = "windows_aarch64_gnullvm"
2138
version = "0.48.5"
@@ -2160,12 +2145,6 @@ version = "0.52.6"
2145
source = "registry+https://github.com/rust-lang/crates.io-index"
2146
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
2147
2163
-[[package]]
2164
-name = "windows_aarch64_gnullvm"
2165
-version = "0.53.1"
2166
-source = "registry+https://github.com/rust-lang/crates.io-index"
2167
-checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53"
2168
-
2148
[[package]]
2149
name = "windows_aarch64_msvc"
2150
version = "0.48.5"
@@ -2178,12 +2157,6 @@ version = "0.52.6"
2157
source = "registry+https://github.com/rust-lang/crates.io-index"
2158
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
2159
2181
-[[package]]
2182
-name = "windows_aarch64_msvc"
2183
-version = "0.53.1"
2184
-source = "registry+https://github.com/rust-lang/crates.io-index"
2185
-checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006"
2186
-
2160
[[package]]
2161
name = "windows_i686_gnu"
2162
version = "0.48.5"
@@ -2196,24 +2169,12 @@ version = "0.52.6"
2169
source = "registry+https://github.com/rust-lang/crates.io-index"
2170
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
2171
2199
-[[package]]
2200
-name = "windows_i686_gnu"
2201
-version = "0.53.1"
2202
-source = "registry+https://github.com/rust-lang/crates.io-index"
2203
-checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3"
2204
-
2172
[[package]]
2173
name = "windows_i686_gnullvm"
2174
version = "0.52.6"
2175
source = "registry+https://github.com/rust-lang/crates.io-index"
2176
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
2177
2211
-[[package]]
2212
-name = "windows_i686_gnullvm"
2213
-version = "0.53.1"
2214
-source = "registry+https://github.com/rust-lang/crates.io-index"
2215
-checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c"
2216
-
2178
[[package]]
2179
name = "windows_i686_msvc"
2180
version = "0.48.5"
@@ -2226,12 +2187,6 @@ version = "0.52.6"
2187
source = "registry+https://github.com/rust-lang/crates.io-index"
2188
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
2189
2229
-[[package]]
2230
-name = "windows_i686_msvc"
2231
-version = "0.53.1"
2232
-source = "registry+https://github.com/rust-lang/crates.io-index"
2233
-checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2"
2234
-
2190
[[package]]
2191
name = "windows_x86_64_gnu"
2192
version = "0.48.5"
@@ -2244,12 +2199,6 @@ version = "0.52.6"
2199
source = "registry+https://github.com/rust-lang/crates.io-index"
2200
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
2201
2247
-[[package]]
2248
-name = "windows_x86_64_gnu"
2249
-version = "0.53.1"
2250
-source = "registry+https://github.com/rust-lang/crates.io-index"
2251
-checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499"
2252
-
2202
[[package]]
2203
name = "windows_x86_64_gnullvm"
2204
version = "0.48.5"
@@ -2262,12 +2211,6 @@ version = "0.52.6"
2211
source = "registry+https://github.com/rust-lang/crates.io-index"
2212
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
2213
2265
-[[package]]
2266
-name = "windows_x86_64_gnullvm"
2267
-version = "0.53.1"
2268
-source = "registry+https://github.com/rust-lang/crates.io-index"
2269
-checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1"
2270
-
2214
[[package]]
2215
name = "windows_x86_64_msvc"
2216
version = "0.48.5"
@@ -2280,18 +2223,6 @@ version = "0.52.6"
2223
source = "registry+https://github.com/rust-lang/crates.io-index"
2224
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
2225
2283
-[[package]]
2284
-name = "windows_x86_64_msvc"
2285
-version = "0.53.1"
2286
-source = "registry+https://github.com/rust-lang/crates.io-index"
2287
-checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650"
2288
-
2289
-[[package]]
2290
-name = "wit-bindgen"
2291
-version = "0.57.1"
2292
-source = "registry+https://github.com/rust-lang/crates.io-index"
2293
-checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e"
2294
-
2226
[[package]]
2227
name = "writeable"
2228
version = "0.6.3"
@@ -2317,30 +2248,10 @@ checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e"
2248
dependencies = [
2249
"proc-macro2",
2250
"quote",
2320
- "syn 2.0.118",
2251
+ "syn 2.0.119",
2252
"synstructure",
2253
]
2254
2324
-[[package]]
2325
-name = "zerocopy"
2326
-version = "0.8.52"
2327
-source = "registry+https://github.com/rust-lang/crates.io-index"
2328
-checksum = "ce1022995ff5ff5d841ad7d994facc23098cd40152f2c1d11cd607c6f530653f"
2329
-dependencies = [
2330
- "zerocopy-derive",
2331
-]
2332
-
2333
-[[package]]
2334
-name = "zerocopy-derive"
2335
-version = "0.8.52"
2336
-source = "registry+https://github.com/rust-lang/crates.io-index"
2337
-checksum = "1ae7f38b72ec2a254e2b87ef277cf2cd4fb97cbebf944faa6f33354da0867930"
2338
-dependencies = [
2339
- "proc-macro2",
2340
- "quote",
2341
- "syn 2.0.118",
2342
-]
2343
-
2255
[[package]]
2256
name = "zerofrom"
2257
version = "0.1.8"
@@ -2358,7 +2269,7 @@ checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1"
2269
dependencies = [
2270
"proc-macro2",
2271
"quote",
2361
- "syn 2.0.118",
2272
+ "syn 2.0.119",
2273
"synstructure",
2274
]
2275
@@ -2398,11 +2309,11 @@ checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555"
2309
dependencies = [
2310
"proc-macro2",
2311
"quote",
2401
- "syn 2.0.118",
2312
+ "syn 2.0.119",
2313
]
2314
2315
[[package]]
2316
name = "zmij"
2406
-version = "1.0.21"
2317
+version = "1.0.23"
2318
source = "registry+https://github.com/rust-lang/crates.io-index"
2408
-checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
2319
+checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
sdk/gems/email/Gemfile.lock
+1
-1
@@ -1,7 +1,7 @@
1
PATH
2
remote: .
3
specs:
4
- smbcloud-email (0.4.7)
4
+ smbcloud-email (0.4.13)
5
json
6
rb_sys (~> 0.9.91)
7
sdk/gems/email/ext/email/Cargo.toml
+1
-1
@@ -1,6 +1,6 @@
1
[package]
2
name = "email"
3
-version = "0.4.7"
3
+version = "0.4.13"
4
edition = "2024"
5
authors = ["Seto Elkahfi <seto@smbcloud.xyz>"]
6
publish = false
sdk/gems/email/lib/email/version.rb
+1
-1
@@ -1,5 +1,5 @@
1
# frozen_string_literal: true
2
3
module Email
4
- VERSION = '0.4.7'
4
+ VERSION = '0.4.13'
5
end
server-xcrs.json
new
+52
@@ -0,0 +1,52 @@
1
+{
2
+ "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
+ "name": "io.github.smbcloudXYZ/xcrs",
4
+ "title": "XCRS Xcode Simulator Tools",
5
+ "description": "Rust-native Xcode command-line and Apple simulator automation tools exposed through MCP.",
6
+ "version": "0.4.13",
7
+ "websiteUrl": "https://github.com/smbcloudXYZ/smbcloud-cli/tree/main/crates/xcrs",
8
+ "repository": {
9
+ "url": "https://github.com/smbcloudXYZ/smbcloud-cli",
10
+ "source": "github",
11
+ "id": "597171611",
12
+ "subfolder": "crates/xcrs"
13
+ },
14
+ "packages": [
15
+ {
16
+ "registryType": "cargo",
17
+ "registryBaseUrl": "https://crates.io",
18
+ "identifier": "xcrs",
19
+ "version": "0.4.13",
20
+ "transport": {
21
+ "type": "stdio"
22
+ },
23
+ "packageArguments": [
24
+ {
25
+ "type": "named",
26
+ "name": "--mcp",
27
+ "description": "Run the XCRS server as an MCP server over stdio.",
28
+ "isRequired": true
29
+ }
30
+ ]
31
+ }
32
+ ],
33
+ "_meta": {
34
+ "io.modelcontextprotocol.registry/publisher-provided": {
35
+ "categories": [
36
+ "developer-tools",
37
+ "xcode",
38
+ "ios",
39
+ "simulator"
40
+ ],
41
+ "keywords": [
42
+ "Xcode",
43
+ "iOS simulator",
44
+ "tvOS",
45
+ "visionOS",
46
+ "watchOS",
47
+ "macOS",
48
+ "ControlKit"
49
+ ]
50
+ }
51
+ }
52
+}