diff --git a/.github/workflows/demo_integrations_ci.yml b/.github/workflows/demo_integrations_ci.yml
index cdc557c..c09219c 100644
--- a/.github/workflows/demo_integrations_ci.yml
+++ b/.github/workflows/demo_integrations_ci.yml
@@ -27,3 +27,26 @@ jobs:
run: npm run lint
- name: Frontend - Run build
run: cd frontend && npm run build
+
+ realty_demo:
+ runs-on: ubuntu-latest
+ defaults:
+ run:
+ working-directory: ./demos/realty
+ steps:
+ - name: Check out repository code
+ uses: actions/checkout@v4
+ - name: Set up node
+ uses: actions/setup-node@v4
+ with:
+ node-version-file: ".nvmrc"
+ - name: NPM ci repository root
+ run: cd ../.. && npm ci
+ - name: Run prettier
+ run: npm run format:check
+ - name: Lint types
+ run: npm run lint:types
+ - name: ESLint
+ run: npm run lint
+ - name: Frontend - Run build
+ run: cd frontend && npm run build
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9151d30..dc26150 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,18 @@
# Changelog
+## 2025-09-04
+
+### 🔧 Changed
+
+- Updated TypeScript to version 5.9.2
+- Updated dependencies across all demos
+- Refreshed the OpenAPI yml spec `openapi/spec.yml` to be based on the latest Connect API
+
+### 🐞 Fixed
+
+- Fixed bug in `demos/realty`: Updated field mapping validation logic to only check for fields that are present in the template being created.
+- Fixed compatibility issues with TypeScript 5.9.2 in crypto.ts files
+
## 2025-07-23
### 🔧 Changed
diff --git a/client/package.json b/client/package.json
index 07d343b..d52a4e2 100644
--- a/client/package.json
+++ b/client/package.json
@@ -17,6 +17,6 @@
"engineStrict": true,
"devDependencies": {
"@hey-api/openapi-ts": "0.57.1",
- "typescript": "5.8.2"
+ "typescript": "5.9.2"
}
}
diff --git a/client/ts/sdk.gen.ts b/client/ts/sdk.gen.ts
index c67a396..c273fe4 100644
--- a/client/ts/sdk.gen.ts
+++ b/client/ts/sdk.gen.ts
@@ -25,6 +25,12 @@ import type {
GetAssetUploadJobData,
GetAssetUploadJobError,
GetAssetUploadJobResponse2,
+ CreateUrlAssetUploadJobData,
+ CreateUrlAssetUploadJobError,
+ CreateUrlAssetUploadJobResponse2,
+ GetUrlAssetUploadJobData,
+ GetUrlAssetUploadJobError,
+ GetUrlAssetUploadJobResponse2,
CreateDesignAutofillJobData,
CreateDesignAutofillJobError,
CreateDesignAutofillJobResponse2,
@@ -265,6 +271,72 @@ export class AssetService {
url: "/v1/asset-uploads/{jobId}",
});
}
+
+ /**
+ *
+ *
+ * This API is currently provided as a preview. Be aware of the following:
+ *
+ * - There might be unannounced breaking changes.
+ * - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/).
+ * - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users.
+ *
+ *
+ *
+ * Starts a new [asynchronous job](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints) to upload an asset from a URL to the user's content library. Supported file types for assets are listed in the [Assets API overview](https://www.canva.dev/docs/connect/api-reference/assets/).
+ *
+ *
+ * Uploading a video asset from a URL is limited to a maximum 100MB file size. For importing larger video files, use the [Create asset upload job API](https://www.canva.dev/docs/connect/api-reference/assets/create-asset-upload-job/).
+ *
+ *
+ *
+ * For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints). You can check the status and get the results of asset upload jobs created with this API using the [Get asset upload job via URL API](https://www.canva.dev/docs/connect/api-reference/assets/get-url-asset-upload-job/).
+ *
+ */
+ public static createUrlAssetUploadJob(
+ options: Options,
+ ) {
+ return (options?.client ?? client).post<
+ CreateUrlAssetUploadJobResponse2,
+ CreateUrlAssetUploadJobError,
+ ThrowOnError
+ >({
+ ...options,
+ headers: {
+ "Content-Type": "application/json",
+ ...options?.headers,
+ },
+ url: "/v1/url-asset-uploads",
+ });
+ }
+
+ /**
+ *
+ *
+ * This API is currently provided as a preview. Be aware of the following:
+ *
+ * - There might be unannounced breaking changes.
+ * - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/).
+ * - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users.
+ *
+ *
+ *
+ * Get the result of an asset upload job that was created using the [Create asset upload job via URL API](https://www.canva.dev/docs/connect/api-reference/assets/create-url-asset-upload-job/).
+ *
+ * You might need to make multiple requests to this endpoint until you get a `success` or `failed` status. For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints).
+ */
+ public static getUrlAssetUploadJob(
+ options: Options,
+ ) {
+ return (options?.client ?? client).get<
+ GetUrlAssetUploadJobResponse2,
+ GetUrlAssetUploadJobError,
+ ThrowOnError
+ >({
+ ...options,
+ url: "/v1/url-asset-uploads/{jobId}",
+ });
+ }
}
export class AutofillService {
@@ -742,6 +814,8 @@ export class DesignService {
* - Set height and width dimensions for a custom design.
*
* Additionally, you can also provide the `asset_id` of an asset in the user's [projects](https://www.canva.com/help/find-designs-and-folders/) to add to the new design. Currently, this only supports image assets. To list the assets in a folder in the user's projects, use the [List folder items API](https://www.canva.dev/docs/connect/api-reference/folders/list-folder-items/).
+ *
+ * NOTE: Blank designs created with this API are automatically deleted if they're not edited within 7 days. These blank designs bypass the user's Canva trash and are permanently deleted.
*/
public static createDesign(
options?: Options,
@@ -884,16 +958,6 @@ export class DesignImportService {
}
/**
- *
- *
- * This API is currently provided as a preview. Be aware of the following:
- *
- * - There might be unannounced breaking changes.
- * - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/).
- * - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users.
- *
- *
- *
* Starts a new [asynchronous job](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints) to import an external file from a URL as a new design in Canva.
*
* Supported file types for imports are listed in [Design imports overview](https://www.canva.dev/docs/connect/api-reference/design-imports/#supported-file-types).
@@ -922,16 +986,6 @@ export class DesignImportService {
}
/**
- *
- *
- * This API is currently provided as a preview. Be aware of the following:
- *
- * - There might be unannounced breaking changes.
- * - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/).
- * - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users.
- *
- *
- *
* Gets the result of a URL import job created using the [Create URL import job API](https://www.canva.dev/docs/connect/api-reference/design-imports/create-url-import-job/).
*
* You might need to make multiple requests to this endpoint until you get a `success` or `failed` status. For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints).
@@ -1115,9 +1169,13 @@ export class FolderService {
}
/**
- * Creates a folder in either the top level of a Canva user's
- * [projects](https://www.canva.com/help/find-designs-and-folders/) (using the ID `root`), or
- * another folder (using the parent folder's ID). When a folder is successfully created, the
+ * Creates a folder in one of the following locations:
+ *
+ * - The top level of a Canva user's [projects](https://www.canva.com/help/find-designs-and-folders/) (using the ID `root`),
+ * - The user's Uploads folder (using the ID `uploads`),
+ * - Another folder (using the parent folder's ID).
+ *
+ * When a folder is successfully created, the
* endpoint returns its folder ID, along with other information.
*/
public static createFolder(
@@ -1259,16 +1317,6 @@ export class OauthService {
export class ResizeService {
/**
- *
- *
- * This API is currently provided as a preview. Be aware of the following:
- *
- * - There might be unannounced breaking changes.
- * - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/).
- * - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users.
- *
- *
- *
*
*
* To use this API, your integration must act on behalf of a user that's on a Canva plan with premium features (such as Canva Pro).
@@ -1285,7 +1333,12 @@ export class ResizeService {
* - Use a preset design type.
* - Set height and width dimensions for a custom design.
*
- * NOTE: [Canva docs](https://www.canva.com/create/documents/) can't be resized, and other design types can't be resized to a Canva doc.
+ * Note the following behaviors and restrictions when resizing designs:
+ * - Designs can be resized to a maximum area of 25,000,000 pixels squared.
+ * - Resizing designs using the Connect API always creates a new design. In-place resizing is currently not available in the Connect API, but can be done in the Canva UI.
+ * - Resizing a multi-page design results in all pages of the design being resized. Resizing a section of a design is only available in the Canva UI.
+ * - [Canva docs](https://www.canva.com/create/documents/) can't be resized, and other design types can't be resized to a Canva doc.
+ * - Canva Code designs can't be resized, and other design types can't be resized to a Canva Code design.
*
*
* For more information on the workflow for using asynchronous jobs,
@@ -1312,16 +1365,6 @@ export class ResizeService {
}
/**
- *
- *
- * This API is currently provided as a preview. Be aware of the following:
- *
- * - There might be unannounced breaking changes.
- * - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/).
- * - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users.
- *
- *
- *
*
*
* To use this API, your integration must act on behalf of a user that's on a Canva plan with premium features (such as Canva Pro).
@@ -1370,16 +1413,6 @@ export class UserService {
}
/**
- *
- *
- * This API is currently provided as a preview. Be aware of the following:
- *
- * - There might be unannounced breaking changes.
- * - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/).
- * - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users.
- *
- *
- *
* Lists the API capabilities for the user account associated with the provided access token. For more information, see [Capabilities](https://www.canva.dev/docs/connect/capabilities/).
*/
public static getUserCapabilities(
diff --git a/client/ts/types.gen.ts b/client/ts/types.gen.ts
index f5e5cc5..ebbcb00 100644
--- a/client/ts/types.gen.ts
+++ b/client/ts/types.gen.ts
@@ -57,6 +57,25 @@ export type JsonWebKey = {
use?: string;
};
+export type CreateUrlAssetUploadJobRequest = {
+ /**
+ * A name for the asset.
+ */
+ name: string;
+ /**
+ * The URL of the file to import. This URL must be accessible from the internet and be publicly available.
+ */
+ url: string;
+};
+
+export type CreateUrlAssetUploadJobResponse = {
+ job: AssetUploadJob;
+};
+
+export type GetUrlAssetUploadJobResponse = {
+ job: AssetUploadJob;
+};
+
export type GetAssetResponse = {
asset: Asset;
};
@@ -110,6 +129,7 @@ export type Asset = {
* Unix Epoch).
*/
updated_at: number;
+ owner: TeamUserSummary;
thumbnail?: Thumbnail;
};
@@ -148,12 +168,12 @@ export type AssetSummary = {
};
/**
- * Type of an asset. Support for `video` assets is currently provided as a [preview](https://www.canva.dev/docs/connect/api-reference/assets/#videos).
+ * Type of an asset.
*/
export type AssetType = "image" | "video";
/**
- * Type of an asset. Support for `video` assets is currently provided as a [preview](https://www.canva.dev/docs/connect/api-reference/assets/#videos).
+ * Type of an asset.
*/
export const AssetType = {
IMAGE: "image",
@@ -440,7 +460,7 @@ export type AutofillError = {
message: string;
};
-export type DatasetFilter = "any" | "non_empty" | "empty";
+export type DatasetFilter = "any" | "non_empty";
export const DatasetFilter = {
/**
@@ -451,10 +471,6 @@ export const DatasetFilter = {
* Brand templates with one or more data fields defined.
*/
NON_EMPTY: "non_empty",
- /**
- * Brand templates with no data fields defined.
- */
- EMPTY: "empty",
} as const;
export type ListBrandTemplatesResponse = {
@@ -1911,7 +1927,9 @@ export type ErrorCode =
| "design_not_fillable"
| "autofill_data_invalid"
| "feature_not_available"
- | "license_required";
+ | "license_required"
+ | "input_unsafe"
+ | "display_name_unavailable";
/**
* A short string indicating what failed. This field can be used to handle errors programmatically.
@@ -1974,6 +1992,8 @@ export const ErrorCode = {
AUTOFILL_DATA_INVALID: "autofill_data_invalid",
FEATURE_NOT_AVAILABLE: "feature_not_available",
LICENSE_REQUIRED: "license_required",
+ INPUT_UNSAFE: "input_unsafe",
+ DISPLAY_NAME_UNAVAILABLE: "display_name_unavailable",
} as const;
/**
@@ -2451,6 +2471,7 @@ export type CreateFolderRequest = {
/**
* The folder ID of the parent folder. To create a new folder at the top level of a user's
* [projects](https://www.canva.com/help/find-designs-and-folders/), use the ID `root`.
+ * To create it in their Uploads folder, use `uploads`.
*/
parent_folder_id: string;
};
@@ -2916,12 +2937,14 @@ export const DesignResizeStatus = {
export type DesignResizeErrorCode =
| "thumbnail_generation_error"
| "design_resize_error"
- | "create_design_error";
+ | "create_design_error"
+ | "trial_quota_exceeded";
export const DesignResizeErrorCode = {
THUMBNAIL_GENERATION_ERROR: "thumbnail_generation_error",
DESIGN_RESIZE_ERROR: "design_resize_error",
CREATE_DESIGN_ERROR: "create_design_error",
+ TRIAL_QUOTA_EXCEEDED: "trial_quota_exceeded",
} as const;
/**
@@ -3289,6 +3312,11 @@ export type ApprovalResponseAction = {
message?: string;
};
+/**
+ * The app ID.
+ */
+export type appId = string;
+
/**
* The brand template ID.
*/
@@ -3314,11 +3342,21 @@ export type replyId = string;
*/
export type designId = string;
+/**
+ * The editing transaction ID.
+ */
+export type transactionIdParameter = string;
+
/**
* The export job ID.
*/
export type exportId = string;
+/**
+ * The file ID.
+ */
+export type fileIdParameter = string;
+
/**
* The folder ID.
*/
@@ -3328,7 +3366,7 @@ export type GetAppJwksData = {
body?: never;
path: {
/**
- * The app id
+ * The app ID.
*/
appId: string;
};
@@ -3512,6 +3550,63 @@ export type GetAssetUploadJobResponses = {
export type GetAssetUploadJobResponse2 =
GetAssetUploadJobResponses[keyof GetAssetUploadJobResponses];
+export type CreateUrlAssetUploadJobData = {
+ body: CreateUrlAssetUploadJobRequest;
+ url: "/v1/url-asset-uploads";
+};
+
+export type CreateUrlAssetUploadJobErrors = {
+ /**
+ * Error Response
+ */
+ default: Error;
+};
+
+export type CreateUrlAssetUploadJobError =
+ CreateUrlAssetUploadJobErrors[keyof CreateUrlAssetUploadJobErrors];
+
+export type CreateUrlAssetUploadJobResponses = {
+ /**
+ * OK
+ */
+ 200: CreateUrlAssetUploadJobResponse;
+};
+
+export type CreateUrlAssetUploadJobResponse2 =
+ CreateUrlAssetUploadJobResponses[keyof CreateUrlAssetUploadJobResponses];
+
+export type GetUrlAssetUploadJobData = {
+ body?: never;
+ path: {
+ /**
+ * The asset upload job ID.
+ */
+ jobId: string;
+ };
+ query?: never;
+ url: "/v1/url-asset-uploads/{jobId}";
+};
+
+export type GetUrlAssetUploadJobErrors = {
+ /**
+ * Error Response
+ */
+ default: Error;
+};
+
+export type GetUrlAssetUploadJobError =
+ GetUrlAssetUploadJobErrors[keyof GetUrlAssetUploadJobErrors];
+
+export type GetUrlAssetUploadJobResponses = {
+ /**
+ * OK
+ */
+ 200: GetUrlAssetUploadJobResponse;
+};
+
+export type GetUrlAssetUploadJobResponse2 =
+ GetUrlAssetUploadJobResponses[keyof GetUrlAssetUploadJobResponses];
+
export type CreateDesignAutofillJobData = {
body?: CreateDesignAutofillJobRequest;
url: "/v1/autofills";
diff --git a/demos/common/backend/services/crypto.ts b/demos/common/backend/services/crypto.ts
index 4553421..5808804 100644
--- a/demos/common/backend/services/crypto.ts
+++ b/demos/common/backend/services/crypto.ts
@@ -6,9 +6,9 @@ export type EncryptedData = {
};
// exported for testing only
-export function decodeBase64(text: string): Uint8Array {
+export function decodeBase64(text: string): Uint8Array {
const buffer = Buffer.from(text, "base64");
- return Uint8Array.from(buffer);
+ return new Uint8Array(buffer);
}
// exported for testing only
@@ -90,10 +90,13 @@ export async function decrypt(token: EncryptedData): Promise {
);
// To decrypt, we need to supply the name of the encryption algorithm (AES-GCM here),
// the initialization vector that was used to encrypt the data, and the key itself.
+ const iv = decodeBase64(token.iv);
+ const encryptedData = decodeBase64(token.encryptedData);
+
const decrypted = await crypto.subtle.decrypt(
- { name: ENCRYPTION_ALGORITHM, iv: decodeBase64(token.iv) },
+ { name: ENCRYPTION_ALGORITHM, iv },
key,
- decodeBase64(token.encryptedData),
+ encryptedData,
);
return new TextDecoder("utf-8").decode(decrypted);
}
diff --git a/demos/common/package.json b/demos/common/package.json
index e5e1170..395677d 100644
--- a/demos/common/package.json
+++ b/demos/common/package.json
@@ -28,9 +28,9 @@
"jest": "29.7.0",
"jose": "5.10.0",
"nodemon": "3.0.1",
- "open": "10.1.2",
+ "open": "10.2.0",
"pug": "3.0.3",
- "ts-jest": "29.4.0",
+ "ts-jest": "29.4.1",
"webpack-cli": "6.0.1",
"webpack-dev-server": "5.2.2",
"yargs": "17.7.2"
@@ -43,6 +43,6 @@
"@types/nodemon": "1.19.6",
"@types/yargs": "17.0.33",
"prettier": "3.6.2",
- "typescript": "5.8.2"
+ "typescript": "5.9.2"
}
}
diff --git a/demos/ecommerce_shop/backend/package.json b/demos/ecommerce_shop/backend/package.json
index 09d0e4c..c03fc88 100644
--- a/demos/ecommerce_shop/backend/package.json
+++ b/demos/ecommerce_shop/backend/package.json
@@ -19,8 +19,8 @@
"cors": "2.8.5",
"dotenv": "16.6.0",
"express": "4.21.2",
- "multer": "2.0.1",
- "open": "10.1.2",
+ "multer": "2.0.2",
+ "open": "10.2.0",
"pug": "3.0.3"
},
"devDependencies": {
@@ -29,6 +29,6 @@
"@types/multer": "2.0.0",
"@types/node": "20.19.2",
"prettier": "3.6.2",
- "typescript": "5.8.2"
+ "typescript": "5.9.2"
}
}
diff --git a/demos/ecommerce_shop/frontend/package.json b/demos/ecommerce_shop/frontend/package.json
index babd604..2ee44f0 100644
--- a/demos/ecommerce_shop/frontend/package.json
+++ b/demos/ecommerce_shop/frontend/package.json
@@ -25,7 +25,7 @@
"canvas-confetti": "1.9.3",
"react": "18.3.1",
"react-dom": "18.3.1",
- "react-router-dom": "7.6.3"
+ "react-router-dom": "7.8.2"
},
"devDependencies": {
"@svgr/webpack": "8.1.0",
@@ -35,13 +35,13 @@
"@types/webpack": "5.28.5",
"@types/webpack-dev-server": "4.7.2",
"css-loader": "7.1.2",
- "cssnano": "7.0.7",
+ "cssnano": "7.1.1",
"postcss-loader": "8.1.1",
"prettier": "3.6.2",
"style-loader": "4.0.0",
"terser-webpack-plugin": "5.3.14",
- "ts-loader": "9.5.2",
- "typescript": "5.8.2",
+ "ts-loader": "9.5.4",
+ "typescript": "5.9.2",
"url-loader": "4.1.1",
"webpack-dev-server": "5.2.2"
}
diff --git a/demos/ecommerce_shop/package.json b/demos/ecommerce_shop/package.json
index 9da862e..f52a487 100644
--- a/demos/ecommerce_shop/package.json
+++ b/demos/ecommerce_shop/package.json
@@ -31,18 +31,18 @@
"jose": "5.10.0"
},
"devDependencies": {
- "@eslint/js": "9.30.0",
+ "@eslint/js": "9.34.0",
"@types/cookie-parser": "1.4.9",
"@types/jest": "29.5.14",
"@types/node": "20.19.2",
"@types/nodemon": "1.19.6",
"@types/yargs": "17.0.33",
- "@typescript-eslint/eslint-plugin": "8.35.1",
- "@typescript-eslint/parser": "8.35.1",
+ "@typescript-eslint/eslint-plugin": "8.41.0",
+ "@typescript-eslint/parser": "8.41.0",
"chalk": "4.1.2",
"cli-table3": "0.6.5",
"envfile": "7.1.0",
- "eslint": "9.30.0",
+ "eslint": "9.34.0",
"eslint-plugin-jest": "28.11.0",
"eslint-plugin-react": "7.37.5",
"eslint-plugin-react-hooks": "5.2.0",
@@ -50,10 +50,10 @@
"jest": "29.7.0",
"nodemon": "3.0.1",
"prettier": "3.6.2",
- "ts-jest": "29.4.0",
+ "ts-jest": "29.4.1",
"ts-node": "10.9.2",
- "typescript": "5.8.2",
- "typescript-eslint": "8.35.1",
+ "typescript": "5.9.2",
+ "typescript-eslint": "8.41.0",
"webpack-cli": "6.0.1",
"webpack-dev-server": "5.2.2",
"yargs": "17.7.2"
diff --git a/demos/playground/backend/package.json b/demos/playground/backend/package.json
index 3232505..d528b8e 100644
--- a/demos/playground/backend/package.json
+++ b/demos/playground/backend/package.json
@@ -18,8 +18,8 @@
"cors": "2.8.5",
"dotenv": "16.6.0",
"express": "4.21.2",
- "multer": "2.0.1",
- "open": "10.1.2",
+ "multer": "2.0.2",
+ "open": "10.2.0",
"pug": "3.0.3"
},
"devDependencies": {
@@ -29,6 +29,6 @@
"@types/multer": "2.0.0",
"@types/node": "20.19.2",
"prettier": "3.6.2",
- "typescript": "5.8.2"
+ "typescript": "5.9.2"
}
}
diff --git a/demos/playground/frontend/package.json b/demos/playground/frontend/package.json
index 4d0d507..c1e22b0 100644
--- a/demos/playground/frontend/package.json
+++ b/demos/playground/frontend/package.json
@@ -25,7 +25,7 @@
"canvas-confetti": "1.9.3",
"react": "18.3.1",
"react-dom": "18.3.1",
- "react-router-dom": "7.6.3"
+ "react-router-dom": "7.8.2"
},
"devDependencies": {
"@svgr/webpack": "8.1.0",
@@ -33,13 +33,13 @@
"@types/react": "18.3.12",
"@types/react-dom": "18.3.1",
"css-loader": "7.1.2",
- "cssnano": "7.0.7",
+ "cssnano": "7.1.1",
"postcss-loader": "8.1.1",
"prettier": "3.6.2",
"style-loader": "4.0.0",
"terser-webpack-plugin": "5.3.14",
- "ts-loader": "9.5.2",
- "typescript": "5.8.2",
+ "ts-loader": "9.5.4",
+ "typescript": "5.9.2",
"url-loader": "4.1.1",
"webpack-dev-server": "5.2.2"
}
diff --git a/demos/playground/package.json b/demos/playground/package.json
index d3e1485..807bfc4 100644
--- a/demos/playground/package.json
+++ b/demos/playground/package.json
@@ -28,21 +28,21 @@
"jose": "5.10.0"
},
"devDependencies": {
- "@eslint/js": "9.30.0",
+ "@eslint/js": "9.34.0",
"@types/cookie-parser": "1.4.9",
"@types/node": "20.19.2",
"@types/yargs": "17.0.33",
- "@typescript-eslint/eslint-plugin": "8.35.1",
- "@typescript-eslint/parser": "8.35.1",
- "eslint": "9.30.0",
+ "@typescript-eslint/eslint-plugin": "8.41.0",
+ "@typescript-eslint/parser": "8.41.0",
+ "eslint": "9.34.0",
"eslint-plugin-jest": "28.11.0",
"eslint-plugin-react": "7.37.5",
"eslint-plugin-react-hooks": "5.2.0",
"eslint-plugin-unicorn": "57.0.0",
"prettier": "3.6.2",
"ts-node": "10.9.2",
- "typescript": "5.8.2",
- "typescript-eslint": "8.35.1",
+ "typescript": "5.9.2",
+ "typescript-eslint": "8.41.0",
"yargs": "17.7.2"
}
}
diff --git a/demos/realty/backend/package.json b/demos/realty/backend/package.json
index 663c641..d068fb8 100644
--- a/demos/realty/backend/package.json
+++ b/demos/realty/backend/package.json
@@ -19,8 +19,8 @@
"cors": "2.8.5",
"dotenv": "16.6.0",
"express": "4.21.2",
- "multer": "2.0.1",
- "open": "10.1.2",
+ "multer": "2.0.2",
+ "open": "10.2.0",
"pug": "3.0.3",
"uuid": "11.1.0"
},
@@ -30,6 +30,6 @@
"@types/multer": "2.0.0",
"@types/uuid": "10.0.0",
"prettier": "3.6.2",
- "typescript": "5.8.2"
+ "typescript": "5.9.2"
}
}
diff --git a/demos/realty/backend/routes/asset.ts b/demos/realty/backend/routes/asset.ts
index 239b51d..0b691fb 100644
--- a/demos/realty/backend/routes/asset.ts
+++ b/demos/realty/backend/routes/asset.ts
@@ -25,7 +25,8 @@ router.post(
}
try {
- const blob = new Blob([req.file.buffer], {
+ const buffer = new Uint8Array(req.file.buffer);
+ const blob = new Blob([buffer], {
type: "application/octet-stream",
});
diff --git a/demos/realty/frontend/package.json b/demos/realty/frontend/package.json
index 6287a5f..4e6ae7e 100644
--- a/demos/realty/frontend/package.json
+++ b/demos/realty/frontend/package.json
@@ -22,10 +22,10 @@
"@mui/icons-material": "5.15.15",
"@mui/material": "5.15.15",
"@realty-demo/shared-models": "file:../shared-models/src",
- "axios": "1.10.0",
+ "axios": "1.11.0",
"react": "18.3.1",
"react-dom": "18.3.1",
- "react-router-dom": "7.6.3"
+ "react-router-dom": "7.8.2"
},
"devDependencies": {
"@svgr/webpack": "8.1.0",
@@ -34,13 +34,13 @@
"@types/webpack": "5.28.5",
"@types/webpack-dev-server": "4.7.2",
"css-loader": "7.1.2",
- "cssnano": "7.0.7",
+ "cssnano": "7.1.1",
"postcss-loader": "8.1.1",
"prettier": "3.6.2",
"style-loader": "4.0.0",
"terser-webpack-plugin": "5.3.14",
- "ts-loader": "9.5.2",
- "typescript": "5.8.2",
+ "ts-loader": "9.5.4",
+ "typescript": "5.9.2",
"webpack-dev-server": "5.2.2"
}
}
diff --git a/demos/realty/frontend/src/services/field-mapping-validation.ts b/demos/realty/frontend/src/services/field-mapping-validation.ts
index 174f192..bed3d06 100644
--- a/demos/realty/frontend/src/services/field-mapping-validation.ts
+++ b/demos/realty/frontend/src/services/field-mapping-validation.ts
@@ -16,14 +16,7 @@ export type FieldMapping = {
export type FieldMappingError = {
field: string;
reason: string;
- type:
- | "missing_broker"
- | "missing_broker2"
- | "insufficient_images"
- | "unknown_field"
- | "invalid_field_type"
- | "no_dataset"
- | "missing_field";
+ type: "unknown_field" | "invalid_field_type" | "no_dataset";
};
type FieldMappingConfig = {
@@ -100,53 +93,6 @@ const createMapping = (
};
};
-const getFieldMappingError = (
- fieldName: string,
- dataset: string[],
- config: FieldMappingConfig,
- context: ValidationContext,
-): FieldMappingError | null => {
- if (dataset.includes(fieldName)) {
- return null;
- }
-
- // if the field is optional, we can skip it without error
- if (config.optional) {
- return null;
- }
-
- // all non-optional fields that are not broker fields are required
- if (!config.brokerField) {
- return {
- field: fieldName,
- reason: `Field "${fieldName}" is missing from in the brand template`,
- type: "missing_field",
- };
- }
-
- // broker fields
-
- // missing broker field for the first agent found, and we need at least one agent
- if (config.brokerIndex === 0 && context.requiredAgentCount > 0) {
- return {
- field: fieldName,
- reason: "This field requires the first agent to be selected",
- type: "missing_broker",
- };
- }
-
- if (config.brokerIndex === 1 && context.requiredAgentCount > 1) {
- return {
- field: fieldName,
- reason: "This field requires the second agent to be selected",
- type: "missing_broker2",
- };
- }
-
- // if we get here, the field is a broker field and we've checked for the required agent count
- return null;
-};
-
export const validateFieldMappings = async (
template: BrandTemplate,
context: ValidationContext,
@@ -173,18 +119,17 @@ export const validateFieldMappings = async (
const datasetFields = Object.keys(response.dataset);
- // Check for missing fields from the configuration
- Object.keys(FIELD_MAPPING_CONFIG).forEach((fieldName) => {
+ // Only validate fields that exist in the template's dataset
+ datasetFields.forEach((fieldName) => {
const config = FIELD_MAPPING_CONFIG[fieldName];
- const error = getFieldMappingError(
- fieldName,
- datasetFields,
- config,
- context,
- );
-
- if (error) {
- errors.push(error);
+
+ if (!config) {
+ // Field exists in template but not in our configuration
+ errors.push({
+ field: fieldName,
+ reason: `Field "${fieldName}" exists in template but is not supported by the application`,
+ type: "unknown_field",
+ });
return;
}
diff --git a/demos/realty/package.json b/demos/realty/package.json
index e78f99f..f4967dd 100644
--- a/demos/realty/package.json
+++ b/demos/realty/package.json
@@ -31,23 +31,23 @@
"jose": "5.10.0"
},
"devDependencies": {
- "@eslint/js": "9.30.0",
+ "@eslint/js": "9.34.0",
"@types/cookie-parser": "1.4.9",
"@types/node": "20.19.2",
"@types/yargs": "17.0.33",
- "@typescript-eslint/eslint-plugin": "8.35.1",
- "@typescript-eslint/parser": "8.35.1",
+ "@typescript-eslint/eslint-plugin": "8.41.0",
+ "@typescript-eslint/parser": "8.41.0",
"chalk": "4.1.2",
"cli-table3": "0.6.5",
"envfile": "7.1.0",
- "eslint": "9.30.0",
+ "eslint": "9.34.0",
"eslint-plugin-react": "7.37.5",
"eslint-plugin-react-hooks": "5.2.0",
"eslint-plugin-unicorn": "57.0.0",
"prettier": "3.6.2",
"ts-node": "10.9.2",
- "typescript": "5.8.2",
- "typescript-eslint": "8.35.1",
+ "typescript": "5.9.2",
+ "typescript-eslint": "8.41.0",
"yargs": "17.7.2"
}
}
diff --git a/demos/realty/shared-models/package.json b/demos/realty/shared-models/package.json
index e1b3035..d13fa79 100644
--- a/demos/realty/shared-models/package.json
+++ b/demos/realty/shared-models/package.json
@@ -9,6 +9,6 @@
"license": "SEE LICENSE IN LICENSE.md in root directory",
"private": true,
"devDependencies": {
- "typescript": "5.8.2"
+ "typescript": "5.9.2"
}
}
diff --git a/openapi/spec.yml b/openapi/spec.yml
index bde8e4b..31238d5 100644
--- a/openapi/spec.yml
+++ b/openapi/spec.yml
@@ -8,7 +8,7 @@ info:
name: ©2023 All Rights Reserved
termsOfService: https://www.canva.com/trust/legal/
title: Canva Connect API
- version: latest
+ version: 2024-06-18
servers:
- description: Canva Connect API
url: https://api.canva.com/rest
@@ -34,7 +34,7 @@ paths:
verify JWTs sent to app backends.
operationId: getAppJwks
parameters:
- - description: The app id
+ - description: The app ID.
explode: false
in: path
name: appId
@@ -261,6 +261,114 @@ paths:
tags:
- asset
x-rate-limit-per-client-user: 180
+ /v1/url-asset-uploads:
+ post:
+ description: |-
+
+
+ This API is currently provided as a preview. Be aware of the following:
+
+ - There might be unannounced breaking changes.
+ - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/).
+ - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users.
+
+
+
+ Starts a new [asynchronous job](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints) to upload an asset from a URL to the user's content library. Supported file types for assets are listed in the [Assets API overview](https://www.canva.dev/docs/connect/api-reference/assets/).
+
+
+ Uploading a video asset from a URL is limited to a maximum 100MB file size. For importing larger video files, use the [Create asset upload job API](https://www.canva.dev/docs/connect/api-reference/assets/create-asset-upload-job/).
+
+
+
+ For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints). You can check the status and get the results of asset upload jobs created with this API using the [Get asset upload job via URL API](https://www.canva.dev/docs/connect/api-reference/assets/get-url-asset-upload-job/).
+
+ operationId: createUrlAssetUploadJob
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CreateUrlAssetUploadJobRequest"
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ in_progress:
+ $ref: "#/components/examples/InProgressAssetUploadJobExample"
+ success:
+ $ref: "#/components/examples/SuccessAssetUploadJobExample"
+ failed:
+ $ref: "#/components/examples/FailedAssetUploadJobExample"
+ schema:
+ $ref: "#/components/schemas/CreateUrlAssetUploadJobResponse"
+ description: OK
+ default:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Error"
+ description: Error Response
+ security:
+ - oauthAuthCode:
+ - asset:write
+ tags:
+ - asset
+ x-rate-limit-per-client-user: 30
+ /v1/url-asset-uploads/{jobId}:
+ get:
+ description: |-
+
+
+ This API is currently provided as a preview. Be aware of the following:
+
+ - There might be unannounced breaking changes.
+ - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/).
+ - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users.
+
+
+
+ Get the result of an asset upload job that was created using the [Create asset upload job via URL API](https://www.canva.dev/docs/connect/api-reference/assets/create-url-asset-upload-job/).
+
+ You might need to make multiple requests to this endpoint until you get a `success` or `failed` status. For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints).
+ operationId: getUrlAssetUploadJob
+ parameters:
+ - description: The asset upload job ID.
+ explode: false
+ in: path
+ name: jobId
+ required: true
+ schema:
+ pattern: "^[a-zA-Z0-9_-]{1,50}$"
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ in_progress:
+ $ref: "#/components/examples/InProgressAssetUploadJobExample"
+ success:
+ $ref: "#/components/examples/SuccessAssetUploadJobExample"
+ failed:
+ $ref: "#/components/examples/FailedAssetUploadJobExample"
+ schema:
+ $ref: "#/components/schemas/GetUrlAssetUploadJobResponse"
+ description: OK
+ default:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Error"
+ description: Error Response
+ security:
+ - oauthAuthCode:
+ - asset:read
+ tags:
+ - asset
+ x-rate-limit-per-client-user: 180
/v1/autofills:
post:
description: |-
@@ -1167,6 +1275,8 @@ paths:
- Set height and width dimensions for a custom design.
Additionally, you can also provide the `asset_id` of an asset in the user's [projects](https://www.canva.com/help/find-designs-and-folders/) to add to the new design. Currently, this only supports image assets. To list the assets in a folder in the user's projects, use the [List folder items API](https://www.canva.dev/docs/connect/api-reference/folders/list-folder-items/).
+
+ NOTE: Blank designs created with this API are automatically deleted if they're not edited within 7 days. These blank designs bypass the user's Canva trash and are permanently deleted.
operationId: createDesign
requestBody:
content:
@@ -1453,16 +1563,6 @@ paths:
/v1/url-imports:
post:
description: |-
-
-
- This API is currently provided as a preview. Be aware of the following:
-
- - There might be unannounced breaking changes.
- - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/).
- - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users.
-
-
-
Starts a new [asynchronous job](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints) to import an external file from a URL as a new design in Canva.
Supported file types for imports are listed in [Design imports overview](https://www.canva.dev/docs/connect/api-reference/design-imports/#supported-file-types).
@@ -1508,16 +1608,6 @@ paths:
/v1/url-imports/{jobId}:
get:
description: |-
-
-
- This API is currently provided as a preview. Be aware of the following:
-
- - There might be unannounced breaking changes.
- - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/).
- - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users.
-
-
-
Gets the result of a URL import job created using the [Create URL import job API](https://www.canva.dev/docs/connect/api-reference/design-imports/create-url-import-job/).
You might need to make multiple requests to this endpoint until you get a `success` or `failed` status. For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints).
@@ -1871,9 +1961,13 @@ paths:
/v1/folders:
post:
description: |-
- Creates a folder in either the top level of a Canva user's
- [projects](https://www.canva.com/help/find-designs-and-folders/) (using the ID `root`), or
- another folder (using the parent folder's ID). When a folder is successfully created, the
+ Creates a folder in one of the following locations:
+
+ - The top level of a Canva user's [projects](https://www.canva.com/help/find-designs-and-folders/) (using the ID `root`),
+ - The user's Uploads folder (using the ID `uploads`),
+ - Another folder (using the parent folder's ID).
+
+ When a folder is successfully created, the
endpoint returns its folder ID, along with other information.
operationId: createFolder
requestBody:
@@ -2045,16 +2139,6 @@ paths:
/v1/resizes:
post:
description: |-
-
-
- This API is currently provided as a preview. Be aware of the following:
-
- - There might be unannounced breaking changes.
- - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/).
- - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users.
-
-
-
To use this API, your integration must act on behalf of a user that's on a Canva plan with premium features (such as Canva Pro).
@@ -2071,7 +2155,12 @@ paths:
- Use a preset design type.
- Set height and width dimensions for a custom design.
- NOTE: [Canva docs](https://www.canva.com/create/documents/) can't be resized, and other design types can't be resized to a Canva doc.
+ Note the following behaviors and restrictions when resizing designs:
+ - Designs can be resized to a maximum area of 25,000,000 pixels squared.
+ - Resizing designs using the Connect API always creates a new design. In-place resizing is currently not available in the Connect API, but can be done in the Canva UI.
+ - Resizing a multi-page design results in all pages of the design being resized. Resizing a section of a design is only available in the Canva UI.
+ - [Canva docs](https://www.canva.com/create/documents/) can't be resized, and other design types can't be resized to a Canva doc.
+ - Canva Code designs can't be resized, and other design types can't be resized to a Canva Code design.
For more information on the workflow for using asynchronous jobs,
@@ -2123,16 +2212,6 @@ paths:
/v1/resizes/{jobId}:
get:
description: |-
-
-
- This API is currently provided as a preview. Be aware of the following:
-
- - There might be unannounced breaking changes.
- - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/).
- - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users.
-
-
-
To use this API, your integration must act on behalf of a user that's on a Canva plan with premium features (such as Canva Pro).
@@ -2213,18 +2292,9 @@ paths:
x-rate-limit-per-client-user: 10
/v1/users/me/capabilities:
get:
- description: |-
-
-
- This API is currently provided as a preview. Be aware of the following:
-
- - There might be unannounced breaking changes.
- - Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/).
- - Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users.
-
-
-
- Lists the API capabilities for the user account associated with the provided access token. For more information, see [Capabilities](https://www.canva.dev/docs/connect/capabilities/).
+ description:
+ "Lists the API capabilities for the user account associated with\
+ \ the provided access token. For more information, see [Capabilities](https://www.canva.dev/docs/connect/capabilities/)."
operationId: getUserCapabilities
responses:
"200":
@@ -2516,8 +2586,8 @@ components:
urls:
edit_url: https://www.canva.com/design/DAGhRehVa2c/0L_1s4UXSpZhls8EtPaRKw/edit
view_url: https://www.canva.com/design/DAGhRehVa2c/0L_1s4UXSpZhls8EtPaRKw/view
- created_at: "1742856750,"
- updated_at: "1742856752,"
+ created_at: 1742856750
+ updated_at: 1742856752
page_count: 5
FailedResizeJobExample:
summary: Failed job
@@ -2529,6 +2599,16 @@ components:
code: design_resize_error
message: Failed to resize the design
parameters:
+ appId:
+ description: The app ID.
+ explode: false
+ in: path
+ name: appId
+ required: true
+ schema:
+ pattern: "^[a-zA-Z0-9_-]{1,50}$"
+ type: string
+ style: simple
brandTemplateId:
description: The brand template ID.
explode: false
@@ -2582,6 +2662,17 @@ components:
pattern: "^[a-zA-Z0-9_-]{1,50}$"
type: string
style: simple
+ transactionIdParameter:
+ description: The editing transaction ID.
+ example: EDT123456
+ explode: false
+ in: path
+ name: transactionId
+ required: true
+ schema:
+ pattern: "^[a-zA-Z0-9_-]{1,50}$"
+ type: string
+ style: simple
exportId:
description: The export job ID.
explode: false
@@ -2592,6 +2683,16 @@ components:
pattern: "^[a-zA-Z0-9_-]{1,50}$"
type: string
style: simple
+ fileIdParameter:
+ description: The file ID.
+ explode: false
+ in: path
+ name: fileId
+ required: true
+ schema:
+ pattern: "^[a-zA-Z0-9_-]{1,50}$"
+ type: string
+ style: simple
folderIdParameter:
description: The folder ID.
example: FAF2lZtloor
@@ -2669,6 +2770,40 @@ components:
- kty
- "n"
type: object
+ CreateUrlAssetUploadJobRequest:
+ properties:
+ name:
+ description: A name for the asset.
+ example: My Awesome Asset
+ maxLength: 255
+ minLength: 1
+ type: string
+ url:
+ description:
+ The URL of the file to import. This URL must be accessible
+ from the internet and be publicly available.
+ example: https://example.com/my_asset_to_upload.jpg
+ maxLength: 2048
+ minLength: 8
+ type: string
+ required:
+ - name
+ - url
+ type: object
+ CreateUrlAssetUploadJobResponse:
+ properties:
+ job:
+ $ref: "#/components/schemas/AssetUploadJob"
+ required:
+ - job
+ type: object
+ GetUrlAssetUploadJobResponse:
+ properties:
+ job:
+ $ref: "#/components/schemas/AssetUploadJob"
+ required:
+ - job
+ type: object
GetAssetResponse:
properties:
asset:
@@ -2749,12 +2884,15 @@ components:
example: 1692928800
format: int64
type: integer
+ owner:
+ $ref: "#/components/schemas/TeamUserSummary"
thumbnail:
$ref: "#/components/schemas/Thumbnail"
required:
- created_at
- id
- name
+ - owner
- tags
- type
- updated_at
@@ -2811,9 +2949,7 @@ components:
- updated_at
type: object
AssetType:
- description:
- "Type of an asset. Support for `video` assets is currently provided\
- \ as a [preview](https://www.canva.dev/docs/connect/api-reference/assets/#videos)."
+ description: Type of an asset.
enum:
- image
- video
@@ -3208,12 +3344,10 @@ components:
enum:
- any
- non_empty
- - empty
type: string
x-enum-descriptions:
- Brand templates with and without dataset definitions.
- Brand templates with one or more data fields defined.
- - Brand templates with no data fields defined.
ListBrandTemplatesResponse:
properties:
continuation:
@@ -3398,6 +3532,8 @@ components:
using the format `[user_id:team_id]`. If the `assignee_id` parameter is specified, you
must mention the assignee in the message.
example: "Great work [oUnPjZ2k2yuhftbWF7873o:oBpVhLW22VrqtwKgaayRbP]!"
+ maxLength: 2048
+ minLength: 1
type: string
assignee_id:
description: |-
@@ -3420,6 +3556,8 @@ components:
You can also mention users in your message by specifying their User ID and Team ID
using the format `[user_id:team_id]`.
example: Thanks!
+ maxLength: 2048
+ minLength: 1
type: string
required:
- attached_to
@@ -3434,6 +3572,8 @@ components:
You can also mention users in your message by specifying their User ID and Team ID
using the format `[user_id:team_id]`.
example: Thanks!
+ maxLength: 2048
+ minLength: 1
type: string
required:
- message_plaintext
@@ -3469,6 +3609,8 @@ components:
using the format `[user_id:team_id]`. If the `assignee_id` parameter is specified, you
must mention the assignee in the message.
example: "Great work [oUnPjZ2k2yuhftbWF7873o:oBpVhLW22VrqtwKgaayRbP]!"
+ maxLength: 2048
+ minLength: 1
type: string
assignee_id:
description: |-
@@ -5065,6 +5207,8 @@ components:
- autofill_data_invalid
- feature_not_available
- license_required
+ - input_unsafe
+ - display_name_unavailable
type: string
CreateDesignExportJobRequest:
description: |-
@@ -5606,6 +5750,7 @@ components:
description: |-
The folder ID of the parent folder. To create a new folder at the top level of a user's
[projects](https://www.canva.com/help/find-designs-and-folders/), use the ID `root`.
+ To create it in their Uploads folder, use `uploads`.
example: FAF2lZtloor
maxLength: 50
minLength: 1
@@ -6169,6 +6314,7 @@ components:
- thumbnail_generation_error
- design_resize_error
- create_design_error
+ - trial_quota_exceeded
type: string
DesignResizeError:
description:
diff --git a/package-lock.json b/package-lock.json
index 7a49355..f4a997b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -34,12 +34,26 @@
},
"devDependencies": {
"@hey-api/openapi-ts": "0.57.1",
- "typescript": "5.8.2"
+ "typescript": "5.9.2"
},
"engines": {
"node": ">=20.14.0"
}
},
+ "client/node_modules/typescript": {
+ "version": "5.9.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz",
+ "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
"client/ts": {},
"demos/common": {
"name": "demo-common-modules",
@@ -57,9 +71,9 @@
"jest": "29.7.0",
"jose": "5.10.0",
"nodemon": "3.0.1",
- "open": "10.1.2",
+ "open": "10.2.0",
"pug": "3.0.3",
- "ts-jest": "29.4.0",
+ "ts-jest": "29.4.1",
"webpack-cli": "6.0.1",
"webpack-dev-server": "5.2.2",
"yargs": "17.7.2"
@@ -72,7 +86,7 @@
"@types/nodemon": "1.19.6",
"@types/yargs": "17.0.33",
"prettier": "3.6.2",
- "typescript": "5.8.2"
+ "typescript": "5.9.2"
},
"engines": {
"node": ">=20.14.0"
@@ -82,6 +96,20 @@
"resolved": "client/ts",
"link": true
},
+ "demos/common/node_modules/typescript": {
+ "version": "5.9.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz",
+ "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
"demos/ecommerce_shop": {
"name": "ecommerce-shop-demo",
"hasInstallScript": true,
@@ -92,18 +120,18 @@
"jose": "5.10.0"
},
"devDependencies": {
- "@eslint/js": "9.30.0",
+ "@eslint/js": "9.34.0",
"@types/cookie-parser": "1.4.9",
"@types/jest": "29.5.14",
"@types/node": "20.19.2",
"@types/nodemon": "1.19.6",
"@types/yargs": "17.0.33",
- "@typescript-eslint/eslint-plugin": "8.35.1",
- "@typescript-eslint/parser": "8.35.1",
+ "@typescript-eslint/eslint-plugin": "8.41.0",
+ "@typescript-eslint/parser": "8.41.0",
"chalk": "4.1.2",
"cli-table3": "0.6.5",
"envfile": "7.1.0",
- "eslint": "9.30.0",
+ "eslint": "9.34.0",
"eslint-plugin-jest": "28.11.0",
"eslint-plugin-react": "7.37.5",
"eslint-plugin-react-hooks": "5.2.0",
@@ -111,10 +139,10 @@
"jest": "29.7.0",
"nodemon": "3.0.1",
"prettier": "3.6.2",
- "ts-jest": "29.4.0",
+ "ts-jest": "29.4.1",
"ts-node": "10.9.2",
- "typescript": "5.8.2",
- "typescript-eslint": "8.35.1",
+ "typescript": "5.9.2",
+ "typescript-eslint": "8.41.0",
"webpack-cli": "6.0.1",
"webpack-dev-server": "5.2.2",
"yargs": "17.7.2"
@@ -132,8 +160,8 @@
"cors": "2.8.5",
"dotenv": "16.6.0",
"express": "4.21.2",
- "multer": "2.0.1",
- "open": "10.1.2",
+ "multer": "2.0.2",
+ "open": "10.2.0",
"pug": "3.0.3"
},
"devDependencies": {
@@ -142,7 +170,7 @@
"@types/multer": "2.0.0",
"@types/node": "20.19.2",
"prettier": "3.6.2",
- "typescript": "5.8.2"
+ "typescript": "5.9.2"
}
},
"demos/ecommerce_shop/frontend": {
@@ -159,7 +187,7 @@
"canvas-confetti": "1.9.3",
"react": "18.3.1",
"react-dom": "18.3.1",
- "react-router-dom": "7.6.3"
+ "react-router-dom": "7.8.2"
},
"devDependencies": {
"@svgr/webpack": "8.1.0",
@@ -169,13 +197,13 @@
"@types/webpack": "5.28.5",
"@types/webpack-dev-server": "4.7.2",
"css-loader": "7.1.2",
- "cssnano": "7.0.7",
+ "cssnano": "7.1.1",
"postcss-loader": "8.1.1",
"prettier": "3.6.2",
"style-loader": "4.0.0",
"terser-webpack-plugin": "5.3.14",
- "ts-loader": "9.5.2",
- "typescript": "5.8.2",
+ "ts-loader": "9.5.4",
+ "typescript": "5.9.2",
"url-loader": "4.1.1",
"webpack-dev-server": "5.2.2"
}
@@ -184,6 +212,20 @@
"resolved": "client/ts",
"link": true
},
+ "demos/ecommerce_shop/node_modules/typescript": {
+ "version": "5.9.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz",
+ "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
"demos/playground": {
"name": "connect-api-playground",
"hasInstallScript": true,
@@ -194,21 +236,21 @@
"jose": "5.10.0"
},
"devDependencies": {
- "@eslint/js": "9.30.0",
+ "@eslint/js": "9.34.0",
"@types/cookie-parser": "1.4.9",
"@types/node": "20.19.2",
"@types/yargs": "17.0.33",
- "@typescript-eslint/eslint-plugin": "8.35.1",
- "@typescript-eslint/parser": "8.35.1",
- "eslint": "9.30.0",
+ "@typescript-eslint/eslint-plugin": "8.41.0",
+ "@typescript-eslint/parser": "8.41.0",
+ "eslint": "9.34.0",
"eslint-plugin-jest": "28.11.0",
"eslint-plugin-react": "7.37.5",
"eslint-plugin-react-hooks": "5.2.0",
"eslint-plugin-unicorn": "57.0.0",
"prettier": "3.6.2",
"ts-node": "10.9.2",
- "typescript": "5.8.2",
- "typescript-eslint": "8.35.1",
+ "typescript": "5.9.2",
+ "typescript-eslint": "8.41.0",
"yargs": "17.7.2"
},
"engines": {
@@ -225,8 +267,8 @@
"cors": "2.8.5",
"dotenv": "16.6.0",
"express": "4.21.2",
- "multer": "2.0.1",
- "open": "10.1.2",
+ "multer": "2.0.2",
+ "open": "10.2.0",
"pug": "3.0.3"
},
"devDependencies": {
@@ -236,7 +278,7 @@
"@types/multer": "2.0.0",
"@types/node": "20.19.2",
"prettier": "3.6.2",
- "typescript": "5.8.2"
+ "typescript": "5.9.2"
}
},
"demos/playground/frontend": {
@@ -253,7 +295,7 @@
"canvas-confetti": "1.9.3",
"react": "18.3.1",
"react-dom": "18.3.1",
- "react-router-dom": "7.6.3"
+ "react-router-dom": "7.8.2"
},
"devDependencies": {
"@svgr/webpack": "8.1.0",
@@ -261,13 +303,13 @@
"@types/react": "18.3.12",
"@types/react-dom": "18.3.1",
"css-loader": "7.1.2",
- "cssnano": "7.0.7",
+ "cssnano": "7.1.1",
"postcss-loader": "8.1.1",
"prettier": "3.6.2",
"style-loader": "4.0.0",
"terser-webpack-plugin": "5.3.14",
- "ts-loader": "9.5.2",
- "typescript": "5.8.2",
+ "ts-loader": "9.5.4",
+ "typescript": "5.9.2",
"url-loader": "4.1.1",
"webpack-dev-server": "5.2.2"
}
@@ -276,6 +318,20 @@
"resolved": "client/ts",
"link": true
},
+ "demos/playground/node_modules/typescript": {
+ "version": "5.9.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz",
+ "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
"demos/realty": {
"name": "realty-demo",
"hasInstallScript": true,
@@ -286,23 +342,23 @@
"jose": "5.10.0"
},
"devDependencies": {
- "@eslint/js": "9.30.0",
+ "@eslint/js": "9.34.0",
"@types/cookie-parser": "1.4.9",
"@types/node": "20.19.2",
"@types/yargs": "17.0.33",
- "@typescript-eslint/eslint-plugin": "8.35.1",
- "@typescript-eslint/parser": "8.35.1",
+ "@typescript-eslint/eslint-plugin": "8.41.0",
+ "@typescript-eslint/parser": "8.41.0",
"chalk": "4.1.2",
"cli-table3": "0.6.5",
"envfile": "7.1.0",
- "eslint": "9.30.0",
+ "eslint": "9.34.0",
"eslint-plugin-react": "7.37.5",
"eslint-plugin-react-hooks": "5.2.0",
"eslint-plugin-unicorn": "57.0.0",
"prettier": "3.6.2",
"ts-node": "10.9.2",
- "typescript": "5.8.2",
- "typescript-eslint": "8.35.1",
+ "typescript": "5.9.2",
+ "typescript-eslint": "8.41.0",
"yargs": "17.7.2"
},
"engines": {
@@ -319,8 +375,8 @@
"cors": "2.8.5",
"dotenv": "16.6.0",
"express": "4.21.2",
- "multer": "2.0.1",
- "open": "10.1.2",
+ "multer": "2.0.2",
+ "open": "10.2.0",
"pug": "3.0.3",
"uuid": "11.1.0"
},
@@ -330,7 +386,7 @@
"@types/multer": "2.0.0",
"@types/uuid": "10.0.0",
"prettier": "3.6.2",
- "typescript": "5.8.2"
+ "typescript": "5.9.2"
}
},
"demos/realty/frontend": {
@@ -344,10 +400,10 @@
"@mui/icons-material": "5.15.15",
"@mui/material": "5.15.15",
"@realty-demo/shared-models": "file:../shared-models/src",
- "axios": "1.10.0",
+ "axios": "1.11.0",
"react": "18.3.1",
"react-dom": "18.3.1",
- "react-router-dom": "7.6.3"
+ "react-router-dom": "7.8.2"
},
"devDependencies": {
"@svgr/webpack": "8.1.0",
@@ -356,13 +412,13 @@
"@types/webpack": "5.28.5",
"@types/webpack-dev-server": "4.7.2",
"css-loader": "7.1.2",
- "cssnano": "7.0.7",
+ "cssnano": "7.1.1",
"postcss-loader": "8.1.1",
"prettier": "3.6.2",
"style-loader": "4.0.0",
"terser-webpack-plugin": "5.3.14",
- "ts-loader": "9.5.2",
- "typescript": "5.8.2",
+ "ts-loader": "9.5.4",
+ "typescript": "5.9.2",
"webpack-dev-server": "5.2.2"
}
},
@@ -374,6 +430,19 @@
"resolved": "demos/realty/shared-models/src",
"link": true
},
+ "demos/realty/node_modules/builtin-modules": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-5.0.0.tgz",
+ "integrity": "sha512-bkXY9WsVpY7CvMhKSR6pZilZu9Ln5WDrKVBUXf2S443etkmEO4V58heTecXcUIsNsi4Rx8JUO4NfX1IcQl4deg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"demos/realty/node_modules/ci-info": {
"version": "4.2.0",
"dev": true,
@@ -432,6 +501,22 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "demos/realty/node_modules/is-builtin-module": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-5.0.0.tgz",
+ "integrity": "sha512-f4RqJKBUe5rQkJ2eJEJBXSticB3hGbN9j0yxxMQFqIW89Jp9WYFtzfTcRlstDKVUTRzSOTLKRfO9vIztenwtxA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "builtin-modules": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"demos/realty/node_modules/jsesc": {
"version": "3.1.0",
"dev": true,
@@ -465,6 +550,20 @@
"node": ">=6"
}
},
+ "demos/realty/node_modules/typescript": {
+ "version": "5.9.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz",
+ "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
"demos/realty/node_modules/uuid": {
"version": "11.1.0",
"funding": [
@@ -481,19 +580,7 @@
"version": "1.0.0",
"license": "SEE LICENSE IN LICENSE.md in root directory",
"devDependencies": {
- "typescript": "5.8.2"
- }
- },
- "demos/realty/shared-models/node_modules/typescript": {
- "version": "5.8.2",
- "dev": true,
- "license": "Apache-2.0",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
+ "typescript": "5.9.2"
}
},
"demos/realty/shared-models/src": {},
@@ -508,17 +595,17 @@
"jose": "5.10.0"
},
"devDependencies": {
- "@eslint/js": "9.30.0",
+ "@eslint/js": "9.34.0",
"@types/jest": "29.5.14",
"@types/node": "20.19.2",
"@types/nodemon": "1.19.6",
"@types/yargs": "17.0.33",
- "@typescript-eslint/eslint-plugin": "8.35.1",
- "@typescript-eslint/parser": "8.35.1",
+ "@typescript-eslint/eslint-plugin": "8.41.0",
+ "@typescript-eslint/parser": "8.41.0",
"chalk": "4.1.2",
"cli-table3": "0.6.5",
"envfile": "7.1.0",
- "eslint": "9.30.0",
+ "eslint": "9.34.0",
"eslint-plugin-jest": "28.11.0",
"eslint-plugin-react": "7.37.5",
"eslint-plugin-react-hooks": "5.2.0",
@@ -526,10 +613,10 @@
"jest": "29.7.0",
"nodemon": "3.0.1",
"prettier": "3.6.2",
- "ts-jest": "29.4.0",
+ "ts-jest": "29.4.1",
"ts-node": "10.9.2",
- "typescript": "5.8.2",
- "typescript-eslint": "8.35.1",
+ "typescript": "5.9.2",
+ "typescript-eslint": "8.41.0",
"webpack-cli": "6.0.1",
"webpack-dev-server": "5.2.2",
"yargs": "17.7.2"
@@ -2556,7 +2643,9 @@
}
},
"node_modules/@eslint/config-helpers": {
- "version": "0.3.0",
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz",
+ "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -2564,7 +2653,9 @@
}
},
"node_modules/@eslint/core": {
- "version": "0.12.0",
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz",
+ "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -2617,7 +2708,9 @@
}
},
"node_modules/@eslint/js": {
- "version": "9.30.0",
+ "version": "9.34.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.34.0.tgz",
+ "integrity": "sha512-EoyvqQnBNsV1CWaEJ559rxXL4c8V92gxirbawSmVUOWXlsRxxQXl6LmCpdUblgxgSkDIqKnhzba2SjRTI/A5Rw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2636,11 +2729,13 @@
}
},
"node_modules/@eslint/plugin-kit": {
- "version": "0.2.7",
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz",
+ "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@eslint/core": "^0.12.0",
+ "@eslint/core": "^0.13.0",
"levn": "^0.4.1"
},
"engines": {
@@ -3621,6 +3716,8 @@
},
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3633,6 +3730,8 @@
},
"node_modules/@nodelib/fs.stat": {
"version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3641,6 +3740,8 @@
},
"node_modules/@nodelib/fs.walk": {
"version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4381,15 +4482,17 @@
"license": "MIT"
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.35.1",
+ "version": "8.41.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.41.0.tgz",
+ "integrity": "sha512-8fz6oa6wEKZrhXWro/S3n2eRJqlRcIa6SlDh59FXJ5Wp5XRZ8B9ixpJDcjadHq47hMx0u+HW6SNa6LjJQ6NLtw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.35.1",
- "@typescript-eslint/type-utils": "8.35.1",
- "@typescript-eslint/utils": "8.35.1",
- "@typescript-eslint/visitor-keys": "8.35.1",
+ "@typescript-eslint/scope-manager": "8.41.0",
+ "@typescript-eslint/type-utils": "8.41.0",
+ "@typescript-eslint/utils": "8.41.0",
+ "@typescript-eslint/visitor-keys": "8.41.0",
"graphemer": "^1.4.0",
"ignore": "^7.0.0",
"natural-compare": "^1.4.0",
@@ -4403,9 +4506,9 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "@typescript-eslint/parser": "^8.35.1",
+ "@typescript-eslint/parser": "^8.41.0",
"eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <5.9.0"
+ "typescript": ">=4.8.4 <6.0.0"
}
},
"node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": {
@@ -4417,14 +4520,16 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "8.35.1",
+ "version": "8.41.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.41.0.tgz",
+ "integrity": "sha512-gTtSdWX9xiMPA/7MV9STjJOOYtWwIJIYxkQxnSV1U3xcE+mnJSH3f6zI0RYP+ew66WSlZ5ed+h0VCxsvdC1jJg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/scope-manager": "8.35.1",
- "@typescript-eslint/types": "8.35.1",
- "@typescript-eslint/typescript-estree": "8.35.1",
- "@typescript-eslint/visitor-keys": "8.35.1",
+ "@typescript-eslint/scope-manager": "8.41.0",
+ "@typescript-eslint/types": "8.41.0",
+ "@typescript-eslint/typescript-estree": "8.41.0",
+ "@typescript-eslint/visitor-keys": "8.41.0",
"debug": "^4.3.4"
},
"engines": {
@@ -4436,16 +4541,18 @@
},
"peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <5.9.0"
+ "typescript": ">=4.8.4 <6.0.0"
}
},
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/project-service": {
- "version": "8.35.1",
+ "node_modules/@typescript-eslint/project-service": {
+ "version": "8.41.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.41.0.tgz",
+ "integrity": "sha512-b8V9SdGBQzQdjJ/IO3eDifGpDBJfvrNTp2QD9P2BeqWTGrRibgfgIlBSw6z3b6R7dPzg752tOs4u/7yCLxksSQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.35.1",
- "@typescript-eslint/types": "^8.35.1",
+ "@typescript-eslint/tsconfig-utils": "^8.41.0",
+ "@typescript-eslint/types": "^8.41.0",
"debug": "^4.3.4"
},
"engines": {
@@ -4456,70 +4563,18 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
- }
- },
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/tsconfig-utils": {
- "version": "8.35.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
- }
- },
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": {
- "version": "8.35.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.35.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/project-service": "8.35.1",
- "@typescript-eslint/tsconfig-utils": "8.35.1",
- "@typescript-eslint/types": "8.35.1",
- "@typescript-eslint/visitor-keys": "8.35.1",
- "debug": "^4.3.4",
- "fast-glob": "^3.3.2",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^2.1.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
+ "typescript": ">=4.8.4 <6.0.0"
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "8.35.1",
+ "version": "8.41.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.41.0.tgz",
+ "integrity": "sha512-n6m05bXn/Cd6DZDGyrpXrELCPVaTnLdPToyhBoFkLIMznRUQUEQdSp96s/pcWSQdqOhrgR1mzJ+yItK7T+WPMQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.35.1",
- "@typescript-eslint/visitor-keys": "8.35.1"
+ "@typescript-eslint/types": "8.41.0",
+ "@typescript-eslint/visitor-keys": "8.41.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4529,8 +4584,10 @@
"url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/types": {
- "version": "8.35.1",
+ "node_modules/@typescript-eslint/tsconfig-utils": {
+ "version": "8.41.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.41.0.tgz",
+ "integrity": "sha512-TDhxYFPUYRFxFhuU5hTIJk+auzM/wKvWgoNYOPcOf6i4ReYlOoYN8q1dV5kOTjNQNJgzWN3TUUQMtlLOcUgdUw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4539,15 +4596,21 @@
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <6.0.0"
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "8.35.1",
+ "version": "8.41.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.41.0.tgz",
+ "integrity": "sha512-63qt1h91vg3KsjVVonFJWjgSK7pZHSQFKH6uwqxAH9bBrsyRhO6ONoKyXxyVBzG1lJnFAJcKAcxLS54N1ee1OQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/typescript-estree": "8.35.1",
- "@typescript-eslint/utils": "8.35.1",
+ "@typescript-eslint/types": "8.41.0",
+ "@typescript-eslint/typescript-estree": "8.41.0",
+ "@typescript-eslint/utils": "8.41.0",
"debug": "^4.3.4",
"ts-api-utils": "^2.1.0"
},
@@ -4560,46 +4623,13 @@
},
"peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <5.9.0"
- }
- },
- "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/project-service": {
- "version": "8.35.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.35.1",
- "@typescript-eslint/types": "^8.35.1",
- "debug": "^4.3.4"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
+ "typescript": ">=4.8.4 <6.0.0"
}
},
- "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/tsconfig-utils": {
- "version": "8.35.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
- }
- },
- "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": {
- "version": "8.35.1",
+ "node_modules/@typescript-eslint/types": {
+ "version": "8.41.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.41.0.tgz",
+ "integrity": "sha512-9EwxsWdVqh42afLbHP90n2VdHaWU/oWgbH2P0CfcNfdKL7CuKpwMQGjwev56vWu9cSKU7FWSu6r9zck6CVfnag==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4610,15 +4640,17 @@
"url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.35.1",
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "8.41.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.41.0.tgz",
+ "integrity": "sha512-D43UwUYJmGhuwHfY7MtNKRZMmfd8+p/eNSfFe6tH5mbVDto+VQCayeAt35rOx3Cs6wxD16DQtIKw/YXxt5E0UQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/project-service": "8.35.1",
- "@typescript-eslint/tsconfig-utils": "8.35.1",
- "@typescript-eslint/types": "8.35.1",
- "@typescript-eslint/visitor-keys": "8.35.1",
+ "@typescript-eslint/project-service": "8.41.0",
+ "@typescript-eslint/tsconfig-utils": "8.41.0",
+ "@typescript-eslint/types": "8.41.0",
+ "@typescript-eslint/visitor-keys": "8.41.0",
"debug": "^4.3.4",
"fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
@@ -4634,18 +4666,20 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
+ "typescript": ">=4.8.4 <6.0.0"
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "8.35.1",
+ "version": "8.41.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.41.0.tgz",
+ "integrity": "sha512-udbCVstxZ5jiPIXrdH+BZWnPatjlYwJuJkDA4Tbo3WyYLh8NvB+h/bKeSZHDOFKfphsZYJQqaFtLeXEqurQn1A==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.7.0",
- "@typescript-eslint/scope-manager": "8.35.1",
- "@typescript-eslint/types": "8.35.1",
- "@typescript-eslint/typescript-estree": "8.35.1"
+ "@typescript-eslint/scope-manager": "8.41.0",
+ "@typescript-eslint/types": "8.41.0",
+ "@typescript-eslint/typescript-estree": "8.41.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4656,89 +4690,17 @@
},
"peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <5.9.0"
- }
- },
- "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/project-service": {
- "version": "8.35.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.35.1",
- "@typescript-eslint/types": "^8.35.1",
- "debug": "^4.3.4"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
- }
- },
- "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/tsconfig-utils": {
- "version": "8.35.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
- }
- },
- "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": {
- "version": "8.35.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.35.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/project-service": "8.35.1",
- "@typescript-eslint/tsconfig-utils": "8.35.1",
- "@typescript-eslint/types": "8.35.1",
- "@typescript-eslint/visitor-keys": "8.35.1",
- "debug": "^4.3.4",
- "fast-glob": "^3.3.2",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^2.1.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
+ "typescript": ">=4.8.4 <6.0.0"
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.35.1",
+ "version": "8.41.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.41.0.tgz",
+ "integrity": "sha512-+GeGMebMCy0elMNg67LRNoVnUFPIm37iu5CmHESVx56/9Jsfdpsvbv605DQ81Pi/x11IdKUsS5nzgTYbCQU9fg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.35.1",
+ "@typescript-eslint/types": "8.41.0",
"eslint-visitor-keys": "^4.2.1"
},
"engines": {
@@ -4749,20 +4711,10 @@
"url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@typescript-eslint/visitor-keys/node_modules/@typescript-eslint/types": {
- "version": "8.35.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
"node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
"version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+ "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -5247,12 +5199,10 @@
"version": "1.2.1",
"license": "MIT"
},
- "node_modules/async": {
- "version": "3.2.6",
- "license": "MIT"
- },
"node_modules/asynckit": {
"version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
"license": "MIT"
},
"node_modules/available-typed-arrays": {
@@ -5270,11 +5220,13 @@
}
},
"node_modules/axios": {
- "version": "1.10.0",
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz",
+ "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==",
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.6",
- "form-data": "^4.0.0",
+ "form-data": "^4.0.4",
"proxy-from-env": "^1.1.0"
}
},
@@ -5550,6 +5502,9 @@
},
"node_modules/brace-expansion": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
@@ -5566,7 +5521,9 @@
}
},
"node_modules/browserslist": {
- "version": "4.24.4",
+ "version": "4.25.4",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.4.tgz",
+ "integrity": "sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==",
"funding": [
{
"type": "opencollective",
@@ -5583,10 +5540,10 @@
],
"license": "MIT",
"dependencies": {
- "caniuse-lite": "^1.0.30001688",
- "electron-to-chromium": "^1.5.73",
+ "caniuse-lite": "^1.0.30001737",
+ "electron-to-chromium": "^1.5.211",
"node-releases": "^2.0.19",
- "update-browserslist-db": "^1.1.1"
+ "update-browserslist-db": "^1.1.3"
},
"bin": {
"browserslist": "cli.js"
@@ -5768,6 +5725,8 @@
},
"node_modules/caniuse-api": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
+ "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5778,7 +5737,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001692",
+ "version": "1.0.30001739",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001739.tgz",
+ "integrity": "sha512-y+j60d6ulelrNSwpPyrHdl+9mJnQzHBr08xm48Qno0nSk4h3Qojh+ziv2qE6rXf4k3tadF4o1J/1tAbVm1NtnA==",
"funding": [
{
"type": "opencollective",
@@ -5984,6 +5945,8 @@
},
"node_modules/colord": {
"version": "2.9.3",
+ "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz",
+ "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==",
"dev": true,
"license": "MIT"
},
@@ -5993,6 +5956,8 @@
},
"node_modules/combined-stream": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"license": "MIT",
"dependencies": {
"delayed-stream": "~1.0.0"
@@ -6019,28 +5984,23 @@
}
},
"node_modules/compression": {
- "version": "1.7.4",
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz",
+ "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==",
"license": "MIT",
"dependencies": {
- "accepts": "~1.3.5",
- "bytes": "3.0.0",
- "compressible": "~2.0.16",
+ "bytes": "3.1.2",
+ "compressible": "~2.0.18",
"debug": "2.6.9",
- "on-headers": "~1.0.2",
- "safe-buffer": "5.1.2",
+ "negotiator": "~0.6.4",
+ "on-headers": "~1.1.0",
+ "safe-buffer": "5.2.1",
"vary": "~1.1.2"
},
"engines": {
"node": ">= 0.8.0"
}
},
- "node_modules/compression/node_modules/bytes": {
- "version": "3.0.0",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/compression/node_modules/debug": {
"version": "2.6.9",
"license": "MIT",
@@ -6052,9 +6012,14 @@
"version": "2.0.0",
"license": "MIT"
},
- "node_modules/compression/node_modules/safe-buffer": {
- "version": "5.1.2",
- "license": "MIT"
+ "node_modules/compression/node_modules/negotiator": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz",
+ "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
},
"node_modules/concat-map": {
"version": "0.0.1",
@@ -6159,11 +6124,13 @@
"license": "MIT"
},
"node_modules/core-js-compat": {
- "version": "3.40.0",
+ "version": "3.45.1",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.45.1.tgz",
+ "integrity": "sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "browserslist": "^4.24.3"
+ "browserslist": "^4.25.3"
},
"funding": {
"type": "opencollective",
@@ -6248,6 +6215,8 @@
},
"node_modules/css-declaration-sorter": {
"version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz",
+ "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==",
"dev": true,
"license": "ISC",
"engines": {
@@ -6341,11 +6310,13 @@
}
},
"node_modules/cssnano": {
- "version": "7.0.7",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.1.1.tgz",
+ "integrity": "sha512-fm4D8ti0dQmFPeF8DXSAA//btEmqCOgAc/9Oa3C1LW94h5usNrJEfrON7b4FkPZgnDEn6OUs5NdxiJZmAtGOpQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "cssnano-preset-default": "^7.0.7",
+ "cssnano-preset-default": "^7.0.9",
"lilconfig": "^3.1.3"
},
"engines": {
@@ -6360,25 +6331,27 @@
}
},
"node_modules/cssnano-preset-default": {
- "version": "7.0.7",
+ "version": "7.0.9",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.9.tgz",
+ "integrity": "sha512-tCD6AAFgYBOVpMBX41KjbvRh9c2uUjLXRyV7KHSIrwHiq5Z9o0TFfUCoM3TwVrRsRteN3sVXGNvjVNxYzkpTsA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "browserslist": "^4.24.5",
+ "browserslist": "^4.25.1",
"css-declaration-sorter": "^7.2.0",
"cssnano-utils": "^5.0.1",
"postcss-calc": "^10.1.1",
- "postcss-colormin": "^7.0.3",
- "postcss-convert-values": "^7.0.5",
+ "postcss-colormin": "^7.0.4",
+ "postcss-convert-values": "^7.0.7",
"postcss-discard-comments": "^7.0.4",
"postcss-discard-duplicates": "^7.0.2",
"postcss-discard-empty": "^7.0.1",
"postcss-discard-overridden": "^7.0.1",
"postcss-merge-longhand": "^7.0.5",
- "postcss-merge-rules": "^7.0.5",
+ "postcss-merge-rules": "^7.0.6",
"postcss-minify-font-values": "^7.0.1",
"postcss-minify-gradients": "^7.0.1",
- "postcss-minify-params": "^7.0.3",
+ "postcss-minify-params": "^7.0.4",
"postcss-minify-selectors": "^7.0.5",
"postcss-normalize-charset": "^7.0.1",
"postcss-normalize-display-values": "^7.0.1",
@@ -6386,13 +6359,13 @@
"postcss-normalize-repeat-style": "^7.0.1",
"postcss-normalize-string": "^7.0.1",
"postcss-normalize-timing-functions": "^7.0.1",
- "postcss-normalize-unicode": "^7.0.3",
+ "postcss-normalize-unicode": "^7.0.4",
"postcss-normalize-url": "^7.0.1",
"postcss-normalize-whitespace": "^7.0.1",
"postcss-ordered-values": "^7.0.2",
- "postcss-reduce-initial": "^7.0.3",
+ "postcss-reduce-initial": "^7.0.4",
"postcss-reduce-transforms": "^7.0.1",
- "postcss-svgo": "^7.0.2",
+ "postcss-svgo": "^7.1.0",
"postcss-unique-selectors": "^7.0.4"
},
"engines": {
@@ -6404,6 +6377,8 @@
},
"node_modules/cssnano-utils": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.1.tgz",
+ "integrity": "sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6709,6 +6684,8 @@
},
"node_modules/delayed-stream": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"license": "MIT",
"engines": {
"node": ">=0.4.0"
@@ -6895,21 +6872,10 @@
"version": "1.1.1",
"license": "MIT"
},
- "node_modules/ejs": {
- "version": "3.1.10",
- "license": "Apache-2.0",
- "dependencies": {
- "jake": "^10.8.5"
- },
- "bin": {
- "ejs": "bin/cli.js"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/electron-to-chromium": {
- "version": "1.5.82",
+ "version": "1.5.211",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.211.tgz",
+ "integrity": "sha512-IGBvimJkotaLzFnwIVgW9/UD/AOJ2tByUmeOrtqBfACSbAw5b1G0XpvdaieKyc7ULmbwXVx+4e4Be8pOPBrYkw==",
"license": "ISC"
},
"node_modules/emittery": {
@@ -7178,18 +7144,20 @@
}
},
"node_modules/eslint": {
- "version": "9.30.0",
+ "version": "9.34.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.34.0.tgz",
+ "integrity": "sha512-RNCHRX5EwdrESy3Jc9o8ie8Bog+PeYvvSR8sDGoZxNFTvZ4dlxUB3WzQ3bQMztFrSRODGrLLj8g6OFuGY/aiQg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.12.1",
"@eslint/config-array": "^0.21.0",
- "@eslint/config-helpers": "^0.3.0",
- "@eslint/core": "^0.14.0",
+ "@eslint/config-helpers": "^0.3.1",
+ "@eslint/core": "^0.15.2",
"@eslint/eslintrc": "^3.3.1",
- "@eslint/js": "9.30.0",
- "@eslint/plugin-kit": "^0.3.1",
+ "@eslint/js": "9.34.0",
+ "@eslint/plugin-kit": "^0.3.5",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
"@humanwhocodes/retry": "^0.4.2",
@@ -7447,7 +7415,9 @@
}
},
"node_modules/eslint/node_modules/@eslint/core": {
- "version": "0.14.0",
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz",
+ "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -7458,28 +7428,19 @@
}
},
"node_modules/eslint/node_modules/@eslint/plugin-kit": {
- "version": "0.3.3",
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz",
+ "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@eslint/core": "^0.15.1",
+ "@eslint/core": "^0.15.2",
"levn": "^0.4.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
- "node_modules/eslint/node_modules/@eslint/plugin-kit/node_modules/@eslint/core": {
- "version": "0.15.1",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "@types/json-schema": "^7.0.15"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
"node_modules/eslint/node_modules/brace-expansion": {
"version": "1.1.12",
"dev": true,
@@ -7723,7 +7684,9 @@
"license": "MIT"
},
"node_modules/fast-glob": {
- "version": "3.3.2",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7731,7 +7694,7 @@
"@nodelib/fs.walk": "^1.2.3",
"glob-parent": "^5.1.2",
"merge2": "^1.3.0",
- "micromatch": "^4.0.4"
+ "micromatch": "^4.0.8"
},
"engines": {
"node": ">=8.6.0"
@@ -7758,7 +7721,9 @@
}
},
"node_modules/fastq": {
- "version": "1.17.1",
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
+ "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -7793,23 +7758,6 @@
"node": ">=16.0.0"
}
},
- "node_modules/filelist": {
- "version": "1.0.4",
- "license": "Apache-2.0",
- "dependencies": {
- "minimatch": "^5.0.1"
- }
- },
- "node_modules/filelist/node_modules/minimatch": {
- "version": "5.1.6",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/fill-range": {
"version": "7.1.1",
"license": "MIT",
@@ -7928,7 +7876,9 @@
}
},
"node_modules/form-data": {
- "version": "4.0.3",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
+ "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
"license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
@@ -8226,7 +8176,6 @@
},
"node_modules/handlebars": {
"version": "4.7.8",
- "dev": true,
"license": "MIT",
"dependencies": {
"minimist": "^1.2.5",
@@ -8730,6 +8679,8 @@
},
"node_modules/is-docker": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
+ "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
"license": "MIT",
"bin": {
"is-docker": "cli.js"
@@ -8823,6 +8774,8 @@
},
"node_modules/is-inside-container": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
+ "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
"license": "MIT",
"dependencies": {
"is-docker": "^3.0.0"
@@ -9043,6 +8996,8 @@
},
"node_modules/is-wsl": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz",
+ "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==",
"license": "MIT",
"dependencies": {
"is-inside-container": "^1.0.0"
@@ -9142,40 +9097,6 @@
"node": ">= 0.4"
}
},
- "node_modules/jake": {
- "version": "10.9.2",
- "license": "Apache-2.0",
- "dependencies": {
- "async": "^3.2.3",
- "chalk": "^4.0.2",
- "filelist": "^1.0.4",
- "minimatch": "^3.1.2"
- },
- "bin": {
- "jake": "bin/cli.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/jake/node_modules/brace-expansion": {
- "version": "1.1.12",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/jake/node_modules/minimatch": {
- "version": "3.1.2",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
"node_modules/jest": {
"version": "29.7.0",
"license": "MIT",
@@ -9987,6 +9908,8 @@
},
"node_modules/lodash.uniq": {
"version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==",
"dev": true,
"license": "MIT"
},
@@ -10092,6 +10015,8 @@
},
"node_modules/merge2": {
"version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10168,6 +10093,8 @@
},
"node_modules/minimatch": {
"version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -10245,9 +10172,9 @@
"license": "MIT"
},
"node_modules/multer": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/multer/-/multer-2.0.1.tgz",
- "integrity": "sha512-Ug8bXeTIUlxurg8xLTEskKShvcKDZALo1THEX5E41pYCD2sCVub5/kIRIGqWNoqV6szyLyQKV6mD4QUrWE5GCQ==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/multer/-/multer-2.0.2.tgz",
+ "integrity": "sha512-u7f2xaZ/UG8oLXHvtF/oWTRvT44p9ecwBBqTwgJVq0+4BW1g8OW01TyMEGWBHbyMOYVHXslaut7qEQ1meATXgw==",
"license": "MIT",
"dependencies": {
"append-field": "^1.0.0",
@@ -10586,7 +10513,9 @@
}
},
"node_modules/on-headers": {
- "version": "1.0.2",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz",
+ "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
@@ -10614,13 +10543,15 @@
}
},
"node_modules/open": {
- "version": "10.1.2",
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz",
+ "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==",
"license": "MIT",
"dependencies": {
"default-browser": "^5.2.1",
"define-lazy-prop": "^3.0.0",
"is-inside-container": "^1.0.0",
- "is-wsl": "^3.1.0"
+ "wsl-utils": "^0.1.0"
},
"engines": {
"node": ">=18"
@@ -10919,6 +10850,8 @@
},
"node_modules/postcss-calc": {
"version": "10.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.1.1.tgz",
+ "integrity": "sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10934,6 +10867,8 @@
},
"node_modules/postcss-calc/node_modules/postcss-selector-parser": {
"version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
+ "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10945,11 +10880,13 @@
}
},
"node_modules/postcss-colormin": {
- "version": "7.0.3",
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.4.tgz",
+ "integrity": "sha512-ziQuVzQZBROpKpfeDwmrG+Vvlr0YWmY/ZAk99XD+mGEBuEojoFekL41NCsdhyNUtZI7DPOoIWIR7vQQK9xwluw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "browserslist": "^4.24.5",
+ "browserslist": "^4.25.1",
"caniuse-api": "^3.0.0",
"colord": "^2.9.3",
"postcss-value-parser": "^4.2.0"
@@ -10962,11 +10899,13 @@
}
},
"node_modules/postcss-convert-values": {
- "version": "7.0.5",
+ "version": "7.0.7",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.7.tgz",
+ "integrity": "sha512-HR9DZLN04Xbe6xugRH6lS4ZQH2zm/bFh/ZyRkpedZozhvh+awAfbA0P36InO4fZfDhvYfNJeNvlTf1sjwGbw/A==",
"dev": true,
"license": "MIT",
"dependencies": {
- "browserslist": "^4.24.5",
+ "browserslist": "^4.25.1",
"postcss-value-parser": "^4.2.0"
},
"engines": {
@@ -10978,6 +10917,8 @@
},
"node_modules/postcss-discard-comments": {
"version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.4.tgz",
+ "integrity": "sha512-6tCUoql/ipWwKtVP/xYiFf1U9QgJ0PUvxN7pTcsQ8Ns3Fnwq1pU5D5s1MhT/XySeLq6GXNvn37U46Ded0TckWg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10992,6 +10933,8 @@
},
"node_modules/postcss-discard-comments/node_modules/postcss-selector-parser": {
"version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
+ "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11004,6 +10947,8 @@
},
"node_modules/postcss-discard-duplicates": {
"version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.2.tgz",
+ "integrity": "sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==",
"dev": true,
"license": "MIT",
"engines": {
@@ -11015,6 +10960,8 @@
},
"node_modules/postcss-discard-empty": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.1.tgz",
+ "integrity": "sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -11026,6 +10973,8 @@
},
"node_modules/postcss-discard-overridden": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.1.tgz",
+ "integrity": "sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -11092,6 +11041,8 @@
},
"node_modules/postcss-merge-longhand": {
"version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.5.tgz",
+ "integrity": "sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11106,11 +11057,13 @@
}
},
"node_modules/postcss-merge-rules": {
- "version": "7.0.5",
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.6.tgz",
+ "integrity": "sha512-2jIPT4Tzs8K87tvgCpSukRQ2jjd+hH6Bb8rEEOUDmmhOeTcqDg5fEFK8uKIu+Pvc3//sm3Uu6FRqfyv7YF7+BQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "browserslist": "^4.24.5",
+ "browserslist": "^4.25.1",
"caniuse-api": "^3.0.0",
"cssnano-utils": "^5.0.1",
"postcss-selector-parser": "^7.1.0"
@@ -11124,6 +11077,8 @@
},
"node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": {
"version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
+ "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11136,6 +11091,8 @@
},
"node_modules/postcss-minify-font-values": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.1.tgz",
+ "integrity": "sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11150,6 +11107,8 @@
},
"node_modules/postcss-minify-gradients": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.1.tgz",
+ "integrity": "sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11165,11 +11124,13 @@
}
},
"node_modules/postcss-minify-params": {
- "version": "7.0.3",
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.4.tgz",
+ "integrity": "sha512-3OqqUddfH8c2e7M35W6zIwv7jssM/3miF9cbCSb1iJiWvtguQjlxZGIHK9JRmc8XAKmE2PFGtHSM7g/VcW97sw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "browserslist": "^4.24.5",
+ "browserslist": "^4.25.1",
"cssnano-utils": "^5.0.1",
"postcss-value-parser": "^4.2.0"
},
@@ -11182,6 +11143,8 @@
},
"node_modules/postcss-minify-selectors": {
"version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.0.5.tgz",
+ "integrity": "sha512-x2/IvofHcdIrAm9Q+p06ZD1h6FPcQ32WtCRVodJLDR+WMn8EVHI1kvLxZuGKz/9EY5nAmI6lIQIrpo4tBy5+ug==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11197,6 +11160,8 @@
},
"node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": {
"version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
+ "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11264,6 +11229,8 @@
},
"node_modules/postcss-normalize-charset": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.1.tgz",
+ "integrity": "sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -11275,6 +11242,8 @@
},
"node_modules/postcss-normalize-display-values": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.1.tgz",
+ "integrity": "sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11289,6 +11258,8 @@
},
"node_modules/postcss-normalize-positions": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.1.tgz",
+ "integrity": "sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11303,6 +11274,8 @@
},
"node_modules/postcss-normalize-repeat-style": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.1.tgz",
+ "integrity": "sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11317,6 +11290,8 @@
},
"node_modules/postcss-normalize-string": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.1.tgz",
+ "integrity": "sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11331,6 +11306,8 @@
},
"node_modules/postcss-normalize-timing-functions": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.1.tgz",
+ "integrity": "sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11344,11 +11321,13 @@
}
},
"node_modules/postcss-normalize-unicode": {
- "version": "7.0.3",
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.4.tgz",
+ "integrity": "sha512-LvIURTi1sQoZqj8mEIE8R15yvM+OhbR1avynMtI9bUzj5gGKR/gfZFd8O7VMj0QgJaIFzxDwxGl/ASMYAkqO8g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "browserslist": "^4.24.5",
+ "browserslist": "^4.25.1",
"postcss-value-parser": "^4.2.0"
},
"engines": {
@@ -11360,6 +11339,8 @@
},
"node_modules/postcss-normalize-url": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.1.tgz",
+ "integrity": "sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11374,6 +11355,8 @@
},
"node_modules/postcss-normalize-whitespace": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.1.tgz",
+ "integrity": "sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11388,6 +11371,8 @@
},
"node_modules/postcss-ordered-values": {
"version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.2.tgz",
+ "integrity": "sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11402,11 +11387,13 @@
}
},
"node_modules/postcss-reduce-initial": {
- "version": "7.0.3",
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.4.tgz",
+ "integrity": "sha512-rdIC9IlMBn7zJo6puim58Xd++0HdbvHeHaPgXsimMfG1ijC5A9ULvNLSE0rUKVJOvNMcwewW4Ga21ngyJjY/+Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "browserslist": "^4.24.5",
+ "browserslist": "^4.25.1",
"caniuse-api": "^3.0.0"
},
"engines": {
@@ -11418,6 +11405,8 @@
},
"node_modules/postcss-reduce-transforms": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.1.tgz",
+ "integrity": "sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11443,12 +11432,14 @@
}
},
"node_modules/postcss-svgo": {
- "version": "7.0.2",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.1.0.tgz",
+ "integrity": "sha512-KnAlfmhtoLz6IuU3Sij2ycusNs4jPW+QoFE5kuuUOK8awR6tMxZQrs5Ey3BUz7nFCzT3eqyFgqkyrHiaU2xx3w==",
"dev": true,
"license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0",
- "svgo": "^3.3.2"
+ "svgo": "^4.0.0"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >= 18"
@@ -11457,8 +11448,67 @@
"postcss": "^8.4.32"
}
},
+ "node_modules/postcss-svgo/node_modules/commander": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
+ "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/postcss-svgo/node_modules/css-tree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
+ "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mdn-data": "2.12.2",
+ "source-map-js": "^1.0.1"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
+ }
+ },
+ "node_modules/postcss-svgo/node_modules/mdn-data": {
+ "version": "2.12.2",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
+ "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==",
+ "dev": true,
+ "license": "CC0-1.0"
+ },
+ "node_modules/postcss-svgo/node_modules/svgo": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.0.tgz",
+ "integrity": "sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "commander": "^11.1.0",
+ "css-select": "^5.1.0",
+ "css-tree": "^3.0.1",
+ "css-what": "^6.1.0",
+ "csso": "^5.0.5",
+ "picocolors": "^1.1.1",
+ "sax": "^1.4.1"
+ },
+ "bin": {
+ "svgo": "bin/svgo.js"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/svgo"
+ }
+ },
"node_modules/postcss-unique-selectors": {
"version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.4.tgz",
+ "integrity": "sha512-pmlZjsmEAG7cHd7uK3ZiNSW6otSZ13RHuZ/4cDN/bVglS5EpF2r2oxY99SuOHa8m7AWoBCelTS3JPpzsIs8skQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11473,6 +11523,8 @@
},
"node_modules/postcss-unique-selectors/node_modules/postcss-selector-parser": {
"version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
+ "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11737,6 +11789,8 @@
},
"node_modules/queue-microtask": {
"version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
"dev": true,
"funding": [
{
@@ -11816,7 +11870,9 @@
"license": "MIT"
},
"node_modules/react-router": {
- "version": "7.6.3",
+ "version": "7.8.2",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.8.2.tgz",
+ "integrity": "sha512-7M2fR1JbIZ/jFWqelpvSZx+7vd7UlBTfdZqf6OSdF9g6+sfdqJDAWcak6ervbHph200ePlu+7G8LdoiC3ReyAQ==",
"license": "MIT",
"dependencies": {
"cookie": "^1.0.1",
@@ -11836,10 +11892,12 @@
}
},
"node_modules/react-router-dom": {
- "version": "7.6.3",
+ "version": "7.8.2",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.8.2.tgz",
+ "integrity": "sha512-Z4VM5mKDipal2jQ385H6UBhiiEDlnJPx6jyWsTYoZQdl5TrjxEV2a9yl3Fi60NBJxYzOTGTTHXPi0pdizvTwow==",
"license": "MIT",
"dependencies": {
- "react-router": "7.6.3"
+ "react-router": "7.8.2"
},
"engines": {
"node": ">=20.0.0"
@@ -11851,6 +11909,8 @@
},
"node_modules/react-router/node_modules/cookie": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz",
+ "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==",
"license": "MIT",
"engines": {
"node": ">=18"
@@ -12187,7 +12247,9 @@
}
},
"node_modules/reusify": {
- "version": "1.0.4",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -12211,6 +12273,8 @@
},
"node_modules/run-parallel": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
"dev": true,
"funding": [
{
@@ -12302,6 +12366,13 @@
"version": "2.1.2",
"license": "MIT"
},
+ "node_modules/sax": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz",
+ "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/scheduler": {
"version": "0.23.2",
"license": "MIT",
@@ -12341,7 +12412,9 @@
}
},
"node_modules/semver": {
- "version": "7.7.1",
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -12478,6 +12551,8 @@
},
"node_modules/set-cookie-parser": {
"version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz",
+ "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==",
"license": "MIT"
},
"node_modules/set-function-length": {
@@ -12972,11 +13047,13 @@
}
},
"node_modules/stylehacks": {
- "version": "7.0.5",
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.6.tgz",
+ "integrity": "sha512-iitguKivmsueOmTO0wmxURXBP8uqOO+zikLGZ7Mm9e/94R4w5T999Js2taS/KBOnQ/wdC3jN3vNSrkGDrlnqQg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "browserslist": "^4.24.5",
+ "browserslist": "^4.25.1",
"postcss-selector-parser": "^7.1.0"
},
"engines": {
@@ -12988,6 +13065,8 @@
},
"node_modules/stylehacks/node_modules/postcss-selector-parser": {
"version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
+ "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13314,12 +13393,14 @@
}
},
"node_modules/ts-jest": {
- "version": "29.4.0",
+ "version": "29.4.1",
+ "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.1.tgz",
+ "integrity": "sha512-SaeUtjfpg9Uqu8IbeDKtdaS0g8lS6FT6OzM3ezrDfErPJPHNDo/Ey+VFGP1bQIDfagYDLyRpd7O15XpG1Es2Uw==",
"license": "MIT",
"dependencies": {
"bs-logger": "^0.2.6",
- "ejs": "^3.1.10",
"fast-json-stable-stringify": "^2.1.0",
+ "handlebars": "^4.7.8",
"json5": "^2.2.3",
"lodash.memoize": "^4.1.2",
"make-error": "^1.3.6",
@@ -13364,7 +13445,9 @@
}
},
"node_modules/ts-loader": {
- "version": "9.5.2",
+ "version": "9.5.4",
+ "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.4.tgz",
+ "integrity": "sha512-nCz0rEwunlTZiy6rXFByQU1kVVpCIgUpc/psFiKVrUwrizdnIbRFu8w7bxhUF0X613DYwT4XzrZHpVyMe758hQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13554,6 +13637,7 @@
"node_modules/typescript": {
"version": "5.8.2",
"license": "Apache-2.0",
+ "peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -13563,13 +13647,16 @@
}
},
"node_modules/typescript-eslint": {
- "version": "8.35.1",
+ "version": "8.41.0",
+ "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.41.0.tgz",
+ "integrity": "sha512-n66rzs5OBXW3SFSnZHr2T685q1i4ODm2nulFJhMZBotaTavsS8TrI3d7bDlRSs9yWo7HmyWrN9qDu14Qv7Y0Dw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/eslint-plugin": "8.35.1",
- "@typescript-eslint/parser": "8.35.1",
- "@typescript-eslint/utils": "8.35.1"
+ "@typescript-eslint/eslint-plugin": "8.41.0",
+ "@typescript-eslint/parser": "8.41.0",
+ "@typescript-eslint/typescript-estree": "8.41.0",
+ "@typescript-eslint/utils": "8.41.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -13580,7 +13667,7 @@
},
"peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <5.9.0"
+ "typescript": ">=4.8.4 <6.0.0"
}
},
"node_modules/ufo": {
@@ -13590,7 +13677,6 @@
},
"node_modules/uglify-js": {
"version": "3.17.4",
- "dev": true,
"license": "BSD-2-Clause",
"optional": true,
"bin": {
@@ -14258,7 +14344,6 @@
},
"node_modules/wordwrap": {
"version": "1.0.0",
- "dev": true,
"license": "MIT"
},
"node_modules/wrap-ansi": {
@@ -14314,6 +14399,21 @@
}
}
},
+ "node_modules/wsl-utils": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz",
+ "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==",
+ "license": "MIT",
+ "dependencies": {
+ "is-wsl": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/xtend": {
"version": "4.0.2",
"license": "MIT",