create-cloudflare 2.52.2 → 2.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -72103,7 +72103,7 @@ __export(cli_exports, {
72103
72103
  setupProjectDirectory: () => setupProjectDirectory
72104
72104
  });
72105
72105
  module.exports = __toCommonJS(cli_exports);
72106
- var import_fs14 = require("fs");
72106
+ var import_fs15 = require("fs");
72107
72107
  var import_path16 = require("path");
72108
72108
  var import_process2 = require("process");
72109
72109
 
@@ -79316,7 +79316,7 @@ var Yargs = YargsFactory(esm_default);
79316
79316
  var yargs_default = Yargs;
79317
79317
 
79318
79318
  // package.json
79319
- var version = "2.52.2";
79319
+ var version = "2.53.0";
79320
79320
 
79321
79321
  // src/metrics.ts
79322
79322
  var import_node_async_hooks = require("node:async_hooks");
@@ -79877,7 +79877,7 @@ var runTelemetryCommand = (action) => {
79877
79877
  };
79878
79878
 
79879
79879
  // src/templates.ts
79880
- var import_fs11 = require("fs");
79880
+ var import_fs12 = require("fs");
79881
79881
  var import_promises4 = require("fs/promises");
79882
79882
  var import_os2 = require("os");
79883
79883
  var import_path12 = require("path");
@@ -80100,19 +80100,19 @@ var package_default = {
80100
80100
  dependencies: {
80101
80101
  "create-astro": "4.13.1",
80102
80102
  "create-analog": "1.8.1",
80103
- "@angular/create": "20.3.3",
80103
+ "@angular/create": "20.3.6",
80104
80104
  "create-docusaurus": "3.9.1",
80105
80105
  "create-hono": "0.19.2",
80106
80106
  "create-next-app": "15.4.6",
80107
- "create-qwik": "1.16.1",
80107
+ "create-qwik": "1.17.0",
80108
80108
  "create-vite": "7.1.1",
80109
- "create-react-router": "7.9.3",
80109
+ "create-react-router": "7.9.4",
80110
80110
  "create-solid": "0.6.11",
80111
- "create-vue": "3.18.0",
80111
+ "create-vue": "3.18.1",
80112
80112
  "create-waku": "0.12.5-0.26.1-0",
80113
80113
  gatsby: "5.15.0",
80114
- sv: "0.9.6",
80115
- nuxi: "3.28.0"
80114
+ sv: "0.9.8",
80115
+ nuxi: "3.29.3"
80116
80116
  }
80117
80117
  };
80118
80118
 
@@ -81323,6 +81323,7 @@ var config25 = {
81323
81323
  var c3_default28 = config25;
81324
81324
 
81325
81325
  // templates/pre-existing/c3.ts
81326
+ var import_fs9 = require("fs");
81326
81327
  var import_promises3 = require("fs/promises");
81327
81328
  var import_os = require("os");
81328
81329
  var import_path9 = require("path");
@@ -81465,10 +81466,21 @@ async function copyExistingWorkerFiles(ctx) {
81465
81466
  (0, import_path9.join)(ctx.project.path, "src"),
81466
81467
  { recursive: true }
81467
81468
  );
81468
- await (0, import_promises3.cp)(
81469
- (0, import_path9.join)(tempdir, ctx.args.existingScript, "wrangler.toml"),
81470
- (0, import_path9.join)(ctx.project.path, "wrangler.toml")
81471
- );
81469
+ const configFiles = ["wrangler.jsonc", "wrangler.json", "wrangler.toml"];
81470
+ let configFileCopied = false;
81471
+ for (const configFile of configFiles) {
81472
+ const sourcePath = (0, import_path9.join)(tempdir, ctx.args.existingScript, configFile);
81473
+ if ((0, import_fs9.existsSync)(sourcePath)) {
81474
+ await (0, import_promises3.cp)(sourcePath, (0, import_path9.join)(ctx.project.path, configFile));
81475
+ configFileCopied = true;
81476
+ break;
81477
+ }
81478
+ }
81479
+ if (!configFileCopied) {
81480
+ throw new Error(
81481
+ `No wrangler configuration file found in downloaded worker. Expected one of: ${configFiles.join(", ")}`
81482
+ );
81483
+ }
81472
81484
  }
