From 0f777c8710919abb3439f0b280280705bb21e93d Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Wed, 24 Apr 2024 14:47:27 +0900 Subject: [PATCH 01/16] feat!: updated the config to match the new version --- .cspell.json | 2 +- .github/ubiquibot-config.yml | 67 ++++++ .github/workflows/cspell.yml | 1 + src/types/configuration-types.ts | 35 ++- src/types/configuration/comment-types.ts | 38 ++++ .../common-incentive-config-type.ts | 9 + .../configuration/content-evaluator-config.ts | 9 + .../formatting-evaluator-config.ts | 20 ++ .../configuration/github-comment-config.ts | 11 + .../permit-generation-configuration.ts | 9 + .../configuration/user-extractor-config.ts | 10 + tests/__mocks__/test-valid-conf-obj.ts | 200 ++++++++---------- tests/configuration.test.ts | 10 +- 13 files changed, 279 insertions(+), 142 deletions(-) create mode 100644 src/types/configuration/comment-types.ts create mode 100644 src/types/configuration/common-incentive-config-type.ts create mode 100644 src/types/configuration/content-evaluator-config.ts create mode 100644 src/types/configuration/formatting-evaluator-config.ts create mode 100644 src/types/configuration/github-comment-config.ts create mode 100644 src/types/configuration/permit-generation-configuration.ts create mode 100644 src/types/configuration/user-extractor-config.ts diff --git a/.cspell.json b/.cspell.json index dfd6093..44418a4 100644 --- a/.cspell.json +++ b/.cspell.json @@ -4,7 +4,7 @@ "ignorePaths": ["**/*.json", "**/*.css", "node_modules", "**/*.log"], "useGitignore": true, "language": "en", - "words": ["dataurl", "devpool", "outdir", "servedir"], + "words": ["dataurl", "devpool", "outdir", "servedir", "typebox", "supabase", "ubiquibot"], "dictionaries": ["typescript", "node", "software-terms"], "import": ["@cspell/dict-typescript/cspell-ext.json", "@cspell/dict-node/cspell-ext.json", "@cspell/dict-software-terms"], "ignoreRegExpList": ["[0-9a-fA-F]{6}"] diff --git a/.github/ubiquibot-config.yml b/.github/ubiquibot-config.yml index 58bdd28..6ad3caf 100644 --- a/.github/ubiquibot-config.yml +++ b/.github/ubiquibot-config.yml @@ -7,3 +7,70 @@ command-settings: # header: "Thank you for contributing to UbiquiBot! Please be sure to set your wallet address before completing your first bounty so that the automatic payout upon task completion will work for you." # helpMenu: true # footer: "###### Also please star this repository and [@ubiquity/devpool-directory](https://github.com/ubiquity/devpool-directory/) to show your support. It helps a lot!" + +incentives: + enabled: true + contentEvaluator: + enabled: true + userExtractor: + enabled: true + redeemTask: true + dataPurge: + enabled: true + formattingEvaluator: + enabled: true + scores: + br: 0 + code: 1 + p: 1 + em: 0 + img: 0 + strong: 0 + blockquote: 0 + h1: 1 + h2: 1 + h3: 1 + h4: 1 + h5: 1 + h6: 1 + a: 1 + li: 1 + td: 1 + hr: 0 + multipliers: + - type: [ISSUE, ISSUER, TASK] + formattingMultiplier: 1 + wordValue: 0.1 + - type: [ISSUE, ISSUER, COMMENTED] + formattingMultiplier: 1 + wordValue: 0.2 + - type: [ISSUE, ASSIGNEE, COMMENTED] + formattingMultiplier: 0 + wordValue: 0 + - type: [ISSUE, COLLABORATOR, COMMENTED] + formattingMultiplier: 1 + wordValue: 0.1 + - type: [ISSUE, CONTRIBUTOR, COMMENTED] + formattingMultiplier: 0.25 + wordValue: 0.1 + - type: [REVIEW, ISSUER, SPECIFICATION] + formattingMultiplier: 0 + wordValue: 0 + - type: [REVIEW, ISSUER, COMMENTED] + formattingMultiplier: 2 + wordValue: 0.2 + - type: [REVIEW, ASSIGNEE, COMMENTED] + formattingMultiplier: 1 + wordValue: 0.1 + - type: [REVIEW, COLLABORATOR, COMMENTED] + formattingMultiplier: 1 + wordValue: 0.1 + - type: [REVIEW, CONTRIBUTOR, COMMENTED] + formattingMultiplier: 0.25 + wordValue: 0.1 + permitGeneration: + enabled: true + githubComment: + enabled: true + post: true + debug: false diff --git a/.github/workflows/cspell.yml b/.github/workflows/cspell.yml index c81c97a..33422f9 100644 --- a/.github/workflows/cspell.yml +++ b/.github/workflows/cspell.yml @@ -2,6 +2,7 @@ name: Spell Check on: push: + pull_request: jobs: spellcheck: diff --git a/src/types/configuration-types.ts b/src/types/configuration-types.ts index bf7b955..9f3f17c 100644 --- a/src/types/configuration-types.ts +++ b/src/types/configuration-types.ts @@ -2,23 +2,18 @@ import { ObjectOptions, Static, StaticDecode, StringOptions, TProperties, Type a import ms from "ms"; import { ajv } from "../utils"; -import { validHTMLElements } from "./valid-html-elements"; +import contentEvaluatorConfigurationType from "./configuration/content-evaluator-config"; +import dataPurgeConfigurationType from "./configuration/data-purge-config"; +import formattingEvaluatorConfigurationType from "./configuration/formatting-evaluator-config"; +import githubCommentConfigurationType from "./configuration/github-comment-config"; +import permitGenerationConfigurationType from "./configuration/permit-generation-configuration"; +import userExtractorConfigurationType from "./configuration/user-extractor-config"; const promotionComment = "###### If you enjoy the DevPool experience, please follow [Ubiquity on GitHub](https://github.com/ubiquity) and star [this repo](https://github.com/ubiquity/devpool-directory) to show your support. It helps a lot!"; const defaultGreetingHeader = "Thank you for contributing! Please be sure to set your wallet address before completing your first task so that you can collect your reward."; -const htmlEntities = validHTMLElements.map((value) => T.Literal(value)); - -const allHtmlElementsSetToZero = validHTMLElements.reduce( - (accumulator, current) => { - accumulator[current] = 0; - return accumulator; - }, - {} as Record -); - export enum LogLevel { FATAL = "fatal", ERROR = "error", @@ -83,7 +78,6 @@ const botConfigSchema = strictObject( }), isNftRewardEnabled: T.Boolean({ default: false }), }), - timers: strictObject({ reviewDelayTolerance: stringDuration({ default: "1 day" }), taskStaleTimeoutDuration: stringDuration({ default: "4 weeks" }), @@ -98,16 +92,13 @@ const botConfigSchema = strictObject( }), disabledCommands: T.Array(T.String(), { default: allCommands }), incentives: strictObject({ - comment: strictObject({ - elements: T.Record(T.Union(htmlEntities), T.Number({ default: 0 }), { default: allHtmlElementsSetToZero }), - totals: strictObject({ - character: T.Number({ default: 0, minimum: 0 }), - word: T.Number({ default: 0, minimum: 0 }), - sentence: T.Number({ default: 0, minimum: 0 }), - paragraph: T.Number({ default: 0, minimum: 0 }), - comment: T.Number({ default: 0, minimum: 0 }), - }), - }), + enabled: T.Boolean({ default: true }), + contentEvaluator: contentEvaluatorConfigurationType, + userExtractor: userExtractorConfigurationType, + dataPurge: dataPurgeConfigurationType, + formattingEvaluator: formattingEvaluatorConfigurationType, + permitGeneration: permitGenerationConfigurationType, + githubComment: githubCommentConfigurationType, }), labels: strictObject({ time: T.Array(T.String(), { default: defaultTimeLabels }), diff --git a/src/types/configuration/comment-types.ts b/src/types/configuration/comment-types.ts new file mode 100644 index 0000000..912575f --- /dev/null +++ b/src/types/configuration/comment-types.ts @@ -0,0 +1,38 @@ +export enum CommentType { + /** + * Review related item + */ + REVIEW = 0b1, + /** + * Issue related item + */ + ISSUE = 0b10, + /** + * User assigned to the {@link CommentType.ISSUE} or {@link CommentType.REVIEW} + */ + ASSIGNEE = 0b100, + /** + * The author of the {@link CommentType.ISSUE} or {@link CommentType.REVIEW} + */ + ISSUER = 0b1000, + /** + * A user that is part of the organization or owner of the repo + */ + COLLABORATOR = 0b10000, + /** + * A user that is NOT part of the organization nor owner of the repo + */ + CONTRIBUTOR = 0b100000, + /** + * A user comment action on a {@link CommentType.ISSUE} or {@link CommentType.REVIEW} + */ + COMMENTED = 0b1000000, + /** + * Pull request opening item + */ + TASK = 0b10000000, + /** + * Issue opening item + */ + SPECIFICATION = 0b100000000, +} diff --git a/src/types/configuration/common-incentive-config-type.ts b/src/types/configuration/common-incentive-config-type.ts new file mode 100644 index 0000000..21c3500 --- /dev/null +++ b/src/types/configuration/common-incentive-config-type.ts @@ -0,0 +1,9 @@ +import { Type, Static } from "@sinclair/typebox"; + +const baseIncentiveConfiguration = Type.Object({ + enabled: Type.Boolean({ default: true }), +}); + +export type BaseConfiguration = Static; + +export default baseIncentiveConfiguration; diff --git a/src/types/configuration/content-evaluator-config.ts b/src/types/configuration/content-evaluator-config.ts new file mode 100644 index 0000000..7cbea1c --- /dev/null +++ b/src/types/configuration/content-evaluator-config.ts @@ -0,0 +1,9 @@ +import { Static, Type } from "@sinclair/typebox"; + +const contentEvaluatorConfigurationType = Type.Object({ + enabled: Type.Boolean(), +}); + +export type ContentEvaluatorConfiguration = Static; + +export default contentEvaluatorConfigurationType; diff --git a/src/types/configuration/formatting-evaluator-config.ts b/src/types/configuration/formatting-evaluator-config.ts new file mode 100644 index 0000000..cfaa212 --- /dev/null +++ b/src/types/configuration/formatting-evaluator-config.ts @@ -0,0 +1,20 @@ +import { Static, Type } from "@sinclair/typebox"; +import { CommentType } from "./comment-types"; + +const type = Type.Union([...Object.keys(CommentType).map((key) => Type.Literal(key as keyof typeof CommentType))]); + +const formattingEvaluatorConfigurationType = Type.Object({ + enabled: Type.Boolean({ default: true }), + multipliers: Type.Array( + Type.Object({ + type: Type.Array(type), + formattingMultiplier: Type.Number(), + wordValue: Type.Number(), + }) + ), + scores: Type.Record(Type.String(), Type.Number()), +}); + +export type FormattingEvaluatorConfiguration = Static; + +export default formattingEvaluatorConfigurationType; diff --git a/src/types/configuration/github-comment-config.ts b/src/types/configuration/github-comment-config.ts new file mode 100644 index 0000000..74e3794 --- /dev/null +++ b/src/types/configuration/github-comment-config.ts @@ -0,0 +1,11 @@ +import { Static, Type } from "@sinclair/typebox"; + +const githubCommentConfigurationType = Type.Object({ + enabled: Type.Boolean({ default: true }), + post: Type.Boolean({ default: true }), + debug: Type.Boolean({ default: false }), +}); + +export type GithubCommentConfiguration = Static; + +export default githubCommentConfigurationType; diff --git a/src/types/configuration/permit-generation-configuration.ts b/src/types/configuration/permit-generation-configuration.ts new file mode 100644 index 0000000..421352a --- /dev/null +++ b/src/types/configuration/permit-generation-configuration.ts @@ -0,0 +1,9 @@ +import { Static, Type } from "@sinclair/typebox"; + +const permitGenerationConfigurationType = Type.Object({ + enabled: Type.Boolean(), +}); + +export type PermitGenerationConfiguration = Static; + +export default permitGenerationConfigurationType; diff --git a/src/types/configuration/user-extractor-config.ts b/src/types/configuration/user-extractor-config.ts new file mode 100644 index 0000000..4351799 --- /dev/null +++ b/src/types/configuration/user-extractor-config.ts @@ -0,0 +1,10 @@ +import { Static, Type } from "@sinclair/typebox"; + +const userExtractorConfigurationType = Type.Object({ + enabled: Type.Boolean({ default: true }), + redeemTask: Type.Boolean({ default: true }), +}); + +export type UserExtractorConfiguration = Static; + +export default userExtractorConfigurationType; diff --git a/tests/__mocks__/test-valid-conf-obj.ts b/tests/__mocks__/test-valid-conf-obj.ts index 59593e8..c64dbcc 100644 --- a/tests/__mocks__/test-valid-conf-obj.ts +++ b/tests/__mocks__/test-valid-conf-obj.ts @@ -37,124 +37,98 @@ const validConfig = { }, disabledCommands: ["start", "stop", "help", "query", "ask", "multiplier", "labels", "authorize", "wallet"], incentives: { - comment: { - elements: { - a: 0, - abbr: 0, - address: 0, - area: 0, - article: 0, - aside: 0, - audio: 0, - b: 0, - base: 0, - bdi: 0, - bdo: 0, - blockquote: 0, - body: 0, + enabled: true, + contentEvaluator: { + enabled: true, + }, + userExtractor: { + enabled: true, + redeemTask: true, + }, + dataPurge: { + enabled: true, + }, + formattingEvaluator: { + enabled: true, + scores: { br: 0, - button: 0, - canvas: 0, - caption: 0, - cite: 0, - code: 0, - col: 0, - colgroup: 0, - data: 0, - datalist: 0, - dd: 0, - del: 0, - details: 0, - dfn: 0, - dialog: 0, - div: 0, - dl: 0, - dt: 0, + code: 1, + p: 1, em: 0, - embed: 0, - fieldset: 0, - figcaption: 0, - figure: 0, - footer: 0, - form: 0, - h1: 0, - h2: 0, - h3: 0, - h4: 0, - h5: 0, - h6: 0, - head: 0, - header: 0, - hgroup: 0, - hr: 0, - html: 0, - i: 0, - iframe: 0, img: 0, - input: 0, - ins: 0, - kbd: 0, - label: 0, - legend: 0, - li: 0, - link: 0, - main: 0, - map: 0, - mark: 0, - meta: 0, - meter: 0, - nav: 0, - noscript: 0, - object: 0, - ol: 0, - optgroup: 0, - option: 0, - output: 0, - p: 0, - picture: 0, - pre: 0, - progress: 0, - q: 0, - rp: 0, - rt: 0, - ruby: 0, - s: 0, - samp: 0, - script: 0, - section: 0, - select: 0, - small: 0, - source: 0, - span: 0, strong: 0, - style: 0, - sub: 0, - summary: 0, - sup: 0, - table: 0, - tbody: 0, - td: 0, - textarea: 0, - tfoot: 0, - th: 0, - thead: 0, - time: 0, - title: 0, - tr: 0, - track: 0, - u: 0, - ul: 0, - var: 0, - video: 0, - wbr: 0, - }, - totals: { - character: 0, - word: 0, - sentence: 0, - paragraph: 0, - comment: 0, + blockquote: 0, + h1: 1, + h2: 1, + h3: 1, + h4: 1, + h5: 1, + h6: 1, + a: 1, + li: 1, + td: 1, + hr: 0, }, + multipliers: [ + { + type: ["ISSUE", "ISSUER", "TASK"], + formattingMultiplier: 1, + wordValue: 0.1, + }, + { + type: ["ISSUE", "ISSUER", "COMMENTED"], + formattingMultiplier: 1, + wordValue: 0.2, + }, + { + type: ["ISSUE", "ASSIGNEE", "COMMENTED"], + formattingMultiplier: 0, + wordValue: 0, + }, + { + type: ["ISSUE", "COLLABORATOR", "COMMENTED"], + formattingMultiplier: 1, + wordValue: 0.1, + }, + { + type: ["ISSUE", "CONTRIBUTOR", "COMMENTED"], + formattingMultiplier: 0.25, + wordValue: 0.1, + }, + { + type: ["REVIEW", "ISSUER", "SPECIFICATION"], + formattingMultiplier: 0, + wordValue: 0, + }, + { + type: ["REVIEW", "ISSUER", "COMMENTED"], + formattingMultiplier: 2, + wordValue: 0.2, + }, + { + type: ["REVIEW", "ASSIGNEE", "COMMENTED"], + formattingMultiplier: 1, + wordValue: 0.1, + }, + { + type: ["REVIEW", "COLLABORATOR", "COMMENTED"], + formattingMultiplier: 1, + wordValue: 0.1, + }, + { + type: ["REVIEW", "CONTRIBUTOR", "COMMENTED"], + formattingMultiplier: 0.25, + wordValue: 0.1, + }, + ], + }, + permitGeneration: { + enabled: true, + }, + githubComment: { + enabled: true, + post: true, + debug: false, }, }, labels: { diff --git a/tests/configuration.test.ts b/tests/configuration.test.ts index 2480c0c..71ec876 100644 --- a/tests/configuration.test.ts +++ b/tests/configuration.test.ts @@ -2,12 +2,13 @@ import * as fs from "fs"; import path from "node:path"; import { BotConfig, generateConfiguration, parseYaml, transformConfig } from "../src"; import validConfig from "./__mocks__/test-valid-conf-obj"; +import defaultConfig from "./__mocks__/test-default-conf-obj"; -const filePath = path.join(__dirname, "./__mocks__/test-valid-config.yml"); +const defaultConfigFilePath = path.join(__dirname, "../.github/ubiquibot-config.yml"); describe("Configuration generation", () => { test("Parse Yaml file", () => { - const fileContent = fs.readFileSync(filePath, { encoding: "utf8" }); + const fileContent = fs.readFileSync(defaultConfigFilePath, { encoding: "utf8" }); const parsed = parseYaml(fileContent); // Silences the error output since it is expected to have errors logged const spy = jest.spyOn(console, "error").mockImplementation(jest.fn()); @@ -15,10 +16,7 @@ describe("Configuration generation", () => { spy.mockClear(); const parseEmpty = parseYaml(null); expect(parseEmpty).toBeNull(); - expect(parsed).toStrictEqual({ - "price-multiplier": 1.5, - "command-settings": [{ name: "start", enabled: false }], - }); + expect(parsed).toStrictEqual(defaultConfig); }); test("Generate configuration", async () => { From db5f5b475e7bec808bef56d5a5583486ab523598 Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Wed, 24 Apr 2024 14:47:54 +0900 Subject: [PATCH 02/16] chore: added data purge config --- src/types/configuration/data-purge-config.ts | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/types/configuration/data-purge-config.ts diff --git a/src/types/configuration/data-purge-config.ts b/src/types/configuration/data-purge-config.ts new file mode 100644 index 0000000..5f984ef --- /dev/null +++ b/src/types/configuration/data-purge-config.ts @@ -0,0 +1,9 @@ +import { Type, Static } from "@sinclair/typebox"; + +const dataPurgeConfigurationType = Type.Object({ + enabled: Type.Boolean({ default: true }), +}); + +export type DataPurgeConfiguration = Static; + +export default dataPurgeConfigurationType; From 3ceff709625d87acc9c4134d3ac5827df7c18ae4 Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Wed, 24 Apr 2024 14:48:30 +0900 Subject: [PATCH 03/16] chore: added mock for valid configuration --- tests/__mocks__/test-default-conf-obj.ts | 106 +++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 tests/__mocks__/test-default-conf-obj.ts diff --git a/tests/__mocks__/test-default-conf-obj.ts b/tests/__mocks__/test-default-conf-obj.ts new file mode 100644 index 0000000..45571db --- /dev/null +++ b/tests/__mocks__/test-default-conf-obj.ts @@ -0,0 +1,106 @@ +const defaultConfig = { + "price-multiplier": 1.5, + "command-settings": [ + { + name: "start", + enabled: false, + }, + ], + incentives: { + enabled: true, + contentEvaluator: { + enabled: true, + }, + userExtractor: { + enabled: true, + redeemTask: true, + }, + dataPurge: { + enabled: true, + }, + formattingEvaluator: { + enabled: true, + scores: { + br: 0, + code: 1, + p: 1, + em: 0, + img: 0, + strong: 0, + blockquote: 0, + h1: 1, + h2: 1, + h3: 1, + h4: 1, + h5: 1, + h6: 1, + a: 1, + li: 1, + td: 1, + hr: 0, + }, + multipliers: [ + { + type: ["ISSUE", "ISSUER", "TASK"], + formattingMultiplier: 1, + wordValue: 0.1, + }, + { + type: ["ISSUE", "ISSUER", "COMMENTED"], + formattingMultiplier: 1, + wordValue: 0.2, + }, + { + type: ["ISSUE", "ASSIGNEE", "COMMENTED"], + formattingMultiplier: 0, + wordValue: 0, + }, + { + type: ["ISSUE", "COLLABORATOR", "COMMENTED"], + formattingMultiplier: 1, + wordValue: 0.1, + }, + { + type: ["ISSUE", "CONTRIBUTOR", "COMMENTED"], + formattingMultiplier: 0.25, + wordValue: 0.1, + }, + { + type: ["REVIEW", "ISSUER", "SPECIFICATION"], + formattingMultiplier: 0, + wordValue: 0, + }, + { + type: ["REVIEW", "ISSUER", "COMMENTED"], + formattingMultiplier: 2, + wordValue: 0.2, + }, + { + type: ["REVIEW", "ASSIGNEE", "COMMENTED"], + formattingMultiplier: 1, + wordValue: 0.1, + }, + { + type: ["REVIEW", "COLLABORATOR", "COMMENTED"], + formattingMultiplier: 1, + wordValue: 0.1, + }, + { + type: ["REVIEW", "CONTRIBUTOR", "COMMENTED"], + formattingMultiplier: 0.25, + wordValue: 0.1, + }, + ], + }, + permitGeneration: { + enabled: true, + }, + githubComment: { + enabled: true, + post: true, + debug: false, + }, + }, +}; + +export default defaultConfig; From 1b40ab00f22cdc21bce833bb0d0ff767572648e9 Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Wed, 24 Apr 2024 23:07:04 +0900 Subject: [PATCH 04/16] chore: moved deps to external --- package.json | 17 +- rollup.config.mjs | 7 +- src/types/configuration-types.ts | 22 +- .../configuration/content-evaluator-config.ts | 4 +- src/types/configuration/data-purge-config.ts | 4 +- .../formatting-evaluator-config.ts | 4 +- .../configuration/github-comment-config.ts | 4 +- src/types/configuration/index.ts | 8 + .../permit-generation-configuration.ts | 4 +- .../configuration/user-extractor-config.ts | 4 +- src/types/index.ts | 1 + yarn.lock | 861 ++++++++++-------- 12 files changed, 535 insertions(+), 405 deletions(-) create mode 100644 src/types/configuration/index.ts diff --git a/package.json b/package.json index 596e056..2684835 100644 --- a/package.json +++ b/package.json @@ -25,15 +25,15 @@ "ubiquibot", "open-source" ], - "dependencies": { - "@sinclair/typebox": "0.32.14", + "dependencies": {}, + "peerDependencies": { + "@sinclair/typebox": "0.32.23", "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "dotenv": "16.4.4", + "ajv-formats": "3.0.1", + "dotenv": "16.4.5", "lodash": "4.17.21", "ms": "2.1.3" }, - "peerDependencies": {}, "devDependencies": { "@commitlint/cli": "18.6.1", "@commitlint/config-conventional": "18.6.2", @@ -46,13 +46,17 @@ "@rollup/plugin-terser": "0.4.4", "@rollup/plugin-typescript": "11.1.6", "@rollup/plugin-yaml": "4.1.2", + "@sinclair/typebox": "0.32.23", "@types/jest": "29.5.12", "@types/lodash": "4.14.202", "@types/ms": "0.7.34", "@types/node": "20.11.19", "@typescript-eslint/eslint-plugin": "7.0.1", "@typescript-eslint/parser": "7.0.1", + "ajv": "8.12.0", + "ajv-formats": "3.0.1", "cspell": "8.3.2", + "dotenv": "16.4.5", "esbuild": "0.20.0", "esbuild-plugin-yaml": "0.0.1", "eslint": "8.56.0", @@ -65,10 +69,13 @@ "jest-transform-yaml": "1.1.2", "knip": "5.0.1", "lint-staged": "15.2.2", + "lodash": "4.17.21", + "ms": "2.1.3", "npm-run-all": "4.1.5", "prettier": "3.2.5", "rollup": "4.12.0", "rollup-plugin-dts-bundle-generator": "1.4.0", + "rollup-plugin-peer-deps-external": "2.2.4", "rollup-plugin-typescript2": "0.36.0", "ts-jest": "29.1.2", "tslib": "2.6.2", diff --git a/rollup.config.mjs b/rollup.config.mjs index 48cbddc..d23423b 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -5,6 +5,7 @@ import nodeResolve from "@rollup/plugin-node-resolve"; import commonjs from "@rollup/plugin-commonjs"; import json from "@rollup/plugin-json"; import terser from "@rollup/plugin-terser"; +import peerDepsExternal from "rollup-plugin-peer-deps-external"; export default { input: "src/index.ts", @@ -12,5 +13,9 @@ export default { dir: "dist", format: "cjs", }, - plugins: [nodeResolve(), commonjs(), typescript(), yaml(), json(), generateDtsBundle(), terser()], + plugins: [peerDepsExternal(), nodeResolve(), commonjs(), typescript({ + tsconfigOverride: { + exclude: ["**/tests", "**/*.test.ts"], + }, + }), yaml(), json(), generateDtsBundle(), terser()], }; diff --git a/src/types/configuration-types.ts b/src/types/configuration-types.ts index 9f3f17c..860946b 100644 --- a/src/types/configuration-types.ts +++ b/src/types/configuration-types.ts @@ -1,13 +1,12 @@ import { ObjectOptions, Static, StaticDecode, StringOptions, TProperties, Type as T } from "@sinclair/typebox"; import ms from "ms"; - import { ajv } from "../utils"; -import contentEvaluatorConfigurationType from "./configuration/content-evaluator-config"; -import dataPurgeConfigurationType from "./configuration/data-purge-config"; -import formattingEvaluatorConfigurationType from "./configuration/formatting-evaluator-config"; -import githubCommentConfigurationType from "./configuration/github-comment-config"; -import permitGenerationConfigurationType from "./configuration/permit-generation-configuration"; -import userExtractorConfigurationType from "./configuration/user-extractor-config"; +import { contentEvaluatorConfigurationType } from "./configuration/content-evaluator-config"; +import { dataPurgeConfigurationType } from "./configuration/data-purge-config"; +import { formattingEvaluatorConfigurationType } from "./configuration/formatting-evaluator-config"; +import { githubCommentConfigurationType } from "./configuration/github-comment-config"; +import { permitGenerationConfigurationType } from "./configuration/permit-generation-configuration"; +import { userExtractorConfigurationType } from "./configuration/user-extractor-config"; const promotionComment = "###### If you enjoy the DevPool experience, please follow [Ubiquity on GitHub](https://github.com/ubiquity) and star [this repo](https://github.com/ubiquity/devpool-directory) to show your support. It helps a lot!"; @@ -44,18 +43,23 @@ export function stringDuration(options?: StringOptions) { .Encode((value) => ms(value)); } -const envConfigSchema = T.Object({ +export const envConfigSchema = T.Object({ WEBHOOK_PROXY_URL: T.Optional(T.String({ format: "uri" })), // optional for production LOG_LEVEL: T.Enum(LogLevel, { default: LogLevel.DEBUG }), LOG_RETRY_LIMIT: T.Number({ default: 8 }), SUPABASE_URL: T.String({ format: "uri" }), SUPABASE_KEY: T.String(), + GITHUB_TOKEN: T.String(), + X25519_PRIVATE_KEY: T.String(), + OPENAI_API_KEY: T.String(), + NFT_MINTER_PRIVATE_KEY: T.String(), + NFT_CONTRACT_ADDRESS: T.String(), PRIVATE_KEY: T.String(), APP_ID: T.Number(), }); export const validateEnvConfig = ajv.compile(envConfigSchema); -export type EnvConfig = Static; +export type EnvConfigType = Static; const botConfigSchema = strictObject( { diff --git a/src/types/configuration/content-evaluator-config.ts b/src/types/configuration/content-evaluator-config.ts index 7cbea1c..d1a2b4f 100644 --- a/src/types/configuration/content-evaluator-config.ts +++ b/src/types/configuration/content-evaluator-config.ts @@ -1,9 +1,7 @@ import { Static, Type } from "@sinclair/typebox"; -const contentEvaluatorConfigurationType = Type.Object({ +export const contentEvaluatorConfigurationType = Type.Object({ enabled: Type.Boolean(), }); export type ContentEvaluatorConfiguration = Static; - -export default contentEvaluatorConfigurationType; diff --git a/src/types/configuration/data-purge-config.ts b/src/types/configuration/data-purge-config.ts index 5f984ef..ce5fc08 100644 --- a/src/types/configuration/data-purge-config.ts +++ b/src/types/configuration/data-purge-config.ts @@ -1,9 +1,7 @@ import { Type, Static } from "@sinclair/typebox"; -const dataPurgeConfigurationType = Type.Object({ +export const dataPurgeConfigurationType = Type.Object({ enabled: Type.Boolean({ default: true }), }); export type DataPurgeConfiguration = Static; - -export default dataPurgeConfigurationType; diff --git a/src/types/configuration/formatting-evaluator-config.ts b/src/types/configuration/formatting-evaluator-config.ts index cfaa212..7be238e 100644 --- a/src/types/configuration/formatting-evaluator-config.ts +++ b/src/types/configuration/formatting-evaluator-config.ts @@ -3,7 +3,7 @@ import { CommentType } from "./comment-types"; const type = Type.Union([...Object.keys(CommentType).map((key) => Type.Literal(key as keyof typeof CommentType))]); -const formattingEvaluatorConfigurationType = Type.Object({ +export const formattingEvaluatorConfigurationType = Type.Object({ enabled: Type.Boolean({ default: true }), multipliers: Type.Array( Type.Object({ @@ -16,5 +16,3 @@ const formattingEvaluatorConfigurationType = Type.Object({ }); export type FormattingEvaluatorConfiguration = Static; - -export default formattingEvaluatorConfigurationType; diff --git a/src/types/configuration/github-comment-config.ts b/src/types/configuration/github-comment-config.ts index 74e3794..6d2e7fa 100644 --- a/src/types/configuration/github-comment-config.ts +++ b/src/types/configuration/github-comment-config.ts @@ -1,11 +1,9 @@ import { Static, Type } from "@sinclair/typebox"; -const githubCommentConfigurationType = Type.Object({ +export const githubCommentConfigurationType = Type.Object({ enabled: Type.Boolean({ default: true }), post: Type.Boolean({ default: true }), debug: Type.Boolean({ default: false }), }); export type GithubCommentConfiguration = Static; - -export default githubCommentConfigurationType; diff --git a/src/types/configuration/index.ts b/src/types/configuration/index.ts new file mode 100644 index 0000000..37707e9 --- /dev/null +++ b/src/types/configuration/index.ts @@ -0,0 +1,8 @@ +export * from "./comment-types"; +export * from "./content-evaluator-config"; +export * from "./data-purge-config"; +export * from "./common-incentive-config-type"; +export * from "./github-comment-config"; +export * from "./formatting-evaluator-config"; +export * from "./permit-generation-configuration"; +export * from "./user-extractor-config"; diff --git a/src/types/configuration/permit-generation-configuration.ts b/src/types/configuration/permit-generation-configuration.ts index 421352a..f23886c 100644 --- a/src/types/configuration/permit-generation-configuration.ts +++ b/src/types/configuration/permit-generation-configuration.ts @@ -1,9 +1,7 @@ import { Static, Type } from "@sinclair/typebox"; -const permitGenerationConfigurationType = Type.Object({ +export const permitGenerationConfigurationType = Type.Object({ enabled: Type.Boolean(), }); export type PermitGenerationConfiguration = Static; - -export default permitGenerationConfigurationType; diff --git a/src/types/configuration/user-extractor-config.ts b/src/types/configuration/user-extractor-config.ts index 4351799..fc33073 100644 --- a/src/types/configuration/user-extractor-config.ts +++ b/src/types/configuration/user-extractor-config.ts @@ -1,10 +1,8 @@ import { Static, Type } from "@sinclair/typebox"; -const userExtractorConfigurationType = Type.Object({ +export const userExtractorConfigurationType = Type.Object({ enabled: Type.Boolean({ default: true }), redeemTask: Type.Boolean({ default: true }), }); export type UserExtractorConfiguration = Static; - -export default userExtractorConfigurationType; diff --git a/src/types/index.ts b/src/types/index.ts index e65c959..d310596 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -1,2 +1,3 @@ export * from "./configuration-types"; export * from "./valid-html-elements"; +export * from "./configuration"; diff --git a/yarn.lock b/yarn.lock index 1043144..8ed05f9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8,55 +8,55 @@ integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== "@ampproject/remapping@^2.2.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" - integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== + version "2.3.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" - integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.1", "@babel/code-frame@^7.24.2": + version "7.24.2" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae" + integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ== dependencies: - "@babel/highlight" "^7.23.4" - chalk "^2.4.2" + "@babel/highlight" "^7.24.2" + picocolors "^1.0.0" "@babel/compat-data@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" - integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.4.tgz#6f102372e9094f25d908ca0d34fc74c74606059a" + integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ== -"@babel/core@^7.11.6", "@babel/core@^7.12.3": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.9.tgz#b028820718000f267870822fec434820e9b1e4d1" - integrity sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw== +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.4.tgz#1f758428e88e0d8c563874741bc4ffc4f71a4717" + integrity sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" + "@babel/code-frame" "^7.24.2" + "@babel/generator" "^7.24.4" "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.23.9" - "@babel/parser" "^7.23.9" - "@babel/template" "^7.23.9" - "@babel/traverse" "^7.23.9" - "@babel/types" "^7.23.9" + "@babel/helpers" "^7.24.4" + "@babel/parser" "^7.24.4" + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.1" + "@babel/types" "^7.24.0" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.23.6", "@babel/generator@^7.7.2": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" - integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== +"@babel/generator@^7.24.1", "@babel/generator@^7.24.4", "@babel/generator@^7.7.2": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.4.tgz#1fc55532b88adf952025d5d2d1e71f946cb1c498" + integrity sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw== dependencies: - "@babel/types" "^7.23.6" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" + "@babel/types" "^7.24.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" jsesc "^2.5.1" "@babel/helper-compilation-targets@^7.23.6": @@ -91,11 +91,11 @@ "@babel/types" "^7.22.5" "@babel/helper-module-imports@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" - integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== + version "7.24.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz#6ac476e6d168c7c23ff3ba3cf4f7841d46ac8128" + integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg== dependencies: - "@babel/types" "^7.22.15" + "@babel/types" "^7.24.0" "@babel/helper-module-transforms@^7.23.3": version "7.23.3" @@ -108,10 +108,10 @@ "@babel/helper-split-export-declaration" "^7.22.6" "@babel/helper-validator-identifier" "^7.22.20" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" - integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.8.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz#945681931a52f15ce879fd5b86ce2dae6d3d7f2a" + integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w== "@babel/helper-simple-access@^7.22.5": version "7.22.5" @@ -128,9 +128,9 @@ "@babel/types" "^7.22.5" "@babel/helper-string-parser@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" - integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz#f99c36d3593db9540705d0739a1f10b5e20c696e" + integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ== "@babel/helper-validator-identifier@^7.22.20": version "7.22.20" @@ -142,28 +142,29 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== -"@babel/helpers@^7.23.9": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.9.tgz#c3e20bbe7f7a7e10cb9b178384b4affdf5995c7d" - integrity sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ== +"@babel/helpers@^7.24.4": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.4.tgz#dc00907fd0d95da74563c142ef4cd21f2cb856b6" + integrity sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw== dependencies: - "@babel/template" "^7.23.9" - "@babel/traverse" "^7.23.9" - "@babel/types" "^7.23.9" + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.1" + "@babel/types" "^7.24.0" -"@babel/highlight@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" - integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== +"@babel/highlight@^7.24.2": + version "7.24.2" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.2.tgz#3f539503efc83d3c59080a10e6634306e0370d26" + integrity sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA== dependencies: "@babel/helper-validator-identifier" "^7.22.20" chalk "^2.4.2" js-tokens "^4.0.0" + picocolors "^1.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b" - integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.0", "@babel/parser@^7.24.1", "@babel/parser@^7.24.4": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.4.tgz#234487a110d89ad5a3ed4a8a566c36b9453e8c88" + integrity sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -201,11 +202,11 @@ "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-jsx@^7.7.2": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" - integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz#3f6ca04b8c841811dbc3c5c5f837934e0d626c10" + integrity sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" @@ -257,41 +258,41 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.7.2": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f" - integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz#b3bcc51f396d15f3591683f90239de143c076844" + integrity sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/template@^7.22.15", "@babel/template@^7.23.9", "@babel/template@^7.3.3": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.23.9.tgz#f881d0487cba2828d3259dcb9ef5005a9731011a" - integrity sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA== +"@babel/template@^7.22.15", "@babel/template@^7.24.0", "@babel/template@^7.3.3": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50" + integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== dependencies: "@babel/code-frame" "^7.23.5" - "@babel/parser" "^7.23.9" - "@babel/types" "^7.23.9" + "@babel/parser" "^7.24.0" + "@babel/types" "^7.24.0" -"@babel/traverse@^7.23.9": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.9.tgz#2f9d6aead6b564669394c5ce0f9302bb65b9d950" - integrity sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg== +"@babel/traverse@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.1.tgz#d65c36ac9dd17282175d1e4a3c49d5b7988f530c" + integrity sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ== dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" + "@babel/code-frame" "^7.24.1" + "@babel/generator" "^7.24.1" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.9" - "@babel/types" "^7.23.9" + "@babel/parser" "^7.24.1" + "@babel/types" "^7.24.0" debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.23.9", "@babel/types@^7.3.3": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.9.tgz#1dd7b59a9a2b5c87f8b41e52770b5ecbf492e002" - integrity sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.24.0", "@babel/types@^7.3.3": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.0.tgz#3b951f435a92e7333eba05b7566fd297960ea1bf" + integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w== dependencies: "@babel/helper-string-parser" "^7.23.4" "@babel/helper-validator-identifier" "^7.22.20" @@ -624,9 +625,9 @@ integrity sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g== "@cspell/dict-en_us@^4.3.13": - version "4.3.16" - resolved "https://registry.yarnpkg.com/@cspell/dict-en_us/-/dict-en_us-4.3.16.tgz#b04fd49524db9fe6d8a3919881a525b073453c06" - integrity sha512-fyNuAvYpkllmsMpfAJaMip250LRAnEDp2EZbkjYwAJXXjtgQ4/1yh6sLityxPMDtJZN65Eko+8rJzGJHez4zbA== + version "4.3.19" + resolved "https://registry.yarnpkg.com/@cspell/dict-en_us/-/dict-en_us-4.3.19.tgz#ba79bed9cee82fdc9f76d03e85b8f07ea655c322" + integrity sha512-tHcXdkmm0t9LlRct1vgu3+h0KW/wlXCInkTiR4D/rl730q1zu2qVEgiy1saMiTUSNmdu7Hiy+Mhb+1braVqnZQ== "@cspell/dict-filetypes@^3.0.3": version "3.0.3" @@ -729,9 +730,9 @@ integrity sha512-lEdzrcyau6mgzu1ie98GjOEegwVHvoaWtzQnm1ie4DyZgMr+N6D0Iyj1lzvtmt0snvsDFa5F2bsYzf3IMKcpcA== "@cspell/dict-public-licenses@^2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.5.tgz#86948b29bd36184943955eaa80bf594488c4dd8a" - integrity sha512-91HK4dSRri/HqzAypHgduRMarJAleOX5NugoI8SjDLPzWYkwZ1ftuCXSk+fy8DLc3wK7iOaFcZAvbjmnLhVs4A== + version "2.0.6" + resolved "https://registry.yarnpkg.com/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.6.tgz#e6ac8e5cb3b0ef8503d67da14435ae86a875b6cc" + integrity sha512-bHqpSpJvLCUcWxj1ov/Ki8WjmESpYwRpQlqfdchekOTc93Huhvjm/RXVN1R4fVf4Hspyem1QVkCGqAmjJMj6sw== "@cspell/dict-python@^4.1.11": version "4.1.11" @@ -760,11 +761,16 @@ resolved "https://registry.yarnpkg.com/@cspell/dict-scala/-/dict-scala-5.0.0.tgz#b64365ad559110a36d44ccd90edf7151ea648022" integrity sha512-ph0twaRoV+ylui022clEO1dZ35QbeEQaKTaV2sPOsdwIokABPIiK09oWwGK9qg7jRGQwVaRPEq0Vp+IG1GpqSQ== -"@cspell/dict-software-terms@3.3.18", "@cspell/dict-software-terms@^3.3.15": +"@cspell/dict-software-terms@3.3.18": version "3.3.18" resolved "https://registry.yarnpkg.com/@cspell/dict-software-terms/-/dict-software-terms-3.3.18.tgz#f25863c316eea195d74b170d41711e2c7402e9ca" integrity sha512-LJZGGMGqS8KzgXJrSMs3T+6GoqHG9z8Bc+rqLzLzbtoR3FbsMasE9U8oP2PmS3q7jJLFjQkzmg508DrcuZuo2g== +"@cspell/dict-software-terms@^3.3.15": + version "3.3.20" + resolved "https://registry.yarnpkg.com/@cspell/dict-software-terms/-/dict-software-terms-3.3.20.tgz#ced0152f99228d697ab177b095f242ea73edfad2" + integrity sha512-KmPwCxYWEu7SGyT/0m/n6i6R4ZgxbmN3XcerzA6Z629Wm5iZTVfJaMWqDK2RKAyBawS7OMfxGz0W/wYU4FhJlA== + "@cspell/dict-sql@^2.1.3": version "2.1.3" resolved "https://registry.yarnpkg.com/@cspell/dict-sql/-/dict-sql-2.1.3.tgz#8d9666a82e35b310d0be4064032c0d891fbd2702" @@ -780,11 +786,16 @@ resolved "https://registry.yarnpkg.com/@cspell/dict-swift/-/dict-swift-2.0.1.tgz#06ec86e52e9630c441d3c19605657457e33d7bb6" integrity sha512-gxrCMUOndOk7xZFmXNtkCEeroZRnS2VbeaIPiymGRHj5H+qfTAzAKxtv7jJbVA3YYvEzWcVE2oKDP4wcbhIERw== -"@cspell/dict-typescript@3.1.2", "@cspell/dict-typescript@^3.1.2": +"@cspell/dict-typescript@3.1.2": version "3.1.2" resolved "https://registry.yarnpkg.com/@cspell/dict-typescript/-/dict-typescript-3.1.2.tgz#14d05f54db2984feaa24ea133b583d19c04cc104" integrity sha512-lcNOYWjLUvDZdLa0UMNd/LwfVdxhE9rKA+agZBGjL3lTA3uNvH7IUqSJM/IXhJoBpLLMVEOk8v1N9xi+vDuCdA== +"@cspell/dict-typescript@^3.1.2": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@cspell/dict-typescript/-/dict-typescript-3.1.4.tgz#65a7d4a00f17ad61300864e17ae3d2bcf2c2d57d" + integrity sha512-jUcPa0rsPca5ur1+G56DXnSc5hbbJkzvPHHvyQtkbPXBQd3CXPMNfrTVCgzex/7cY/7FONcpFCUwgwfni9Jqbw== + "@cspell/dict-vue@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@cspell/dict-vue/-/dict-vue-3.0.0.tgz#68ccb432ad93fcb0fd665352d075ae9a64ea9250" @@ -1104,9 +1115,9 @@ integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/object-schema@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" - integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== + version "2.0.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== "@isaacs/cliui@^8.0.2": version "8.0.2" @@ -1131,7 +1142,7 @@ js-yaml "^3.13.1" resolve-from "^5.0.0" -"@istanbuljs/schema@^0.1.2": +"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": version "0.1.3" resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== @@ -1328,42 +1339,42 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== dependencies: - "@jridgewell/set-array" "^1.0.1" + "@jridgewell/set-array" "^1.2.1" "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/trace-mapping" "^0.3.24" "@jridgewell/resolve-uri@^3.1.0": version "3.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== "@jridgewell/source-map@^0.3.3": - version "0.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" - integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== + version "0.3.6" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.22" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz#72a621e5de59f5f1ef792d0793a82ee20f645e4c" - integrity sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw== +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -1411,14 +1422,14 @@ fastq "^1.6.0" "@npmcli/git@^5.0.0": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-5.0.4.tgz#d18c50f99649e6e89e8b427318134f582498700c" - integrity sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ== + version "5.0.6" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-5.0.6.tgz#d7b24eb2cff98754c8868faab40405abfa1abe28" + integrity sha512-4x/182sKXmQkf0EtXxT26GEsaOATpD7WVtza5hrYivWZeo6QefC6xq9KAXrnjtFKBZ4rZwR7aX/zClYYXgtwLw== dependencies: "@npmcli/promise-spawn" "^7.0.0" lru-cache "^10.0.1" npm-pick-manifest "^9.0.0" - proc-log "^3.0.0" + proc-log "^4.0.0" promise-inflight "^1.0.1" promise-retry "^2.0.1" semver "^7.3.5" @@ -1481,10 +1492,10 @@ dependencies: "@pnpm/types" "9.4.2" -"@pnpm/error@5.0.2": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@pnpm/error/-/error-5.0.2.tgz#153d18fe9eeaeb02e48e9dc45b042f4c962b3822" - integrity sha512-0TEm+tWNYm+9uh6DSKyRbv8pv/6b4NL0PastLvMxIoqZbBZ5Zj1cYi332R9xsSUi31ZOsu2wpgn/bC7DA9hrjg== +"@pnpm/error@5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@pnpm/error/-/error-5.0.3.tgz#4dbb9f4acb0b30c373b3ca5024cdf495f03f4380" + integrity sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA== dependencies: "@pnpm/constants" "7.1.1" @@ -1520,13 +1531,13 @@ semver "^7.3.5" validate-npm-package-name "^4.0.0" -"@pnpm/npm-resolver@18.1.0": - version "18.1.0" - resolved "https://registry.yarnpkg.com/@pnpm/npm-resolver/-/npm-resolver-18.1.0.tgz#bbafcdf88391ee84e2dc78c2b599b54dbbc8f8e3" - integrity sha512-fUYKX/iHiHldL0VRVvkQI35YK2jWhZEkPO6rrGke8309+LKAo12v833nBttMDpQrtHefmqhB4mhCzQq6L2Xqmg== +"@pnpm/npm-resolver@18.1.1": + version "18.1.1" + resolved "https://registry.yarnpkg.com/@pnpm/npm-resolver/-/npm-resolver-18.1.1.tgz#64a259825db6dc4e4615f5b67464c1cd174850bf" + integrity sha512-NptzncmMD5ZMimbjWkGpMzuBRhlCY+sh7mzypPdBOTNlh5hmEQe/VaRKjNK4V9/b0C/llElkvIePL6acybu86w== dependencies: "@pnpm/core-loggers" "9.0.6" - "@pnpm/error" "5.0.2" + "@pnpm/error" "5.0.3" "@pnpm/fetching-types" "5.0.0" "@pnpm/graceful-fs" "3.2.0" "@pnpm/resolve-workspace-range" "5.0.1" @@ -1567,13 +1578,14 @@ integrity sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA== "@pnpm/workspace.pkgs-graph@^2.0.14": - version "2.0.14" - resolved "https://registry.yarnpkg.com/@pnpm/workspace.pkgs-graph/-/workspace.pkgs-graph-2.0.14.tgz#3ea12b8d95987e64bc98876422ea7ad578cd022a" - integrity sha512-SBXXyWDkPEoaLTjLRyQzRHoBYH+P0NLcIjX1yPUxuJiMTvGOMzjpLWTuxYNVe/P0V0VQMrjpJFaJPjlViNLhzg== + version "2.0.16" + resolved "https://registry.yarnpkg.com/@pnpm/workspace.pkgs-graph/-/workspace.pkgs-graph-2.0.16.tgz#8f5fa108a34aa584c24ab825be6b42f99a06a155" + integrity sha512-WNsDLkDKm7/eht91s/Iif9ELLabdshAIqpH3svCwdp/xiRxGumfUWkCCeCODjLbBCQehrsl3ugSsboIvk0xiPw== dependencies: "@pnpm/npm-package-arg" "^1.0.0" - "@pnpm/npm-resolver" "18.1.0" + "@pnpm/npm-resolver" "18.1.1" "@pnpm/resolve-workspace-range" "5.0.1" + "@pnpm/types" "9.4.2" ramda "npm:@pnpm/ramda@0.28.1" "@rollup/plugin-commonjs@25.0.7": @@ -1715,10 +1727,10 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.0.tgz#9ffdf9ed133a7464f4ae187eb9e1294413fab235" integrity sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg== -"@sinclair/typebox@0.32.14": - version "0.32.14" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.32.14.tgz#ef0a4ed981515fd430cadfb65cb6c2719a0b5539" - integrity sha512-EC77Mw8huT2z9YlYbWfpIQgN6shZE1tH4NP4/Trig8UBel9FZNMZRJ42ubJI8PLor2uIU+waLml1dce5ReCOPg== +"@sinclair/typebox@0.32.23": + version "0.32.23" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.32.23.tgz#18419f3a276da4e7f26300497c1537848727778b" + integrity sha512-NiMhEgFo5nDlg39HDEvETDdXmURfyd8ougIjynebGebZti/gZ4LxoCcbVS6jgfNF8Sf7ZvPVl/fV0YsJIW4ltg== "@sinclair/typebox@^0.27.8": version "0.27.8" @@ -1840,7 +1852,14 @@ resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== -"@types/node@*", "@types/node@20.11.19": +"@types/node@*": + version "20.12.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.7.tgz#04080362fa3dd6c5822061aa3124f5c152cff384" + integrity sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg== + dependencies: + undici-types "~5.26.4" + +"@types/node@20.11.19": version "20.11.19" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.19.tgz#b466de054e9cb5b3831bee38938de64ac7f81195" integrity sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ== @@ -1863,9 +1882,9 @@ integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== "@types/semver@^7.5.0": - version "7.5.7" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.7.tgz#326f5fdda70d13580777bcaa1bc6fa772a5aef0e" - integrity sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg== + version "7.5.8" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" + integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== "@types/stack-utils@^2.0.0": version "2.0.3" @@ -2013,10 +2032,10 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv-formats@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" - integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== +ajv-formats@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-3.0.1.tgz#3d5dc762bca17679c3c2ea7e90ad6b7532309578" + integrity sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ== dependencies: ajv "^8.0.0" @@ -2048,11 +2067,9 @@ ansi-escapes@^4.2.1: type-fest "^0.21.3" ansi-escapes@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.2.0.tgz#8a13ce75286f417f1963487d86ba9f90dccf9947" - integrity sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw== - dependencies: - type-fest "^3.0.0" + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.2.1.tgz#76c54ce9b081dad39acec4b5d53377913825fb0f" + integrity sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig== ansi-regex@^5.0.1: version "5.0.1" @@ -2167,10 +2184,12 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -available-typed-arrays@^1.0.5, available-typed-arrays@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" - integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" babel-jest@^29.7.0: version "29.7.0" @@ -2307,9 +2326,9 @@ builtin-modules@^3.3.0: integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== builtins@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" - integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== + version "5.1.0" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.1.0.tgz#6d85eeb360c4ebc166c3fdef922a15aa7316a5e8" + integrity sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg== dependencies: semver "^7.0.0" @@ -2349,9 +2368,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001587: - version "1.0.30001588" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001588.tgz#07f16b65a7f95dba82377096923947fb25bce6e3" - integrity sha512-+hVY9jE44uKLkH0SrUTqxjxqNTOWHsbnQDIKjwkZ3lNTzUUVdBLBGXtj/q5Mp5u98r3droaZAewQuEDzjQdZlQ== + version "1.0.30001612" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz#d34248b4ec1f117b70b24ad9ee04c90e0b8a14ae" + integrity sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g== chalk-template@^1.1.0: version "1.1.0" @@ -2756,6 +2775,33 @@ data-uri-to-buffer@^3.0.1: resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" @@ -2777,9 +2823,9 @@ decamelize@^1.1.0: integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== dedent@^1.0.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" - integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== + version "1.5.3" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a" + integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ== deep-freeze@0.0.1: version "0.0.1" @@ -2803,7 +2849,7 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" -define-data-property@^1.0.1, define-data-property@^1.1.2: +define-data-property@^1.0.1, define-data-property@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== @@ -2859,10 +2905,10 @@ dot-prop@^6.0.1: dependencies: is-obj "^2.0.0" -dotenv@16.4.4: - version "16.4.4" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.4.tgz#a26e7bb95ebd36272ebb56edb80b826aecf224c1" - integrity sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg== +dotenv@16.4.5: + version "16.4.5" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" + integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== dts-bundle-generator@^7.0.0: version "7.2.0" @@ -2887,9 +2933,9 @@ easy-table@1.2.0: wcwidth "^1.0.1" electron-to-chromium@^1.4.668: - version "1.4.674" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.674.tgz#6ddb629ae52c3192984423b54dc1fffe79e1b007" - integrity sha512-jZtIZxv9FlwTLX5kVZStUtXZywhEi3vqvY6iEzJnc57cNgHFQ5JCczElTs/062v6ODTT7eX8ZOTqQcxa3nMUWQ== + version "1.4.747" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.747.tgz#e37fa5b7b7e4c22607c5f59b5cf78f947266e77d" + integrity sha512-+FnSWZIAvFHbsNVmUxhEqWiaOiPMcfum1GQzlWCg/wLigVtshOsjXHyEFfmt6cFK6+HkS3QOJBv6/3OPumbBfw== emittery@^0.13.1: version "0.13.1" @@ -2930,18 +2976,22 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.22.1, es-abstract@^1.22.3: - version "1.22.4" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.4.tgz#26eb2e7538c3271141f5754d31aabfdb215f27bf" - integrity sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg== +es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2: + version "1.23.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== dependencies: array-buffer-byte-length "^1.0.1" arraybuffer.prototype.slice "^1.0.3" - available-typed-arrays "^1.0.6" + available-typed-arrays "^1.0.7" call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" es-define-property "^1.0.0" es-errors "^1.3.0" - es-set-tostringtag "^2.0.2" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" es-to-primitive "^1.2.1" function.prototype.name "^1.1.6" get-intrinsic "^1.2.4" @@ -2949,15 +2999,16 @@ es-abstract@^1.22.1, es-abstract@^1.22.3: globalthis "^1.0.3" gopd "^1.0.1" has-property-descriptors "^1.0.2" - has-proto "^1.0.1" + has-proto "^1.0.3" has-symbols "^1.0.3" - hasown "^2.0.1" + hasown "^2.0.2" internal-slot "^1.0.7" is-array-buffer "^3.0.4" is-callable "^1.2.7" - is-negative-zero "^2.0.2" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" + is-shared-array-buffer "^1.0.3" is-string "^1.0.7" is-typed-array "^1.1.13" is-weakref "^1.0.2" @@ -2965,17 +3016,17 @@ es-abstract@^1.22.1, es-abstract@^1.22.3: object-keys "^1.1.1" object.assign "^4.1.5" regexp.prototype.flags "^1.5.2" - safe-array-concat "^1.1.0" + safe-array-concat "^1.1.2" safe-regex-test "^1.0.3" - string.prototype.trim "^1.2.8" - string.prototype.trimend "^1.0.7" - string.prototype.trimstart "^1.0.7" - typed-array-buffer "^1.0.1" - typed-array-byte-length "^1.0.0" - typed-array-byte-offset "^1.0.0" - typed-array-length "^1.0.4" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" unbox-primitive "^1.0.2" - which-typed-array "^1.1.14" + which-typed-array "^1.1.15" es-define-property@^1.0.0: version "1.0.0" @@ -2989,14 +3040,21 @@ es-errors@^1.2.1, es-errors@^1.3.0: resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== -es-set-tostringtag@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" - integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== dependencies: - get-intrinsic "^1.2.2" - has-tostringtag "^1.0.0" - hasown "^2.0.0" + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" es-to-primitive@^1.2.1: version "1.2.1" @@ -3393,18 +3451,17 @@ flat-cache@^3.0.4: rimraf "^3.0.2" flat-cache@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.0.tgz#d12437636f83bb8a12b8f300c36fd1614e1c7224" - integrity sha512-EryKbCE/wxpxKniQlyas6PY1I9vwtF3uCBweX+N8KYTCn3Y12RTGtQAJ/bd5pl7kxUAc8v/R3Ake/N17OZiFqA== + version "4.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" + integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== dependencies: flatted "^3.2.9" keyv "^4.5.4" - rimraf "^5.0.5" flatted@^3.2.9: - version "3.2.9" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" - integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== + version "3.3.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== for-each@^0.3.3: version "0.3.3" @@ -3490,7 +3547,7 @@ get-east-asian-width@^1.0.0: resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz#5e6ebd9baee6fb8b7b6bd505221065f0cd91f64e" integrity sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA== -get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== @@ -3531,9 +3588,9 @@ get-symbol-description@^1.0.2: get-intrinsic "^1.2.4" get-tsconfig@^4.7.2: - version "4.7.2" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz#0dcd6fb330391d46332f4c6c1bf89a6514c2ddce" - integrity sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A== + version "4.7.3" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.3.tgz#0498163d98f7b58484dd4906999c0c9d5f103f83" + integrity sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg== dependencies: resolve-pkg-maps "^1.0.0" @@ -3562,16 +3619,16 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob@^10.2.2, glob@^10.3.7: - version "10.3.10" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" - integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== +glob@^10.2.2: + version "10.3.12" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.12.tgz#3a65c363c2e9998d220338e88a5f6ac97302960b" + integrity sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg== dependencies: foreground-child "^3.1.0" - jackspeak "^2.3.5" + jackspeak "^2.3.6" minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" + minipass "^7.0.4" + path-scurry "^1.10.2" glob@^7.1.3, glob@^7.1.4: version "7.2.3" @@ -3688,34 +3745,34 @@ has-own-property@^0.1.0: resolved "https://registry.yarnpkg.com/has-own-property/-/has-own-property-0.1.0.tgz#992b0f5bb3a25416f8d4d0cde53f497b9d7b1ea5" integrity sha512-14qdBKoonU99XDhWcFKZTShK+QV47qU97u8zzoVo9cL5TZ3BmBHXogItSt9qJjR0KUMFRhcCW8uGIGl8nkl7Aw== -has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1, has-property-descriptors@^1.0.2: +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== dependencies: es-define-property "^1.0.0" -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== +has-proto@^1.0.1, has-proto@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-tostringtag@^1.0.0, has-tostringtag@^1.0.1: +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: has-symbols "^1.0.3" -hasown@^2.0.0, hasown@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.1.tgz#26f48f039de2c0f8d3356c223fb8d50253519faa" - integrity sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA== +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" @@ -3883,6 +3940,13 @@ is-core-module@^2.13.0, is-core-module@^2.5.0, is-core-module@^2.8.1: dependencies: hasown "^2.0.0" +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" + is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" @@ -3934,10 +3998,10 @@ is-module@^1.0.0: resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== is-number-object@^1.0.4: version "1.0.7" @@ -3986,12 +4050,12 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== +is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.7" is-stream@^2.0.0: version "2.0.1" @@ -4024,7 +4088,7 @@ is-text-path@^2.0.0: dependencies: text-extensions "^2.0.0" -is-typed-array@^1.1.10, is-typed-array@^1.1.13, is-typed-array@^1.1.9: +is-typed-array@^1.1.13: version "1.1.13" resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== @@ -4075,13 +4139,13 @@ istanbul-lib-instrument@^5.0.4: semver "^6.3.0" istanbul-lib-instrument@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz#71e87707e8041428732518c6fb5211761753fbdf" - integrity sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA== + version "6.0.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz#91655936cf7380e4e473383081e38478b69993b1" + integrity sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw== dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" + "@babel/core" "^7.23.9" + "@babel/parser" "^7.23.9" + "@istanbuljs/schema" "^0.1.3" istanbul-lib-coverage "^3.2.0" semver "^7.5.4" @@ -4104,9 +4168,9 @@ istanbul-lib-source-maps@^4.0.0: source-map "^0.6.1" istanbul-reports@^3.1.3: - version "3.1.6" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a" - integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg== + version "3.1.7" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b" + integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" @@ -4116,7 +4180,7 @@ iterable-lookahead@^1.0.0: resolved "https://registry.yarnpkg.com/iterable-lookahead/-/iterable-lookahead-1.0.0.tgz#896dfcb78680bdb50036e97edb034c8b68a9737f" integrity sha512-hJnEP2Xk4+44DDwJqUQGdXal5VbyeWLaPyDl2AQc242Zr7iqz4DgpQOrEzglWVMGHMDCkguLHEKxd1+rOsmgSQ== -jackspeak@^2.3.5: +jackspeak@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== @@ -4796,7 +4860,7 @@ log-update@^6.0.0: strip-ansi "^7.1.0" wrap-ansi "^9.0.0" -lru-cache@^10.0.1, lru-cache@^10.0.2, "lru-cache@^9.1.1 || ^10.0.0": +lru-cache@^10.0.1, lru-cache@^10.0.2, lru-cache@^10.2.0: version "10.2.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== @@ -4823,9 +4887,9 @@ magic-string@^0.16.0: vlq "^0.2.1" magic-string@^0.30.3: - version "0.30.8" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.8.tgz#14e8624246d2bedba70d5462aa99ac9681844613" - integrity sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ== + version "0.30.10" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e" + integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ== dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" @@ -4958,7 +5022,7 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -minimatch@9.0.3, minimatch@^9.0.0, minimatch@^9.0.1: +minimatch@9.0.3: version "9.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== @@ -4979,6 +5043,13 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.0, minimatch@^9.0.1: + version "9.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" + integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== + dependencies: + brace-expansion "^2.0.1" + minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -4993,7 +5064,7 @@ minimist@1.2.8, minimist@^1.2.5, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.3: +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.3, minipass@^7.0.4: version "7.0.4" resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== @@ -5100,12 +5171,12 @@ npm-normalize-package-bin@^3.0.0: integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== npm-package-arg@^11.0.0: - version "11.0.1" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.1.tgz#f208b0022c29240a1c532a449bdde3f0a4708ebc" - integrity sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ== + version "11.0.2" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.2.tgz#1ef8006c4a9e9204ddde403035f7ff7d718251ca" + integrity sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw== dependencies: hosted-git-info "^7.0.0" - proc-log "^3.0.0" + proc-log "^4.0.0" semver "^7.3.5" validate-npm-package-name "^5.0.0" @@ -5142,9 +5213,9 @@ npm-run-path@^4.0.1: path-key "^3.0.0" npm-run-path@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.2.0.tgz#224cdd22c755560253dd71b83a1ef2f758b2e955" - integrity sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg== + version "5.3.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f" + integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== dependencies: path-key "^4.0.0" @@ -5338,12 +5409,12 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.10.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" - integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== +path-scurry@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.2.tgz#8f6357eb1239d5fa1da8b9f70e9c080675458ba7" + integrity sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA== dependencies: - lru-cache "^9.1.1 || ^10.0.0" + lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-temp@^2.1.0: @@ -5407,6 +5478,11 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -5445,6 +5521,11 @@ proc-log@^3.0.0: resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8" integrity sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A== +proc-log@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-4.2.0.tgz#b6f461e4026e75fdfe228b265e9f7a00779d7034" + integrity sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA== + promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -5472,9 +5553,9 @@ punycode@^2.1.0: integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== pure-rand@^6.0.0: - version "6.0.4" - resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.4.tgz#50b737f6a925468679bff00ad20eade53f37d5c7" - integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA== + version "6.1.0" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2" + integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA== queue-microtask@^1.2.2: version "1.2.3" @@ -5667,13 +5748,6 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -rimraf@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.5.tgz#9be65d2d6e683447d2e9013da2bf451139a61ccf" - integrity sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A== - dependencies: - glob "^10.3.7" - rollup-plugin-dts-bundle-generator@1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/rollup-plugin-dts-bundle-generator/-/rollup-plugin-dts-bundle-generator-1.4.0.tgz#533fd3a003094a1c46a93628f3c824bd4e69fd79" @@ -5682,6 +5756,11 @@ rollup-plugin-dts-bundle-generator@1.4.0: dts-bundle-generator "^7.0.0" rollup "^2.75.5" +rollup-plugin-peer-deps-external@2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/rollup-plugin-peer-deps-external/-/rollup-plugin-peer-deps-external-2.2.4.tgz#8a420bbfd6dccc30aeb68c9bf57011f2f109570d" + integrity sha512-AWdukIM1+k5JDdAqV/Cxd+nejvno2FVLVeZ74NKggm3Q5s9cbbcOgUPGdbxPi4BXu7xGaZ8HG12F+thImYu/0g== + rollup-plugin-typescript2@0.36.0: version "0.36.0" resolved "https://registry.yarnpkg.com/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.36.0.tgz#309564eb70d710412f5901344ca92045e180ed53" @@ -5729,13 +5808,13 @@ run-parallel@^1.1.9, run-parallel@^1.2.0: dependencies: queue-microtask "^1.2.2" -safe-array-concat@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz#8d0cae9cb806d6d1c06e08ab13d847293ebe0692" - integrity sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg== +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== dependencies: - call-bind "^1.0.5" - get-intrinsic "^1.2.2" + call-bind "^1.0.7" + get-intrinsic "^1.2.4" has-symbols "^1.0.3" isarray "^2.0.5" @@ -5778,25 +5857,26 @@ serialize-javascript@^6.0.1: randombytes "^2.1.0" set-function-length@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" - integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== dependencies: - define-data-property "^1.1.2" + define-data-property "^1.1.4" es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.3" + get-intrinsic "^1.2.4" gopd "^1.0.1" - has-property-descriptors "^1.0.1" + has-property-descriptors "^1.0.2" set-function-name@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" - integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== + version "2.0.2" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== dependencies: - define-data-property "^1.0.1" + define-data-property "^1.1.4" + es-errors "^1.3.0" functions-have-names "^1.2.3" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.2" shebang-command@^1.2.0: version "1.2.0" @@ -5833,11 +5913,11 @@ shell-quote@^1.6.1: integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== side-channel@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.5.tgz#9a84546599b48909fb6af1211708d23b1946221b" - integrity sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ== + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== dependencies: - call-bind "^1.0.6" + call-bind "^1.0.7" es-errors "^1.3.0" get-intrinsic "^1.2.4" object-inspect "^1.13.1" @@ -5879,9 +5959,9 @@ slice-ansi@^7.0.0: is-fullwidth-code-point "^5.0.0" smob@^1.0.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/smob/-/smob-1.4.1.tgz#66270e7df6a7527664816c5b577a23f17ba6f5b5" - integrity sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ== + version "1.5.0" + resolved "https://registry.yarnpkg.com/smob/-/smob-1.5.0.tgz#85d79a1403abf128d24d3ebc1cdc5e1a9548d3ab" + integrity sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig== smol-toml@1.1.4: version "1.1.4" @@ -5979,7 +6059,16 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -6012,40 +6101,42 @@ string.fromcodepoint@^0.2.1: integrity sha512-n69H31OnxSGSZyZbgBlvYIXlrMhJQ0dQAX1js1QDhpaUH6zmU3QYlj07bCwCNlPOu3oRXIubGPl2gDGnHsiCqg== string.prototype.padend@^3.0.0: - version "3.1.5" - resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.5.tgz#311ef3a4e3c557dd999cdf88fbdde223f2ac0f95" - integrity sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA== + version "3.1.6" + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz#ba79cf8992609a91c872daa47c6bb144ee7f62a5" + integrity sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" -string.prototype.trim@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" - integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" -string.prototype.trimend@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" - integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" -string.prototype.trimstart@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" - integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" string_decoder@^1.1.1: version "1.3.0" @@ -6054,7 +6145,14 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -6145,9 +6243,9 @@ synckit@^0.8.6: tslib "^2.6.2" terser@^5.17.4: - version "5.28.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.28.1.tgz#bf00f7537fd3a798c352c2d67d67d65c915d1b28" - integrity sha512-wM+bZp54v/E9eRRGXb5ZFDvinrJIOaTapx3WUokyVGZu5ucVCK55zEgGd5Dl2fSr3jUo5sDiERErUWLY6QPFyA== + version "5.30.4" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.30.4.tgz#62b4d16a819424e6317fd5ceffb4ee8dc769803a" + integrity sha512-xRdd0v64a8mFK9bnsKVdoNP9GQIKUAaJPTaqEQDL4w/J8WaW4sWXXoMZ+6SimPkfT5bElreXf8m9HnmPc3E1BQ== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -6232,9 +6330,9 @@ trim-newlines@^3.0.0: integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== ts-api-utils@^1.0.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.2.1.tgz#f716c7e027494629485b21c0df6180f4d08f5e8b" - integrity sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA== + version "1.3.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" + integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== ts-jest@29.1.2: version "29.1.2" @@ -6307,49 +6405,49 @@ type-fest@^1.0.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== -type-fest@^3.0.0: - version "3.13.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" - integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== - -typed-array-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz#0608ffe6bca71bf15a45bff0ca2604107a1325f5" - integrity sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ== +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== dependencies: - call-bind "^1.0.6" + call-bind "^1.0.7" es-errors "^1.3.0" is-typed-array "^1.1.13" -typed-array-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" - integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.7" for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" -typed-array-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" - integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.7" for-each "^0.3.3" - is-typed-array "^1.1.9" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" typedarray-to-buffer@^3.1.5: version "3.1.5" @@ -6358,11 +6456,16 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@5.3.3, typescript@>=4.5.2: +typescript@5.3.3: version "5.3.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== +typescript@>=4.5.2: + version "5.4.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" + integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== + unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" @@ -6507,16 +6610,16 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-typed-array@^1.1.14: - version "1.1.14" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06" - integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg== +which-typed-array@^1.1.14, which-typed-array@^1.1.15: + version "1.1.15" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== dependencies: - available-typed-arrays "^1.0.6" - call-bind "^1.0.5" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" for-each "^0.3.3" gopd "^1.0.1" - has-tostringtag "^1.0.1" + has-tostringtag "^1.0.2" which@^1.2.9: version "1.3.1" @@ -6539,7 +6642,16 @@ which@^4.0.0: dependencies: isexe "^3.1.1" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -6614,11 +6726,16 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@2.3.4, yaml@^2.3.4: +yaml@2.3.4: version "2.3.4" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== +yaml@^2.3.4: + version "2.4.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.1.tgz#2e57e0b5e995292c25c75d2658f0664765210eed" + integrity sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg== + yargs-parser@^20.2.3: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" From 31c8a5084b16ca131890f9bc30273d1899ece418 Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Wed, 24 Apr 2024 23:11:11 +0900 Subject: [PATCH 05/16] v2.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2684835..5efe763 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ubiquibot/configuration", - "version": "1.1.0", + "version": "2.0.0", "private": false, "description": "Configuration helpers for Ubiquibot.", "author": "Ubiquity DAO", From 58f4438eb6a5f32a2c657bcf7f0773ca8cd229d1 Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Thu, 25 Apr 2024 01:39:55 +0900 Subject: [PATCH 06/16] chore: updated default configuration --- .github/ubiquibot-config.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/ubiquibot-config.yml b/.github/ubiquibot-config.yml index 6ad3caf..e6bebcc 100644 --- a/.github/ubiquibot-config.yml +++ b/.github/ubiquibot-config.yml @@ -38,34 +38,34 @@ incentives: td: 1 hr: 0 multipliers: - - type: [ISSUE, ISSUER, TASK] + - type: [ ISSUE, ISSUER, SPECIFICATION ] formattingMultiplier: 1 wordValue: 0.1 - - type: [ISSUE, ISSUER, COMMENTED] + - type: [ ISSUE, ISSUER, COMMENTED ] formattingMultiplier: 1 wordValue: 0.2 - - type: [ISSUE, ASSIGNEE, COMMENTED] + - type: [ ISSUE, ASSIGNEE, COMMENTED ] formattingMultiplier: 0 wordValue: 0 - - type: [ISSUE, COLLABORATOR, COMMENTED] + - type: [ ISSUE, COLLABORATOR, COMMENTED ] formattingMultiplier: 1 wordValue: 0.1 - - type: [ISSUE, CONTRIBUTOR, COMMENTED] + - type: [ ISSUE, CONTRIBUTOR, COMMENTED ] formattingMultiplier: 0.25 wordValue: 0.1 - - type: [REVIEW, ISSUER, SPECIFICATION] + - type: [ REVIEW, ISSUER, TASK ] formattingMultiplier: 0 wordValue: 0 - - type: [REVIEW, ISSUER, COMMENTED] + - type: [ REVIEW, ISSUER, COMMENTED ] formattingMultiplier: 2 wordValue: 0.2 - - type: [REVIEW, ASSIGNEE, COMMENTED] + - type: [ REVIEW, ASSIGNEE, COMMENTED ] formattingMultiplier: 1 wordValue: 0.1 - - type: [REVIEW, COLLABORATOR, COMMENTED] + - type: [ REVIEW, COLLABORATOR, COMMENTED ] formattingMultiplier: 1 wordValue: 0.1 - - type: [REVIEW, CONTRIBUTOR, COMMENTED] + - type: [ REVIEW, CONTRIBUTOR, COMMENTED ] formattingMultiplier: 0.25 wordValue: 0.1 permitGeneration: From 0ac8a52da978ad18ec3efd9759fdfbc2831548c3 Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Thu, 25 Apr 2024 01:45:39 +0900 Subject: [PATCH 07/16] chore: updated action for publishing --- .github/workflows/publish-package.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish-package.yml b/.github/workflows/publish-package.yml index c004063..49d7fb1 100644 --- a/.github/workflows/publish-package.yml +++ b/.github/workflows/publish-package.yml @@ -10,13 +10,13 @@ jobs: release-please: runs-on: ubuntu-latest steps: - - uses: google-github-actions/release-please-action@v3 + - uses: google-github-actions/release-please-action@v4 with: release-type: node package-name: @ubiquibot/configuration default-branch: main - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version: '20.10.0' registry-url: https://registry.npmjs.org/ From 816c48f398daacbd5ae84ccf31152fdcfdf2ce9e Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Thu, 25 Apr 2024 12:41:36 +0900 Subject: [PATCH 08/16] chore: exporting base incentive configuration --- src/types/configuration/common-incentive-config-type.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/types/configuration/common-incentive-config-type.ts b/src/types/configuration/common-incentive-config-type.ts index 21c3500..be14124 100644 --- a/src/types/configuration/common-incentive-config-type.ts +++ b/src/types/configuration/common-incentive-config-type.ts @@ -1,9 +1,7 @@ import { Type, Static } from "@sinclair/typebox"; -const baseIncentiveConfiguration = Type.Object({ +export const baseIncentiveConfiguration = Type.Object({ enabled: Type.Boolean({ default: true }), }); export type BaseConfiguration = Static; - -export default baseIncentiveConfiguration; From 0558d07499c14aacdc34ede6f448ac721a966ac6 Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Thu, 25 Apr 2024 12:47:46 +0900 Subject: [PATCH 09/16] v2.0.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5efe763..edac62e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ubiquibot/configuration", - "version": "2.0.0", + "version": "2.0.1", "private": false, "description": "Configuration helpers for Ubiquibot.", "author": "Ubiquity DAO", From 06351b87644f5022a0f7bfee282d4efd04681659 Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Thu, 25 Apr 2024 12:51:54 +0900 Subject: [PATCH 10/16] v2.0.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index edac62e..7240dd7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ubiquibot/configuration", - "version": "2.0.1", + "version": "2.0.2", "private": false, "description": "Configuration helpers for Ubiquibot.", "author": "Ubiquity DAO", From b2a948953370d379dac68c6bb0f1840fed68668d Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Fri, 26 Apr 2024 11:29:00 +0900 Subject: [PATCH 11/16] chore: added comments for configurations --- src/types/configuration/common-incentive-config-type.ts | 3 +++ src/types/configuration/content-evaluator-config.ts | 3 +++ src/types/configuration/data-purge-config.ts | 3 +++ src/types/configuration/formatting-evaluator-config.ts | 9 +++++++++ src/types/configuration/github-comment-config.ts | 9 +++++++++ .../configuration/permit-generation-configuration.ts | 3 +++ src/types/configuration/user-extractor-config.ts | 6 ++++++ 7 files changed, 36 insertions(+) diff --git a/src/types/configuration/common-incentive-config-type.ts b/src/types/configuration/common-incentive-config-type.ts index be14124..eed1eb8 100644 --- a/src/types/configuration/common-incentive-config-type.ts +++ b/src/types/configuration/common-incentive-config-type.ts @@ -1,6 +1,9 @@ import { Type, Static } from "@sinclair/typebox"; export const baseIncentiveConfiguration = Type.Object({ + /** + * Enables or disabled this module + */ enabled: Type.Boolean({ default: true }), }); diff --git a/src/types/configuration/content-evaluator-config.ts b/src/types/configuration/content-evaluator-config.ts index d1a2b4f..4b5c41d 100644 --- a/src/types/configuration/content-evaluator-config.ts +++ b/src/types/configuration/content-evaluator-config.ts @@ -1,6 +1,9 @@ import { Static, Type } from "@sinclair/typebox"; export const contentEvaluatorConfigurationType = Type.Object({ + /** + * Enables or disabled this module + */ enabled: Type.Boolean(), }); diff --git a/src/types/configuration/data-purge-config.ts b/src/types/configuration/data-purge-config.ts index ce5fc08..5fafca9 100644 --- a/src/types/configuration/data-purge-config.ts +++ b/src/types/configuration/data-purge-config.ts @@ -1,6 +1,9 @@ import { Type, Static } from "@sinclair/typebox"; export const dataPurgeConfigurationType = Type.Object({ + /** + * Enables or disabled this module + */ enabled: Type.Boolean({ default: true }), }); diff --git a/src/types/configuration/formatting-evaluator-config.ts b/src/types/configuration/formatting-evaluator-config.ts index 7be238e..4c5f44f 100644 --- a/src/types/configuration/formatting-evaluator-config.ts +++ b/src/types/configuration/formatting-evaluator-config.ts @@ -4,7 +4,13 @@ import { CommentType } from "./comment-types"; const type = Type.Union([...Object.keys(CommentType).map((key) => Type.Literal(key as keyof typeof CommentType))]); export const formattingEvaluatorConfigurationType = Type.Object({ + /** + * Enables or disabled this module + */ enabled: Type.Boolean({ default: true }), + /** + * Multipliers applied to different parts of the comment body content + */ multipliers: Type.Array( Type.Object({ type: Type.Array(type), @@ -12,6 +18,9 @@ export const formattingEvaluatorConfigurationType = Type.Object({ wordValue: Type.Number(), }) ), + /** + * Attributed score per HTML entity + */ scores: Type.Record(Type.String(), Type.Number()), }); diff --git a/src/types/configuration/github-comment-config.ts b/src/types/configuration/github-comment-config.ts index 6d2e7fa..30c1622 100644 --- a/src/types/configuration/github-comment-config.ts +++ b/src/types/configuration/github-comment-config.ts @@ -1,8 +1,17 @@ import { Static, Type } from "@sinclair/typebox"; export const githubCommentConfigurationType = Type.Object({ + /** + * Enables or disabled this module + */ enabled: Type.Boolean({ default: true }), + /** + * Enables posting to the related GitHub Issue + */ post: Type.Boolean({ default: true }), + /** + * Enables debug by creating a local html file of the rendered comment + */ debug: Type.Boolean({ default: false }), }); diff --git a/src/types/configuration/permit-generation-configuration.ts b/src/types/configuration/permit-generation-configuration.ts index f23886c..e755f2f 100644 --- a/src/types/configuration/permit-generation-configuration.ts +++ b/src/types/configuration/permit-generation-configuration.ts @@ -1,6 +1,9 @@ import { Static, Type } from "@sinclair/typebox"; export const permitGenerationConfigurationType = Type.Object({ + /** + * Enables or disabled this module + */ enabled: Type.Boolean(), }); diff --git a/src/types/configuration/user-extractor-config.ts b/src/types/configuration/user-extractor-config.ts index fc33073..4cb2bf7 100644 --- a/src/types/configuration/user-extractor-config.ts +++ b/src/types/configuration/user-extractor-config.ts @@ -1,7 +1,13 @@ import { Static, Type } from "@sinclair/typebox"; export const userExtractorConfigurationType = Type.Object({ + /** + * Enables or disabled this module + */ enabled: Type.Boolean({ default: true }), + /** + * Is the task redeemable, e.g. can the user collect the bounty? + */ redeemTask: Type.Boolean({ default: true }), }); From 42f0d6a42e0860d7a01dc02aaee982d701fd2490 Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Fri, 26 Apr 2024 11:35:11 +0900 Subject: [PATCH 12/16] chore: fixed tests --- tests/__mocks__/test-default-conf-obj.ts | 4 ++-- tests/__mocks__/test-valid-conf-obj.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/__mocks__/test-default-conf-obj.ts b/tests/__mocks__/test-default-conf-obj.ts index 45571db..8d65ce4 100644 --- a/tests/__mocks__/test-default-conf-obj.ts +++ b/tests/__mocks__/test-default-conf-obj.ts @@ -41,7 +41,7 @@ const defaultConfig = { }, multipliers: [ { - type: ["ISSUE", "ISSUER", "TASK"], + type: ["ISSUE", "ISSUER", "SPECIFICATION"], formattingMultiplier: 1, wordValue: 0.1, }, @@ -66,7 +66,7 @@ const defaultConfig = { wordValue: 0.1, }, { - type: ["REVIEW", "ISSUER", "SPECIFICATION"], + type: ["REVIEW", "ISSUER", "TASK"], formattingMultiplier: 0, wordValue: 0, }, diff --git a/tests/__mocks__/test-valid-conf-obj.ts b/tests/__mocks__/test-valid-conf-obj.ts index c64dbcc..981b93b 100644 --- a/tests/__mocks__/test-valid-conf-obj.ts +++ b/tests/__mocks__/test-valid-conf-obj.ts @@ -71,7 +71,7 @@ const validConfig = { }, multipliers: [ { - type: ["ISSUE", "ISSUER", "TASK"], + type: ["ISSUE", "ISSUER", "SPECIFICATION"], formattingMultiplier: 1, wordValue: 0.1, }, @@ -96,7 +96,7 @@ const validConfig = { wordValue: 0.1, }, { - type: ["REVIEW", "ISSUER", "SPECIFICATION"], + type: ["REVIEW", "ISSUER", "TASK"], formattingMultiplier: 0, wordValue: 0, }, From 3e90691723b4af6697a91f39adf30b34fe84684b Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Fri, 26 Apr 2024 17:02:55 +0900 Subject: [PATCH 13/16] chore: renamed configuration --- .github/{ubiquibot-config.yml => .ubiquibot-config.yml} | 0 src/utils/generate-configuration.ts | 2 +- tests/configuration.test.ts | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename .github/{ubiquibot-config.yml => .ubiquibot-config.yml} (100%) diff --git a/.github/ubiquibot-config.yml b/.github/.ubiquibot-config.yml similarity index 100% rename from .github/ubiquibot-config.yml rename to .github/.ubiquibot-config.yml diff --git a/src/utils/generate-configuration.ts b/src/utils/generate-configuration.ts index 57ea3cf..60e72f3 100644 --- a/src/utils/generate-configuration.ts +++ b/src/utils/generate-configuration.ts @@ -4,7 +4,7 @@ import mergeWith from "lodash/merge"; import YAML from "yaml"; import { BotConfig, stringDuration, validateBotConfig } from "../types"; // @ts-expect-error gets transformed by rollup -import orgConfig from "../../.github/ubiquibot-config.yml"; +import orgConfig from "../../.github/.ubiquibot-config.yml"; export function generateConfiguration(repoConfig?: BotConfig): BotConfig { const merged = mergeWith({}, orgConfig, repoConfig, (objValue: unknown, srcValue: unknown) => { diff --git a/tests/configuration.test.ts b/tests/configuration.test.ts index 71ec876..db11342 100644 --- a/tests/configuration.test.ts +++ b/tests/configuration.test.ts @@ -4,7 +4,7 @@ import { BotConfig, generateConfiguration, parseYaml, transformConfig } from ".. import validConfig from "./__mocks__/test-valid-conf-obj"; import defaultConfig from "./__mocks__/test-default-conf-obj"; -const defaultConfigFilePath = path.join(__dirname, "../.github/ubiquibot-config.yml"); +const defaultConfigFilePath = path.join(__dirname, "../.github/.ubiquibot-config.yml"); describe("Configuration generation", () => { test("Parse Yaml file", () => { From aa35c5bdf9bb93fde228094d5853398bdd6d173e Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Fri, 26 Apr 2024 17:04:28 +0900 Subject: [PATCH 14/16] v2.0.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7240dd7..77d7b6e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ubiquibot/configuration", - "version": "2.0.2", + "version": "2.0.3", "private": false, "description": "Configuration helpers for Ubiquibot.", "author": "Ubiquity DAO", From 02aa28386e60b1c8190a35545120d3fc088de2e7 Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Thu, 2 May 2024 16:33:31 +0900 Subject: [PATCH 15/16] feat!: added plugins type --- .github/.ubiquibot-config.yml | 8 + .gitignore | 1 + package.json | 4 +- src/types/configuration-types.ts | 2 + .../configuration/plugin-configuration.ts | 59 ++++ src/types/configuration/webhook-events.ts | 28 ++ tests/__mocks__/test-default-conf-obj.ts | 15 + tests/__mocks__/test-valid-conf-obj.ts | 292 ++++++++++++++++++ tsconfig.json | 2 +- yarn.lock | 50 ++- 10 files changed, 457 insertions(+), 4 deletions(-) create mode 100644 src/types/configuration/plugin-configuration.ts create mode 100644 src/types/configuration/webhook-events.ts diff --git a/.github/.ubiquibot-config.yml b/.github/.ubiquibot-config.yml index e6bebcc..a03c877 100644 --- a/.github/.ubiquibot-config.yml +++ b/.github/.ubiquibot-config.yml @@ -74,3 +74,11 @@ incentives: enabled: true post: true debug: false + +plugins: + 'issues.closed': + - uses: + - plugin: ubiquity/conversation-rewards@testing/ubiquibot-v2-testing + type: github + with: + evmNetworkId: 100 diff --git a/.gitignore b/.gitignore index 67f5611..637e5b2 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ coverage coverage.txt dist +junit.xml diff --git a/package.json b/package.json index 77d7b6e..55ce18d 100644 --- a/package.json +++ b/package.json @@ -27,8 +27,9 @@ ], "dependencies": {}, "peerDependencies": { + "@octokit/webhooks": "12.2.0", "@sinclair/typebox": "0.32.23", - "ajv": "8.12.0", + "ajv": "8.13.0", "ajv-formats": "3.0.1", "dotenv": "16.4.5", "lodash": "4.17.21", @@ -40,6 +41,7 @@ "@cspell/dict-node": "4.0.3", "@cspell/dict-software-terms": "3.3.18", "@cspell/dict-typescript": "3.1.2", + "@octokit/webhooks": "12.2.0", "@rollup/plugin-commonjs": "25.0.7", "@rollup/plugin-json": "6.1.0", "@rollup/plugin-node-resolve": "15.2.3", diff --git a/src/types/configuration-types.ts b/src/types/configuration-types.ts index 860946b..a8a6378 100644 --- a/src/types/configuration-types.ts +++ b/src/types/configuration-types.ts @@ -6,6 +6,7 @@ import { dataPurgeConfigurationType } from "./configuration/data-purge-config"; import { formattingEvaluatorConfigurationType } from "./configuration/formatting-evaluator-config"; import { githubCommentConfigurationType } from "./configuration/github-comment-config"; import { permitGenerationConfigurationType } from "./configuration/permit-generation-configuration"; +import { pluginConfigurationSchema } from "./configuration/plugin-configuration"; import { userExtractorConfigurationType } from "./configuration/user-extractor-config"; const promotionComment = @@ -114,6 +115,7 @@ const botConfigSchema = strictObject( registerWalletWithVerification: T.Boolean({ default: false }), openAiTokenLimit: T.Number({ default: 100000 }), }), + plugins: pluginConfigurationSchema, }, { default: undefined } // top level object can't have default! ); diff --git a/src/types/configuration/plugin-configuration.ts b/src/types/configuration/plugin-configuration.ts new file mode 100644 index 0000000..1591f49 --- /dev/null +++ b/src/types/configuration/plugin-configuration.ts @@ -0,0 +1,59 @@ +import { Type as T } from "@sinclair/typebox"; +import { StaticDecode } from "@sinclair/typebox"; +import { githubWebhookEvents } from "./webhook-events"; + +const pluginNameRegex = new RegExp("^([0-9a-zA-Z-._]+)\\/([0-9a-zA-Z-._]+)(?::([0-9a-zA-Z-._]+))?(?:@([0-9a-zA-Z-._]+(?:\\/[0-9a-zA-Z-._]+)?))?$"); + +type GithubPlugin = { + owner: string; + repo: string; + workflowId: string; + ref?: string; +}; + +function githubPluginType() { + return T.Transform(T.String()) + .Decode((value) => { + const matches = value.match(pluginNameRegex); + if (!matches) { + throw new Error(`Invalid plugin name: ${value}`); + } + return { + owner: matches[1], + repo: matches[2], + workflowId: matches[3] || "compute.yml", + ref: matches[4] || undefined, + } as GithubPlugin; + }) + .Encode((value) => { + return `${value.owner}/${value.repo}${value.workflowId ? ":" + value.workflowId : ""}${value.ref ? "@" + value.ref : ""}`; + }); +} + +const pluginChainSchema = T.Array( + T.Object({ + id: T.Optional(T.String()), + plugin: githubPluginType(), + type: T.Union([T.Literal("github")], { default: "github" }), + with: T.Record(T.String(), T.Unknown()), + }), + { minItems: 1 } +); + +export type PluginChain = StaticDecode; + +const handlerSchema = T.Array( + T.Object({ + name: T.Optional(T.String()), + description: T.Optional(T.String()), + command: T.Optional(T.String()), + example: T.Optional(T.String()), + uses: pluginChainSchema, + skipBotEvents: T.Boolean({ default: true }), + }), + { default: [] } +); + +export const pluginConfigurationSchema = T.Record(T.Enum(githubWebhookEvents), handlerSchema, { default: {} }); + +export type PluginConfiguration = StaticDecode; diff --git a/src/types/configuration/webhook-events.ts b/src/types/configuration/webhook-events.ts new file mode 100644 index 0000000..797f9cf --- /dev/null +++ b/src/types/configuration/webhook-events.ts @@ -0,0 +1,28 @@ +import { emitterEventNames, EmitterWebhookEventName as GitHubEventClassName } from "@octokit/webhooks"; + +export type EventName = GitHubEventClassName | "*"; +export const eventNames: EventName[] = [...emitterEventNames, "*"]; + +type Formatted = T extends `${infer Prefix}.${infer Rest}` ? `${Prefix}_${Formatted}` : T; + +type GithubEventWebHookEvents = { + [K in EventName as Formatted>]: K; +}; + +type Prettify = { + [K in keyof T]: T[K]; + // this just spreads the object into a type + + // we need to use {} otherwise it'll type it as an object + // eslint-disable-next-line @typescript-eslint/ban-types +} & {}; + +export const githubWebhookEvents: Prettify = emitterEventNames.reduce( + (acc: GithubEventWebHookEvents, cur) => { + const formatted = cur.replace(/\./g, "_"); + const upper = formatted.toUpperCase() as Formatted>; + acc[upper] = cur as Extract>; + return acc; + }, + { "*": "*" } as GithubEventWebHookEvents +); diff --git a/tests/__mocks__/test-default-conf-obj.ts b/tests/__mocks__/test-default-conf-obj.ts index 8d65ce4..0c0dd33 100644 --- a/tests/__mocks__/test-default-conf-obj.ts +++ b/tests/__mocks__/test-default-conf-obj.ts @@ -101,6 +101,21 @@ const defaultConfig = { debug: false, }, }, + plugins: { + "issues.closed": [ + { + uses: [ + { + plugin: "ubiquity/conversation-rewards@testing/ubiquibot-v2-testing", + type: "github", + with: { + evmNetworkId: 100, + }, + }, + ], + }, + ], + }, }; export default defaultConfig; diff --git a/tests/__mocks__/test-valid-conf-obj.ts b/tests/__mocks__/test-valid-conf-obj.ts index 981b93b..245c289 100644 --- a/tests/__mocks__/test-valid-conf-obj.ts +++ b/tests/__mocks__/test-valid-conf-obj.ts @@ -142,6 +142,298 @@ const validConfig = { registerWalletWithVerification: false, openAiTokenLimit: 100000, }, + plugins: { + "*": [], + "issues.closed": [ + { + skipBotEvents: true, + uses: [ + { + plugin: "ubiquity/conversation-rewards@testing/ubiquibot-v2-testing", + type: "github", + with: { + evmNetworkId: 100, + }, + }, + ], + }, + ], + branch_protection_configuration: [], + "branch_protection_rule.disabled": [], + "branch_protection_rule.enabled": [], + branch_protection_rule: [], + "branch_protection_rule.created": [], + "branch_protection_rule.deleted": [], + "branch_protection_rule.edited": [], + check_run: [], + "check_run.completed": [], + "check_run.created": [], + "check_run.requested_action": [], + "check_run.rerequested": [], + check_suite: [], + "check_suite.completed": [], + "check_suite.requested": [], + "check_suite.rerequested": [], + code_scanning_alert: [], + "code_scanning_alert.appeared_in_branch": [], + "code_scanning_alert.closed_by_user": [], + "code_scanning_alert.created": [], + "code_scanning_alert.fixed": [], + "code_scanning_alert.reopened": [], + "code_scanning_alert.reopened_by_user": [], + commit_comment: [], + "commit_comment.created": [], + create: [], + custom_property: [], + "custom_property.created": [], + "custom_property.deleted": [], + custom_property_values: [], + "custom_property_values.updated": [], + delete: [], + dependabot_alert: [], + "dependabot_alert.created": [], + "dependabot_alert.dismissed": [], + "dependabot_alert.fixed": [], + "dependabot_alert.reintroduced": [], + "dependabot_alert.reopened": [], + deploy_key: [], + "deploy_key.created": [], + "deploy_key.deleted": [], + deployment: [], + "deployment.created": [], + deployment_protection_rule: [], + "deployment_protection_rule.requested": [], + deployment_review: [], + "deployment_review.approved": [], + "deployment_review.rejected": [], + "deployment_review.requested": [], + deployment_status: [], + "deployment_status.created": [], + discussion: [], + "discussion.answered": [], + "discussion.category_changed": [], + "discussion.created": [], + "discussion.deleted": [], + "discussion.edited": [], + "discussion.labeled": [], + "discussion.locked": [], + "discussion.pinned": [], + "discussion.transferred": [], + "discussion.unanswered": [], + "discussion.unlabeled": [], + "discussion.unlocked": [], + "discussion.unpinned": [], + discussion_comment: [], + "discussion_comment.created": [], + "discussion_comment.deleted": [], + "discussion_comment.edited": [], + fork: [], + github_app_authorization: [], + "github_app_authorization.revoked": [], + gollum: [], + installation: [], + "installation.created": [], + "installation.deleted": [], + "installation.new_permissions_accepted": [], + "installation.suspend": [], + "installation.unsuspend": [], + installation_repositories: [], + "installation_repositories.added": [], + "installation_repositories.removed": [], + installation_target: [], + "installation_target.renamed": [], + issue_comment: [], + "issue_comment.created": [], + "issue_comment.deleted": [], + "issue_comment.edited": [], + issues: [], + "issues.assigned": [], + "issues.deleted": [], + "issues.demilestoned": [], + "issues.edited": [], + "issues.labeled": [], + "issues.locked": [], + "issues.milestoned": [], + "issues.opened": [], + "issues.pinned": [], + "issues.reopened": [], + "issues.transferred": [], + "issues.unassigned": [], + "issues.unlabeled": [], + "issues.unlocked": [], + "issues.unpinned": [], + label: [], + "label.created": [], + "label.deleted": [], + "label.edited": [], + marketplace_purchase: [], + "marketplace_purchase.cancelled": [], + "marketplace_purchase.changed": [], + "marketplace_purchase.pending_change": [], + "marketplace_purchase.pending_change_cancelled": [], + "marketplace_purchase.purchased": [], + member: [], + "member.added": [], + "member.edited": [], + "member.removed": [], + membership: [], + "membership.added": [], + "membership.removed": [], + merge_group: [], + "merge_group.checks_requested": [], + meta: [], + "meta.deleted": [], + milestone: [], + "milestone.closed": [], + "milestone.created": [], + "milestone.deleted": [], + "milestone.edited": [], + "milestone.opened": [], + org_block: [], + "org_block.blocked": [], + "org_block.unblocked": [], + organization: [], + "organization.deleted": [], + "organization.member_added": [], + "organization.member_invited": [], + "organization.member_removed": [], + "organization.renamed": [], + package: [], + "package.published": [], + "package.updated": [], + page_build: [], + ping: [], + project: [], + "project.closed": [], + "project.created": [], + "project.deleted": [], + "project.edited": [], + "project.reopened": [], + project_card: [], + "project_card.converted": [], + "project_card.created": [], + "project_card.deleted": [], + "project_card.edited": [], + "project_card.moved": [], + project_column: [], + "project_column.created": [], + "project_column.deleted": [], + "project_column.edited": [], + "project_column.moved": [], + projects_v2_item: [], + "projects_v2_item.archived": [], + "projects_v2_item.converted": [], + "projects_v2_item.created": [], + "projects_v2_item.deleted": [], + "projects_v2_item.edited": [], + "projects_v2_item.reordered": [], + "projects_v2_item.restored": [], + public: [], + pull_request: [], + "pull_request.assigned": [], + "pull_request.auto_merge_disabled": [], + "pull_request.auto_merge_enabled": [], + "pull_request.closed": [], + "pull_request.converted_to_draft": [], + "pull_request.demilestoned": [], + "pull_request.dequeued": [], + "pull_request.edited": [], + "pull_request.enqueued": [], + "pull_request.labeled": [], + "pull_request.locked": [], + "pull_request.milestoned": [], + "pull_request.opened": [], + "pull_request.ready_for_review": [], + "pull_request.reopened": [], + "pull_request.review_request_removed": [], + "pull_request.review_requested": [], + "pull_request.synchronize": [], + "pull_request.unassigned": [], + "pull_request.unlabeled": [], + "pull_request.unlocked": [], + pull_request_review: [], + "pull_request_review.dismissed": [], + "pull_request_review.edited": [], + "pull_request_review.submitted": [], + pull_request_review_comment: [], + "pull_request_review_comment.created": [], + "pull_request_review_comment.deleted": [], + "pull_request_review_comment.edited": [], + pull_request_review_thread: [], + "pull_request_review_thread.resolved": [], + "pull_request_review_thread.unresolved": [], + push: [], + registry_package: [], + "registry_package.published": [], + "registry_package.updated": [], + release: [], + "release.created": [], + "release.deleted": [], + "release.edited": [], + "release.prereleased": [], + "release.published": [], + "release.released": [], + "release.unpublished": [], + repository: [], + "repository.archived": [], + "repository.created": [], + "repository.deleted": [], + "repository.edited": [], + "repository.privatized": [], + "repository.publicized": [], + "repository.renamed": [], + "repository.transferred": [], + "repository.unarchived": [], + repository_dispatch: [], + repository_import: [], + repository_vulnerability_alert: [], + "repository_vulnerability_alert.create": [], + "repository_vulnerability_alert.dismiss": [], + "repository_vulnerability_alert.reopen": [], + "repository_vulnerability_alert.resolve": [], + secret_scanning_alert: [], + "secret_scanning_alert.created": [], + "secret_scanning_alert.reopened": [], + "secret_scanning_alert.resolved": [], + "secret_scanning_alert.revoked": [], + secret_scanning_alert_location: [], + "secret_scanning_alert_location.created": [], + security_advisory: [], + "security_advisory.performed": [], + "security_advisory.published": [], + "security_advisory.updated": [], + "security_advisory.withdrawn": [], + sponsorship: [], + "sponsorship.cancelled": [], + "sponsorship.created": [], + "sponsorship.edited": [], + "sponsorship.pending_cancellation": [], + "sponsorship.pending_tier_change": [], + "sponsorship.tier_changed": [], + star: [], + "star.created": [], + "star.deleted": [], + status: [], + team: [], + "team.added_to_repository": [], + "team.created": [], + "team.deleted": [], + "team.edited": [], + "team.removed_from_repository": [], + team_add: [], + watch: [], + "watch.started": [], + workflow_dispatch: [], + workflow_job: [], + "workflow_job.completed": [], + "workflow_job.in_progress": [], + "workflow_job.queued": [], + "workflow_job.waiting": [], + workflow_run: [], + "workflow_run.completed": [], + "workflow_run.in_progress": [], + "workflow_run.requested": [], + }, }; export default validConfig; diff --git a/tsconfig.json b/tsconfig.json index c72117d..e2b0aaf 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -84,7 +84,7 @@ /* Type Checking */ "strict": true /* Enable all strict type-checking options. */, // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ - // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ + "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ diff --git a/yarn.lock b/yarn.lock index 8ed05f9..76aa50b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1470,6 +1470,47 @@ dependencies: which "^4.0.0" +"@octokit/openapi-types@^22.2.0": + version "22.2.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-22.2.0.tgz#75aa7dcd440821d99def6a60b5f014207ae4968e" + integrity sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg== + +"@octokit/request-error@^5.0.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-5.1.0.tgz#ee4138538d08c81a60be3f320cd71063064a3b30" + integrity sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q== + dependencies: + "@octokit/types" "^13.1.0" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/types@^13.1.0": + version "13.5.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-13.5.0.tgz#4796e56b7b267ebc7c921dcec262b3d5bfb18883" + integrity sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ== + dependencies: + "@octokit/openapi-types" "^22.2.0" + +"@octokit/webhooks-methods@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@octokit/webhooks-methods/-/webhooks-methods-4.1.0.tgz#681a6c86c9b21d4ec9e29108fb053ae7512be033" + integrity sha512-zoQyKw8h9STNPqtm28UGOYFE7O6D4Il8VJwhAtMHFt2C4L0VQT1qGKLeefUOqHNs1mNRYSadVv7x0z8U2yyeWQ== + +"@octokit/webhooks-types@7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@octokit/webhooks-types/-/webhooks-types-7.4.0.tgz#7ed15c75908683a34e0079c80f261fe568b87395" + integrity sha512-FE2V+QZ2UYlh+9wWd5BPLNXG+J/XUD/PPq0ovS+nCcGX4+3qVbi3jYOmCTW48hg9SBBLtInx9+o7fFt4H5iP0Q== + +"@octokit/webhooks@12.2.0": + version "12.2.0" + resolved "https://registry.yarnpkg.com/@octokit/webhooks/-/webhooks-12.2.0.tgz#ea1ee2d9d9c5a4b7b53ff8bc64a9feb0dac94161" + integrity sha512-CyuLJ0/P7bKZ+kIYw+fnkeVdhUzNuDKgNSI7pU/m7Nod0T7kP+s4s2f0pNmG9HL8/RZN1S0ZWTDll3VTMrFLAw== + dependencies: + "@octokit/request-error" "^5.0.0" + "@octokit/webhooks-methods" "^4.1.0" + "@octokit/webhooks-types" "7.4.0" + aggregate-error "^3.1.0" + "@pkgjs/parseargs@^0.11.0": version "0.11.0" resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" @@ -2024,7 +2065,7 @@ acorn@^8.8.2, acorn@^8.9.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== -aggregate-error@^3.0.0: +aggregate-error@^3.0.0, aggregate-error@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== @@ -2867,6 +2908,11 @@ define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: has-property-descriptors "^1.0.0" object-keys "^1.1.1" +deprecation@^2.0.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -5249,7 +5295,7 @@ object.assign@^4.1.5: has-symbols "^1.0.3" object-keys "^1.1.1" -once@^1.3.0: +once@^1.3.0, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== From 1ad86ec88a2ed064f2fe3813aeaf50fa2ebddf55 Mon Sep 17 00:00:00 2001 From: gentlementlegen Date: Thu, 2 May 2024 16:36:57 +0900 Subject: [PATCH 16/16] chore: fixed cspell ignores --- .cspell.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cspell.json b/.cspell.json index 44418a4..fdfbd25 100644 --- a/.cspell.json +++ b/.cspell.json @@ -1,7 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json", "version": "0.2", - "ignorePaths": ["**/*.json", "**/*.css", "node_modules", "**/*.log"], + "ignorePaths": ["**/*.json", "**/*.css", "node_modules", "**/*.log", "**/tests/*"], "useGitignore": true, "language": "en", "words": ["dataurl", "devpool", "outdir", "servedir", "typebox", "supabase", "ubiquibot"],