81473
81485
  var config26 = {
81474
81486
  configVersion: 1,
@@ -82012,7 +82024,7 @@ var config35 = {
82012
82024
  var c3_default38 = config35;
82013
82025
 
82014
82026
  // src/helpers/compatDate.ts
82015
- var import_fs9 = require("fs");
82027
+ var import_fs10 = require("fs");
82016
82028
  var import_path10 = require("path");
82017
82029
  async function getWorkerdCompatibilityDate() {
82018
82030
  const s = spinner();
@@ -82048,7 +82060,7 @@ function getLatestTypesEntrypoint(ctx) {
82048
82060
  "workers-types"
82049
82061
  );
82050
82062
  try {
82051
- const entrypoints = (0, import_fs9.readdirSync)(workersTypesPath);
82063
+ const entrypoints = (0, import_fs10.readdirSync)(workersTypesPath);
82052
82064
  const sorted = entrypoints.filter((filename) => filename.match(/(\d{4})-(\d{2})-(\d{2})/)).sort().reverse();
82053
82065
  if (sorted.length === 0) {
82054
82066
  return null;
@@ -82506,7 +82518,7 @@ var c3_default46 = config43;
82506
82518
  var import_node_assert2 = __toESM(require("node:assert"));
82507
82519
 
82508
82520
  // ../wrangler/package.json
82509
- var version2 = "4.42.0";
82521
+ var version2 = "4.44.0";
82510
82522
 
82511
82523
  // src/git.ts
82512
82524
  var offerGit = async (ctx) => {
@@ -82560,7 +82572,7 @@ var gitCommit = async (ctx) => {
82560
82572
  silent: true,
82561
82573
  cwd: ctx.project.path
82562
82574
  });
82563
- await runCommand(["git", "commit", "-m", ctx.commitMessage], {
82575
+ await runCommand(["git", "commit", "-m", ctx.commitMessage, "--no-verify"], {
82564
82576
  silent: true,
82565
82577
  cwd: ctx.project.path
82566
82578
  });
@@ -82684,7 +82696,7 @@ async function getProductionBranch(cwd) {
82684
82696
  }
82685
82697
 
82686
82698
  // src/validators.ts
82687
- var import_fs10 = require("fs");
82699
+ var import_fs11 = require("fs");
82688
82700
  var import_path11 = require("path");
82689
82701
  var TEMPLATE_REGEX = /^(?:(?:https:\/\/)?(?<httpsUrl>[^:/]+\.[^:/]+)\/|git@(?<gitUrl>[^:/]+)[:/]|(?<shorthandUrl>[^/]+):)?(?<user>[^/\s]+)\/(?<repository>[^/\s#]+)(?:(?<subdirectoryPath>(?:\/[^/\s#]+)+))?(?:\/)?(?:#(?<tag>.+))?/;
82690
82702
  var validateTemplateUrl = (value) => {
@@ -82694,9 +82706,9 @@ var validateTemplateUrl = (value) => {
82694
82706
  };
82695
82707
  var validateProjectDirectory = (relativePath, args) => {
82696
82708
  const path6 = (0, import_path11.resolve)(relativePath);
82697
- const existsAlready = (0, import_fs10.existsSync)(path6);
82709
+ const existsAlready = (0, import_fs11.existsSync)(path6);
82698
82710
  if (existsAlready) {
82699
- for (const file of (0, import_fs10.readdirSync)(path6)) {
82711
+ for (const file of (0, import_fs11.readdirSync)(path6)) {
82700
82712
  if (!isAllowedExistingFile(file)) {
82701
82713
  return `Directory \`${relativePath}\` already exists and contains files that might conflict. Please choose a new name.`;
82702
82714
  }
@@ -83152,7 +83164,7 @@ async function copyTemplateFiles(ctx) {
83152
83164
  s.start(`Copying template files`);
83153
83165
  await (0, import_promises4.cp)(srcdir, destdir, { recursive: true, force: true });
83154
83166
  const dummyGitIgnorePath = (0, import_path12.join)(destdir, "__dot__gitignore");
83155
- if ((0, import_fs11.existsSync)(dummyGitIgnorePath)) {
83167
+ if ((0, import_fs12.existsSync)(dummyGitIgnorePath)) {
83156
83168
  await (0, import_promises4.rename)(dummyGitIgnorePath, (0, import_path12.join)(destdir, ".gitignore"));
83157
83169
  }
83158
83170
  s.stop(`${brandColor("files")} ${dim("copied to project directory")}`);
@@ -83195,14 +83207,14 @@ var validateTemplateSrcDirectory = (path6, config44) => {
83195
83207
  const wranglerTomlPath = (0, import_path12.resolve)(path6, "wrangler.toml");
83196
83208
  const wranglerJsonPath = (0, import_path12.resolve)(path6, "wrangler.json");
83197
83209
  const wranglerJsoncPath = (0, import_path12.resolve)(path6, "wrangler.jsonc");
83198
- if (!(0, import_fs11.existsSync)(wranglerTomlPath) && !(0, import_fs11.existsSync)(wranglerJsonPath) && !(0, import_fs11.existsSync)(wranglerJsoncPath)) {
83210
+ if (!(0, import_fs12.existsSync)(wranglerTomlPath) && !(0, import_fs12.existsSync)(wranglerJsonPath) && !(0, import_fs12.existsSync)(wranglerJsoncPath)) {
83199
83211
  throw new Error(
83200
83212
  `create-cloudflare templates must contain a "wrangler.toml" or "wrangler.json(c)" file.`
83201
83213
  );
83202
83214
  }
83203
83215
  }
83204
83216
  const pkgJsonPath = (0, import_path12.resolve)(path6, "package.json");
83205
- if (!(0, import_fs11.existsSync)(pkgJsonPath)) {
83217
+ if (!(0, import_fs12.existsSync)(pkgJsonPath)) {
83206
83218
  throw new Error(
83207
83219
  `create-cloudflare templates must contain a "package.json" file.`
83208
83220
  );
@@ -83219,10 +83231,10 @@ var inferTemplateConfig = (path6) => {
83219
83231
  };
83220
83232
  var inferCopyFilesDefinition = (path6) => {
83221
83233
  const variants = {};
83222
- if ((0, import_fs11.existsSync)((0, import_path12.join)(path6, "js"))) {
83234
+ if ((0, import_fs12.existsSync)((0, import_path12.join)(path6, "js"))) {
83223
83235
  variants["js"] = { path: "./js" };
83224
83236
  }
83225
- if ((0, import_fs11.existsSync)((0, import_path12.join)(path6, "ts"))) {
83237
+ if ((0, import_fs12.existsSync)((0, import_path12.join)(path6, "ts"))) {
83226
83238
  variants["ts"] = { path: "./ts" };
83227
83239
  }
83228
83240
  const copyFiles = Object.keys(variants).length !== 0 ? { variants } : { path: "." };
@@ -83248,7 +83260,7 @@ var downloadRemoteTemplate = async (src, mode) => {
83248
83260
  function updatePythonPackageName(path6, projectName) {
83249
83261
  const pyprojectTomlPath = (0, import_path12.resolve)(path6, "pyproject.toml");
83250
83262
  const uvLockPath = (0, import_path12.resolve)(path6, "uv.lock");
83251
- if (!(0, import_fs11.existsSync)(pyprojectTomlPath)) {
83263
+ if (!(0, import_fs12.existsSync)(pyprojectTomlPath)) {
83252
83264
  return;
83253
83265
  }
83254
83266
  const s = spinner();
@@ -83262,7 +83274,7 @@ function updatePythonPackageName(path6, projectName) {
83262
83274
  let uvLockContents = readFile(uvLockPath);
83263
83275
  uvLockContents = uvLockContents.replace(
83264
83276
  '"tbd"',
83265
- `${"projectName.toLowerCase()"}`
83277
+ `"${projectName.toLowerCase()}"`
83266
83278
  );
83267
83279
  writeFile2(uvLockPath, uvLockContents);
83268
83280
  s.stop(`${brandColor("updated")} ${dim("`pyproject.toml`")}`);
@@ -83315,7 +83327,7 @@ var getCopyFilesDestinationDir = (ctx) => {
83315
83327
  };
83316
83328
  var addWranglerToGitIgnore = (ctx) => {
83317
83329
  const gitIgnorePath = `${ctx.project.path}/.gitignore`;
83318
- const gitIgnorePreExisted = (0, import_fs11.existsSync)(gitIgnorePath);
83330
+ const gitIgnorePreExisted = (0, import_fs12.existsSync)(gitIgnorePath);
83319
83331
  const gitDirExists = directoryExists(`${ctx.project.path}/.git`);
83320
83332
  if (!gitIgnorePreExisted && !gitDirExists) {
83321
83333
  return;
@@ -83816,7 +83828,7 @@ function secondsSince(start) {
83816
83828
  }
83817
83829
 
83818
83830
  // src/wrangler/config.ts
83819
- var import_fs12 = require("fs");
83831
+ var import_fs13 = require("fs");
83820
83832
  var import_path13 = require("path");
83821
83833
  var import_toml2 = __toESM(require_toml());
83822
83834
 
@@ -83966,12 +83978,12 @@ var getWranglerJsoncPath = (ctx) => {
83966
83978
  };
83967
83979
  var wranglerTomlExists = (ctx) => {
83968
83980
  const wranglerTomlPath = getWranglerTomlPath(ctx);
83969
- return (0, import_fs12.existsSync)(wranglerTomlPath);
83981
+ return (0, import_fs13.existsSync)(wranglerTomlPath);
83970
83982
  };
83971
83983
  var wranglerJsonExists = (ctx) => {
83972
83984
  const wranglerJsonPath = getWranglerJsonPath(ctx);
83973
83985
  const wranglerJsoncPath = getWranglerJsoncPath(ctx);
83974
- return (0, import_fs12.existsSync)(wranglerJsonPath) || (0, import_fs12.existsSync)(wranglerJsoncPath);
83986
+ return (0, import_fs13.existsSync)(wranglerJsonPath) || (0, import_fs13.existsSync)(wranglerJsoncPath);
83975
83987
  };
83976
83988
  var readWranglerToml = (ctx) => {
83977
83989
  const wranglerTomlPath = getWranglerTomlPath(ctx);
@@ -83979,7 +83991,7 @@ var readWranglerToml = (ctx) => {
83979
83991
  };
83980
83992
  var readWranglerJson = (ctx) => {
83981
83993
  const wranglerJsonPath = getWranglerJsonPath(ctx);
83982
- if ((0, import_fs12.existsSync)(wranglerJsonPath)) {
83994
+ if ((0, import_fs13.existsSync)(wranglerJsonPath)) {
83983
83995
  return readJSONWithComments(wranglerJsonPath);
83984
83996
  }
83985
83997
  const wranglerJsoncPath = getWranglerJsoncPath(ctx);
@@ -83991,7 +84003,7 @@ var writeWranglerToml = (ctx, contents) => {
83991
84003
  };
83992
84004
  var writeWranglerJson = (ctx, config44) => {
83993
84005
  const wranglerJsonPath = getWranglerJsonPath(ctx);
83994
- if ((0, import_fs12.existsSync)(wranglerJsonPath)) {
84006
+ if ((0, import_fs13.existsSync)(wranglerJsonPath)) {
83995
84007
  return writeJSONWithComments(wranglerJsonPath, config44);
83996
84008
  }
83997
84009
  const wranglerJsoncPath = getWranglerJsoncPath(ctx);
@@ -83999,10 +84011,10 @@ var writeWranglerJson = (ctx, config44) => {
83999
84011
  };
84000
84012
  var addVscodeConfig = (ctx) => {
84001
84013
  const settingsPath = `${ctx.project.path}/.vscode/settings.json`;
84002
- if ((0, import_fs12.existsSync)(settingsPath)) {
84014
+ if ((0, import_fs13.existsSync)(settingsPath)) {
84003
84015
  return;
84004
84016
  }
84005
- (0, import_fs12.mkdirSync)(`${ctx.project.path}/.vscode`, { recursive: true });
84017
+ (0, import_fs13.mkdirSync)(`${ctx.project.path}/.vscode`, { recursive: true });
84006
84018
  writeJSON(settingsPath, {
84007
84019
  "files.associations": {
84008
84020
  "wrangler.json": "jsonc"
@@ -84660,7 +84672,7 @@ var createProject = async (ctx) => {
84660
84672
  };
84661
84673
 
84662
84674
  // src/workers.ts
84663
- var import_fs13 = require("fs");
84675
+ var import_fs14 = require("fs");
84664
84676
  var import_path15 = require("path");
84665
84677
  var import_toml4 = __toESM(require_toml());
84666
84678
 
@@ -85993,7 +86005,7 @@ async function addTypes(ctx) {
85993
86005
  }
85994
86006
  async function generateWorkersTypes(ctx, npm22) {
85995
86007
  const packageJsonPath = (0, import_path15.join)(ctx.project.path, "package.json");
85996
- if (!(0, import_fs13.existsSync)(packageJsonPath)) {
86008
+ if (!(0, import_fs14.existsSync)(packageJsonPath)) {
85997
86009
  return;
85998
86010
  }
85999
86011
  const packageManifest = readJSON(packageJsonPath);
@@ -86033,7 +86045,7 @@ var maybeInstallNodeTypes = async (ctx, npm22) => {
86033
86045
  };
86034
86046
  async function updateTsConfig(ctx, { usesNodeCompat }) {
86035
86047
  const tsconfigPath = (0, import_path15.join)(ctx.project.path, "tsconfig.json");
86036
- if (!(0, import_fs13.existsSync)(tsconfigPath)) {
86048
+ if (!(0, import_fs14.existsSync)(tsconfigPath)) {
86037
86049
  return;
86038
86050
  }
86039
86051
  const tsconfig = readFile(tsconfigPath);
@@ -86157,7 +86169,7 @@ var setupProjectDirectory = (ctx) => {
86157
86169
  throw new Error(err);
86158
86170
  }
86159
86171
  const directory = (0, import_path16.dirname)(path6);
86160
- (0, import_fs14.mkdirSync)(directory, { recursive: true });
86172
+ (0, import_fs15.mkdirSync)(directory, { recursive: true });
86161
86173
  (0, import_process2.chdir)(directory);
86162
86174
  };
86163
86175
  var create = async (ctx) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-cloudflare",
3
- "version": "2.52.2",
3
+ "version": "2.53.0",
4
4
  "description": "A CLI for creating and deploying new applications to Cloudflare.",
5
5
  "keywords": [
6
6
  "cloudflare",
@@ -30,7 +30,7 @@
30
30
  "@babel/parser": "^7.21.3",
31
31
  "@babel/types": "^7.21.4",
32
32
  "@clack/prompts": "^0.6.3",
33
- "@cloudflare/workers-types": "^4.20251001.0",
33
+ "@cloudflare/workers-types": "^4.20251011.0",
34
34
  "@iarna/toml": "^3.0.0",
35
35
  "@types/command-exists": "^1.2.0",
36
36
  "@types/cross-spawn": "^6.0.2",
@@ -74,10 +74,10 @@
74
74
  "yargs": "^17.7.2",
75
75
  "@cloudflare/cli": "1.1.3",
76
76
  "@cloudflare/eslint-config-shared": "1.1.0",
77
+ "@cloudflare/vite-plugin": "1.13.14",
77
78
  "@cloudflare/mock-npm-registry": "0.0.0",
78
- "@cloudflare/vite-plugin": "1.13.10",
79
79
  "@cloudflare/workers-tsconfig": "0.0.0",
80
- "wrangler": "4.42.0"
80
+ "wrangler": "4.44.0"
81
81
  },
82
82
  "engines": {
83
83
  "node": ">=18.14.1"
@@ -3,9 +3,9 @@
3
3
  "version": "0.0.0",
4
4
  "private": true,
5
5
  "scripts": {
6
- "deploy": "wrangler deploy",
7
- "dev": "wrangler dev",
8
- "start": "wrangler dev"
6
+ "deploy": "uv run pywrangler deploy",
7
+ "dev": "uv run pywrangler dev",
8
+ "start": "uv run pywrangler dev"
9
9
  },
10
10
  "devDependencies": {
11
11
  "wrangler": "^3.101.0"
@@ -1,17 +1,21 @@
1
1
  version = 1
2
- revision = 2
2
+ revision = 3
3
3
  requires-python = ">=3.12"
4
+ resolution-markers = [
5
+ "python_full_version >= '3.13'",
6
+ "python_full_version < '3.13'",
7
+ ]
4
8
 
5
9
  [[package]]
6
10
  name = "click"
7
- version = "8.2.1"
11
+ version = "8.3.0"
8
12
  source = { registry = "https://pypi.org/simple" }
9
13
  dependencies = [
10
14
  { name = "colorama", marker = "sys_platform == 'win32'" },
11
15
  ]
12
- sdist = { url = "https://files.pythonhosted.org/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202", size = 286342, upload-time = "2025-05-20T23:19:49.832Z" }
16
+ sdist = { url = "https://files.pythonhosted.org/packages/46/61/de6cd827efad202d7057d93e0fed9294b96952e188f7384832791c7b2254/click-8.3.0.tar.gz", hash = "sha256:e7b8232224eba16f4ebe410c25ced9f7875cb5f3263ffc93cc3e8da705e229c4", size = 276943, upload-time = "2025-09-18T17:32:23.696Z" }
13
17
  wheels = [
14
- { url = "https://files.pythonhosted.org/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b", size = 102215, upload-time = "2025-05-20T23:19:47.796Z" },
18
+ { url = "https://files.pythonhosted.org/packages/db/d3/9dcc0f5797f070ec8edf30fbadfb200e71d9db6b84d211e3b2085a7589a0/click-8.3.0-py3-none-any.whl", hash = "sha256:9b9f285302c6e3064f4330c05f05b81945b2a39544279343e6e7c5f27a9baddc", size = 107295, upload-time = "2025-09-18T17:32:22.42Z" },
15
19
  ]
16
20
 
17
21
  [[package]]
@@ -53,30 +57,142 @@ wheels = [
53
57
  { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" },
54
58
  ]
55
59
 
60
+ [[package]]
61
+ name = "pyjson5"
62
+ version = "2.0.0"
63
+ source = { registry = "https://pypi.org/simple" }
64
+ sdist = { url = "https://files.pythonhosted.org/packages/6e/d9/005aaaf5077cde946282b22da9404965477fb140fa6836b52d2e0955a391/pyjson5-2.0.0.tar.gz", hash = "sha256:7ccc98586cf87dfeadfa76de8df4c9cb0c3d21d1b559e28812dd9633748d6e25", size = 305865, upload-time = "2025-10-02T00:23:02.154Z" }
65
+ wheels = [
66
+ { url = "https://files.pythonhosted.org/packages/d0/25/429e6cc1b6ba7a1ce730f172d8653f16dfff991de7c1122627b5d9a7dfd6/pyjson5-2.0.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:dbb701b2b19ef5860a2409baf7fd576af8619fdaffa96ca37e0e8e0b2f030be8", size = 300589, upload-time = "2025-10-02T00:19:44.285Z" },
67
+ { url = "https://files.pythonhosted.org/packages/1f/58/251cc5bfcced1f18dbe36ad54b25f376ab47e8a4bcd6239c7bd69b86218e/pyjson5-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c0f29297836f4a4f8090f5bfc7b0e2b70af235c8dcfd9476a159814f734441d3", size = 159389, upload-time = "2025-10-02T00:19:45.39Z" },
68
+ { url = "https://files.pythonhosted.org/packages/aa/4b/4e69ccbf34f2f303e32dc0dc8853d82282f109ba41b7a9366d518751e500/pyjson5-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76d4c8d8bf56696c5b9bc3b18f51c840499e7b485817ddba89ae399fcc25c923", size = 150788, upload-time = "2025-10-02T00:19:46.454Z" },
69
+ { url = "https://files.pythonhosted.org/packages/49/67/caa7dd84ab554d83bb68a7a27f09ed750681cd305d13feb38c2df90ccdbe/pyjson5-2.0.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:e94e1a05c8a42a4828a50c520eb2330fe5732d5d04f3ebe771680f7db16f7df3", size = 188298, upload-time = "2025-10-02T00:19:47.456Z" },
70
+ { url = "https://files.pythonhosted.org/packages/ba/39/26fffaff9ebf720a05e2867c40e2023cebe33a41e1f511e3c1b42452fe7d/pyjson5-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9ab533ccd75bfda9ffd34a818f283b481e78c5c315919c4f620f69639044bdd3", size = 168159, upload-time = "2025-10-02T00:19:48.459Z" },
71
+ { url = "https://files.pythonhosted.org/packages/cd/c9/f7170d4903cb1526836a458f7e4650f0ff465001b7ef7066bc4b0577e601/pyjson5-2.0.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:16e9295bf9f80fc5fb63046a0df4a3adef4e945d27f61f0f6e5db0a4f1510a15", size = 169039, upload-time = "2025-10-02T00:19:49.478Z" },
72
+ { url = "https://files.pythonhosted.org/packages/2c/d1/b84322897a861e85528c9621372441c4db57b8af615a647a9a8223e7e00a/pyjson5-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4191eced0e77207afc2f82782ef3dbee88c38ec386da8c0af9190653e8c8557f", size = 185596, upload-time = "2025-10-02T00:19:50.5Z" },
73
+ { url = "https://files.pythonhosted.org/packages/56/3c/fea02294217c0b93f017ddc032bbacc805e669014c784b42b5cf366d4aa1/pyjson5-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:9efc441991cd31a5d1fea04d8a024649bbd9a005d7e0ec6a870670b47adf43e8", size = 187665, upload-time = "2025-10-02T00:19:51.513Z" },
74
+ { url = "https://files.pythonhosted.org/packages/10/39/de2423e6a13fb2f44ecf068df41ff1c7368ecd8b06f728afa1fb30f4ff0a/pyjson5-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:467c5e0856152bbe539e38f126f698189f1ecc4feb5292d47ad0f20472d24b6d", size = 178950, upload-time = "2025-10-02T00:19:52.591Z" },
75
+ { url = "https://files.pythonhosted.org/packages/d4/9c/3de848f4441b95ad5f8499f7aed9b86da1c7eee776b0e673d85703416f15/pyjson5-2.0.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a2fc21d0f59c75dd3cc0a9943fface3729a4cf2e4dfbd14a90680a97bbfe23d1", size = 175149, upload-time = "2025-10-02T00:19:53.655Z" },
76
+ { url = "https://files.pythonhosted.org/packages/44/b8/fb33760617875852f299e06aa9cd9bbaf68d2f939189736ebf9099f4f305/pyjson5-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7a4887291c830dbc30528833eb8cdcc44d0531626a61ac9bac80b17df369cb33", size = 1149408, upload-time = "2025-10-02T00:19:54.885Z" },
77
+ { url = "https://files.pythonhosted.org/packages/8c/b2/ea1806e14704b5087a637a0b126ce63376f39e3762099614bca446dc7fa4/pyjson5-2.0.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:4a1497408a18ddd2501b1c6bdd1dd01d69809450d145c13c42913f98dfa59d20", size = 1012047, upload-time = "2025-10-02T00:19:56.254Z" },
78
+ { url = "https://files.pythonhosted.org/packages/8d/79/bbd9e037d2758b3da79a4bf02d6234e88908ad62fd6fc299144d4efe7466/pyjson5-2.0.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9617abb9022fcd3d1034a5e07972dc0440af3d91da86c45f81750b6c324e9bcf", size = 1324907, upload-time = "2025-10-02T00:19:57.961Z" },
79
+ { url = "https://files.pythonhosted.org/packages/e0/5d/f984d6008fa0dcf64624eed4334c88cdae31b48d0546a17017beea6f6978/pyjson5-2.0.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:247a8f29e4fecdf7ff894dd3b5759a21c5336b5e3c21ba2ee31a03b52b73a98c", size = 1243097, upload-time = "2025-10-02T00:19:59.37Z" },
80
+ { url = "https://files.pythonhosted.org/packages/14/dc/c07f02d3e5f307540f884cb9ae1c2b17849ebcbf112f81663abe8ca04511/pyjson5-2.0.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:6a464e605113b09d2f235fc6d7df8425831bbe40078fe6755b30058b8a904694", size = 1181197, upload-time = "2025-10-02T00:20:00.893Z" },
81
+ { url = "https://files.pythonhosted.org/packages/1a/59/6cf634b199a4e71cb11cc8157d3c8c0baea1d8c89b2bea3bf83a482ac742/pyjson5-2.0.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:d355134c9735f3eb3724f3985551203976c823909aec118f616b8da096ffd9b5", size = 1356466, upload-time = "2025-10-02T00:20:02.497Z" },
82
+ { url = "https://files.pythonhosted.org/packages/1d/f1/ae443709da9396396545c1ecfc30fd2f69629a65e894341a72fa286f0c26/pyjson5-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6c3353d214db15d6b05d941cdb2fc2e3d1c94650e5baecc6986424f20ebe76d1", size = 1211084, upload-time = "2025-10-02T00:20:03.99Z" },
83
+ { url = "https://files.pythonhosted.org/packages/28/a7/291e4ac2890dd94f773aa7fe606ffb7b5424ad5c21d888feccb0b0fbf76b/pyjson5-2.0.0-cp312-cp312-win32.whl", hash = "sha256:9f164c973f0d6b79ed3c92a4bb5506b04c810dcf84dc48b543d968ec0acfbfc8", size = 115425, upload-time = "2025-10-02T00:20:40.058Z" },
84
+ { url = "https://files.pythonhosted.org/packages/af/cb/cf69e6e080149b8993d553c683d364e714c6646f70f55b7c135efe942366/pyjson5-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:296cb2e2c6f64dc61397bd48f04569f1532cd9062d8ebca29ed02644b298e4fc", size = 135552, upload-time = "2025-10-02T00:20:41.392Z" },
85
+ { url = "https://files.pythonhosted.org/packages/3c/f7/b7784d5dd52a34f23efd4118bf856877a8f15bb2a53c43c192e4dee7d10f/pyjson5-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:b36fa4a4b6f632bbc2afc4caaa16e7f585cd2345de85a439e6ce734f915b8018", size = 116874, upload-time = "2025-10-02T00:20:42.379Z" },
86
+ { url = "https://files.pythonhosted.org/packages/74/f0/a0273fa863a96fb450336f5c8f3126cd1fefe17bd60451fd66dc58d0ab6c/pyjson5-2.0.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6840b70981cb838e025a9f952004c6b59655c91076067abf01317fc10681cd7b", size = 299171, upload-time = "2025-10-02T00:20:43.467Z" },
87
+ { url = "https://files.pythonhosted.org/packages/e0/8c/402811e522cbed81f414056c1683c129127034a9f567fa707200c3c67cf7/pyjson5-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd89ea40f33d1d835493ab0fc3b7b4d7c0c40254e0ddeefde08e0e9d98aebbde", size = 158725, upload-time = "2025-10-02T00:20:44.537Z" },
88
+ { url = "https://files.pythonhosted.org/packages/2f/00/f2392fe52b50aadf5037381a52f9eda0081be6c429d9d85b47f387ecda38/pyjson5-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:dc47fe45e5c20137ac10e8f2d27985d97e67fa71410819a576fa21f181b8e94b", size = 150027, upload-time = "2025-10-02T00:20:45.54Z" },
89
+ { url = "https://files.pythonhosted.org/packages/36/5c/e3f18bb7059e4e4992b76bf2e9d8594615361313df2fb78b4c08d441a8a3/pyjson5-2.0.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:eb4e885db6fe2421735b913f43028578a30dbf9f4c86673649b52bbee91231a9", size = 187241, upload-time = "2025-10-02T00:20:46.869Z" },
90
+ { url = "https://files.pythonhosted.org/packages/ae/96/1d9cf5bf5ea863d61ab977f6e9842c8519ff430dbceb58580e06deb1dd4a/pyjson5-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4b56f404b77f6b6d4a53b74c4d3f989d33b33ec451d7b178dad43d2fb81204dc", size = 168678, upload-time = "2025-10-02T00:20:47.871Z" },
91
+ { url = "https://files.pythonhosted.org/packages/f5/f4/d0704fef397d0d28d1fc16f4577883331d46b6a2f2eb59c4cc1a364b19f9/pyjson5-2.0.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:20db35f29815572130ec8d539c2465c1e4e7c7677298d6f79216bda611577709", size = 169324, upload-time = "2025-10-02T00:20:48.829Z" },
92
+ { url = "https://files.pythonhosted.org/packages/df/8c/84eeafe750d04016aedb24cb02959e65a42ef09de675d0dca96013baf199/pyjson5-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:445a21f0a6333f352251e7cb5a8f471ce44e7d74892558bd256e0bb889c1961e", size = 184377, upload-time = "2025-10-02T00:20:50.41Z" },
93
+ { url = "https://files.pythonhosted.org/packages/9a/80/119b2b01ae625d06ab1d6d5b021f4988fea28cf0ce8921b83ee6f944a1ab/pyjson5-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1bbabb12147f85850ba3b6a5813a3e9cc417ac9d0a66d57af42dd714f563b51e", size = 186931, upload-time = "2025-10-02T00:20:51.642Z" },
94
+ { url = "https://files.pythonhosted.org/packages/d8/d3/82f366ccadbe8a250e1b810ffa4a33006f66ec287e382632765b63758835/pyjson5-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:49f490d68bebfccb1aa01b612beef3abffa720c4069d82d74af8b55cf15cd214", size = 180127, upload-time = "2025-10-02T00:20:52.99Z" },
95
+ { url = "https://files.pythonhosted.org/packages/65/e2/8b96a72e8ab2e92c3748feafcec79f3e6219bf5289e5b053da7fe7fcb3f3/pyjson5-2.0.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:06cd493d607d94e841b6a8452f33bb45f55430ff33c992b8c4b671f8bebd2a14", size = 175413, upload-time = "2025-10-02T00:20:54.552Z" },
96
+ { url = "https://files.pythonhosted.org/packages/f8/9d/ea8542d9184616bedc3c7d8d8ac32d7e82fa4e347da08744b81cbffe00e3/pyjson5-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9eea8981d20bf6c37939c013c51ea1e7c9252429b01002a51afce59081b9ae0f", size = 1150022, upload-time = "2025-10-02T00:20:55.861Z" },
97
+ { url = "https://files.pythonhosted.org/packages/6d/af/8b8060bb9609bf4ad0bfc6fb9f52373aada55c93880c9597e41aecc2d266/pyjson5-2.0.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:863a0688a090e8c0add0d769ddf51e2cd48edd1d585f34272e7b4f095593175b", size = 1011750, upload-time = "2025-10-02T00:20:57.505Z" },
98
+ { url = "https://files.pythonhosted.org/packages/14/3a/9e49bbecc03ebc21c0b45a4f51e74c87c5250822e6bcffb8f8bcf9e800fd/pyjson5-2.0.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:a4a0e0835d7a5c7b18c3333dd01940ee2d160560e50851803cfaab27cc298df3", size = 1324079, upload-time = "2025-10-02T00:20:58.882Z" },
99
+ { url = "https://files.pythonhosted.org/packages/2f/94/951c1f531a5369d8859e42a5ac60c7dacf4d8585bb25f37ca7bdd46b9cb1/pyjson5-2.0.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:42f3d404367f7365325be1f1460c515d40022d41bece841d47cf00e616967308", size = 1243622, upload-time = "2025-10-02T00:21:00.452Z" },
100
+ { url = "https://files.pythonhosted.org/packages/99/0b/edb91338101501f1ec18f003e2a8da7650409537f446c7db96d302c7870d/pyjson5-2.0.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:3765c07dc1cd5b954a3e793c73c5725bac5431b83f7c807d695d73bbf78ae431", size = 1182052, upload-time = "2025-10-02T00:21:02.139Z" },
101
+ { url = "https://files.pythonhosted.org/packages/64/f2/54e28fd04aa27375ec4baa447fd58a894cf3cfd20c6a0dad160ee8ec115c/pyjson5-2.0.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:51d33381fc268989d6ba3b6ff44e45b634ee490fc658704d04eca59ed9f8b53d", size = 1357131, upload-time = "2025-10-02T00:21:03.643Z" },
102
+ { url = "https://files.pythonhosted.org/packages/ac/1a/80b50d0fae42cf58e1a37f5b87543c445bb1781ffcc69c94cc73ed397d67/pyjson5-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9f42e70d01668ccff505de17a9358fd09b26f9de037dbc8f1476215f217d3dc1", size = 1212220, upload-time = "2025-10-02T00:21:05.044Z" },
103
+ { url = "https://files.pythonhosted.org/packages/39/fc/44fb44d5b915fc1c871aea2947d87b4cfd77c9f6673ffdaf4e41b7365a46/pyjson5-2.0.0-cp313-cp313-win32.whl", hash = "sha256:62e02fd3a4aa7bc48d9ad04dbd22076d4c33c8161df2f72cdbd8588b8634cb5d", size = 115225, upload-time = "2025-10-02T00:21:06.277Z" },
104
+ { url = "https://files.pythonhosted.org/packages/e9/60/d28dcdc482ed36196ee7523f47b1869f92a998777d46c80cf84ec1c8c962/pyjson5-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:5318cd5e7d130fb2532c0d295a5c914ee1ab629bc0c57b1ef625bddb272442c4", size = 135384, upload-time = "2025-10-02T00:21:07.284Z" },
105
+ { url = "https://files.pythonhosted.org/packages/79/3e/14be4a4efa651dab867057d81b4d56b1c9d5328418ca0b1d08d5e953e8d7/pyjson5-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:b274a6c6affca4a3210359bf486940ee08dbc9875f896ab19a14e344d9bbf322", size = 116783, upload-time = "2025-10-02T00:21:08.713Z" },
106
+ { url = "https://files.pythonhosted.org/packages/79/25/4a81e6d5611b38806e8f87a5b1cf4cbac21b9781c1cbba02c8e43ebd9664/pyjson5-2.0.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:6ae6b65bc5a45e853b462d840fc32be1df4dab8dbd48b1ff3078b8dac2df2f09", size = 301159, upload-time = "2025-10-02T00:21:09.745Z" },
107
+ { url = "https://files.pythonhosted.org/packages/a6/f4/8c948e8a8b1a518fe87a114df1d58ab5f80b55b6601b64f8649438293bfd/pyjson5-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:6b24990927f723c2fff183ec7e14507f8ae3ce22743ac312aa9bf1327f9153dd", size = 159730, upload-time = "2025-10-02T00:21:11.946Z" },
108
+ { url = "https://files.pythonhosted.org/packages/39/1b/9cd7acea4c0e5a4ed44a79b99fc7e3a50b69639ea9f926efc35d660bef04/pyjson5-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:a84949318c52844ced26622a733ca54215ccfa9ee87eb38f1c92ee1ed5994827", size = 151029, upload-time = "2025-10-02T00:21:12.953Z" },
109
+ { url = "https://files.pythonhosted.org/packages/c4/ff/136636d1ab42f98c55011d2b25a45b3f1107bef10248506d6bf549c8eabd/pyjson5-2.0.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:10fa949fd41e8583170e2b8404c026d8e088d370428b87270a3a8df5a09ffac5", size = 187718, upload-time = "2025-10-02T00:21:14.225Z" },
110
+ { url = "https://files.pythonhosted.org/packages/e0/97/e104682432b02f1458de22478d2b62caa607426e8284bec4680a3537cadd/pyjson5-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ccbc7a0cf1d9b8c0851b84601650ce9772e526a1a444633be6827aa162c20b54", size = 171291, upload-time = "2025-10-02T00:21:15.322Z" },
111
+ { url = "https://files.pythonhosted.org/packages/a2/91/bf4eacd990f93f8b5afe717f915ed248595261fcfb47e7718e17c55f5069/pyjson5-2.0.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4e193346ab7c49605be4ec240c81d91014a276a163d5bba67eb53e64f425cecf", size = 168555, upload-time = "2025-10-02T00:21:16.519Z" },
112
+ { url = "https://files.pythonhosted.org/packages/24/70/fc2147cade7bd91c4d3726a200ae9556bcb45e294d8c57a904f15da16eea/pyjson5-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:25e9b32e21d4928201e2c410bafd196b0a4f0034761378821e99fc80c21ed0e3", size = 185817, upload-time = "2025-10-02T00:21:17.628Z" },
113
+ { url = "https://files.pythonhosted.org/packages/01/48/a8c396f25b53880bd06beb11ea8f63a42a6b8f9b82d42cc0cf6b0df8ca9f/pyjson5-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:63b0300e5ea302c107e518ef185c6f4ab8af49a5d4a52ed93e3e287fa8a6c69f", size = 188903, upload-time = "2025-10-02T00:21:19.058Z" },
114
+ { url = "https://files.pythonhosted.org/packages/7c/a3/8ffe10a49652bfd769348c6eca577463c2b3938baab5e62f3896fc5da0b7/pyjson5-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:72f5b5832d2c3055be492cf9853ce7fe57b57cc5e664f1327f10211cbd1114ef", size = 180252, upload-time = "2025-10-02T00:21:20.174Z" },
115
+ { url = "https://files.pythonhosted.org/packages/7f/f0/801b0523f679a9bd5356210be9a9b074fc14e0e969f2ed1f789cf6af3c45/pyjson5-2.0.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:da790aeb2dd88be1c94ea95b5ff4915614109e9e025df7f0936dadc01ae21e0b", size = 175965, upload-time = "2025-10-02T00:21:21.252Z" },
116
+ { url = "https://files.pythonhosted.org/packages/ea/04/ab703bccebc02c31056a525b7f06c473f141dc5bf96fe314893911a7b9ad/pyjson5-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ee211f71e3d0e7550c09b407dc75d01bbe6d5ed2ac7ee6aa54f870ebe17541aa", size = 1151968, upload-time = "2025-10-02T00:21:22.982Z" },
117
+ { url = "https://files.pythonhosted.org/packages/70/18/5c665a34ef6123d4c4f70173e30f533bbcf36ca76e3fa7c03b8400b2e34c/pyjson5-2.0.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:bf8e84ac6d58380b5fda77985f7acea5afe45bd45e24e77aca0a6912d25222fc", size = 1009858, upload-time = "2025-10-02T00:21:24.305Z" },
118
+ { url = "https://files.pythonhosted.org/packages/f1/bb/7641ee31fedbe337f5c7ed505b8491a96a94fdcc1567b0b1b2b3633ec755/pyjson5-2.0.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:f0dd8b38187d0c2e741d40b9b348328172d0c894a90457f53b22e0f470b19009", size = 1324909, upload-time = "2025-10-02T00:21:25.874Z" },
119
+ { url = "https://files.pythonhosted.org/packages/aa/7f/4cd19d65074d85ad583ff0517e3771af8dd3e87a40d6c25bdb81d38ff0b4/pyjson5-2.0.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:4ac06acc8ffa5686abad2220dbbef89f99694f1f6ddb70e4ec5455bf9fd91176", size = 1245254, upload-time = "2025-10-02T00:21:27.762Z" },
120
+ { url = "https://files.pythonhosted.org/packages/54/26/0b96502136c4e74fa508e5a129119bd2df235dfd165acb0d74043e7fe6f0/pyjson5-2.0.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:34d2700a9472817c043a18d711ee8fd7bb6270dbd4013473d9aac51cef6a7d77", size = 1182526, upload-time = "2025-10-02T00:21:29.433Z" },
121
+ { url = "https://files.pythonhosted.org/packages/4c/34/e704bb86cd56092771589a08d1705d1e1310bdb955a752b26f483f7cd7c9/pyjson5-2.0.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:daf0e3ecf4f7888735050e1e4dc6f25f2f523706cf42de5c3f665042311db9dc", size = 1359472, upload-time = "2025-10-02T00:21:31.4Z" },
122
+ { url = "https://files.pythonhosted.org/packages/0d/fe/d9b6e1a1e4e4d08b3f9b022e92b93abf7baab5c959296faf10aa89cf17b2/pyjson5-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:93580c6dcfb3f4f189c2a8477d9bf262cbc31878cd809c118ddc6b1bb8d6f645", size = 1212271, upload-time = "2025-10-02T00:21:32.796Z" },
123
+ { url = "https://files.pythonhosted.org/packages/0b/0d/c4de90f7b1aecbc24bacc2ea4582e344043e8587c18596649950e877f5aa/pyjson5-2.0.0-cp314-cp314-win32.whl", hash = "sha256:dc53188059c2a73c8ddd0d17eaf970210a0ba48805e2178dfc8e71c063668d80", size = 118268, upload-time = "2025-10-02T00:22:01.555Z" },
124
+ { url = "https://files.pythonhosted.org/packages/52/8c/1bb60288c4d480a0b51e376a17d6c4d932dc8420989d1db440e3b284aad5/pyjson5-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:36ab5b8fcf1585623d12519f55e3efddbcbba6a0072e7168b4a3f48e3d4c64bb", size = 137772, upload-time = "2025-10-02T00:22:02.577Z" },
125
+ { url = "https://files.pythonhosted.org/packages/53/ea/c5e9e5a44b194851347698b5065df642d42852641d32da0c71626f60f3fc/pyjson5-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:371a8ee3d8c5f128f8024c5afc776b661043c2b2672de83a22ed6a4a289522f9", size = 121372, upload-time = "2025-10-02T00:22:03.666Z" },
126
+ { url = "https://files.pythonhosted.org/packages/05/13/1391b985d3cded0038816d07a5d68e9f525a2b304a258e890bb5a4e2c64a/pyjson5-2.0.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:111d4f3b384a41eae225bce1709c745c1aeafd51214bcd850469c5c34167856c", size = 322542, upload-time = "2025-10-02T00:21:33.993Z" },
127
+ { url = "https://files.pythonhosted.org/packages/24/c9/391def485564be4700e8baaa9a67292ed64a316050f625b84ef43358fbcc/pyjson5-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:15bc0bc456d2b101c469f57d0301a9624be682302d9ded569d5976c2c3b1130e", size = 169901, upload-time = "2025-10-02T00:21:35.081Z" },
128
+ { url = "https://files.pythonhosted.org/packages/d7/9c/2612e236a40eac86fba453dc9db1c334b4fb77ac5d1630498b0e3a0fd8d3/pyjson5-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:151ea53ec2ce1c014c58ee755d3113af80dc44cb8ca1008eabb829cd1001ea7b", size = 161759, upload-time = "2025-10-02T00:21:36.543Z" },
129
+ { url = "https://files.pythonhosted.org/packages/42/6f/f62b823d2e52ee7ddb25761b4bc8286c08199f6d42ddd1f01e8cb48a55a0/pyjson5-2.0.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:92fb2ae9e367fc585f93573222bfa2512c6fe85703658f96adbebd8459b16d0c", size = 184972, upload-time = "2025-10-02T00:21:37.646Z" },
130
+ { url = "https://files.pythonhosted.org/packages/02/72/2bca65d3ad6f19386fd0e350f66c7153c09173ca9a4742d4108d07e73f78/pyjson5-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a59fcaf3927277a385f17863077d474f7451b1471ddcf6acdd28c76950d4c868", size = 172446, upload-time = "2025-10-02T00:21:38.723Z" },
131
+ { url = "https://files.pythonhosted.org/packages/48/ec/752cf626a6caa69bf63fea4a7a47c9c57130578de502198105c3e2c5a55f/pyjson5-2.0.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:10cc1d0afd26479b2643ad3a67211e98fa72aa66030bbb695bb03d34cea2f801", size = 165790, upload-time = "2025-10-02T00:21:39.752Z" },
132
+ { url = "https://files.pythonhosted.org/packages/80/a6/1b41a3f87e899d7b1c48e5fb45d1d306c478708806286f113a0495c13261/pyjson5-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c69f3b28b669e26b11766a200b7d0d8bbfbd9a48735e39b9675e8fb8d6a99744", size = 188500, upload-time = "2025-10-02T00:21:40.789Z" },
133
+ { url = "https://files.pythonhosted.org/packages/c1/da/c9769cff5ce6b1c7e4b7e169fa1191bb2b6562849069ca11f79be6ed98d1/pyjson5-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:05d08aeb21bf547e1de4749d22b5638405aca12ba866b762d25d84575d327327", size = 193060, upload-time = "2025-10-02T00:21:41.885Z" },
134
+ { url = "https://files.pythonhosted.org/packages/31/ef/a97738263b05d91189df4e081d2331389ec95f662d26242f678b53b7d9d7/pyjson5-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:321e107c7df19d281e858bcfdbb39282b8cc1163a1e8c142b9d91af1e1db8573", size = 181832, upload-time = "2025-10-02T00:21:42.959Z" },
135
+ { url = "https://files.pythonhosted.org/packages/f0/15/2170f05792bddace7136100c30bdf73ec54fbed7ae86eb17f42e882238ec/pyjson5-2.0.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:66dceb6b83990bf81accbbc1a56897f1bb302b7da063d5eb2d756f26c4e98389", size = 178943, upload-time = "2025-10-02T00:21:44.041Z" },
136
+ { url = "https://files.pythonhosted.org/packages/0f/e6/a7f40e1bfa312f1987577c583b4dc1008e05f016585f0858d527e7d6e48d/pyjson5-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2de1242c168735ac589c2ca5708f95bd3d47c50f59464042316b56d77d807cae", size = 1153787, upload-time = "2025-10-02T00:21:45.727Z" },
137
+ { url = "https://files.pythonhosted.org/packages/cc/e3/4efcc86258a63c5c8af79fd8fe06e0ff98cebcc56facf473dba3318455a3/pyjson5-2.0.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:505dd929b620886c4bcf2ba19ca842dc5606ed1ad1fe5003cc09fbd2d910b0ef", size = 1014990, upload-time = "2025-10-02T00:21:47.134Z" },
138
+ { url = "https://files.pythonhosted.org/packages/e5/15/e7f1bc7aeb2c9f008a83c3e9129b4b16e1e27b2ae463efe05cfc8320ea68/pyjson5-2.0.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:48fb751c641fd03b5f002dc47a040aca9eec0a8a9bc11bc77e86dc40a6c3f10e", size = 1322761, upload-time = "2025-10-02T00:21:48.727Z" },
139
+ { url = "https://files.pythonhosted.org/packages/37/30/d937dfcb8386841571f7eda2b78b716ece4d62a10ce9a71f9dc8e02269fe/pyjson5-2.0.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:d67186c0a70308da9752202e8dcc6fcf63991d8a2aa4cfa463a587a3cbb6416c", size = 1247709, upload-time = "2025-10-02T00:21:50.485Z" },
140
+ { url = "https://files.pythonhosted.org/packages/6a/d6/ca54b0953f45bd89317f5069c8cb096df33c391ae2166259c273981c4884/pyjson5-2.0.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:0a9c0901313c8cf36f6f72cfc76b3ef335723fd240c869bc80a8711567573252", size = 1185323, upload-time = "2025-10-02T00:21:52.27Z" },
141
+ { url = "https://files.pythonhosted.org/packages/46/eb/eaa0c7eef752ea2afb192ff3f15cb79fa5229ab22cf84c0b941a0671364f/pyjson5-2.0.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:918175822878b4a48949af6fa236ccb2189b6548df14077b97246b61baff2ba7", size = 1360604, upload-time = "2025-10-02T00:21:53.819Z" },
142
+ { url = "https://files.pythonhosted.org/packages/5f/ca/192931f334270fa941977a9beb2590d40fe460711d932b825c3882f100de/pyjson5-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:7a09dac1228517792d8941718194ee5e4aa55ed604e0616938e55d75aedcb0c1", size = 1214048, upload-time = "2025-10-02T00:21:55.338Z" },
143
+ { url = "https://files.pythonhosted.org/packages/c2/61/63bd6351bd88e7158380eabf182beb377b53c4812175db3cde82fb2ad16e/pyjson5-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:caeee4168841a4d061f0e33cd162ae45fedbe9be9ed3dbd839d76d7791858dcf", size = 138873, upload-time = "2025-10-02T00:21:56.903Z" },
144
+ { url = "https://files.pythonhosted.org/packages/f6/ee/f856f8e18336a96ad7a7561dc482f776fa3c236ca278820f1ad4d7e04bba/pyjson5-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:7121183c7be324bdb6e824fc047ac29ad676025506e3cdbad6def5c4af9247d4", size = 168332, upload-time = "2025-10-02T00:21:58.038Z" },
145
+ { url = "https://files.pythonhosted.org/packages/62/9d/17ac8aacb439c79a912a57ee105bb060c6c10d40eab587928215e2022e5e/pyjson5-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:f5e151599913b0c6e3bc3e176951f48039457e8a4b14f59c1ffffb8580ab58ea", size = 127386, upload-time = "2025-10-02T00:22:00.217Z" },
146
+ ]
147
+
56
148
  [[package]]
57
149
  name = "pyodide-cli"
58
- version = "0.3.0"
150
+ version = "0.4.0"
59
151
  source = { registry = "https://pypi.org/simple" }
60
152
  dependencies = [
61
153
  { name = "rich" },
62
154
  { name = "typer" },
63
155
  ]
64
- sdist = { url = "https://files.pythonhosted.org/packages/50/80/0dd7b828031d08efcdc2be6d69b3b0aa502fb1dcf05eb0397369966329f8/pyodide_cli-0.3.0.tar.gz", hash = "sha256:247a7408f358326dd586477b5fe6eeb146edbed5f058923d258730e743457dd0", size = 11698, upload-time = "2025-04-05T12:18:34.27Z" }
156
+ sdist = { url = "https://files.pythonhosted.org/packages/7d/2c/dae71066d7b9fac85f848e17e73c34cc6aca7ed6c6d79a3c3b231509c725/pyodide_cli-0.4.0.tar.gz", hash = "sha256:828e0b73cbd810414a61253cf0f0746a2efc8434567c57fbb03308b6d955e958", size = 12726, upload-time = "2025-09-12T09:36:13.319Z" }
157
+ wheels = [
158
+ { url = "https://files.pythonhosted.org/packages/30/15/f2db8891a579d8ed2b732be44a17ae93b51e8d2e097f004efc52713384c8/pyodide_cli-0.4.0-py3-none-any.whl", hash = "sha256:2897bf7eb00b760e0db1a2fa8dc237ac2ea793d90e0ac5244ad3f5a55d0bb417", size = 12867, upload-time = "2025-09-12T09:36:12.325Z" },
159
+ ]
160
+
161
+ [[package]]
162
+ name = "pyodide-py"
163
+ version = "0.27.7"
164
+ source = { registry = "https://pypi.org/simple" }
165
+ resolution-markers = [
166
+ "python_full_version < '3.13'",
167
+ ]
168
+ sdist = { url = "https://files.pythonhosted.org/packages/9d/99/d7b3c9137de5a76a63f2ef89d43c878dcb4dce8118866fb58d26290698f9/pyodide_py-0.27.7.tar.gz", hash = "sha256:afb68f8abf503f691a4ab5d2ffdbf6dd05117920508e1161e04a34737c649d36", size = 52051, upload-time = "2025-06-05T04:10:49.791Z" }
169
+ wheels = [
170
+ { url = "https://files.pythonhosted.org/packages/24/c5/825f73fb815a17838bef3342999247bea1100a0b2e576e5c17b2bdd68766/pyodide_py-0.27.7-py3-none-any.whl", hash = "sha256:2fa7db63a14720e548eb6174d492643424f8b5f21d43b7c9fecb6d712187fe6a", size = 57930, upload-time = "2025-06-05T04:10:48.789Z" },
171
+ ]
172
+
173
+ [[package]]
174
+ name = "pyodide-py"
175
+ version = "0.28.3"
176
+ source = { registry = "https://pypi.org/simple" }
177
+ resolution-markers = [
178
+ "python_full_version >= '3.13'",
179
+ ]
180
+ sdist = { url = "https://files.pythonhosted.org/packages/2d/59/95d573e0d967af70d8823552c1efee19eb2dfbca23de9ca139516c98c5d1/pyodide_py-0.28.3.tar.gz", hash = "sha256:e521d9714eb57b163e0aadca40b85870a8ea949cb03443c0e5f3ed7d45cd3a98", size = 52898, upload-time = "2025-09-22T15:17:45.314Z" }
65
181
  wheels = [
66
- { url = "https://files.pythonhosted.org/packages/b4/93/b9815f6f4ef30dd8490bea2a82aa664e5aa9162fa38986b35a0898522d22/pyodide_cli-0.3.0-py3-none-any.whl", hash = "sha256:9d2736e04ddb380fd7eac664e5e4ba23d2c1dd29ed38a98b6246ec529ffc834a", size = 11630, upload-time = "2025-04-05T12:18:33.177Z" },
182
+ { url = "https://files.pythonhosted.org/packages/4a/2a/2cca0a4e52a9495f21cab634b58dc413fddf72faf5baed9d2c8741544631/pyodide_py-0.28.3-py3-none-any.whl", hash = "sha256:de6ba9db35ed1ef75b80a70cf11dafa373ad786f95f72e9dbe46ffaf8cdea23c", size = 58853, upload-time = "2025-09-22T15:17:44.104Z" },
67
183
  ]
68
184
 
69
185
  [[package]]
70
186
  name = "rich"
71
- version = "14.1.0"
187
+ version = "14.2.0"
72
188
  source = { registry = "https://pypi.org/simple" }
73
189
  dependencies = [
74
190
  { name = "markdown-it-py" },
75
191
  { name = "pygments" },
76
192
  ]
77
- sdist = { url = "https://files.pythonhosted.org/packages/fe/75/af448d8e52bf1d8fa6a9d089ca6c07ff4453d86c65c145d0a300bb073b9b/rich-14.1.0.tar.gz", hash = "sha256:e497a48b844b0320d45007cdebfeaeed8db2a4f4bcf49f15e455cfc4af11eaa8", size = 224441, upload-time = "2025-07-25T07:32:58.125Z" }
193
+ sdist = { url = "https://files.pythonhosted.org/packages/fb/d2/8920e102050a0de7bfabeb4c4614a49248cf8d5d7a8d01885fbb24dc767a/rich-14.2.0.tar.gz", hash = "sha256:73ff50c7c0c1c77c8243079283f4edb376f0f6442433aecb8ce7e6d0b92d1fe4", size = 219990, upload-time = "2025-10-09T14:16:53.064Z" }
78
194
  wheels = [
79
- { url = "https://files.pythonhosted.org/packages/e3/30/3c4d035596d3cf444529e0b2953ad0466f6049528a879d27534700580395/rich-14.1.0-py3-none-any.whl", hash = "sha256:536f5f1785986d6dbdea3c75205c473f970777b4a0d6c6dd1b696aa05a3fa04f", size = 243368, upload-time = "2025-07-25T07:32:56.73Z" },
195
+ { url = "https://files.pythonhosted.org/packages/25/7a/b0178788f8dc6cafce37a212c99565fa1fe7872c70c6c9c1e1a372d9d88f/rich-14.2.0-py3-none-any.whl", hash = "sha256:76bc51fe2e57d2b1be1f96c524b890b816e334ab4c1e45888799bfaab0021edd", size = 243393, upload-time = "2025-10-09T14:16:51.245Z" },
80
196
  ]
81
197
 
82
198
  [[package]]
@@ -109,7 +225,7 @@ dev = [{ name = "workers-py" }]
109
225
 
110
226
  [[package]]
111
227
  name = "typer"
112
- version = "0.16.1"
228
+ version = "0.19.2"
113
229
  source = { registry = "https://pypi.org/simple" }
114
230
  dependencies = [
115
231
  { name = "click" },
@@ -117,9 +233,9 @@ dependencies = [
117
233
  { name = "shellingham" },
118
234
  { name = "typing-extensions" },
119
235
  ]
120
- sdist = { url = "https://files.pythonhosted.org/packages/43/78/d90f616bf5f88f8710ad067c1f8705bf7618059836ca084e5bb2a0855d75/typer-0.16.1.tar.gz", hash = "sha256:d358c65a464a7a90f338e3bb7ff0c74ac081449e53884b12ba658cbd72990614", size = 102836, upload-time = "2025-08-18T19:18:22.898Z" }
236
+ sdist = { url = "https://files.pythonhosted.org/packages/21/ca/950278884e2ca20547ff3eb109478c6baf6b8cf219318e6bc4f666fad8e8/typer-0.19.2.tar.gz", hash = "sha256:9ad824308ded0ad06cc716434705f691d4ee0bfd0fb081839d2e426860e7fdca", size = 104755, upload-time = "2025-09-23T09:47:48.256Z" }
121
237
  wheels = [
122
- { url = "https://files.pythonhosted.org/packages/2d/76/06dbe78f39b2203d2a47d5facc5df5102d0561e2807396471b5f7c5a30a1/typer-0.16.1-py3-none-any.whl", hash = "sha256:90ee01cb02d9b8395ae21ee3368421faf21fa138cb2a541ed369c08cec5237c9", size = 46397, upload-time = "2025-08-18T19:18:21.663Z" },
238
+ { url = "https://files.pythonhosted.org/packages/00/22/35617eee79080a5d071d0f14ad698d325ee6b3bf824fc0467c03b30e7fa8/typer-0.19.2-py3-none-any.whl", hash = "sha256:755e7e19670ffad8283db353267cb81ef252f595aa6834a0d1ca9312d9326cb9", size = 46748, upload-time = "2025-09-23T09:47:46.777Z" },
123
239
  ]
124
240
 
125
241
  [[package]]
@@ -142,14 +258,17 @@ wheels = [
142
258
 
143
259
  [[package]]
144
260
  name = "workers-py"
145
- version = "1.1.7"
261
+ version = "1.6.1"
146
262
  source = { registry = "https://pypi.org/simple" }
147
263
  dependencies = [
148
264
  { name = "click" },
265
+ { name = "pyjson5" },
149
266
  { name = "pyodide-cli" },
267
+ { name = "pyodide-py", version = "0.27.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.13'" },
268
+ { name = "pyodide-py", version = "0.28.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.13'" },
150
269
  { name = "rich" },
151
270
  ]
152
- sdist = { url = "https://files.pythonhosted.org/packages/94/ad/96b7117af0dbcb3da348783fef747bd19005bdb913b6e249e4fe3c11a9e8/workers_py-1.1.7.tar.gz", hash = "sha256:15068b0b5bf0598007c263e4a6f43cde04bed07595d2f0608d32af1764433a4e", size = 32752, upload-time = "2025-08-28T16:37:45.287Z" }
271
+ sdist = { url = "https://files.pythonhosted.org/packages/16/25/da14d51ca5e67fab961b0b948f7cadde18c8d028fbead668d3d3877e1608/workers_py-1.6.1.tar.gz", hash = "sha256:812eb03203b35f9a4d5f5164eaec513e761de2d1ce7a2625a174bc61fa664ae8", size = 55062, upload-time = "2025-10-15T19:53:59.509Z" }
153
272
  wheels = [
154
- { url = "https://files.pythonhosted.org/packages/bd/43/2c8146fdc951dc64bfea95a862c6c3ff29efb8d2320191ea5af26eff89e2/workers_py-1.1.7-py3-none-any.whl", hash = "sha256:e19bd9d3a5d2e047ed87f4bf720363463ed8a11c16e8367ec2dafccc803d47d7", size = 8609, upload-time = "2025-08-28T16:37:43.682Z" },
273
+ { url = "https://files.pythonhosted.org/packages/47/0f/207602b67ceafbb3d87a8a654555206d6bde253d24992e6a791f4cf15377/workers_py-1.6.1-py3-none-any.whl", hash = "sha256:a91354bec5786b0a359ccbf3cda874a4927a41e902fc0e1ed5a542053b5365cd", size = 11002, upload-time = "2025-10-15T19:53:58.174Z" },
155
274
  ]
@@ -3,9 +3,9 @@
3
3
  "version": "0.0.0",
4
4
  "private": true,
5
5
  "scripts": {
6
- "deploy": "wrangler deploy",
7
- "dev": "wrangler dev",
8
- "start": "wrangler dev"
6
+ "deploy": "uv run pywrangler deploy",
7
+ "dev": "uv run pywrangler dev",
8
+ "start": "uv run pywrangler dev"
9
9
  },
10
10
  "devDependencies": {
11
11
  "wrangler": "^3.101.0"