From 24ad7703da0890a4d0509994fbf564d4d6e79d41 Mon Sep 17 00:00:00 2001 From: FilippoTrotter Date: Fri, 23 Aug 2024 12:26:49 +0200 Subject: [PATCH 01/29] initial package structure --- .gitignore | 11 +- grammar/.npmignore | 5 + grammar/package.json | 32 +++ grammar/rollup.config.js | 12 ++ grammar/src/index.ts | 30 +++ grammar/src/syntax.grammar | 420 +++++++++++++++++++++++++++++++++++++ grammar/test/cases.txt | 41 ++++ grammar/test/test.js | 17 ++ grammar/tsconfig.json | 11 + 9 files changed, 578 insertions(+), 1 deletion(-) create mode 100644 grammar/.npmignore create mode 100644 grammar/package.json create mode 100644 grammar/rollup.config.js create mode 100644 grammar/src/index.ts create mode 100644 grammar/src/syntax.grammar create mode 100644 grammar/test/cases.txt create mode 100644 grammar/test/test.js create mode 100644 grammar/tsconfig.json diff --git a/.gitignore b/.gitignore index bf40a65f..4da37f52 100644 --- a/.gitignore +++ b/.gitignore @@ -68,4 +68,13 @@ node_modules # grammar lezer !/grammar/Makefile -!/grammar/slangroom.grammar +!/grammar/src/syntax.grammar +!/grammar/src/index.ts +!/grammar/test/* +!/grammar/.npmignore +!/grammar/package.json +!/grammar/rollup.config.js +!/grammar/tsconfig.json + + + diff --git a/grammar/.npmignore b/grammar/.npmignore new file mode 100644 index 00000000..9bd97602 --- /dev/null +++ b/grammar/.npmignore @@ -0,0 +1,5 @@ +/src +/test +/node_modules +rollup.config.js +tsconfig.json diff --git a/grammar/package.json b/grammar/package.json new file mode 100644 index 00000000..d81956bb --- /dev/null +++ b/grammar/package.json @@ -0,0 +1,32 @@ +{ + "name": "codemirror-lang-EXAMPLE", + "version": "0.1.0", + "description": "EXAMPLE language support for CodeMirror", + "scripts": { + "test": "mocha test/test.js", + "prepare": "rollup -c" + }, + "type": "module", + "main": "dist/index.cjs", + "module": "dist/index.js", + "exports": { + "import": "./dist/index.js", + "require": "./dist/index.cjs" + }, + "types": "dist/index.d.ts", + "sideEffects": false, + "dependencies": { + "@codemirror/language": "^6.0.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + }, + "devDependencies": { + "@lezer/generator": "^1.0.0", + "mocha": "^9.0.1", + "rollup": "^2.60.2", + "rollup-plugin-dts": "^4.0.1", + "rollup-plugin-ts": "^3.0.2", + "typescript": "^4.3.4" + }, + "license": "MIT" +} diff --git a/grammar/rollup.config.js b/grammar/rollup.config.js new file mode 100644 index 00000000..d8d87c18 --- /dev/null +++ b/grammar/rollup.config.js @@ -0,0 +1,12 @@ +import typescript from "rollup-plugin-ts" +import {lezer} from "@lezer/generator/rollup" + +export default { + input: "src/index.ts", + external: id => id != "tslib" && !/^(\.?\/|\w:)/.test(id), + output: [ + {file: "dist/index.cjs", format: "cjs"}, + {dir: "./dist", format: "es"} + ], + plugins: [lezer(), typescript()] +} diff --git a/grammar/src/index.ts b/grammar/src/index.ts new file mode 100644 index 00000000..426febca --- /dev/null +++ b/grammar/src/index.ts @@ -0,0 +1,30 @@ +import {parser} from "./syntax.grammar" +import {LRLanguage, LanguageSupport, indentNodeProp, foldNodeProp, foldInside, delimitedIndent} from "@codemirror/language" +import {styleTags, tags as t} from "@lezer/highlight" + +export const EXAMPLELanguage = LRLanguage.define({ + parser: parser.configure({ + props: [ + indentNodeProp.add({ + Application: delimitedIndent({closing: ")", align: false}) + }), + foldNodeProp.add({ + Application: foldInside + }), + styleTags({ + Identifier: t.variableName, + Boolean: t.bool, + String: t.string, + LineComment: t.lineComment, + "( )": t.paren + }) + ] + }), + languageData: { + commentTokens: {line: ";"} + } +}) + +export function EXAMPLE() { + return new LanguageSupport(EXAMPLELanguage) +} diff --git a/grammar/src/syntax.grammar b/grammar/src/syntax.grammar new file mode 100644 index 00000000..9cd0e07e --- /dev/null +++ b/grammar/src/syntax.grammar @@ -0,0 +1,420 @@ +@top Statement { + (RuleStatement? SlangroomStatement) +} + +SlangroomStatement { + (GivenStatement | ThenStatement | ThenPrint | GivenHaveStatement | GivenIamStatement | WhenStatement | IfEndifStatement)* +} + +RuleStatement { + kw<"Rule"> (VersionRule | UnknownIgnoreRule) +} + +ScenarioStatement { + kw<"Scenario"> StringLiteral ":" (Identifier | Keywords)+ +} + +VersionRule { + kw<"version"> VersionNumber +} + +UnknownIgnoreRule { + kw<"unknown"> kw<"ignore"> +} + +VersionNumber { + Number '.'? Number? '.'? Number? +} + +@skip { + space | newline | comment +} + +GivenStatement { + kw<"Given"> kw<"I"> + (DbStatement | EthereumStatement | FsStatement | GitStatement | HelpersStatement | HttpStatement | JsonSchemaStatement | OAuthStatement | PocketbaseStatement | QrCodeStatement | RedisStatement | ShellStatement | TimestampStatement | WalletStatement | ZencodeStatement) +} + +ThenStatement { + kw<"Then"> kw<"I"> + (DbStatement | EthereumStatement | FsStatement | GitStatement | HelpersStatement | HttpStatement | JsonSchemaStatement | OAuthStatement | PocketbaseStatement | QrCodeStatement | RedisStatement | ShellStatement | TimestampStatement | WalletStatement | ZencodeStatement) +} + +ThenPrint { + kw<"Then"> kw<"print"> (StringLiteral | Identifier | Keywords)+ +} + +GivenHaveStatement { + kw<"Given"> kw<"that">? kw<"I"> kw<"have"> (kw<"a">? | kw<"my">?) kw<"valid">? StringLiteral kw<"inside">? kw<"named">? StringLiteral? + (kw <"and"> kw<"I"> kw<"have"> (kw<"a">? | kw<"my">?) kw<"valid">? StringLiteral kw<"inside">? kw<"named">? StringLiteral?)* +} + +GivenIamStatement { + kw<"Given"> kw<"I"> kw<"am"> + (kw<"known"> kw<"as">)? StringLiteral +} + +WhenStatement { + kw<"When"> kw<"I"> (Identifier | Keywords | StringLiteral)+ +} + +IfEndifStatement{ + Condition+ (WhenStatement | ThenStatement | ThenPrint)* kw<"Endif"> +} + +Condition { + kw<"If"> kw<"I"> kw<"verify"> (Identifier | Keywords | StringLiteral)+ + } + +// ===== Plugin-Specific Statements ===== + +DbStatement { + DbConnectAction (kw<"and">? SaveAction)* +} + +EthereumStatement { + EthereumConnectAction (kw<"and">? SaveAction)* +} + +FsStatement { + FsConnectAction (kw<"and">? SaveAction)* +} + +GitStatement { + GitOpenOrConnectAction (kw<"and">? SaveAction)* +} + +HelpersStatement { + HelpersSend (kw<"and">? SaveAction)* +} + +HttpStatement { + HttpConnectAction (kw<"and">? SaveAction)* +} + +JsonSchemaStatement { + JsonSchemaSend (kw<"and">? SaveAction)* +} + +OAuthStatement { + OAuthSend (kw<"and">? SaveAction)* +} + +PocketbaseStatement { + PocketbaseConnectAction (kw<"and">? SaveAction)* +} + +QrCodeStatement { + QrCodeSend (kw<"and">? SaveAction)* +} + +RedisStatement { + RedisConnectAction (kw<"and">? SaveAction)* +} + +ShellStatement { + ShellSend (kw<"and">? SaveAction)* +} + +TimestampStatement { + TimestampAction (kw<"and">? SaveAction)* +} + +WalletStatement { + WalletSend (kw<"and">? SaveAction)* +} + +ZencodeStatement { + ZencodeSend (kw<"and">? SaveAction)* +} + +// ===== Connect Actions ===== + +DbConnectAction { + ((kw<"connect"> kw<"to"> StringLiteral) kw<"and">)? DbSend +} + +EthereumConnectAction { + ((kw<"connect"> kw<"to"> StringLiteral) kw<"and">)? EthereumSend +} + +FsConnectAction { + ((kw<"connect"> kw<"to"> StringLiteral) kw<"and">)? FsSend +} + +GitOpenOrConnectAction { + ((kw<"open"> kw<"the"> StringLiteral | kw<"connect"> kw<"to"> StringLiteral) kw<"and">)? GitSend +} + +HttpConnectAction { + ((kw<"connect"> kw<"to"> StringLiteral) kw<"and">)? HttpSend +} + +PocketbaseConnectAction { + ((kw<"connect"> kw<"to"> StringLiteral) kw<"and">)? PocketbaseSend +} + +RedisConnectAction { + ((kw<"connect"> kw<"to"> StringLiteral) kw<"and">)? RedisSend +} + +// ===== Send Actions ===== + +DbSend { + ((kw<"send"> (kw<"statement"> | kw<"parameters"> | kw<"record"> | kw<"table"> | kw<"variable"> | kw<"name">) StringLiteral) kw<"and">) + (DbAction | DbSend) +} + +EthereumSend { + ((kw<"send"> (kw<"address"> | kw<"transaction_id"> | kw<"addresses"> | kw<"transaction"> | kw<"sc">) StringLiteral) kw<"and">) + (EthereumAction | EthereumSend) +} + +FsSend { + ((kw<"send"> (kw<"path"> | kw<"content">) StringLiteral) kw<"and">) + (FsAction | FsSend) +} + +GitSend { + ((kw<"send"> (kw<"path"> | kw<"commit">) StringLiteral) kw<"and">) GitAction +} + +HelpersSend { + ((kw<"send"> (kw<"paths"> | kw<"array"> | kw<"values"> | kw<"properties">) StringLiteral) kw<"and">) + (HelpersAction | HelpersSend) +} + +HttpSend { + ((kw<"send"> (kw<"headers"> | kw<"object">) StringLiteral) kw<"and">) + (HttpAction | HttpSend) +} + +JsonSchemaSend { + ((kw<"send"> (kw<"json_data"> | kw<"json_schema">) StringLiteral) kw<"and">) + (JsonSchemaAction | JsonSchemaSend) +} + +OAuthSend { + ((kw<"send"> (kw<"request"> | kw<"server_data"> | kw<"client"> | kw<"expires_in"> | kw<"token"> | kw<"request_uri"> | kw<"data">) StringLiteral) kw<"and">) + (OAuthAction | OAuthSend) +} + +PocketbaseSend { + ((kw<"send"> (kw<"my_credentials"> | kw<"email"> | kw<"list_parameters"> | kw<"show_parameters"> | kw<"create_parameters"> | kw<"record_parameters"> | kw<"update_parameters"> | kw<"delete_parameters"> | kw<"url"> | kw<"send_parameters">) StringLiteral) kw<"and">) + (PocketbaseAction | PocketbaseSend) +} + +QrCodeSend { + ((kw<"send"> kw<"text"> StringLiteral) kw<"and">) QrCodeAction +} + +RedisSend { + ((kw<"send"> (kw<"key"> | kw<"object">) StringLiteral) kw<"and">) + (RedisAction | RedisSend) +} + +ShellSend { + ((kw<"send"> (kw<"command">) StringLiteral) kw<"and">) ShellAction +} + +WalletSend { + ((kw<"send"> (kw<"jwk"> | kw<"object"> | kw<"holder"> | kw<"fields"> | kw<"verifier_url"> | kw<"issued_vc"> | kw<"disclosed"> | kw<"nonce"> | kw<"sk"> | kw<"token">) StringLiteral) kw<"and">) + (WalletAction | WalletSend) +} + +ZencodeSend { + ((kw<"send"> (kw<"script"> | kw<"data"> | kw<"keys"> | kw<"extra"> | kw<"conf">) StringLiteral) kw<"and">) + (ZencodeAction | ZencodeSend) +} + +// ===== Execute Actions ===== + +DbAction { + kw<"execute"> kw<"sql"> kw<"statement"> | + kw<"execute"> kw<"sql"> kw<"statement"> kw<"with"> kw<"parameters"> | + kw<"read"> kw<"the"> kw<"record"> kw<"of"> kw<"the"> kw<"table"> | + kw<"save"> kw<"the"> kw<"variable"> kw<"in"> kw<"the"> kw<"database"> kw<"table"> +} + +EthereumAction { + kw<"read"> kw<"the"> kw<"ethereum"> kw<"nonce"> | + kw<"read"> kw<"the"> kw<"ethereum"> kw<"bytes"> | + kw<"read"> kw<"the"> kw<"ethereum"> kw<"balance"> | + kw<"read"> kw<"the"> kw<"ethereum"> kw<"suggested"> kw<"gas"> kw<"price"> | + kw<"read"> kw<"the"> kw<"ethereum"> kw<"transaction"> kw<"id"> kw<"after"> kw<"broadcast"> | + kw<"read"> kw<"the"> kw<"erc20"> kw<"decimals"> | + kw<"read"> kw<"the"> kw<"erc20"> kw<"name"> | + kw<"read"> kw<"the"> kw<"erc20"> kw<"symbol"> | + kw<"read"> kw<"the"> kw<"erc20"> kw<"balance"> | + kw<"read"> kw<"the"> kw<"erc20"> kw<"total"> kw<"supply"> | + kw<"read"> kw<"the"> kw<"erc721"> kw<"id"> kw<"in"> kw<"transaction"> | + kw<"read"> kw<"the"> kw<"erc721"> kw<"owner"> | + kw<"read"> kw<"the"> kw<"erc721"> kw<"asset"> +} + +FsAction { + kw<"download"> kw<"and"> kw<"extract"> | + kw<"read"> kw<"file"> kw<"content"> | + kw<"read"> kw<"verbatim"> kw<"file"> kw<"content"> | + kw<"store"> kw<"in"> kw<"file"> | + kw<"list"> kw<"directory"> kw<"content"> | + kw<"verify"> kw<"file"> kw<"exists"> | + kw<"verify"> kw<"file"> kw<"does"> kw<"not"> kw<"exist"> +} + +GitAction { + kw<"verify"> kw<"git"> kw<"repository"> | + kw<"clone"> kw<"repository"> | + kw<"create"> kw<"new"> kw<"git"> kw<"commit"> +} + +HelpersAction { + kw<"manipulate"> kw<"and"> kw<"get"> | + kw<"manipulate"> kw<"and"> kw<"set"> | + kw<"manipulate"> kw<"and"> kw<"merge"> | + kw<"manipulate"> kw<"and"> kw<"omit"> | + kw<"manipulate"> kw<"and"> kw<"concat"> | + kw<"manipulate"> kw<"and"> kw<"compact"> | + kw<"manipulate"> kw<"and"> kw<"pick"> | + kw<"manipulate"> kw<"and"> kw<"delete"> +} + +HttpAction { + kw<"do"> kw<"get"> | + kw<"do"> kw<"sequential"> kw<"get"> | + kw<"do"> kw<"parallel"> kw<"get"> | + kw<"do"> kw<"same"> kw<"get"> | + kw<"do"> kw<"post"> | + kw<"do"> kw<"sequential"> kw<"post"> | + kw<"do"> kw<"parallel"> kw<"post"> | + kw<"do"> kw<"same"> kw<"post"> | + kw<"do"> kw<"put"> | + kw<"do"> kw<"sequential"> kw<"put"> | + kw<"do"> kw<"parallel"> kw<"put"> | + kw<"do"> kw<"same"> kw<"put"> | + kw<"do"> kw<"patch"> | + kw<"do"> kw<"sequential"> kw<"patch"> | + kw<"do"> kw<"parallel"> kw<"patch"> | + kw<"do"> kw<"same"> kw<"patch"> | + kw<"do"> kw<"delete"> | + kw<"do"> kw<"sequential"> kw<"delete"> | + kw<"do"> kw<"parallel"> kw<"delete"> | + kw<"do"> kw<"same"> kw<"delete"> +} + +JsonSchemaAction { + kw<"validate"> kw<"json"> +} + +OAuthAction { + kw<"generate"> kw<"access"> kw<"token"> | + kw<"verify"> kw<"request"> kw<"parameters"> | + kw<"generate"> kw<"authorization"> kw<"code"> | + kw<"generate"> kw<"request"> kw<"uri"> | + kw<"get"> kw<"authorization"> kw<"details"> kw<"from"> kw<"token"> | + kw<"add"> kw<"data"> kw<"to"> kw<"authorization"> kw<"details"> +} + +PocketbaseAction { + kw<"start"> kw<"pb"> kw<"client"> | + kw<"start"> kw<"capacitor"> kw<"pb"> kw<"client"> | + kw<"login"> | + kw<"ask"> kw<"password"> kw<"reset"> | + kw<"get"> kw<"some"> kw<"records"> | + kw<"get"> kw<"one"> kw<"record"> | + kw<"create"> kw<"record"> | + kw<"update"> kw<"record"> | + kw<"delete"> kw<"record"> | + kw<"send"> kw<"request"> +} + +QrCodeAction { + kw<"create"> kw<"qr"> kw<"code"> +} + +RedisAction { + kw<"write"> kw<"object"> kw<"into"> kw<"key"> kw<"in"> kw<"redis"> | + kw<"read"> kw<"key"> kw<"from"> kw<"redis"> | + kw<"delete"> kw<"key"> kw<"from"> kw<"redis"> +} + +ShellAction { + kw<"execute"> kw<"in"> kw<"shell"> +} + +TimestampAction { + kw<"fetch"> kw<"the"> kw<"local"> kw<"timestamp"> kw<"in"> kw<"milliseconds"> | + kw<"fetch"> kw<"the"> kw<"local"> kw<"timestamp"> kw<"in"> kw<"seconds"> +} + +WalletAction { + kw<"create"> kw<"vc"> kw<"sd"> kw<"jwt"> | + kw<"present"> kw<"vc"> kw<"sd"> kw<"jwt"> | + kw<"verify"> kw<"vc"> kw<"sd"> kw<"jwt"> | + kw<"create"> kw<"p-256"> kw<"key"> | + kw<"create"> kw<"p-256"> kw<"public"> kw<"key"> | + kw<"pretty"> kw<"print"> kw<"sd"> kw<"jwt"> +} + +ZencodeAction { + kw<"execute"> kw<"zencode"> +} + +SaveAction { + kw<"output"> kw<"into"> StringLiteral +} + +kw { + @specialize[@name={term}] +} + +Keywords { + kw<"Rule"> | kw<"version"> | kw<"unknown"> | kw<"ignore"> | + kw<"have"> | kw<"a"> | kw<"my"> | kw<"that"> | kw<"valid"> | kw<"inside"> | kw<"named"> | kw<"am"> | kw<"known"> | + kw<"as"> | kw<"connect"> | kw<"to"> | kw<"and"> | kw<"send"> | + kw<"statement"> | kw<"parameters"> | kw<"record"> | kw<"table"> | + kw<"variable"> | kw<"name"> | kw<"address"> | kw<"transaction_id"> | + kw<"addresses"> | kw<"transaction"> | kw<"sc"> | kw<"path"> | + kw<"content"> | kw<"commit"> | kw<"paths"> | kw<"array"> | + kw<"values"> | kw<"properties"> | kw<"headers"> | kw<"object"> | + kw<"json_data"> | kw<"json_schema"> | kw<"request"> | kw<"server_data"> | + kw<"client"> | kw<"expires_in"> | kw<"token"> | kw<"request_uri"> | + kw<"data"> | kw<"my_credentials"> | kw<"email"> | kw<"list_parameters"> | + kw<"show_parameters"> | kw<"create_parameters"> | kw<"record_parameters"> | + kw<"update_parameters"> | kw<"delete_parameters"> | kw<"url"> | + kw<"text"> | kw<"command"> | kw<"jwk"> | kw<"holder"> | kw<"fields"> | + kw<"verifier_url"> | kw<"issued_vc"> | kw<"disclosed"> | kw<"nonce"> | + kw<"sk"> | kw<"script"> | kw<"keys"> | kw<"extra"> | kw<"conf"> | + kw<"execute"> | kw<"sql"> | kw<"with"> | kw<"read"> | kw<"the"> | + kw<"of"> | kw<"database"> | kw<"save"> | kw<"ethereum"> | kw<"bytes"> | + kw<"balance"> | kw<"suggested"> | kw<"gas"> | kw<"price"> | + kw<"transaction"> | kw<"id"> | kw<"after"> | kw<"broadcast"> | + kw<"erc20"> | kw<"decimals"> | kw<"name"> | kw<"symbol"> | kw<"total"> | + kw<"supply"> | kw<"erc721"> | kw<"in"> | kw<"owner"> | + kw<"asset"> | kw<"download"> | kw<"extract"> | kw<"verbatim"> | + kw<"store"> | kw<"list"> | kw<"directory"> | kw<"exists"> | + kw<"does"> | kw<"not"> | kw<"exist"> | kw<"verify"> | kw<"repository"> | + kw<"clone"> | kw<"create"> | kw<"new"> | kw<"manipulate"> | + kw<"get"> | kw<"set"> | kw<"merge"> | kw<"omit"> | kw<"concat"> | + kw<"compact"> | kw<"pick"> | kw<"do"> | kw<"sequential"> | + kw<"parallel"> | kw<"same"> | kw<"post"> | kw<"put"> | kw<"patch"> | + kw<"validate"> | kw<"json"> | kw<"generate"> | + kw<"access"> | kw<"authorization"> | kw<"code"> | kw<"details"> | kw<"from"> | + kw<"add"> | kw<"to"> | kw<"start"> | kw<"pb"> | kw<"capacitor"> | + kw<"login"> | kw<"ask"> | kw<"password"> | kw<"reset"> | kw<"some"> | + kw<"records"> | kw<"one"> | kw<"qr"> | kw<"write"> | kw<"into"> | + kw<"redis"> | kw<"delete"> | kw<"shell"> | kw<"fetch"> | + kw<"local"> | kw<"timestamp"> | kw<"milliseconds"> | kw<"seconds"> | + kw<"vc"> | kw<"sd"> | kw<"jwt"> | kw<"p-256"> | kw<"public"> | + kw<"pretty"> | kw<"print"> | kw<"zencode"> | kw<"output"> +} + +@tokens { + space { " " | "\t" } + newline { "\n" | "\r\n" } + comment { "#" (![\n])* } + StringLiteral { "'" (![\\\n'] | "\\" _)* "'" } + symbols { $[a-zA-Z_] | "_" } + Identifier { symbols+ } + Number { $[0-9]+ } +} diff --git a/grammar/test/cases.txt b/grammar/test/cases.txt new file mode 100644 index 00000000..24161e00 --- /dev/null +++ b/grammar/test/cases.txt @@ -0,0 +1,41 @@ +# Booleans + +#t +#f + +==> + +Program(Boolean, Boolean) + +# Identifiers + +one +Two_Three + +==> + +Program(Identifier, Identifier) + +# Strings + +"hello" +"one\"\\two" + +==> + +Program(String, String) + +# Applications + +(begin + (when #t + (print (concat "hello" " " "world"))) + (print "DONE")) + +==> + +Program(Application( + Identifier, + Application(Identifier, Boolean, Application( + Identifier, Application(Identifier, String, String, String))) + Application(Identifier, String))) diff --git a/grammar/test/test.js b/grammar/test/test.js new file mode 100644 index 00000000..966f234b --- /dev/null +++ b/grammar/test/test.js @@ -0,0 +1,17 @@ +import {EXAMPLELanguage} from "../dist/index.js" +import {fileTests} from "@lezer/generator/dist/test" + +import * as fs from "fs" +import * as path from "path" +import { fileURLToPath } from 'url'; +let caseDir = path.dirname(fileURLToPath(import.meta.url)) + +for (let file of fs.readdirSync(caseDir)) { + if (!/\.txt$/.test(file)) continue + + let name = /^[^\.]*/.exec(file)[0] + describe(name, () => { + for (let {name, run} of fileTests(fs.readFileSync(path.join(caseDir, file), "utf8"), file)) + it(name, () => run(EXAMPLELanguage.parser)) + }) +} diff --git a/grammar/tsconfig.json b/grammar/tsconfig.json new file mode 100644 index 00000000..d8761521 --- /dev/null +++ b/grammar/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "strict": true, + "target": "es6", + "module": "es2020", + "newLine": "lf", + "declaration": true, + "moduleResolution": "node" + }, + "include": ["src/*.ts"] +} From 08543f5fe2d78f3158a9b968e0ba48ba5315db77 Mon Sep 17 00:00:00 2001 From: FilippoTrotter Date: Fri, 23 Aug 2024 14:28:04 +0200 Subject: [PATCH 02/29] change example to slangroom --- grammar/package.json | 4 ++-- grammar/src/index.ts | 6 +++--- grammar/test/test.js | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/grammar/package.json b/grammar/package.json index d81956bb..718591e3 100644 --- a/grammar/package.json +++ b/grammar/package.json @@ -1,7 +1,7 @@ { - "name": "codemirror-lang-EXAMPLE", + "name": "codemirror-lang-Slangroom", "version": "0.1.0", - "description": "EXAMPLE language support for CodeMirror", + "description": "Slangroom language support for CodeMirror", "scripts": { "test": "mocha test/test.js", "prepare": "rollup -c" diff --git a/grammar/src/index.ts b/grammar/src/index.ts index 426febca..7dccdae9 100644 --- a/grammar/src/index.ts +++ b/grammar/src/index.ts @@ -2,7 +2,7 @@ import {parser} from "./syntax.grammar" import {LRLanguage, LanguageSupport, indentNodeProp, foldNodeProp, foldInside, delimitedIndent} from "@codemirror/language" import {styleTags, tags as t} from "@lezer/highlight" -export const EXAMPLELanguage = LRLanguage.define({ +export const SlangroomLanguage = LRLanguage.define({ parser: parser.configure({ props: [ indentNodeProp.add({ @@ -25,6 +25,6 @@ export const EXAMPLELanguage = LRLanguage.define({ } }) -export function EXAMPLE() { - return new LanguageSupport(EXAMPLELanguage) +export function Slangroom() { + return new LanguageSupport(SlangroomLanguage) } diff --git a/grammar/test/test.js b/grammar/test/test.js index 966f234b..f09ed137 100644 --- a/grammar/test/test.js +++ b/grammar/test/test.js @@ -1,4 +1,4 @@ -import {EXAMPLELanguage} from "../dist/index.js" +import {SlangroomLanguage} from "../dist/index.js" import {fileTests} from "@lezer/generator/dist/test" import * as fs from "fs" @@ -12,6 +12,6 @@ for (let file of fs.readdirSync(caseDir)) { let name = /^[^\.]*/.exec(file)[0] describe(name, () => { for (let {name, run} of fileTests(fs.readFileSync(path.join(caseDir, file), "utf8"), file)) - it(name, () => run(EXAMPLELanguage.parser)) + it(name, () => run(SlangroomLanguage.parser)) }) } From 2d278b717bc2999f654686efcdcf85a2ed5da7a8 Mon Sep 17 00:00:00 2001 From: FilippoTrotter Date: Fri, 23 Aug 2024 14:36:05 +0200 Subject: [PATCH 03/29] fix: scenario statement --- grammar/src/syntax.grammar | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grammar/src/syntax.grammar b/grammar/src/syntax.grammar index 9cd0e07e..cfb1004b 100644 --- a/grammar/src/syntax.grammar +++ b/grammar/src/syntax.grammar @@ -1,5 +1,5 @@ @top Statement { - (RuleStatement? SlangroomStatement) + (RuleStatement? ScenarioStatement? SlangroomStatement) } SlangroomStatement { From 182581e1cbed6374a0373519770edecf19b8ab42 Mon Sep 17 00:00:00 2001 From: FilippoTrotter Date: Fri, 23 Aug 2024 14:36:35 +0200 Subject: [PATCH 04/29] update makefile --- grammar/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grammar/Makefile b/grammar/Makefile index d6ccd412..b82dcd2b 100644 --- a/grammar/Makefile +++ b/grammar/Makefile @@ -1,2 +1,2 @@ slangroom.js: - lezer-generator slangroom.grammar -o slangroom.js + lezer-generator src/syntax.grammar -o src/slangroom.js From 31700f62a2e60ed88b36ff78da79733110feaf9c Mon Sep 17 00:00:00 2001 From: FilippoTrotter Date: Fri, 23 Aug 2024 15:25:04 +0200 Subject: [PATCH 05/29] add first simple tests --- grammar/slangroom.grammar | 420 -------------------------------------- grammar/test/cases.txt | 41 +--- 2 files changed, 11 insertions(+), 450 deletions(-) delete mode 100644 grammar/slangroom.grammar diff --git a/grammar/slangroom.grammar b/grammar/slangroom.grammar deleted file mode 100644 index 9cd0e07e..00000000 --- a/grammar/slangroom.grammar +++ /dev/null @@ -1,420 +0,0 @@ -@top Statement { - (RuleStatement? SlangroomStatement) -} - -SlangroomStatement { - (GivenStatement | ThenStatement | ThenPrint | GivenHaveStatement | GivenIamStatement | WhenStatement | IfEndifStatement)* -} - -RuleStatement { - kw<"Rule"> (VersionRule | UnknownIgnoreRule) -} - -ScenarioStatement { - kw<"Scenario"> StringLiteral ":" (Identifier | Keywords)+ -} - -VersionRule { - kw<"version"> VersionNumber -} - -UnknownIgnoreRule { - kw<"unknown"> kw<"ignore"> -} - -VersionNumber { - Number '.'? Number? '.'? Number? -} - -@skip { - space | newline | comment -} - -GivenStatement { - kw<"Given"> kw<"I"> - (DbStatement | EthereumStatement | FsStatement | GitStatement | HelpersStatement | HttpStatement | JsonSchemaStatement | OAuthStatement | PocketbaseStatement | QrCodeStatement | RedisStatement | ShellStatement | TimestampStatement | WalletStatement | ZencodeStatement) -} - -ThenStatement { - kw<"Then"> kw<"I"> - (DbStatement | EthereumStatement | FsStatement | GitStatement | HelpersStatement | HttpStatement | JsonSchemaStatement | OAuthStatement | PocketbaseStatement | QrCodeStatement | RedisStatement | ShellStatement | TimestampStatement | WalletStatement | ZencodeStatement) -} - -ThenPrint { - kw<"Then"> kw<"print"> (StringLiteral | Identifier | Keywords)+ -} - -GivenHaveStatement { - kw<"Given"> kw<"that">? kw<"I"> kw<"have"> (kw<"a">? | kw<"my">?) kw<"valid">? StringLiteral kw<"inside">? kw<"named">? StringLiteral? - (kw <"and"> kw<"I"> kw<"have"> (kw<"a">? | kw<"my">?) kw<"valid">? StringLiteral kw<"inside">? kw<"named">? StringLiteral?)* -} - -GivenIamStatement { - kw<"Given"> kw<"I"> kw<"am"> - (kw<"known"> kw<"as">)? StringLiteral -} - -WhenStatement { - kw<"When"> kw<"I"> (Identifier | Keywords | StringLiteral)+ -} - -IfEndifStatement{ - Condition+ (WhenStatement | ThenStatement | ThenPrint)* kw<"Endif"> -} - -Condition { - kw<"If"> kw<"I"> kw<"verify"> (Identifier | Keywords | StringLiteral)+ - } - -// ===== Plugin-Specific Statements ===== - -DbStatement { - DbConnectAction (kw<"and">? SaveAction)* -} - -EthereumStatement { - EthereumConnectAction (kw<"and">? SaveAction)* -} - -FsStatement { - FsConnectAction (kw<"and">? SaveAction)* -} - -GitStatement { - GitOpenOrConnectAction (kw<"and">? SaveAction)* -} - -HelpersStatement { - HelpersSend (kw<"and">? SaveAction)* -} - -HttpStatement { - HttpConnectAction (kw<"and">? SaveAction)* -} - -JsonSchemaStatement { - JsonSchemaSend (kw<"and">? SaveAction)* -} - -OAuthStatement { - OAuthSend (kw<"and">? SaveAction)* -} - -PocketbaseStatement { - PocketbaseConnectAction (kw<"and">? SaveAction)* -} - -QrCodeStatement { - QrCodeSend (kw<"and">? SaveAction)* -} - -RedisStatement { - RedisConnectAction (kw<"and">? SaveAction)* -} - -ShellStatement { - ShellSend (kw<"and">? SaveAction)* -} - -TimestampStatement { - TimestampAction (kw<"and">? SaveAction)* -} - -WalletStatement { - WalletSend (kw<"and">? SaveAction)* -} - -ZencodeStatement { - ZencodeSend (kw<"and">? SaveAction)* -} - -// ===== Connect Actions ===== - -DbConnectAction { - ((kw<"connect"> kw<"to"> StringLiteral) kw<"and">)? DbSend -} - -EthereumConnectAction { - ((kw<"connect"> kw<"to"> StringLiteral) kw<"and">)? EthereumSend -} - -FsConnectAction { - ((kw<"connect"> kw<"to"> StringLiteral) kw<"and">)? FsSend -} - -GitOpenOrConnectAction { - ((kw<"open"> kw<"the"> StringLiteral | kw<"connect"> kw<"to"> StringLiteral) kw<"and">)? GitSend -} - -HttpConnectAction { - ((kw<"connect"> kw<"to"> StringLiteral) kw<"and">)? HttpSend -} - -PocketbaseConnectAction { - ((kw<"connect"> kw<"to"> StringLiteral) kw<"and">)? PocketbaseSend -} - -RedisConnectAction { - ((kw<"connect"> kw<"to"> StringLiteral) kw<"and">)? RedisSend -} - -// ===== Send Actions ===== - -DbSend { - ((kw<"send"> (kw<"statement"> | kw<"parameters"> | kw<"record"> | kw<"table"> | kw<"variable"> | kw<"name">) StringLiteral) kw<"and">) - (DbAction | DbSend) -} - -EthereumSend { - ((kw<"send"> (kw<"address"> | kw<"transaction_id"> | kw<"addresses"> | kw<"transaction"> | kw<"sc">) StringLiteral) kw<"and">) - (EthereumAction | EthereumSend) -} - -FsSend { - ((kw<"send"> (kw<"path"> | kw<"content">) StringLiteral) kw<"and">) - (FsAction | FsSend) -} - -GitSend { - ((kw<"send"> (kw<"path"> | kw<"commit">) StringLiteral) kw<"and">) GitAction -} - -HelpersSend { - ((kw<"send"> (kw<"paths"> | kw<"array"> | kw<"values"> | kw<"properties">) StringLiteral) kw<"and">) - (HelpersAction | HelpersSend) -} - -HttpSend { - ((kw<"send"> (kw<"headers"> | kw<"object">) StringLiteral) kw<"and">) - (HttpAction | HttpSend) -} - -JsonSchemaSend { - ((kw<"send"> (kw<"json_data"> | kw<"json_schema">) StringLiteral) kw<"and">) - (JsonSchemaAction | JsonSchemaSend) -} - -OAuthSend { - ((kw<"send"> (kw<"request"> | kw<"server_data"> | kw<"client"> | kw<"expires_in"> | kw<"token"> | kw<"request_uri"> | kw<"data">) StringLiteral) kw<"and">) - (OAuthAction | OAuthSend) -} - -PocketbaseSend { - ((kw<"send"> (kw<"my_credentials"> | kw<"email"> | kw<"list_parameters"> | kw<"show_parameters"> | kw<"create_parameters"> | kw<"record_parameters"> | kw<"update_parameters"> | kw<"delete_parameters"> | kw<"url"> | kw<"send_parameters">) StringLiteral) kw<"and">) - (PocketbaseAction | PocketbaseSend) -} - -QrCodeSend { - ((kw<"send"> kw<"text"> StringLiteral) kw<"and">) QrCodeAction -} - -RedisSend { - ((kw<"send"> (kw<"key"> | kw<"object">) StringLiteral) kw<"and">) - (RedisAction | RedisSend) -} - -ShellSend { - ((kw<"send"> (kw<"command">) StringLiteral) kw<"and">) ShellAction -} - -WalletSend { - ((kw<"send"> (kw<"jwk"> | kw<"object"> | kw<"holder"> | kw<"fields"> | kw<"verifier_url"> | kw<"issued_vc"> | kw<"disclosed"> | kw<"nonce"> | kw<"sk"> | kw<"token">) StringLiteral) kw<"and">) - (WalletAction | WalletSend) -} - -ZencodeSend { - ((kw<"send"> (kw<"script"> | kw<"data"> | kw<"keys"> | kw<"extra"> | kw<"conf">) StringLiteral) kw<"and">) - (ZencodeAction | ZencodeSend) -} - -// ===== Execute Actions ===== - -DbAction { - kw<"execute"> kw<"sql"> kw<"statement"> | - kw<"execute"> kw<"sql"> kw<"statement"> kw<"with"> kw<"parameters"> | - kw<"read"> kw<"the"> kw<"record"> kw<"of"> kw<"the"> kw<"table"> | - kw<"save"> kw<"the"> kw<"variable"> kw<"in"> kw<"the"> kw<"database"> kw<"table"> -} - -EthereumAction { - kw<"read"> kw<"the"> kw<"ethereum"> kw<"nonce"> | - kw<"read"> kw<"the"> kw<"ethereum"> kw<"bytes"> | - kw<"read"> kw<"the"> kw<"ethereum"> kw<"balance"> | - kw<"read"> kw<"the"> kw<"ethereum"> kw<"suggested"> kw<"gas"> kw<"price"> | - kw<"read"> kw<"the"> kw<"ethereum"> kw<"transaction"> kw<"id"> kw<"after"> kw<"broadcast"> | - kw<"read"> kw<"the"> kw<"erc20"> kw<"decimals"> | - kw<"read"> kw<"the"> kw<"erc20"> kw<"name"> | - kw<"read"> kw<"the"> kw<"erc20"> kw<"symbol"> | - kw<"read"> kw<"the"> kw<"erc20"> kw<"balance"> | - kw<"read"> kw<"the"> kw<"erc20"> kw<"total"> kw<"supply"> | - kw<"read"> kw<"the"> kw<"erc721"> kw<"id"> kw<"in"> kw<"transaction"> | - kw<"read"> kw<"the"> kw<"erc721"> kw<"owner"> | - kw<"read"> kw<"the"> kw<"erc721"> kw<"asset"> -} - -FsAction { - kw<"download"> kw<"and"> kw<"extract"> | - kw<"read"> kw<"file"> kw<"content"> | - kw<"read"> kw<"verbatim"> kw<"file"> kw<"content"> | - kw<"store"> kw<"in"> kw<"file"> | - kw<"list"> kw<"directory"> kw<"content"> | - kw<"verify"> kw<"file"> kw<"exists"> | - kw<"verify"> kw<"file"> kw<"does"> kw<"not"> kw<"exist"> -} - -GitAction { - kw<"verify"> kw<"git"> kw<"repository"> | - kw<"clone"> kw<"repository"> | - kw<"create"> kw<"new"> kw<"git"> kw<"commit"> -} - -HelpersAction { - kw<"manipulate"> kw<"and"> kw<"get"> | - kw<"manipulate"> kw<"and"> kw<"set"> | - kw<"manipulate"> kw<"and"> kw<"merge"> | - kw<"manipulate"> kw<"and"> kw<"omit"> | - kw<"manipulate"> kw<"and"> kw<"concat"> | - kw<"manipulate"> kw<"and"> kw<"compact"> | - kw<"manipulate"> kw<"and"> kw<"pick"> | - kw<"manipulate"> kw<"and"> kw<"delete"> -} - -HttpAction { - kw<"do"> kw<"get"> | - kw<"do"> kw<"sequential"> kw<"get"> | - kw<"do"> kw<"parallel"> kw<"get"> | - kw<"do"> kw<"same"> kw<"get"> | - kw<"do"> kw<"post"> | - kw<"do"> kw<"sequential"> kw<"post"> | - kw<"do"> kw<"parallel"> kw<"post"> | - kw<"do"> kw<"same"> kw<"post"> | - kw<"do"> kw<"put"> | - kw<"do"> kw<"sequential"> kw<"put"> | - kw<"do"> kw<"parallel"> kw<"put"> | - kw<"do"> kw<"same"> kw<"put"> | - kw<"do"> kw<"patch"> | - kw<"do"> kw<"sequential"> kw<"patch"> | - kw<"do"> kw<"parallel"> kw<"patch"> | - kw<"do"> kw<"same"> kw<"patch"> | - kw<"do"> kw<"delete"> | - kw<"do"> kw<"sequential"> kw<"delete"> | - kw<"do"> kw<"parallel"> kw<"delete"> | - kw<"do"> kw<"same"> kw<"delete"> -} - -JsonSchemaAction { - kw<"validate"> kw<"json"> -} - -OAuthAction { - kw<"generate"> kw<"access"> kw<"token"> | - kw<"verify"> kw<"request"> kw<"parameters"> | - kw<"generate"> kw<"authorization"> kw<"code"> | - kw<"generate"> kw<"request"> kw<"uri"> | - kw<"get"> kw<"authorization"> kw<"details"> kw<"from"> kw<"token"> | - kw<"add"> kw<"data"> kw<"to"> kw<"authorization"> kw<"details"> -} - -PocketbaseAction { - kw<"start"> kw<"pb"> kw<"client"> | - kw<"start"> kw<"capacitor"> kw<"pb"> kw<"client"> | - kw<"login"> | - kw<"ask"> kw<"password"> kw<"reset"> | - kw<"get"> kw<"some"> kw<"records"> | - kw<"get"> kw<"one"> kw<"record"> | - kw<"create"> kw<"record"> | - kw<"update"> kw<"record"> | - kw<"delete"> kw<"record"> | - kw<"send"> kw<"request"> -} - -QrCodeAction { - kw<"create"> kw<"qr"> kw<"code"> -} - -RedisAction { - kw<"write"> kw<"object"> kw<"into"> kw<"key"> kw<"in"> kw<"redis"> | - kw<"read"> kw<"key"> kw<"from"> kw<"redis"> | - kw<"delete"> kw<"key"> kw<"from"> kw<"redis"> -} - -ShellAction { - kw<"execute"> kw<"in"> kw<"shell"> -} - -TimestampAction { - kw<"fetch"> kw<"the"> kw<"local"> kw<"timestamp"> kw<"in"> kw<"milliseconds"> | - kw<"fetch"> kw<"the"> kw<"local"> kw<"timestamp"> kw<"in"> kw<"seconds"> -} - -WalletAction { - kw<"create"> kw<"vc"> kw<"sd"> kw<"jwt"> | - kw<"present"> kw<"vc"> kw<"sd"> kw<"jwt"> | - kw<"verify"> kw<"vc"> kw<"sd"> kw<"jwt"> | - kw<"create"> kw<"p-256"> kw<"key"> | - kw<"create"> kw<"p-256"> kw<"public"> kw<"key"> | - kw<"pretty"> kw<"print"> kw<"sd"> kw<"jwt"> -} - -ZencodeAction { - kw<"execute"> kw<"zencode"> -} - -SaveAction { - kw<"output"> kw<"into"> StringLiteral -} - -kw { - @specialize[@name={term}] -} - -Keywords { - kw<"Rule"> | kw<"version"> | kw<"unknown"> | kw<"ignore"> | - kw<"have"> | kw<"a"> | kw<"my"> | kw<"that"> | kw<"valid"> | kw<"inside"> | kw<"named"> | kw<"am"> | kw<"known"> | - kw<"as"> | kw<"connect"> | kw<"to"> | kw<"and"> | kw<"send"> | - kw<"statement"> | kw<"parameters"> | kw<"record"> | kw<"table"> | - kw<"variable"> | kw<"name"> | kw<"address"> | kw<"transaction_id"> | - kw<"addresses"> | kw<"transaction"> | kw<"sc"> | kw<"path"> | - kw<"content"> | kw<"commit"> | kw<"paths"> | kw<"array"> | - kw<"values"> | kw<"properties"> | kw<"headers"> | kw<"object"> | - kw<"json_data"> | kw<"json_schema"> | kw<"request"> | kw<"server_data"> | - kw<"client"> | kw<"expires_in"> | kw<"token"> | kw<"request_uri"> | - kw<"data"> | kw<"my_credentials"> | kw<"email"> | kw<"list_parameters"> | - kw<"show_parameters"> | kw<"create_parameters"> | kw<"record_parameters"> | - kw<"update_parameters"> | kw<"delete_parameters"> | kw<"url"> | - kw<"text"> | kw<"command"> | kw<"jwk"> | kw<"holder"> | kw<"fields"> | - kw<"verifier_url"> | kw<"issued_vc"> | kw<"disclosed"> | kw<"nonce"> | - kw<"sk"> | kw<"script"> | kw<"keys"> | kw<"extra"> | kw<"conf"> | - kw<"execute"> | kw<"sql"> | kw<"with"> | kw<"read"> | kw<"the"> | - kw<"of"> | kw<"database"> | kw<"save"> | kw<"ethereum"> | kw<"bytes"> | - kw<"balance"> | kw<"suggested"> | kw<"gas"> | kw<"price"> | - kw<"transaction"> | kw<"id"> | kw<"after"> | kw<"broadcast"> | - kw<"erc20"> | kw<"decimals"> | kw<"name"> | kw<"symbol"> | kw<"total"> | - kw<"supply"> | kw<"erc721"> | kw<"in"> | kw<"owner"> | - kw<"asset"> | kw<"download"> | kw<"extract"> | kw<"verbatim"> | - kw<"store"> | kw<"list"> | kw<"directory"> | kw<"exists"> | - kw<"does"> | kw<"not"> | kw<"exist"> | kw<"verify"> | kw<"repository"> | - kw<"clone"> | kw<"create"> | kw<"new"> | kw<"manipulate"> | - kw<"get"> | kw<"set"> | kw<"merge"> | kw<"omit"> | kw<"concat"> | - kw<"compact"> | kw<"pick"> | kw<"do"> | kw<"sequential"> | - kw<"parallel"> | kw<"same"> | kw<"post"> | kw<"put"> | kw<"patch"> | - kw<"validate"> | kw<"json"> | kw<"generate"> | - kw<"access"> | kw<"authorization"> | kw<"code"> | kw<"details"> | kw<"from"> | - kw<"add"> | kw<"to"> | kw<"start"> | kw<"pb"> | kw<"capacitor"> | - kw<"login"> | kw<"ask"> | kw<"password"> | kw<"reset"> | kw<"some"> | - kw<"records"> | kw<"one"> | kw<"qr"> | kw<"write"> | kw<"into"> | - kw<"redis"> | kw<"delete"> | kw<"shell"> | kw<"fetch"> | - kw<"local"> | kw<"timestamp"> | kw<"milliseconds"> | kw<"seconds"> | - kw<"vc"> | kw<"sd"> | kw<"jwt"> | kw<"p-256"> | kw<"public"> | - kw<"pretty"> | kw<"print"> | kw<"zencode"> | kw<"output"> -} - -@tokens { - space { " " | "\t" } - newline { "\n" | "\r\n" } - comment { "#" (![\n])* } - StringLiteral { "'" (![\\\n'] | "\\" _)* "'" } - symbols { $[a-zA-Z_] | "_" } - Identifier { symbols+ } - Number { $[0-9]+ } -} diff --git a/grammar/test/cases.txt b/grammar/test/cases.txt index 24161e00..75016985 100644 --- a/grammar/test/cases.txt +++ b/grammar/test/cases.txt @@ -1,41 +1,22 @@ -# Booleans +# First basic test -#t -#f +Given I fetch the local timestamp in seconds ==> -Program(Boolean, Boolean) +Statement(SlangroomStatement(GivenStatement(Given,I,TimestampStatement(TimestampAction(fetch,the,local,timestamp,in,seconds))))) -# Identifiers +#Second basic test -one -Two_Three +Rule unknown ignore -==> - -Program(Identifier, Identifier) - -# Strings - -"hello" -"one\"\\two" - -==> - -Program(String, String) - -# Applications +Given I connect to 'database' and send record 'id' and send table 'table' and read the record of the table and output into 'result' -(begin - (when #t - (print (concat "hello" " " "world"))) - (print "DONE")) +Given I have a 'string dictionary' named 'result' +Then print the 'result' ==> -Program(Application( - Identifier, - Application(Identifier, Boolean, Application( - Identifier, Application(Identifier, String, String, String))) - Application(Identifier, String))) +Statement(RuleStatement(Rule,UnknownIgnoreRule(unknown,ignore)), SlangroomStatement(GivenStatement(Given,I,DbStatement(DbConnectAction(connect,to, StringLiteral, and, + DbSend(send, record, StringLiteral, and, DbSend(send, table StringLiteral, and,DbAction(read,the,record,of,the,table)))), and, SaveAction(output,into, StringLiteral))), + GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),ThenPrint(Then,print,Keywords(the),StringLiteral))) From c71a1bb316811bdfa05da9a4fac2016376049235 Mon Sep 17 00:00:00 2001 From: FilippoTrotter Date: Mon, 26 Aug 2024 09:09:26 +0200 Subject: [PATCH 06/29] fix: add License --- grammar/.npmignore | 4 ++++ grammar/package-lock.json.license | 3 +++ grammar/package.json.license | 3 +++ grammar/rollup.config.js | 4 ++++ grammar/src/index.ts | 3 +++ grammar/src/syntax.grammar | 4 ++++ grammar/tsconfig.json.license | 3 +++ 7 files changed, 24 insertions(+) create mode 100644 grammar/package-lock.json.license create mode 100644 grammar/package.json.license create mode 100644 grammar/tsconfig.json.license diff --git a/grammar/.npmignore b/grammar/.npmignore index 9bd97602..5b86acff 100644 --- a/grammar/.npmignore +++ b/grammar/.npmignore @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2024 Dyne.org foundation +# +# SPDX-License-Identifier: AGPL-3.0-or-later + /src /test /node_modules diff --git a/grammar/package-lock.json.license b/grammar/package-lock.json.license new file mode 100644 index 00000000..e7fc1c66 --- /dev/null +++ b/grammar/package-lock.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Dyne.org foundation + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/grammar/package.json.license b/grammar/package.json.license new file mode 100644 index 00000000..e7fc1c66 --- /dev/null +++ b/grammar/package.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Dyne.org foundation + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/grammar/rollup.config.js b/grammar/rollup.config.js index d8d87c18..0320af25 100644 --- a/grammar/rollup.config.js +++ b/grammar/rollup.config.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2024 Dyne.org foundation +// +// SPDX-License-Identifier: AGPL-3.0-or-later + import typescript from "rollup-plugin-ts" import {lezer} from "@lezer/generator/rollup" diff --git a/grammar/src/index.ts b/grammar/src/index.ts index 7dccdae9..2fd92fe1 100644 --- a/grammar/src/index.ts +++ b/grammar/src/index.ts @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2024 Dyne.org foundation +// +// SPDX-License-Identifier: AGPL-3.0-or-later import {parser} from "./syntax.grammar" import {LRLanguage, LanguageSupport, indentNodeProp, foldNodeProp, foldInside, delimitedIndent} from "@codemirror/language" import {styleTags, tags as t} from "@lezer/highlight" diff --git a/grammar/src/syntax.grammar b/grammar/src/syntax.grammar index cfb1004b..5414bb95 100644 --- a/grammar/src/syntax.grammar +++ b/grammar/src/syntax.grammar @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2024 Dyne.org foundation +// +// SPDX-License-Identifier: AGPL-3.0-or-later + @top Statement { (RuleStatement? ScenarioStatement? SlangroomStatement) } diff --git a/grammar/tsconfig.json.license b/grammar/tsconfig.json.license new file mode 100644 index 00000000..e7fc1c66 --- /dev/null +++ b/grammar/tsconfig.json.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Dyne.org foundation + +SPDX-License-Identifier: AGPL-3.0-or-later From 23865a32684a26ca5e7452756ba68f0e80e7b177 Mon Sep 17 00:00:00 2001 From: FilippoTrotter Date: Mon, 26 Aug 2024 09:27:59 +0200 Subject: [PATCH 07/29] fix: given have statement --- grammar/src/syntax.grammar | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grammar/src/syntax.grammar b/grammar/src/syntax.grammar index 5414bb95..23b66b33 100644 --- a/grammar/src/syntax.grammar +++ b/grammar/src/syntax.grammar @@ -49,7 +49,7 @@ ThenPrint { } GivenHaveStatement { - kw<"Given"> kw<"that">? kw<"I"> kw<"have"> (kw<"a">? | kw<"my">?) kw<"valid">? StringLiteral kw<"inside">? kw<"named">? StringLiteral? + kw<"Given"> kw<"that">? kw<"I"> kw<"have"> (kw<"a">? | kw<"my">? | kw<"the">?) kw<"valid">? StringLiteral kw<"inside">? kw<"named">? StringLiteral? (kw <"and"> kw<"I"> kw<"have"> (kw<"a">? | kw<"my">?) kw<"valid">? StringLiteral kw<"inside">? kw<"named">? StringLiteral?)* } From f98d7f54782958033f48ab22186d7327e6957cbc Mon Sep 17 00:00:00 2001 From: FilippoTrotter Date: Mon, 26 Aug 2024 10:00:37 +0200 Subject: [PATCH 08/29] fix: send can be optional --- grammar/src/syntax.grammar | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/grammar/src/syntax.grammar b/grammar/src/syntax.grammar index 23b66b33..b6bc4235 100644 --- a/grammar/src/syntax.grammar +++ b/grammar/src/syntax.grammar @@ -89,7 +89,7 @@ GitStatement { } HelpersStatement { - HelpersSend (kw<"and">? SaveAction)* + (HelpersSend | HelpersAction) (kw<"and">? SaveAction)* } HttpStatement { @@ -125,7 +125,7 @@ TimestampStatement { } WalletStatement { - WalletSend (kw<"and">? SaveAction)* + (WalletSend| WalletAction) (kw<"and">? SaveAction)* } ZencodeStatement { @@ -139,7 +139,7 @@ DbConnectAction { } EthereumConnectAction { - ((kw<"connect"> kw<"to"> StringLiteral) kw<"and">)? EthereumSend + ((kw<"connect"> kw<"to"> StringLiteral) kw<"and">)? (EthereumSend | EthereumAction) } FsConnectAction { @@ -147,15 +147,15 @@ FsConnectAction { } GitOpenOrConnectAction { - ((kw<"open"> kw<"the"> StringLiteral | kw<"connect"> kw<"to"> StringLiteral) kw<"and">)? GitSend + ((kw<"open"> kw<"the"> StringLiteral | kw<"connect"> kw<"to"> StringLiteral) kw<"and">)? (GitSend | GitAction) } HttpConnectAction { - ((kw<"connect"> kw<"to"> StringLiteral) kw<"and">)? HttpSend + ((kw<"connect"> kw<"to"> StringLiteral) kw<"and">)? (HttpSend | HttpAction) } PocketbaseConnectAction { - ((kw<"connect"> kw<"to"> StringLiteral) kw<"and">)? PocketbaseSend + ((kw<"connect"> kw<"to"> StringLiteral) kw<"and">)? (PocketbaseSend | PocketbaseAction) } RedisConnectAction { From d07c23207c4fa84248d3e53ab0ca248c5af5705d Mon Sep 17 00:00:00 2001 From: FilippoTrotter Date: Mon, 26 Aug 2024 10:07:20 +0200 Subject: [PATCH 09/29] fix: ethereum actions --- grammar/src/syntax.grammar | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/grammar/src/syntax.grammar b/grammar/src/syntax.grammar index b6bc4235..430874a1 100644 --- a/grammar/src/syntax.grammar +++ b/grammar/src/syntax.grammar @@ -241,11 +241,11 @@ DbAction { } EthereumAction { - kw<"read"> kw<"the"> kw<"ethereum"> kw<"nonce"> | - kw<"read"> kw<"the"> kw<"ethereum"> kw<"bytes"> | - kw<"read"> kw<"the"> kw<"ethereum"> kw<"balance"> | - kw<"read"> kw<"the"> kw<"ethereum"> kw<"suggested"> kw<"gas"> kw<"price"> | - kw<"read"> kw<"the"> kw<"ethereum"> kw<"transaction"> kw<"id"> kw<"after"> kw<"broadcast"> | + kw<"read"> kw<"the"> kw<"ethereum">? kw<"nonce"> | + kw<"read"> kw<"the"> kw<"ethereum">? kw<"bytes"> | + kw<"read"> kw<"the"> kw<"ethereum">? kw<"balance"> | + kw<"read"> kw<"the"> kw<"ethereum">? kw<"suggested"> kw<"gas"> kw<"price"> | + kw<"read"> kw<"the"> kw<"ethereum">? kw<"transaction"> kw<"id"> kw<"after"> kw<"broadcast"> | kw<"read"> kw<"the"> kw<"erc20"> kw<"decimals"> | kw<"read"> kw<"the"> kw<"erc20"> kw<"name"> | kw<"read"> kw<"the"> kw<"erc20"> kw<"symbol"> | From 51e8efe3c86b367a6fb86ea788e4bf1b4d21307b Mon Sep 17 00:00:00 2001 From: FilippoTrotter Date: Mon, 26 Aug 2024 11:37:32 +0200 Subject: [PATCH 10/29] fix: Helpers send --- grammar/src/syntax.grammar | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grammar/src/syntax.grammar b/grammar/src/syntax.grammar index 430874a1..5c1beee5 100644 --- a/grammar/src/syntax.grammar +++ b/grammar/src/syntax.grammar @@ -184,7 +184,7 @@ GitSend { } HelpersSend { - ((kw<"send"> (kw<"paths"> | kw<"array"> | kw<"values"> | kw<"properties">) StringLiteral) kw<"and">) + ((kw<"send"> (kw<"path"> | kw<"paths"> | kw<"object"> | kw<"value"> | kw<"sources"> | kw<"array"> | kw<"values"> | kw<"properties">) StringLiteral) kw<"and">) (HelpersAction | HelpersSend) } From 2d36ca8d68cd359f3a90b7413de1bef025e13104 Mon Sep 17 00:00:00 2001 From: FilippoTrotter Date: Mon, 26 Aug 2024 11:57:05 +0200 Subject: [PATCH 11/29] update keywords list --- grammar/src/syntax.grammar | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/grammar/src/syntax.grammar b/grammar/src/syntax.grammar index 5c1beee5..011cf0ab 100644 --- a/grammar/src/syntax.grammar +++ b/grammar/src/syntax.grammar @@ -49,8 +49,8 @@ ThenPrint { } GivenHaveStatement { - kw<"Given"> kw<"that">? kw<"I"> kw<"have"> (kw<"a">? | kw<"my">? | kw<"the">?) kw<"valid">? StringLiteral kw<"inside">? kw<"named">? StringLiteral? - (kw <"and"> kw<"I"> kw<"have"> (kw<"a">? | kw<"my">?) kw<"valid">? StringLiteral kw<"inside">? kw<"named">? StringLiteral?)* + kw<"Given"> kw<"that">? kw<"I"> kw<"have"> (kw<"a">? | kw<"my">? | kw<"the">?) kw<"valid">? StringLiteral (kw<"inside"> | kw<"in">)? kw<"named">? StringLiteral? + (kw <"and"> kw<"I"> kw<"have"> (kw<"a">? | kw<"my">?) kw<"valid">? StringLiteral (kw<"inside"> | kw<"in">)? kw<"named">? StringLiteral?)* } GivenIamStatement { @@ -380,7 +380,7 @@ Keywords { kw<"variable"> | kw<"name"> | kw<"address"> | kw<"transaction_id"> | kw<"addresses"> | kw<"transaction"> | kw<"sc"> | kw<"path"> | kw<"content"> | kw<"commit"> | kw<"paths"> | kw<"array"> | - kw<"values"> | kw<"properties"> | kw<"headers"> | kw<"object"> | + kw<"values"> | kw<"value"> | kw<"sources"> | kw<"properties"> | kw<"headers"> | kw<"object"> | kw<"json_data"> | kw<"json_schema"> | kw<"request"> | kw<"server_data"> | kw<"client"> | kw<"expires_in"> | kw<"token"> | kw<"request_uri"> | kw<"data"> | kw<"my_credentials"> | kw<"email"> | kw<"list_parameters"> | @@ -388,7 +388,7 @@ Keywords { kw<"update_parameters"> | kw<"delete_parameters"> | kw<"url"> | kw<"text"> | kw<"command"> | kw<"jwk"> | kw<"holder"> | kw<"fields"> | kw<"verifier_url"> | kw<"issued_vc"> | kw<"disclosed"> | kw<"nonce"> | - kw<"sk"> | kw<"script"> | kw<"keys"> | kw<"extra"> | kw<"conf"> | + kw<"sk"> | kw<"script"> | kw<"key"> | kw<"keys"> | kw<"extra"> | kw<"conf"> | kw<"execute"> | kw<"sql"> | kw<"with"> | kw<"read"> | kw<"the"> | kw<"of"> | kw<"database"> | kw<"save"> | kw<"ethereum"> | kw<"bytes"> | kw<"balance"> | kw<"suggested"> | kw<"gas"> | kw<"price"> | @@ -419,6 +419,6 @@ Keywords { comment { "#" (![\n])* } StringLiteral { "'" (![\\\n'] | "\\" _)* "'" } symbols { $[a-zA-Z_] | "_" } - Identifier { symbols+ } + Identifier { symbols+ Number* } Number { $[0-9]+ } } From 4aee312ba1af7dc7baf1d30705793c3d9bd03fbb Mon Sep 17 00:00:00 2001 From: FilippoTrotter Date: Mon, 26 Aug 2024 12:02:13 +0200 Subject: [PATCH 12/29] update Given name statement --- grammar/src/syntax.grammar | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/grammar/src/syntax.grammar b/grammar/src/syntax.grammar index 011cf0ab..518374a5 100644 --- a/grammar/src/syntax.grammar +++ b/grammar/src/syntax.grammar @@ -7,7 +7,7 @@ } SlangroomStatement { - (GivenStatement | ThenStatement | ThenPrint | GivenHaveStatement | GivenIamStatement | WhenStatement | IfEndifStatement)* + (GivenStatement | ThenStatement | ThenPrint | GivenHaveStatement | GivenName | WhenStatement | IfEndifStatement)* } RuleStatement { @@ -53,9 +53,11 @@ GivenHaveStatement { (kw <"and"> kw<"I"> kw<"have"> (kw<"a">? | kw<"my">?) kw<"valid">? StringLiteral (kw<"inside"> | kw<"in">)? kw<"named">? StringLiteral?)* } -GivenIamStatement { - kw<"Given"> kw<"I"> kw<"am"> - (kw<"known"> kw<"as">)? StringLiteral +GivenName { + (kw<"Given"> kw<"I"> kw<"am"> + (kw<"known"> kw<"as">)? StringLiteral) | + (kw<"Given"> kw<"my"> kw<"name"> kw<"is"> (Identifier | Keywords | StringLiteral)+) + } WhenStatement { From 8382eda942c3bd27de016c54b8df7e9fed8f0a17 Mon Sep 17 00:00:00 2001 From: FilippoTrotter Date: Mon, 26 Aug 2024 12:14:51 +0200 Subject: [PATCH 13/29] fix: add the possibility of having more than one scenario --- grammar/src/syntax.grammar | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/grammar/src/syntax.grammar b/grammar/src/syntax.grammar index 518374a5..d1fe3c40 100644 --- a/grammar/src/syntax.grammar +++ b/grammar/src/syntax.grammar @@ -3,7 +3,7 @@ // SPDX-License-Identifier: AGPL-3.0-or-later @top Statement { - (RuleStatement? ScenarioStatement? SlangroomStatement) + ( RuleStatement? ScenarioStatement* RuleStatement? SlangroomStatement) } SlangroomStatement { @@ -15,7 +15,7 @@ RuleStatement { } ScenarioStatement { - kw<"Scenario"> StringLiteral ":" (Identifier | Keywords)+ + kw<"Scenario"> StringLiteral ":"? (Identifier | Keywords)* } VersionRule { @@ -375,7 +375,7 @@ kw { } Keywords { - kw<"Rule"> | kw<"version"> | kw<"unknown"> | kw<"ignore"> | + kw<"version"> | kw<"unknown"> | kw<"ignore"> | kw<"have"> | kw<"a"> | kw<"my"> | kw<"that"> | kw<"valid"> | kw<"inside"> | kw<"named"> | kw<"am"> | kw<"known"> | kw<"as"> | kw<"connect"> | kw<"to"> | kw<"and"> | kw<"send"> | kw<"statement"> | kw<"parameters"> | kw<"record"> | kw<"table"> | From f0e1862bad562371f2377258981d2db7b3df78e7 Mon Sep 17 00:00:00 2001 From: FilippoTrotter Date: Mon, 26 Aug 2024 12:15:22 +0200 Subject: [PATCH 14/29] update test list --- grammar/test/cases.txt | 312 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 310 insertions(+), 2 deletions(-) diff --git a/grammar/test/cases.txt b/grammar/test/cases.txt index 75016985..a2b07a5e 100644 --- a/grammar/test/cases.txt +++ b/grammar/test/cases.txt @@ -1,4 +1,4 @@ -# First basic test +# Single statement Given I fetch the local timestamp in seconds @@ -6,7 +6,7 @@ Given I fetch the local timestamp in seconds Statement(SlangroomStatement(GivenStatement(Given,I,TimestampStatement(TimestampAction(fetch,the,local,timestamp,in,seconds))))) -#Second basic test +#Db example Rule unknown ignore @@ -20,3 +20,311 @@ Then print the 'result' Statement(RuleStatement(Rule,UnknownIgnoreRule(unknown,ignore)), SlangroomStatement(GivenStatement(Given,I,DbStatement(DbConnectAction(connect,to, StringLiteral, and, DbSend(send, record, StringLiteral, and, DbSend(send, table StringLiteral, and,DbAction(read,the,record,of,the,table)))), and, SaveAction(output,into, StringLiteral))), GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),ThenPrint(Then,print,Keywords(the),StringLiteral))) + +#Ethereum complex example + +Rule unknown ignore +Scenario 'ethereum': Store an object on eth + +Given I connect to 'ethereum' and send address 'address' and read the ethereum nonce and output into 'ethereum_nonce' +Given I connect to 'ethereum' and read the suggested gas price and output into 'gas_price' + +# from slangroom +Given I have a 'ethereum nonce' +Given I have a 'gas price' + +# from keys +Given I have the 'keyring' + +# from data +Given I have a 'ethereum address' named 'storage contract' +Given I have a 'string' named 'to be stored' +Given I have a 'gas limit' + +# create the signed transaction to store the data +When I create the ethereum transaction to 'storage contract' +When I use the ethereum transaction to store 'to be stored' +When I create the signed ethereum transaction for chain 'fabt' + +Then print the 'signed ethereum transaction' + +Then I connect to 'ethereum' and send transaction 'signed_ethereum_transaction' and read the ethereum transaction id after broadcast and output into 'transaction_id' + +==> + +Statement(RuleStatement(Rule,UnknownIgnoreRule(unknown,ignore)),ScenarioStatement(Scenario,StringLiteral,Identifier,Identifier,Keywords(object),Identifier,Identifier), + SlangroomStatement(GivenStatement(Given,I,EthereumStatement(EthereumConnectAction(connect,to,StringLiteral,and,EthereumSend(send,address,StringLiteral,and, + EthereumAction(read,the,ethereum,nonce))),and,SaveAction(output,into,StringLiteral))),GivenStatement(Given,I, + EthereumStatement(EthereumConnectAction(connect,to,StringLiteral,and,EthereumAction(read,the,suggested,gas,price)),and,SaveAction(output,into,StringLiteral))), + GivenHaveStatement(Given,I,have,a,StringLiteral),GivenHaveStatement(Given,I,have,a,StringLiteral),GivenHaveStatement(Given,I,have,the,StringLiteral), + GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),GivenHaveStatement(Given,I,have,a,StringLiteral), + WhenStatement(When,I,Keywords(create),Keywords(the),Keywords(ethereum),Keywords(transaction),Keywords(to),StringLiteral), + WhenStatement(When,I,Identifier,Keywords(the),Keywords(ethereum),Keywords(transaction),Keywords(to),Keywords(store),StringLiteral), + WhenStatement(When,I,Keywords(create),Keywords(the),Identifier,Keywords(ethereum),Keywords(transaction),Identifier,Identifier,StringLiteral), + ThenPrint(Then,print,Keywords(the),StringLiteral),ThenStatement(Then,I,EthereumStatement(EthereumConnectAction(connect,to,StringLiteral,and, + EthereumSend(send,transaction,StringLiteral,and,EthereumAction(read,the,ethereum,transaction,id,after,broadcast))),and,SaveAction(output,into,StringLiteral))))) + +#Fs example + +Rule unknown ignore +Given I send path 'file_path_1' and verify file exists +Given I send path 'file_path_2' and verify file does not exist +Given I have a 'string' named 'file_path_1' +Then print the 'file_path_1' + +==> + +Statement(RuleStatement(Rule,UnknownIgnoreRule(unknown,ignore)),SlangroomStatement(GivenStatement(Given,I,FsStatement(FsConnectAction(FsSend(send,path,StringLiteral,and, + FsAction(verify,file,exists))))),GivenStatement(Given,I,FsStatement(FsConnectAction(FsSend(send,path,StringLiteral,and,FsAction(verify,file,does,not,exist))))), + GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),ThenPrint(Then,print,Keywords(the),StringLiteral))) + +#Git example + +Rule unknown ignore + +Given I connect to 'url' and send path 'path' and clone repository + +Given I have a 'string' named 'cloned_repository' +Then print the data + +==> + +Statement(RuleStatement(Rule,UnknownIgnoreRule(unknown,ignore)),SlangroomStatement(GivenStatement(Given,I,GitStatement(GitOpenOrConnectAction + (connect,to,StringLiteral,and,GitSend(send,path,StringLiteral,and,GitAction(clone,repository))))),GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral), + ThenPrint(Then,print,Keywords(the),Keywords(data)))) + +#Helpers example + +Rule unknown ignore + +Given I send array 'array' and send values 'values' and manipulate and concat and output into 'result' + +Given I have a 'string array' named 'result' +Then print the data + +==> + +Statement(RuleStatement(Rule,UnknownIgnoreRule(unknown,ignore)),SlangroomStatement(GivenStatement(Given,I,HelpersStatement(HelpersSend(send,array,StringLiteral,and, + HelpersSend(send,values,StringLiteral,and,HelpersAction(manipulate,and,concat))),and,SaveAction(output,into,StringLiteral))), + GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),ThenPrint(Then,print,Keywords(the),Keywords(data)))) + +#Http example + +Rule unknown ignore + +Given I connect to 'address' and do get and output into 'result' +Given I have a 'string dictionary' named 'result' +Then print the 'result' + +==> + +Statement(RuleStatement(Rule,UnknownIgnoreRule(unknown,ignore)),SlangroomStatement(GivenStatement(Given,I,HttpStatement(HttpConnectAction(connect,to,StringLiteral,and, + HttpAction(do,get)),and,SaveAction(output,into,StringLiteral))),GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),ThenPrint(Then,print,Keywords(the),StringLiteral))) + +#Json-schema example + +Rule unknown ignore + +Given I send json_data 'json_data' and send json_schema 'json_schema' and validate json and output into 'result' + +Given I have a 'string dictionary' named 'result' +Then print the 'result' + +==> + +Statement(RuleStatement(Rule,UnknownIgnoreRule(unknown,ignore)),SlangroomStatement(GivenStatement(Given,I,JsonSchemaStatement(JsonSchemaSend(send,json_data,StringLiteral,and, + JsonSchemaSend(send,json_schema,StringLiteral,and,JsonSchemaAction(validate,json))),and,SaveAction(output,into,StringLiteral))), + GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),ThenPrint(Then,print,Keywords(the),StringLiteral))) + +#Oauth example + +Rule unknown ignore +Scenario 'http': url encode + +Given I have a 'string dictionary' named 'json_body' +Given I have a 'string dictionary' named 'request' + +When I create the http get parameters from 'json_body' using percent encoding +When I move 'json_body' to 'body' in 'request' + +Then print the 'request' + +Then I send request 'request' and send server_data 'server_data' and generate access token and output into 'result' + +==> + +Statement(RuleStatement(Rule,UnknownIgnoreRule(unknown,ignore)),ScenarioStatement(Scenario,StringLiteral,Keywords(url),Identifier),SlangroomStatement( + GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral), + WhenStatement(When,I,Keywords(create),Keywords(the),Identifier,Keywords(get),Keywords(parameters),Keywords(from),StringLiteral,Identifier,Identifier,Identifier), + WhenStatement(When,I,Identifier,StringLiteral,Keywords(to),StringLiteral,Keywords(in),StringLiteral),ThenPrint(Then,print,Keywords(the),StringLiteral), + ThenStatement(Then,I,OAuthStatement(OAuthSend(send,request,StringLiteral,and,OAuthSend(send,server_data,StringLiteral,and,OAuthAction(generate,access,token))),and, + SaveAction(output,into,StringLiteral))))) + +#Pocketbase example + +Rule unknown ignore + +Given I connect to 'pb_address' and start pb client +Given I send my_credentials 'my_credentials' and login + +Given I send create_parameters 'create_parameters' and send record_parameters 'record_parameters' and create record and output into 'result' + +Given I have a 'string dictionary' named 'result' +Then print the 'result' + +==> + +Statement(RuleStatement(Rule,UnknownIgnoreRule(unknown,ignore)),SlangroomStatement(GivenStatement(Given,I,PocketbaseStatement(PocketbaseConnectAction(connect,to,StringLiteral,and, + PocketbaseAction(start,pb,client)))),GivenStatement(Given,I,PocketbaseStatement(PocketbaseConnectAction(PocketbaseSend(send,my_credentials,StringLiteral,and, + PocketbaseAction(login))))),GivenStatement(Given,I,PocketbaseStatement(PocketbaseConnectAction(PocketbaseSend(send,create_parameters,StringLiteral,and, + PocketbaseSend(send,record_parameters,StringLiteral,and,PocketbaseAction(create,record)))),and,SaveAction(output,into,StringLiteral))), + GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),ThenPrint(Then,print,Keywords(the),StringLiteral))) + +#Qrcode example + +Rule unknown ignore + +Given I send text 'text' and create qr code and output into 'result' + +Given I have a 'string' named 'result' +Then print the 'result' + +==> + +Statement(RuleStatement(Rule,UnknownIgnoreRule(unknown,ignore)),SlangroomStatement(GivenStatement(Given,I,QrCodeStatement(QrCodeSend(send,text,StringLiteral,and, + QrCodeAction(create,qr,code)),and,SaveAction(output,into,StringLiteral))),GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral), + ThenPrint(Then,print,Keywords(the),StringLiteral))) + +#Redis example + +Rule unknown ignore + +Given I connect to 'redis' and send key 'key' and delete key from redis and output into 'result' + +Given I have a 'number' named 'result' +Then print the 'result' + +==> + +Statement(RuleStatement(Rule,UnknownIgnoreRule(unknown,ignore)),SlangroomStatement(GivenStatement(Given,I,RedisStatement(RedisConnectAction(connect,to,StringLiteral,and, + RedisSend(send,key,StringLiteral,and,RedisAction(delete,key,from,redis))),and,SaveAction(output,into,StringLiteral))), + GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),ThenPrint(Then,print,Keywords(the),StringLiteral))) + +#Shell example + +Rule unknown ignore + +Given I send command 'command' and execute in shell and output into 'result' + +Given I have a 'string' named 'result' +Then print the 'result' + +==> + +Statement(RuleStatement(Rule,UnknownIgnoreRule(unknown,ignore)),SlangroomStatement(GivenStatement(Given,I,ShellStatement(ShellSend(send,command,StringLiteral,and, + ShellAction(execute,in,shell)),and,SaveAction(output,into,StringLiteral))),GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral), + ThenPrint(Then,print,Keywords(the),StringLiteral))) + +#Timestamp example + +Rule unknown ignore + +Given I fetch the local timestamp in seconds and output into 'result_in_seconds' +Given I fetch the local timestamp in milliseconds and output into 'result_in_milliseconds' + +Given I have a 'string' named 'result_in_seconds' +Given I have a 'string' named 'result_in_milliseconds' +Then print the 'result_in_seconds' +Then print the 'result_in_milliseconds' + +==> + +Statement(RuleStatement(Rule,UnknownIgnoreRule(unknown,ignore)),SlangroomStatement(GivenStatement(Given,I,TimestampStatement(TimestampAction(fetch,the,local,timestamp,in,seconds),and, + SaveAction(output,into,StringLiteral))),GivenStatement(Given,I,TimestampStatement(TimestampAction(fetch,the,local,timestamp,in,milliseconds),and,SaveAction(output,into,StringLiteral))), + GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral), + ThenPrint(Then,print,Keywords(the),StringLiteral),ThenPrint(Then,print,Keywords(the),StringLiteral))) + + + +#Zencode example + +Rule unknown ignore + +Given I send keys 'keys' and send data 'data' and send script 'script' and execute zencode and output into 'result' + +Given I have a 'string dictionary' named 'result' +Then print the 'result' + +==> + +Statement(RuleStatement(Rule,UnknownIgnoreRule(unknown,ignore)),SlangroomStatement(GivenStatement(Given,I,ZencodeStatement(ZencodeSend(send,keys,StringLiteral,and, + ZencodeSend(send,data,StringLiteral,and,ZencodeSend(send,script,StringLiteral,and,ZencodeAction(execute,zencode)))),and,SaveAction(output,into,StringLiteral))), + GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),ThenPrint(Then,print,Keywords(the),StringLiteral))) + +#Test from Didroom + + +Scenario 'http' +Scenario 'w3c': create jwk +Rule unknown ignore + +Given I send path 'secrets_path' and read file content and output into 'secrets' +Given I send object 'secrets' and send path 'controller_path' and manipulate and get and output into 'controller' +Given I send object 'secrets' and send path 'controller' and manipulate and get and output into 'personal_keyring' + +Given I send path 'well-known_path' and read file content and output into 'well-known' +Given I have a 'string dictionary' named 'well-known' + +# Loading the private keys +Given my name is in a 'string' named 'controller' +Given I have the 'keyring' in 'personal_keyring' + +Given I have a 'string dictionary' named 'server' +Given I have a 'string dictionary' named 'request' +Given I have a 'string' named 'request_uri' +Given I have a 'string' named 'client_id' + +#-server data +When I pickup from path 'well-known.issuer' +When I move 'issuer' to 'url' in 'server' +When I create jwk of es256 public key with private key +When I move 'jwk' in 'server' + +# - request.body +When I set 'base-url' to 'http://' as 'string' +When I create the url from 'base-url' +When I append 'client_id' as http request to 'url' +When I append the percent encoding of 'request_uri' as http request to 'url' +When I split the leftmost '8' bytes of 'url' +When I rename the 'url' to 'body' +When I move 'body' in 'request' + +Then print the 'server' +Then print the 'request' + +Then I send request 'request' and send server_data 'server' and verify request parameters + + + +==> + +Statement(ScenarioStatement(Scenario,StringLiteral),ScenarioStatement(Scenario,StringLiteral,Keywords(create),Keywords(jwk)),RuleStatement(Rule,UnknownIgnoreRule(unknown,ignore)), + SlangroomStatement(GivenStatement(Given,I,FsStatement(FsConnectAction(FsSend(send,path,StringLiteral,and,FsAction(read,file,content))),and,SaveAction(output,into,StringLiteral))), + GivenStatement(Given,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and,HelpersAction(manipulate,and,get))),and, + SaveAction(output,into,StringLiteral))),GivenStatement(Given,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and, + HelpersSend(send,path,StringLiteral,and,HelpersAction(manipulate,and,get))),and,SaveAction(output,into,StringLiteral))), + GivenStatement(Given,I,FsStatement(FsConnectAction(FsSend(send,path,StringLiteral,and,FsAction(read,file,content))),and,SaveAction(output,into,StringLiteral))), + GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),GivenName(Given,my,name,is,Keywords(in),Keywords(a),StringLiteral,Keywords(named),StringLiteral), + GivenHaveStatement(Given,I,have,the,StringLiteral,in,StringLiteral),GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral), + GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral), + GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),WhenStatement(When,I,Identifier,Keywords(from),Keywords(path),StringLiteral), + WhenStatement(When,I,Identifier,StringLiteral,Keywords(to),StringLiteral,Keywords(in),StringLiteral), + WhenStatement(When,I,Keywords(create),Keywords(jwk),Keywords(of),Identifier,Keywords(public),Keywords(key),Keywords(with),Identifier,Keywords(key)), + WhenStatement(When,I,Identifier,StringLiteral,Keywords(in),StringLiteral),WhenStatement(When,I,Keywords(set),StringLiteral,Keywords(to),StringLiteral,Keywords(as),StringLiteral), + WhenStatement(When,I,Keywords(create),Keywords(the),Keywords(url),Keywords(from),StringLiteral), + WhenStatement(When,I,Identifier,StringLiteral,Keywords(as),Identifier,Keywords(request),Keywords(to),StringLiteral), + WhenStatement(When,I,Identifier,Keywords(the),Identifier,Identifier,Keywords(of),StringLiteral,Keywords(as),Identifier,Keywords(request),Keywords(to),StringLiteral), + WhenStatement(When,I,Identifier,Keywords(the),Identifier,StringLiteral,Keywords(bytes),Keywords(of),StringLiteral), + WhenStatement(When,I,Identifier,Keywords(the),StringLiteral,Keywords(to),StringLiteral),WhenStatement(When,I,Identifier,StringLiteral,Keywords(in),StringLiteral), + ThenPrint(Then,print,Keywords(the),StringLiteral),ThenPrint(Then,print,Keywords(the),StringLiteral), + ThenStatement(Then,I,OAuthStatement(OAuthSend(send,request,StringLiteral,and,OAuthSend(send,server_data,StringLiteral,and,OAuthAction(verify,request,parameters))))))) From 60967e30a75e85d5812be19364567c32b00d0409 Mon Sep 17 00:00:00 2001 From: FilippoTrotter Date: Tue, 27 Aug 2024 12:38:26 +0200 Subject: [PATCH 15/29] add some others test from didroom --- grammar/src/syntax.grammar | 30 +-- grammar/test/cases.txt | 383 ++++++++++++++++++++++++++++++++++++- 2 files changed, 401 insertions(+), 12 deletions(-) diff --git a/grammar/src/syntax.grammar b/grammar/src/syntax.grammar index d1fe3c40..ca3b6007 100644 --- a/grammar/src/syntax.grammar +++ b/grammar/src/syntax.grammar @@ -11,11 +11,11 @@ SlangroomStatement { } RuleStatement { - kw<"Rule"> (VersionRule | UnknownIgnoreRule) + kw<"Rule"> (VersionRule | UnknownIgnoreRule | GenericRule) } ScenarioStatement { - kw<"Scenario"> StringLiteral ":"? (Identifier | Keywords)* + kw<"Scenario"> (StringLiteral| Identifier | Keywords) ":"? (Identifier | Keywords)* } VersionRule { @@ -26,6 +26,10 @@ UnknownIgnoreRule { kw<"unknown"> kw<"ignore"> } +GenericRule { + (Identifier | StringLiteral | Keywords)* +} + VersionNumber { Number '.'? Number? '.'? Number? } @@ -45,27 +49,31 @@ ThenStatement { } ThenPrint { - kw<"Then"> kw<"print"> (StringLiteral | Identifier | Keywords)+ + kw<"Then"> kw<"I">? kw<"print"> (StringLiteral | Identifier | Keywords)+ (kw<"I"> kw<"print"> (StringLiteral | Identifier | Keywords)+)* } GivenHaveStatement { - kw<"Given"> kw<"that">? kw<"I"> kw<"have"> (kw<"a">? | kw<"my">? | kw<"the">?) kw<"valid">? StringLiteral (kw<"inside"> | kw<"in">)? kw<"named">? StringLiteral? - (kw <"and"> kw<"I"> kw<"have"> (kw<"a">? | kw<"my">?) kw<"valid">? StringLiteral (kw<"inside"> | kw<"in">)? kw<"named">? StringLiteral?)* + kw<"Given"> kw<"that">? kw<"I"> kw<"have"> (kw<"a">? | kw<"my">? | kw<"the">?) kw<"valid">? StringLiteral kw<"named">? StringLiteral? (kw<"inside"> | kw<"in">)? kw<"named">? StringLiteral? + (kw <"and"> kw<"I"> kw<"have"> (kw<"a">? | kw<"my">?) kw<"valid">? StringLiteral kw<"named">? StringLiteral? (kw<"inside"> | kw<"in">)? kw<"named">? StringLiteral?)* +} +HaveStatement{ + kw<"and"> kw<"I"> kw<"have"> (kw<"a">? | kw<"my">?) kw<"valid">? StringLiteral kw<"named">? StringLiteral? (kw<"inside"> | kw<"in">)? kw<"named">? StringLiteral? } GivenName { (kw<"Given"> kw<"I"> kw<"am"> (kw<"known"> kw<"as">)? StringLiteral) | - (kw<"Given"> kw<"my"> kw<"name"> kw<"is"> (Identifier | Keywords | StringLiteral)+) + (kw<"Given"> kw<"I">? kw<"my"> kw<"name"> kw<"is"> + (Identifier | Keywords | StringLiteral)+) (HaveStatement)* } WhenStatement { - kw<"When"> kw<"I"> (Identifier | Keywords | StringLiteral)+ + kw<"When"> kw<"I"> (Identifier | Keywords | StringLiteral)+ (kw<"I"> (Identifier | Keywords | StringLiteral)+)* } IfEndifStatement{ - Condition+ (WhenStatement | ThenStatement | ThenPrint)* kw<"Endif"> + Condition+ (WhenStatement | ThenStatement | ThenPrint)* kw<"EndIf"> } Condition { @@ -367,7 +375,7 @@ ZencodeAction { } SaveAction { - kw<"output"> kw<"into"> StringLiteral + kw<"output"> (Keywords | Identifier | StringLiteral)? kw<"into"> StringLiteral } kw { @@ -375,7 +383,7 @@ kw { } Keywords { - kw<"version"> | kw<"unknown"> | kw<"ignore"> | + kw<"version"> | kw<"ignore"> | kw<"have"> | kw<"a"> | kw<"my"> | kw<"that"> | kw<"valid"> | kw<"inside"> | kw<"named"> | kw<"am"> | kw<"known"> | kw<"as"> | kw<"connect"> | kw<"to"> | kw<"and"> | kw<"send"> | kw<"statement"> | kw<"parameters"> | kw<"record"> | kw<"table"> | @@ -412,7 +420,7 @@ Keywords { kw<"redis"> | kw<"delete"> | kw<"shell"> | kw<"fetch"> | kw<"local"> | kw<"timestamp"> | kw<"milliseconds"> | kw<"seconds"> | kw<"vc"> | kw<"sd"> | kw<"jwt"> | kw<"p-256"> | kw<"public"> | - kw<"pretty"> | kw<"print"> | kw<"zencode"> | kw<"output"> + kw<"pretty"> | kw<"print"> | kw<"zencode"> | kw<"output"> | kw<"is"> } @tokens { diff --git a/grammar/test/cases.txt b/grammar/test/cases.txt index a2b07a5e..51d801c2 100644 --- a/grammar/test/cases.txt +++ b/grammar/test/cases.txt @@ -261,7 +261,7 @@ Statement(RuleStatement(Rule,UnknownIgnoreRule(unknown,ignore)),SlangroomStateme ZencodeSend(send,data,StringLiteral,and,ZencodeSend(send,script,StringLiteral,and,ZencodeAction(execute,zencode)))),and,SaveAction(output,into,StringLiteral))), GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),ThenPrint(Then,print,Keywords(the),StringLiteral))) -#Test from Didroom +#Test from Didroom 1 Scenario 'http' @@ -328,3 +328,384 @@ Statement(ScenarioStatement(Scenario,StringLiteral),ScenarioStatement(Scenario,S WhenStatement(When,I,Identifier,Keywords(the),StringLiteral,Keywords(to),StringLiteral),WhenStatement(When,I,Identifier,StringLiteral,Keywords(in),StringLiteral), ThenPrint(Then,print,Keywords(the),StringLiteral),ThenPrint(Then,print,Keywords(the),StringLiteral), ThenStatement(Then,I,OAuthStatement(OAuthSend(send,request,StringLiteral,and,OAuthSend(send,server_data,StringLiteral,and,OAuthAction(verify,request,parameters))))))) + +#Test from Didroom 2 + +# keyring +Given I send path 'secrets_path' and read file content and output secret into 'secrets' +Given I send object 'secrets' and send path 'controller_path' and manipulate and get and output into 'controller' +Given I send object 'secrets' and send path 'controller' and manipulate and get and output secret into 'personal_keyring' + +# wk +Given I send path 'well-known_path' and read file content and output into 'relying_party_well-known' + +# zen_0_preparation +Given I send object 'data_0' and send path 'm_path' and send value 'm' and manipulate and set +Given I send object 'data_0' and send path 'registrationToken_path' and send value 'registrationToken' and manipulate and set +Given I send object 'data_0' and send path 'vp_path' and send value 'vp' and manipulate and set +Given I send path 'zen_0_preparation_path' and read verbatim file content and output into 'zen_0_preparation' +Given I send keys 'keys_0' and send data 'data_0' and send script 'zen_0_preparation' and execute zencode and output into 'zen_0_preparation_out' + +# zen_1_kid_from_wk +Given I send object 'zen_0_preparation_out' and send path 'iss_path' and manipulate and get and output into 'iss' +Given I connect to 'iss' and do get and output into 'credential_issuer_well-known' +Given I send object 'zen_0_preparation_out' and send path 'data_1_path' and manipulate and get and output into 'data_1' +Given I send path 'zen_1_kid_from_wk_path' and read verbatim file content and output into 'zen_1_kid_from_wk' +Given I send keys 'credential_issuer_well-known' and send data 'data_1' and send script 'zen_1_kid_from_wk' and execute zencode and output into 'zen_1_output' + +# zen_2_pk_from_did +Given I send object 'zen_1_output' and send path 'did_path' and manipulate and get and output into 'did_url' +Given I connect to 'did_url' and do get and output into 'credential_issuer_did' +Given I send path 'zen_2_pk_from_did_path' and read verbatim file content and output into 'zen_2_pk_from_did' +Given I send keys 'credential_issuer_did' and send data 'data_2' and send script 'zen_2_pk_from_did' and execute zencode and output into 'zen_2_output' + +# zen_3_check_presentation +Given I send object 'zen_2_output' and send path 'credential_issuer_path' and manipulate and get and output into 'ci' +Given I send object 'zen_0_preparation_out' and send path 'body_path' and manipulate and get and output into 'body' +Given I send object 'data_3' and send path 'relying_party_well-known_path' and send value 'relying_party_well-known' and manipulate and set +Given I send object 'data_3' and send path 'id_path' and send value 'id' and manipulate and set +Given I send object 'data_3' and send path 'vp_path' and send value 'vp' and manipulate and set +Given I send object 'data_3' and send path 'expires_in_path' and send value 'expires_in' and manipulate and set +Given I send object 'data_3' and send path 'body_path' and send value 'body' and manipulate and set +Given I send object 'data_3' and send path 'credential_issuer_path' and send value 'ci' and manipulate and set +Given I send path 'zen_3_check_presentation_path' and read verbatim file content and output into 'zen_3_check_presentation' +Given I send keys 'personal_keyring' and send data 'data_3' and send script 'zen_3_check_presentation' and execute zencode and output into 'zen_3_output' + +# post to firebase server +Given I send object 'zen_0_preparation_out' and send path 'url_path' and manipulate and get and output into 'url' +Given I send object 'zen_3_output' and send path 'body_path' and manipulate and get and output into 'body' +Given I connect to 'url' and send object 'body' and do post and output into 'server_response' + +Given I have a 'string dictionary' named 'server_response' +Then print the data + +==> +Statement(SlangroomStatement(GivenStatement(Given,I,FsStatement(FsConnectAction(FsSend(send,path,StringLiteral,and,FsAction(read,file,content))),and, + SaveAction(output,Identifier,into,StringLiteral))),GivenStatement(Given,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and, + HelpersAction(manipulate,and,get))),and,SaveAction(output,into,StringLiteral))),GivenStatement(Given,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and, + HelpersSend(send,path,StringLiteral,and,HelpersAction(manipulate,and,get))),and,SaveAction(output,Identifier,into,StringLiteral))),GivenStatement(Given,I,FsStatement(FsConnectAction( + FsSend(send,path,StringLiteral,and,FsAction(read,file,content))),and,SaveAction(output,into,StringLiteral))),GivenStatement(Given,I,HelpersStatement( + HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and,HelpersSend(send,value,StringLiteral,and,HelpersAction(manipulate,and,set)))))), + GivenStatement(Given,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and,HelpersSend(send,value,StringLiteral,and, + HelpersAction(manipulate,and,set)))))),GivenStatement(Given,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and, + HelpersSend(send,value,StringLiteral,and,HelpersAction(manipulate,and,set)))))),GivenStatement(Given,I,FsStatement(FsConnectAction(FsSend(send,path,StringLiteral,and, + FsAction(read,verbatim,file,content))),and,SaveAction(output,into,StringLiteral))),GivenStatement(Given,I,ZencodeStatement(ZencodeSend(send,keys,StringLiteral,and, + ZencodeSend(send,data,StringLiteral,and,ZencodeSend(send,script,StringLiteral,and,ZencodeAction(execute,zencode)))),and,SaveAction(output,into,StringLiteral))), + GivenStatement(Given,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and,HelpersAction(manipulate,and,get))),and, + SaveAction(output,into,StringLiteral))),GivenStatement(Given,I,HttpStatement(HttpConnectAction(connect,to,StringLiteral,and,HttpAction(do,get)),and, + SaveAction(output,into,StringLiteral))),GivenStatement(Given,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and, + HelpersAction(manipulate,and,get))),and,SaveAction(output,into,StringLiteral))),GivenStatement(Given,I,FsStatement(FsConnectAction(FsSend(send,path,StringLiteral,and, + FsAction(read,verbatim,file,content))),and,SaveAction(output,into,StringLiteral))),GivenStatement(Given,I,ZencodeStatement(ZencodeSend(send,keys,StringLiteral,and, + ZencodeSend(send,data,StringLiteral,and,ZencodeSend(send,script,StringLiteral,and,ZencodeAction(execute,zencode)))),and,SaveAction(output,into,StringLiteral))), + GivenStatement(Given,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and,HelpersAction(manipulate,and,get))),and, + SaveAction(output,into,StringLiteral))),GivenStatement(Given,I,HttpStatement(HttpConnectAction(connect,to,StringLiteral,and,HttpAction(do,get)),and, + SaveAction(output,into,StringLiteral))),GivenStatement(Given,I,FsStatement(FsConnectAction(FsSend(send,path,StringLiteral,and,FsAction(read,verbatim,file,content))),and, + SaveAction(output,into,StringLiteral))),GivenStatement(Given,I,ZencodeStatement(ZencodeSend(send,keys,StringLiteral,and,ZencodeSend(send,data,StringLiteral,and, + ZencodeSend(send,script,StringLiteral,and,ZencodeAction(execute,zencode)))),and,SaveAction(output,into,StringLiteral))),GivenStatement(Given,I, + HelpersStatement(HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and,HelpersAction(manipulate,and,get))),and, + SaveAction(output,into,StringLiteral))),GivenStatement(Given,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and, + HelpersAction(manipulate,and,get))),and,SaveAction(output,into,StringLiteral))),GivenStatement(Given,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and, + HelpersSend(send,path,StringLiteral,and,HelpersSend(send,value,StringLiteral,and,HelpersAction(manipulate,and,set)))))),GivenStatement(Given,I, + HelpersStatement(HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and,HelpersSend(send,value,StringLiteral,and,HelpersAction(manipulate,and,set)))))), + GivenStatement(Given,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and,HelpersSend(send,value,StringLiteral,and, + HelpersAction(manipulate,and,set)))))),GivenStatement(Given,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and, + HelpersSend(send,value,StringLiteral,and,HelpersAction(manipulate,and,set)))))),GivenStatement(Given,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and, + HelpersSend(send,path,StringLiteral,and,HelpersSend(send,value,StringLiteral,and,HelpersAction(manipulate,and,set)))))),GivenStatement(Given,I,HelpersStatement( + HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and,HelpersSend(send,value,StringLiteral,and,HelpersAction(manipulate,and,set)))))), + GivenStatement(Given,I,FsStatement(FsConnectAction(FsSend(send,path,StringLiteral,and,FsAction(read,verbatim,file,content))),and,SaveAction(output,into,StringLiteral))), + GivenStatement(Given,I,ZencodeStatement(ZencodeSend(send,keys,StringLiteral,and,ZencodeSend(send,data,StringLiteral,and,ZencodeSend(send,script,StringLiteral,and, + ZencodeAction(execute,zencode)))),and,SaveAction(output,into,StringLiteral))),GivenStatement(Given,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and, + HelpersSend(send,path,StringLiteral,and,HelpersAction(manipulate,and,get))),and,SaveAction(output,into,StringLiteral))),GivenStatement(Given,I,HelpersStatement( + HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and,HelpersAction(manipulate,and,get))),and,SaveAction(output,into,StringLiteral))), + GivenStatement(Given,I,HttpStatement(HttpConnectAction(connect,to,StringLiteral,and,HttpSend(send,object,StringLiteral,and,HttpAction(do,post))),and, + SaveAction(output,into,StringLiteral))),GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),ThenPrint(Then,print,Keywords(the),Keywords(data)))) + +#Test from Didroom 3 + + +Given I send path 'well-known_path' and read file content and output into 'well-known' +Given I have a 'string dictionary' named 'well-known' + +# Loading the private keys +Given my name is in a 'string' named 'controller' +Given I have the 'keyring' in 'personal_keyring' + +Given I have a 'string dictionary' named 'server' +Given I have a 'string dictionary' named 'request' +Given I have a 'string dictionary' named 'client' +Given I have a 'number' named 'expires_in' + +# Data from the client +Given I have a 'string' named 'response_type' +Given I have a 'string' named 'client_id' +Given I have a 'string' named 'state' +Given I have a 'string' named 'code_challenge' +Given I have a 'string' named 'code_challenge_method' +Given I have a 'string' named 'redirect_uri' +Given I have a 'string' named 'client_secret' +Given I have a 'string array' named 'authorization_details' +Given I have a 'string array' named 'locations' inside 'authorization_details' + +When I rename 'client_secret' to 'clientSecret' + +# - request.body +When I set 'base-url' to 'http://' as 'string' +When I create the url from 'base-url' +When I append 'response_type' as http request to 'url' +When I append 'client_id' as http request to 'url' +When I append 'state' as http request to 'url' +When I append 'code_challenge' as http request to 'url' +When I append 'code_challenge_method' as http request to 'url' + +When I append the percent encoding of 'redirect_uri' as http request to 'url' +When I create the json escaped string of 'authorization_details' +When I rename the 'authorization_details' to 'authorization_details_dict' +When I rename the 'json escaped string' to 'authorization_details' +When I append the percent encoding of 'authorization_details' as http request to 'url' +When I split the leftmost '8' bytes of 'url' +When I rename the 'url' to 'body' +When I move 'body' in 'request' + +# - client +When I move the 'client_id' to 'id' in 'client' +When I move 'clientSecret' in 'client' +When I move the 'redirect_uri' to 'redirectUris' in 'client' + +When I create copy of element '1' from array 'locations' +When I rename the 'copy' to 'resource' +When I move 'resource' in 'client' + +# - server +When I pickup from path 'well-known.issuer' +When I move 'issuer' to 'url' in 'server' +When I create jwk of es256 public key with private key +When I move 'jwk' in 'server' + +Then print the 'client' +Then print the 'request' +Then print the 'server' + +Then I send request 'request' and send client 'client' and send server_data 'server' and send expires_in 'expires_in' and generate request uri and output into 'parresult' +Then I manipulate and delete and output into 'client' +Then I manipulate and delete and output into 'request' +Then I manipulate and delete and output into 'server' +Then I send object 'parresult' and send path 'request_path' and manipulate and get and output into 'request_uri' +Then I send object 'parresult' and send path 'expires_path' and manipulate and get and output into 'expires_in' +Then I manipulate and delete and output into 'parresult' + +==> + +Statement(SlangroomStatement(GivenStatement(Given,I,FsStatement(FsConnectAction(FsSend(send,path,StringLiteral,and,FsAction(read,file,content))),and,SaveAction(output,into,StringLiteral))), + GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),GivenName(Given,my,name,is,Keywords(in),Keywords(a),StringLiteral,Keywords(named),StringLiteral), + GivenHaveStatement(Given,I,have,the,StringLiteral,in,StringLiteral),GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral), + GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral), + GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral), + GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral), + GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral), + GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral), + GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral),GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral,inside,StringLiteral), + WhenStatement(When,I,Identifier,StringLiteral,Keywords(to),StringLiteral),WhenStatement(When,I,Keywords(set),StringLiteral,Keywords(to),StringLiteral,Keywords(as),StringLiteral), + WhenStatement(When,I,Keywords(create),Keywords(the),Keywords(url),Keywords(from),StringLiteral),WhenStatement(When,I,Identifier,StringLiteral,Keywords(as),Identifier,Keywords(request), + Keywords(to),StringLiteral),WhenStatement(When,I,Identifier,StringLiteral,Keywords(as),Identifier,Keywords(request),Keywords(to),StringLiteral), + WhenStatement(When,I,Identifier,StringLiteral,Keywords(as),Identifier,Keywords(request),Keywords(to),StringLiteral), + WhenStatement(When,I,Identifier,StringLiteral,Keywords(as),Identifier,Keywords(request),Keywords(to),StringLiteral), + WhenStatement(When,I,Identifier,StringLiteral,Keywords(as),Identifier,Keywords(request),Keywords(to),StringLiteral), + WhenStatement(When,I,Identifier,Keywords(the),Identifier,Identifier,Keywords(of),StringLiteral,Keywords(as),Identifier,Keywords(request),Keywords(to),StringLiteral), + WhenStatement(When,I,Keywords(create),Keywords(the),Keywords(json),Identifier,Identifier,Keywords(of),StringLiteral), + WhenStatement(When,I,Identifier,Keywords(the),StringLiteral,Keywords(to),StringLiteral),WhenStatement(When,I,Identifier,Keywords(the),StringLiteral,Keywords(to),StringLiteral), + WhenStatement(When,I,Identifier,Keywords(the),Identifier,Identifier,Keywords(of),StringLiteral,Keywords(as),Identifier,Keywords(request),Keywords(to),StringLiteral), + WhenStatement(When,I,Identifier,Keywords(the),Identifier,StringLiteral,Keywords(bytes),Keywords(of),StringLiteral), + WhenStatement(When,I,Identifier,Keywords(the),StringLiteral,Keywords(to),StringLiteral),WhenStatement(When,I,Identifier,StringLiteral,Keywords(in),StringLiteral), + WhenStatement(When,I,Identifier,Keywords(the),StringLiteral,Keywords(to),StringLiteral,Keywords(in),StringLiteral), + WhenStatement(When,I,Identifier,StringLiteral,Keywords(in),StringLiteral),WhenStatement(When,I,Identifier,Keywords(the),StringLiteral,Keywords(to),StringLiteral,Keywords(in),StringLiteral), + WhenStatement(When,I,Keywords(create),Identifier,Keywords(of),Identifier,StringLiteral,Keywords(from),Keywords(array),StringLiteral), + WhenStatement(When,I,Identifier,Keywords(the),StringLiteral,Keywords(to),StringLiteral),WhenStatement(When,I,Identifier,StringLiteral,Keywords(in),StringLiteral), + WhenStatement(When,I,Identifier,Keywords(from),Keywords(path),StringLiteral),WhenStatement(When,I,Identifier,StringLiteral,Keywords(to),StringLiteral,Keywords(in),StringLiteral), + WhenStatement(When,I,Keywords(create),Keywords(jwk),Keywords(of),Identifier,Keywords(public),Keywords(key),Keywords(with),Identifier,Keywords(key)), + WhenStatement(When,I,Identifier,StringLiteral,Keywords(in),StringLiteral),ThenPrint(Then,print,Keywords(the),StringLiteral),ThenPrint(Then,print,Keywords(the),StringLiteral), + ThenPrint(Then,print,Keywords(the),StringLiteral),ThenStatement(Then,I,OAuthStatement(OAuthSend(send,request,StringLiteral,and, + OAuthSend(send,client,StringLiteral,and,OAuthSend(send,server_data,StringLiteral,and,OAuthSend(send,expires_in,StringLiteral,and,OAuthAction(generate,request,uri))))),and, + SaveAction(output,into,StringLiteral))),ThenStatement(Then,I,HelpersStatement(HelpersAction(manipulate,and,delete),and,SaveAction(output,into,StringLiteral))), + ThenStatement(Then,I,HelpersStatement(HelpersAction(manipulate,and,delete),and,SaveAction(output,into,StringLiteral))),ThenStatement(Then,I, + HelpersStatement(HelpersAction(manipulate,and,delete),and,SaveAction(output,into,StringLiteral))),ThenStatement(Then,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and, + HelpersSend(send,path,StringLiteral,and,HelpersAction(manipulate,and,get))),and,SaveAction(output,into,StringLiteral))),ThenStatement(Then,I,HelpersStatement( + HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and,HelpersAction(manipulate,and,get))),and,SaveAction(output,into,StringLiteral))), + ThenStatement(Then,I,HelpersStatement(HelpersAction(manipulate,and,delete),and,SaveAction(output,into,StringLiteral))))) + +#Test from Didroom 4 + +Rule output encoding base58 +Scenario ecdh +Scenario eddsa +Scenario ethereum +Scenario reflow +Scenario es256 +Scenario credential +Scenario bbs +Scenario qp + +## see if keyring exists and fails in case it is found +Given I send command 'command_search_keyring' and execute in shell and output into 'result' +Given I send path 'secrets_path' and verify file does not exist + +## create and store keyring +Given I send path 'key_zen_path' and read verbatim file content and output into 'key_zen' +Given I send keys 'empty_keys' and send data 'key_data' and send script 'key_zen' and execute zencode and output secret into 'secrets' + +## extract data for later +Given I send object 'secrets' and send path 'controller_path' and manipulate and get and output into 'controller' +Given I send object 'secrets' and send path 'controller' and manipulate and get and output secret into 'personal_keyring' + +## read well-known +Given I send path 'well-known_path' and read file content and output into 'well-known' + +Given I have a 'string dictionary' named 'secrets' + +Given I my name is in a 'string' named 'controller' +and I have a 'string' named 'controller' +and I have a 'keyring' in 'personal_keyring' +and I have a 'string dictionary' named 'well-known' + +If I verify 'display' is found in 'well-known' +When I pickup from path 'well-known.display.1.name' +and I rename 'name' to 'description' +EndIf +If I verify 'display' is not found in 'well-known' +When I copy 'controller' to 'description' +EndIf + +When I create the ecdh public key +and I create the eddsa public key +and I create the ethereum address +and I create the bitcoin public key +and I create the reflow public key +and I create the es256 public key +and I create the issuer public key +and I create the bbs public key +and I create the dilithium public key + +Then I print the 'ecdh public key' +and I print the 'eddsa public key' +and I print the 'ethereum address' +and I print the 'bitcoin public key' +and I print the 'reflow public key' +and I print the 'es256 public key' +and I print the 'issuer public key' as 'compressed issuer public key' +and I print the 'bbs public key' +and I print the 'dilithium public key' +and I print my name in 'controller' +and I print the 'description' +and I print the 'secrets' + +## create did +# data +Then I send object 'did_data' and send path 'ecdh_path' and send value 'ecdh_public_key' and manipulate and set +Then I send object 'did_data' and send path 'eddsa_path' and send value 'eddsa_public_key' and manipulate and set +Then I send object 'did_data' and send path 'ethereum_path' and send value 'ethereum_address' and manipulate and set +Then I send object 'did_data' and send path 'bitcoin_path' and send value 'bitcoin_public_key' and manipulate and set +Then I send object 'did_data' and send path 'reflow_path' and send value 'reflow_public_key' and manipulate and set +Then I send object 'did_data' and send path 'es256_path' and send value 'es256_public_key' and manipulate and set +Then I send object 'did_data' and send path 'issuer_path' and send value 'issuer_public_key' and manipulate and set +Then I send object 'did_data' and send path 'bbs_path' and send value 'bbs_public_key' and manipulate and set +Then I send object 'did_data' and send path 'dilithium_path' and send value 'dilithium_public_key' and manipulate and set +Then I send object 'did_data' and send path 'controller_path' and send value 'controller' and manipulate and set +Then I send object 'did_data' and send path 'description_path' and send value 'description' and manipulate and set + +# execute zen +Then I send path 'did_zen_path' and read verbatim file content and output into 'did_zen' +Then I send keys 'did_keys' and send data 'did_data' and send script 'did_zen' and execute zencode and output into 'post_body' +Then I manipulate and delete and output into 'did_data' +Then I manipulate and delete and output into 'did_zen' + +# admin post +Then I connect to 'did_admin_endpoint' and send object 'post_body' and do post and output into 'post_response' +Then I manipulate and delete and output into 'post_body' + +# did.dyne.org post +Then I send object 'post_response' and send path 'result_path' and manipulate and get and output into 'result' +Then I connect to 'did_server_endpoint' and send object 'result' and do post and output into 'did_response' +Then I manipulate and delete and output into 'post_response' +Then I manipulate and delete and output into 'result' + +# .well-known +Then I send path 'well-known_path' and read file content and output into 'well-known' +Then I send path 'kid_zen_path' and read verbatim file content and output into 'kid_zen' +Then I send keys 'empty_keys' and send data 'did_response' and send script 'kid_zen' and execute zencode and output into 'kid' +Then I send object 'kid' and send path 'kid_path' and manipulate and get and output into 'kid_value' +Then I send object 'well-known' and send path 'kid_well-known_path' and send value 'kid_value' and manipulate and set +Then I send object 'secrets' and send path 'kid_path' and send value 'kid_value' and manipulate and set +Then I send path 'secrets_path' and send content 'secrets' and store in file +Then I send command 'command_store_keyring' and execute in shell +Then I send path 'well-known_path' and send content 'well-known' and store in file +Then I manipulate and delete and output into 'well-known' +Then I manipulate and delete and output into 'did_response' +Then I manipulate and delete and output into 'kid' +Then I manipulate and delete and output into 'kid_data' +Then I manipulate and delete and output into 'kid_zen' +Then I manipulate and delete and output into 'secrets' + + +==> + +Statement(RuleStatement(Rule,GenericRule(Keywords(output),Identifier,Identifier)),ScenarioStatement(Scenario,Identifier),ScenarioStatement(Scenario,Identifier), + ScenarioStatement(Scenario,Keywords(ethereum)),ScenarioStatement(Scenario,Identifier),ScenarioStatement(Scenario,Identifier), + ScenarioStatement(Scenario,Identifier),ScenarioStatement(Scenario,Identifier),ScenarioStatement(Scenario,Identifier),SlangroomStatement(GivenStatement(Given,I,ShellStatement( + ShellSend(send,command,StringLiteral,and,ShellAction(execute,in,shell)),and,SaveAction(output,into,StringLiteral))),GivenStatement(Given,I,FsStatement(FsConnectAction( + FsSend(send,path,StringLiteral,and,FsAction(verify,file,does,not,exist))))),GivenStatement(Given,I,FsStatement(FsConnectAction(FsSend(send,path,StringLiteral,and, + FsAction(read,verbatim,file,content))),and,SaveAction(output,into,StringLiteral))),GivenStatement(Given,I,ZencodeStatement(ZencodeSend(send,keys,StringLiteral,and, + ZencodeSend(send,data,StringLiteral,and,ZencodeSend(send,script,StringLiteral,and,ZencodeAction(execute,zencode)))),and,SaveAction(output,Identifier,into,StringLiteral))), + GivenStatement(Given,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and,HelpersAction(manipulate,and,get))),and, + SaveAction(output,into,StringLiteral))),GivenStatement(Given,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and, + HelpersAction(manipulate,and,get))),and,SaveAction(output,Identifier,into,StringLiteral))),GivenStatement(Given,I,FsStatement(FsConnectAction(FsSend(send,path,StringLiteral,and, + FsAction(read,file,content))),and,SaveAction(output,into,StringLiteral))),GivenHaveStatement(Given,I,have,a,StringLiteral,named,StringLiteral), + GivenName(Given,I,my,name,is,Keywords(in),Keywords(a),StringLiteral,Keywords(named),StringLiteral,HaveStatement(and,I,have,a,StringLiteral,named,StringLiteral), + HaveStatement(and,I,have,a,StringLiteral,in,StringLiteral),HaveStatement(and,I,have,a,StringLiteral,named,StringLiteral)),IfEndifStatement(Condition(If,I,verify,StringLiteral, + Keywords(is),Identifier,Keywords(in),StringLiteral),WhenStatement(When,I,Identifier,Keywords(from),Keywords(path),StringLiteral,Keywords(and),I,Identifier,StringLiteral,Keywords(to), + StringLiteral),EndIf),IfEndifStatement(Condition(If,I,verify,StringLiteral,Keywords(is),Keywords(not),Identifier,Keywords(in),StringLiteral),WhenStatement(When,I,Identifier, + StringLiteral,Keywords(to),StringLiteral),EndIf),WhenStatement(When,I,Keywords(create),Keywords(the),Identifier,Keywords(public),Keywords(key),Keywords(and),I,Keywords(create), + Keywords(the),Identifier,Keywords(public),Keywords(key),Keywords(and),I,Keywords(create),Keywords(the),Keywords(ethereum),Keywords(address),Keywords(and),I,Keywords(create), + Keywords(the),Identifier,Keywords(public),Keywords(key),Keywords(and),I,Keywords(create),Keywords(the),Identifier,Keywords(public),Keywords(key),Keywords(and),I,Keywords(create), + Keywords(the),Identifier,Keywords(public),Keywords(key),Keywords(and),I,Keywords(create),Keywords(the),Identifier,Keywords(public),Keywords(key),Keywords(and),I,Keywords(create), + Keywords(the),Identifier,Keywords(public),Keywords(key),Keywords(and),I,Keywords(create),Keywords(the),Identifier,Keywords(public),Keywords(key)),ThenPrint(Then,I,print,Keywords(the), + StringLiteral,Keywords(and),I,print,Keywords(the),StringLiteral,Keywords(and),I,print,Keywords(the),StringLiteral,Keywords(and),I,print,Keywords(the),StringLiteral,Keywords(and), + I,print,Keywords(the),StringLiteral,Keywords(and),I,print,Keywords(the),StringLiteral,Keywords(and),I,print,Keywords(the),StringLiteral,Keywords(as),StringLiteral,Keywords(and), + I,print,Keywords(the),StringLiteral,Keywords(and),I,print,Keywords(the),StringLiteral,Keywords(and),I,print,Keywords(my),Keywords(name),Keywords(in),StringLiteral,Keywords(and), + I,print,Keywords(the),StringLiteral,Keywords(and),I,print,Keywords(the),StringLiteral),ThenStatement(Then,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and, + HelpersSend(send,path,StringLiteral,and,HelpersSend(send,value,StringLiteral,and,HelpersAction(manipulate,and,set)))))),ThenStatement(Then,I,HelpersStatement( + HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and,HelpersSend(send,value,StringLiteral,and,HelpersAction(manipulate,and,set)))))), + ThenStatement(Then,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and,HelpersSend(send,value,StringLiteral,and, + HelpersAction(manipulate,and,set)))))),ThenStatement(Then,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and, + HelpersSend(send,value,StringLiteral,and,HelpersAction(manipulate,and,set)))))),ThenStatement(Then,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and, + HelpersSend(send,path,StringLiteral,and,HelpersSend(send,value,StringLiteral,and,HelpersAction(manipulate,and,set)))))),ThenStatement(Then,I,HelpersStatement( + HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and,HelpersSend(send,value,StringLiteral,and,HelpersAction(manipulate,and,set)))))), + ThenStatement(Then,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and,HelpersSend(send,value,StringLiteral,and, + HelpersAction(manipulate,and,set)))))),ThenStatement(Then,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and, + HelpersSend(send,value,StringLiteral,and,HelpersAction(manipulate,and,set)))))),ThenStatement(Then,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and, + HelpersSend(send,path,StringLiteral,and,HelpersSend(send,value,StringLiteral,and,HelpersAction(manipulate,and,set)))))),ThenStatement(Then,I,HelpersStatement( + HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and,HelpersSend(send,value,StringLiteral,and,HelpersAction(manipulate,and,set)))))), + ThenStatement(Then,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and,HelpersSend(send,value,StringLiteral,and, + HelpersAction(manipulate,and,set)))))),ThenStatement(Then,I,FsStatement(FsConnectAction(FsSend(send,path,StringLiteral,and,FsAction(read,verbatim,file,content))), + and,SaveAction(output,into,StringLiteral))),ThenStatement(Then,I,ZencodeStatement(ZencodeSend(send,keys,StringLiteral,and,ZencodeSend(send,data,StringLiteral,and, + ZencodeSend(send,script,StringLiteral,and,ZencodeAction(execute,zencode)))),and,SaveAction(output,into,StringLiteral))),ThenStatement(Then,I,HelpersStatement( + HelpersAction(manipulate,and,delete),and,SaveAction(output,into,StringLiteral))),ThenStatement(Then,I,HelpersStatement(HelpersAction(manipulate,and,delete),and, + SaveAction(output,into,StringLiteral))),ThenStatement(Then,I,HttpStatement(HttpConnectAction(connect,to,StringLiteral,and,HttpSend(send,object,StringLiteral,and,HttpAction(do,post))), + and,SaveAction(output,into,StringLiteral))),ThenStatement(Then,I,HelpersStatement(HelpersAction(manipulate,and,delete),and,SaveAction(output,into,StringLiteral))), + ThenStatement(Then,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and,HelpersAction(manipulate,and,get))),and, + SaveAction(output,into,StringLiteral))),ThenStatement(Then,I,HttpStatement(HttpConnectAction(connect,to,StringLiteral,and,HttpSend(send,object,StringLiteral,and,HttpAction(do,post))), + and,SaveAction(output,into,StringLiteral))),ThenStatement(Then,I,HelpersStatement(HelpersAction(manipulate,and,delete),and,SaveAction(output,into,StringLiteral))), + ThenStatement(Then,I,HelpersStatement(HelpersAction(manipulate,and,delete),and,SaveAction(output,into,StringLiteral))),ThenStatement(Then,I,FsStatement(FsConnectAction( + FsSend(send,path,StringLiteral,and,FsAction(read,file,content))),and,SaveAction(output,into,StringLiteral))),ThenStatement(Then,I,FsStatement(FsConnectAction( + FsSend(send,path,StringLiteral,and,FsAction(read,verbatim,file,content))),and,SaveAction(output,into,StringLiteral))),ThenStatement(Then,I,ZencodeStatement( + ZencodeSend(send,keys,StringLiteral,and,ZencodeSend(send,data,StringLiteral,and,ZencodeSend(send,script,StringLiteral,and,ZencodeAction(execute,zencode)))),and, + SaveAction(output,into,StringLiteral))),ThenStatement(Then,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and, + HelpersAction(manipulate,and,get))),and,SaveAction(output,into,StringLiteral))),ThenStatement(Then,I,HelpersStatement(HelpersSend(send,object,StringLiteral,and, + HelpersSend(send,path,StringLiteral,and,HelpersSend(send,value,StringLiteral,and,HelpersAction(manipulate,and,set)))))),ThenStatement(Then,I, + HelpersStatement(HelpersSend(send,object,StringLiteral,and,HelpersSend(send,path,StringLiteral,and,HelpersSend(send,value,StringLiteral,and,HelpersAction(manipulate,and,set)))))), + ThenStatement(Then,I,FsStatement(FsConnectAction(FsSend(send,path,StringLiteral,and,FsSend(send,content,StringLiteral,and,FsAction(store,in,file)))))), + ThenStatement(Then,I,ShellStatement(ShellSend(send,command,StringLiteral,and,ShellAction(execute,in,shell)))),ThenStatement(Then,I,FsStatement(FsConnectAction( + FsSend(send,path,StringLiteral,and,FsSend(send,content,StringLiteral,and,FsAction(store,in,file)))))),ThenStatement(Then,I,HelpersStatement(HelpersAction(manipulate,and,delete),and, + SaveAction(output,into,StringLiteral))),ThenStatement(Then,I,HelpersStatement(HelpersAction(manipulate,and,delete),and,SaveAction(output,into,StringLiteral))), + ThenStatement(Then,I,HelpersStatement(HelpersAction(manipulate,and,delete),and,SaveAction(output,into,StringLiteral))),ThenStatement(Then,I,HelpersStatement( + HelpersAction(manipulate,and,delete),and,SaveAction(output,into,StringLiteral))),ThenStatement(Then,I,HelpersStatement(HelpersAction(manipulate,and,delete),and, + SaveAction(output,into,StringLiteral))),ThenStatement(Then,I,HelpersStatement(HelpersAction(manipulate,and,delete),and,SaveAction(output,into,StringLiteral))))) + From 4ff3d20844e61ba3ba89572ddc69f40582faed06 Mon Sep 17 00:00:00 2001 From: FilippoTrotter Date: Tue, 27 Aug 2024 12:39:24 +0200 Subject: [PATCH 16/29] add grammar test to github actions --- .github/workflows/ci.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0da390a4..39f8d1e3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -51,6 +51,12 @@ jobs: while ! nc -z 0.0.0.0 8090; do echo "pocketbase not ready" && sleep 1; done - name: 🧪 Run the tests run: pnpm coverage + - name: 🧪 Test grammar package + run: | + make + pnpm run prepare + pnpm test + working-directory: ./pkg/grammar - name: 📨 Setup playwright run: | npx playwright install From 25db990553dc402570622b7217c40fd8f0f7dae4 Mon Sep 17 00:00:00 2001 From: matteo-cristino Date: Wed, 28 Aug 2024 10:03:10 +0200 Subject: [PATCH 17/29] fix(grammar): add missing syntax.grammar.d.ts file --- .gitignore | 1 + grammar/src/syntax.grammar.d.ts | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 grammar/src/syntax.grammar.d.ts diff --git a/.gitignore b/.gitignore index 4da37f52..65e7143e 100644 --- a/.gitignore +++ b/.gitignore @@ -69,6 +69,7 @@ node_modules # grammar lezer !/grammar/Makefile !/grammar/src/syntax.grammar +!/grammar/src/syntax.grammar.d.ts !/grammar/src/index.ts !/grammar/test/* !/grammar/.npmignore diff --git a/grammar/src/syntax.grammar.d.ts b/grammar/src/syntax.grammar.d.ts new file mode 100644 index 00000000..a9ceb9c7 --- /dev/null +++ b/grammar/src/syntax.grammar.d.ts @@ -0,0 +1,7 @@ +// SPDX-FileCopyrightText: 2024 Dyne.org foundation +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {LRParser} from "@lezer/lr" + +export declare const parser: LRParser From 9ff39db1c1e3bd57b67c66b4e9f37e1eb70e9d55 Mon Sep 17 00:00:00 2001 From: matteo-cristino Date: Wed, 28 Aug 2024 10:04:48 +0200 Subject: [PATCH 18/29] chore(grammar): remove package-lock since using pnpm --- grammar/package-lock.json.license | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 grammar/package-lock.json.license diff --git a/grammar/package-lock.json.license b/grammar/package-lock.json.license deleted file mode 100644 index e7fc1c66..00000000 --- a/grammar/package-lock.json.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: 2024 Dyne.org foundation - -SPDX-License-Identifier: AGPL-3.0-or-later From a05616b348dc0eba9598f452a24f29b99bb078b4 Mon Sep 17 00:00:00 2001 From: matteo-cristino Date: Wed, 28 Aug 2024 10:05:57 +0200 Subject: [PATCH 19/29] chore: add grammar to workspace --- pnpm-lock.yaml | 594 ++++++++++++++++++++++++++++++++++++++++++++ pnpm-workspace.yaml | 1 + 2 files changed, 595 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 242a61aa..73d0376b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -111,6 +111,37 @@ importers: specifier: ^3.0.3 version: 3.0.3 + grammar: + dependencies: + '@codemirror/language': + specifier: ^6.0.0 + version: 6.10.2 + '@lezer/highlight': + specifier: ^1.0.0 + version: 1.2.1 + '@lezer/lr': + specifier: ^1.0.0 + version: 1.4.2 + devDependencies: + '@lezer/generator': + specifier: ^1.0.0 + version: 1.7.1 + mocha: + specifier: ^9.0.1 + version: 9.2.2 + rollup: + specifier: ^2.60.2 + version: 2.79.1 + rollup-plugin-dts: + specifier: ^4.0.1 + version: 4.2.3(rollup@2.79.1)(typescript@4.9.5) + rollup-plugin-ts: + specifier: ^3.0.2 + version: 3.4.5(rollup@2.79.1)(typescript@4.9.5) + typescript: + specifier: ^4.3.4 + version: 4.9.5 + pkg/browser: dependencies: '@slangroom/core': @@ -529,6 +560,15 @@ packages: '@chevrotain/utils@10.5.0': resolution: {integrity: sha512-hBzuU5+JjB2cqNZyszkDHZgOSrUUT8V3dhgRl8Q9Gp6dAj/H5+KILGjbhDpc3Iy9qmqlm/akuOI2ut9VUtzJxQ==} + '@codemirror/language@6.10.2': + resolution: {integrity: sha512-kgbTYTo0Au6dCSc/TFy7fK3fpJmgHDv1sG1KNQKJXVi+xBTEeBPY/M30YXiU6mMXeH+YIDLsbrT4ZwNRdtF+SA==} + + '@codemirror/state@6.4.1': + resolution: {integrity: sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==} + + '@codemirror/view@6.33.0': + resolution: {integrity: sha512-AroaR3BvnjRW8fiZBalAaK+ZzB5usGgI014YKElYZvQdNH5ZIidHlO+cyf/2rWzyBFRkvG6VhiXeAEbC53P2YQ==} + '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -942,6 +982,19 @@ packages: resolution: {integrity: sha512-0Kes5H0H8+tZSTLMTf5ArZTIijROSwgvJsnd5o7z6XvYZM8cq9ED63tpzgX9GKXyqnjZH4mlHpcQr5lpmABJFA==} engines: {node: ^18.0.0 || >=20.0.0} + '@lezer/common@1.2.1': + resolution: {integrity: sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==} + + '@lezer/generator@1.7.1': + resolution: {integrity: sha512-MgPJN9Si+ccxzXl3OAmCeZuUKw4XiPl4y664FX/hnnyG9CTqUPq65N3/VGPA2jD23D7QgMTtNqflta+cPN+5mQ==} + hasBin: true + + '@lezer/highlight@1.2.1': + resolution: {integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==} + + '@lezer/lr@1.4.2': + resolution: {integrity: sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==} + '@ljharb/through@2.3.13': resolution: {integrity: sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==} engines: {node: '>= 0.4'} @@ -950,6 +1003,9 @@ packages: resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} hasBin: true + '@mdn/browser-compat-data@5.5.49': + resolution: {integrity: sha512-FNYbYIA8WEff/+A8iMGstZhArpgy5ZxZ9uQRsBQ+qXsiKTYn3WjxpCmJRw3CFUOqFlQSZDkC3v1y3BijRnE1Pg==} + '@meeco/sd-jwt-vc@0.0.4': resolution: {integrity: sha512-5mLSJ/pEqlkTYiy7p5CeOX9Z52QsprYlepWc5db+nV5h5TOS8VOBl8r0Xu+QKpORVyaX2bsgD71pNCgg7U2tsQ==} engines: {node: '>=18', npm: '>=8.0.0'} @@ -1118,6 +1174,15 @@ packages: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} + '@rollup/pluginutils@5.1.0': + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/rollup-android-arm-eabi@4.13.0': resolution: {integrity: sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==} cpu: [arm] @@ -1277,6 +1342,9 @@ packages: '@types/ms@0.7.34': resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + '@types/node@17.0.45': + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + '@types/node@20.10.4': resolution: {integrity: sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==} @@ -1286,12 +1354,18 @@ packages: '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + '@types/object-path@0.11.4': + resolution: {integrity: sha512-4tgJ1Z3elF/tOMpA8JLVuR9spt9Ynsf7+JjqsQ2IqtiPJtcLoHoXcT6qU4E10cPFqyXX5HDm9QwIzZhBSkLxsw==} + '@types/qrcode@1.5.5': resolution: {integrity: sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==} '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + '@types/ua-parser-js@0.7.39': + resolution: {integrity: sha512-P/oDfpofrdtF5xw433SPALpdSchtJmY7nsJItf8h3KXqOslkbySh8zq4dSWXH2oTjRvJ5PczVEoCZPow6GicLg==} + '@types/validator@13.11.9': resolution: {integrity: sha512-FCTsikRozryfayPuiI46QzH3fnrOoctTjvOYZkho9BTFLCOZ2rgZJHMOVgCOfttjPJcgOx52EpkY0CMfy87MIw==} @@ -1362,6 +1436,9 @@ packages: resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==} engines: {node: ^18.18.0 || >=20.0.0} + '@ungap/promise-all-settled@1.1.2': + resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==} + '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} @@ -1467,6 +1544,10 @@ packages: '@vueuse/shared@10.9.0': resolution: {integrity: sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==} + '@wessberg/stringutil@1.0.19': + resolution: {integrity: sha512-9AZHVXWlpN8Cn9k5BC/O0Dzb9E9xfEMXzYrNunwvkUTvuK7xgQPVRZpLo+jWCOZ5r8oBa8NIrHuPEu1hzbb6bg==} + engines: {node: '>=8.0.0'} + JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -1543,6 +1624,14 @@ packages: algoliasearch@4.22.1: resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==} + ansi-colors@4.1.1: + resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} + engines: {node: '>=6'} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -1570,6 +1659,10 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + aproba@2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} @@ -1660,6 +1753,10 @@ packages: resolution: {integrity: sha512-obsRaULtJurnfox/MDwgq6Yo9kzbv1CPTk/1/s7Z/61Lezc8IKkFCOXNeVLXz0456WRzBQmSsDWlai2tIhBsfA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} @@ -1679,6 +1776,18 @@ packages: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} + browser-stdout@1.3.1: + resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + + browserslist-generator@2.1.0: + resolution: {integrity: sha512-ZFz4mAOgqm0cbwKaZsfJbYDbTXGoPANlte7qRsRJOfjB9KmmISQrXJxAVrnXG8C8v/QHNzXyeJt0Cfcks6zZvQ==} + engines: {node: '>=16.15.1', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'} + + browserslist@4.23.3: + resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + bs58@5.0.0: resolution: {integrity: sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==} @@ -1727,6 +1836,13 @@ packages: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + caniuse-lite@1.0.30001653: + resolution: {integrity: sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw==} + cbor@9.0.2: resolution: {integrity: sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==} engines: {node: '>=16'} @@ -1749,6 +1865,10 @@ packages: chevrotain@10.5.0: resolution: {integrity: sha512-Pkv5rBY3+CsHOYfV5g/Vs5JY9WTHHDEKOlohI2XeygaZhUeqhAlldZ8Hz9cRmxu709bvS08YzxHdTPHhffc13A==} + chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -1796,6 +1916,9 @@ packages: cliui@6.0.0: resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -1854,6 +1977,12 @@ packages: compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + compatfactory@3.0.0: + resolution: {integrity: sha512-WD5kF7koPwVoyKL8p0LlrmIZtilrD46sQStyzzxzTFinMKN2Dxk1hN+sddLSQU1mGIZvQfU8c+ONSghvvM40jg==} + engines: {node: '>=14.9.0'} + peerDependencies: + typescript: '>=3.x || >= 4.x || >= 5.x' + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -1929,6 +2058,10 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} + crosspath@2.0.0: + resolution: {integrity: sha512-ju88BYCQ2uvjO2bR+SsgLSTwTSctU+6Vp2ePbKPgSCZyy4MWZxYsT738DlKVRE5utUjobjPRm1MkTYKJxCmpTA==} + engines: {node: '>=14.9.0'} + cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -1953,6 +2086,15 @@ packages: resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==} engines: {node: '>=6'} + debug@4.3.3: + resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -1966,6 +2108,10 @@ packages: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} + decamelize@4.0.0: + resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} + engines: {node: '>=10'} + decompress-response@6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} @@ -2025,6 +2171,10 @@ packages: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} + diff@5.0.0: + resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} + engines: {node: '>=0.3.1'} + dijkstrajs@1.0.3: resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} @@ -2057,6 +2207,9 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + electron-to-chromium@1.5.13: + resolution: {integrity: sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==} + emittery@1.0.3: resolution: {integrity: sha512-tJdCJitoy2lrC2ldJcqN4vkqJ00lT+tOWNT1hBJjO/3FDMJa5TTIiYGCKGkn/WfCyOzUMObeohbVTj00fhiLiA==} engines: {node: '>=14.16'} @@ -2269,6 +2422,10 @@ packages: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} @@ -2402,6 +2559,10 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true + glob@7.2.0: + resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + deprecated: Glob versions prior to v9 are no longer supported + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} @@ -2426,6 +2587,10 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + growl@1.10.5: + resolution: {integrity: sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==} + engines: {node: '>=4.x'} + handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} @@ -2472,6 +2637,14 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + helpertypes@0.0.19: + resolution: {integrity: sha512-J00e55zffgi3yVnUp0UdbMztNkr2PnizEkOe9URNohnrNhW5X0QpegkuLpOmFQInpi93Nb8MCjQRHAiCDF42NQ==} + engines: {node: '>=10.0.0'} + hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} @@ -2591,6 +2764,10 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -2641,6 +2818,10 @@ packages: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} + is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -2686,6 +2867,10 @@ packages: resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} engines: {node: '>=18'} + isbot@3.8.0: + resolution: {integrity: sha512-vne1mzQUTR+qsMLeCBL9+/tgnDXRyc2pygLGl/WsgA+EZKIiB5Ehu0CiVTHIIk30zhJ24uGz4M5Ppse37aR0Hg==} + engines: {node: '>=12'} + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -2853,6 +3038,10 @@ packages: lunr@2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} + magic-string@0.26.7: + resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==} + engines: {node: '>=12'} + magic-string@0.30.8: resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} engines: {node: '>=12'} @@ -2945,6 +3134,10 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@4.2.1: + resolution: {integrity: sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==} + engines: {node: '>=10'} + minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} @@ -3016,6 +3209,11 @@ packages: engines: {node: '>=10'} hasBin: true + mocha@9.2.2: + resolution: {integrity: sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==} + engines: {node: '>= 12.0.0'} + hasBin: true + moment-timezone@0.5.45: resolution: {integrity: sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==} @@ -3032,6 +3230,11 @@ packages: resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + nanoid@3.3.1: + resolution: {integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -3097,6 +3300,9 @@ packages: engines: {node: '>= 10.12.0'} hasBin: true + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + nofilter@3.1.0: resolution: {integrity: sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==} engines: {node: '>=12.19'} @@ -3167,6 +3373,10 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + object-path@0.11.8: + resolution: {integrity: sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==} + engines: {node: '>= 10.12.0'} + once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -3324,6 +3534,9 @@ packages: picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -3444,6 +3657,9 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true @@ -3472,6 +3688,10 @@ packages: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + regexp-to-ast@0.5.0: resolution: {integrity: sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==} @@ -3520,6 +3740,47 @@ packages: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true + rollup-plugin-dts@4.2.3: + resolution: {integrity: sha512-jlcpItqM2efqfIiKzDB/IKOS9E9fDvbkJSGw5GtK/PqPGS9eC3R3JKyw2VvpTktZA+TNgJRMu1NTv244aTUzzQ==} + engines: {node: '>=v12.22.12'} + peerDependencies: + rollup: ^2.55 + typescript: ^4.1 + + rollup-plugin-ts@3.4.5: + resolution: {integrity: sha512-9iCstRJpEZXSRQuXitlSZAzcGlrqTbJg1pE4CMbEi6xYldxVncdPyzA2I+j6vnh73wBymZckerS+Q/iEE/M3Ow==} + engines: {node: '>=16.15.1', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'} + peerDependencies: + '@babel/core': '>=7.x' + '@babel/plugin-transform-runtime': '>=7.x' + '@babel/preset-env': '>=7.x' + '@babel/preset-typescript': '>=7.x' + '@babel/runtime': '>=7.x' + '@swc/core': '>=1.x' + '@swc/helpers': '>=0.2' + rollup: '>=1.x || >=2.x || >=3.x' + typescript: '>=3.2.x || >= 4.x || >= 5.x' + peerDependenciesMeta: + '@babel/core': + optional: true + '@babel/plugin-transform-runtime': + optional: true + '@babel/preset-env': + optional: true + '@babel/preset-typescript': + optional: true + '@babel/runtime': + optional: true + '@swc/core': + optional: true + '@swc/helpers': + optional: true + + rollup@2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + engines: {node: '>=10.0.0'} + hasBin: true + rollup@4.13.0: resolution: {integrity: sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -3597,6 +3858,9 @@ packages: resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} engines: {node: '>=10'} + serialize-javascript@6.0.0: + resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} @@ -3690,6 +3954,10 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} @@ -3771,6 +4039,9 @@ packages: engines: {node: '>=4'} hasBin: true + style-mod@4.1.2: + resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} + supertap@3.0.1: resolution: {integrity: sha512-u1ZpIBCawJnO+0QePsEiOknOfCRq0yERxiAchT0i4li0WHNUJbf0evXXSXOcCAR4M8iMDoajXYmstm/qO81Isw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3783,6 +4054,10 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} @@ -3847,6 +4122,12 @@ packages: peerDependencies: typescript: '>=4.2.0' + ts-clone-node@3.0.0: + resolution: {integrity: sha512-egavvyHbIoelkgh1IC2agNB1uMNjB8VJgh0g/cn0bg2XXTcrtjrGMzEk4OD3Fi2hocICjP3vMa56nkzIzq0FRg==} + engines: {node: '>=14.9.0'} + peerDependencies: + typescript: ^3.x || ^4.x || ^5.x + ts-node@10.9.2: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true @@ -3916,11 +4197,19 @@ packages: peerDependencies: typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x + typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + typescript@5.4.3: resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} engines: {node: '>=14.17'} hasBin: true + ua-parser-js@1.0.38: + resolution: {integrity: sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ==} + uglify-js@3.17.4: resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} engines: {node: '>=0.8.0'} @@ -3954,6 +4243,12 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + update-browserslist-db@1.1.0: + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -4054,6 +4349,9 @@ packages: typescript: optional: true + w3c-keyname@2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} + walk-up-path@3.0.1: resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==} @@ -4172,6 +4470,9 @@ packages: wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + workerpool@6.2.0: + resolution: {integrity: sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==} + wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} @@ -4228,14 +4529,26 @@ packages: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} + yargs-parser@20.2.4: + resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} + engines: {node: '>=10'} + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + yargs-unparser@2.0.0: + resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + engines: {node: '>=10'} + yargs@15.4.1: resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} engines: {node: '>=8'} + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} @@ -4431,6 +4744,23 @@ snapshots: '@chevrotain/utils@10.5.0': {} + '@codemirror/language@6.10.2': + dependencies: + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.33.0 + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + style-mod: 4.1.2 + + '@codemirror/state@6.4.1': {} + + '@codemirror/view@6.33.0': + dependencies: + '@codemirror/state': 6.4.1 + style-mod: 4.1.2 + w3c-keyname: 2.2.8 + '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 @@ -4816,6 +5146,21 @@ snapshots: - supports-color - typescript + '@lezer/common@1.2.1': {} + + '@lezer/generator@1.7.1': + dependencies: + '@lezer/common': 1.2.1 + '@lezer/lr': 1.4.2 + + '@lezer/highlight@1.2.1': + dependencies: + '@lezer/common': 1.2.1 + + '@lezer/lr@1.4.2': + dependencies: + '@lezer/common': 1.2.1 + '@ljharb/through@2.3.13': dependencies: call-bind: 1.0.7 @@ -4835,6 +5180,8 @@ snapshots: - encoding - supports-color + '@mdn/browser-compat-data@5.5.49': {} + '@meeco/sd-jwt-vc@0.0.4': dependencies: '@meeco/sd-jwt': 0.0.3 @@ -5085,6 +5432,14 @@ snapshots: estree-walker: 2.0.2 picomatch: 2.3.1 + '@rollup/pluginutils@5.1.0(rollup@2.79.1)': + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + optionalDependencies: + rollup: 2.79.1 + '@rollup/rollup-android-arm-eabi@4.13.0': optional: true @@ -5216,6 +5571,8 @@ snapshots: '@types/ms@0.7.34': {} + '@types/node@17.0.45': {} + '@types/node@20.10.4': dependencies: undici-types: 5.26.5 @@ -5226,12 +5583,16 @@ snapshots: '@types/normalize-package-data@2.4.4': {} + '@types/object-path@0.11.4': {} + '@types/qrcode@1.5.5': dependencies: '@types/node': 20.11.30 '@types/semver@7.5.8': {} + '@types/ua-parser-js@0.7.39': {} + '@types/validator@13.11.9': {} '@types/web-bluetooth@0.0.20': {} @@ -5331,6 +5692,8 @@ snapshots: '@typescript-eslint/types': 7.4.0 eslint-visitor-keys: 3.4.3 + '@ungap/promise-all-settled@1.1.2': {} + '@ungap/structured-clone@1.2.0': {} '@vercel/nft@0.26.4(encoding@0.1.13)': @@ -5460,6 +5823,8 @@ snapshots: - '@vue/composition-api' - vue + '@wessberg/stringutil@1.0.19': {} + JSONStream@1.3.5: dependencies: jsonparse: 1.3.1 @@ -5546,6 +5911,10 @@ snapshots: '@algolia/requester-node-http': 4.22.1 '@algolia/transporter': 4.22.1 + ansi-colors@4.1.1: {} + + ansi-colors@4.1.3: {} + ansi-escapes@4.3.2: dependencies: type-fest: 0.21.3 @@ -5566,6 +5935,11 @@ snapshots: ansi-styles@6.2.1: {} + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + aproba@2.0.0: {} are-we-there-yet@2.0.0: @@ -5680,6 +6054,8 @@ snapshots: read-cmd-shim: 4.0.0 write-file-atomic: 5.0.1 + binary-extensions@2.3.0: {} + bindings@1.5.0: dependencies: file-uri-to-path: 1.0.0 @@ -5705,6 +6081,28 @@ snapshots: dependencies: fill-range: 7.0.1 + browser-stdout@1.3.1: {} + + browserslist-generator@2.1.0: + dependencies: + '@mdn/browser-compat-data': 5.5.49 + '@types/object-path': 0.11.4 + '@types/semver': 7.5.8 + '@types/ua-parser-js': 0.7.39 + browserslist: 4.23.3 + caniuse-lite: 1.0.30001653 + isbot: 3.8.0 + object-path: 0.11.8 + semver: 7.6.0 + ua-parser-js: 1.0.38 + + browserslist@4.23.3: + dependencies: + caniuse-lite: 1.0.30001653 + electron-to-chromium: 1.5.13 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.23.3) + bs58@5.0.0: dependencies: base-x: 4.0.0 @@ -5795,6 +6193,10 @@ snapshots: camelcase@5.3.1: {} + camelcase@6.3.0: {} + + caniuse-lite@1.0.30001653: {} + cbor@9.0.2: dependencies: nofilter: 3.1.0 @@ -5823,6 +6225,18 @@ snapshots: lodash: 4.17.21 regexp-to-ast: 0.5.0 + chokidar@3.5.3: + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + chownr@1.1.4: {} chownr@2.0.0: {} @@ -5858,6 +6272,12 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 6.2.0 + cliui@7.0.4: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -5912,6 +6332,11 @@ snapshots: array-ify: 1.0.0 dot-prop: 5.3.0 + compatfactory@3.0.0(typescript@4.9.5): + dependencies: + helpertypes: 0.0.19 + typescript: 4.9.5 + concat-map@0.0.1: {} concordance@5.0.4: @@ -6007,6 +6432,10 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + crosspath@2.0.0: + dependencies: + '@types/node': 17.0.45 + cssesc@3.0.0: {} csstype@3.1.3: {} @@ -6023,12 +6452,20 @@ snapshots: dependencies: time-zone: 1.0.0 + debug@4.3.3(supports-color@8.1.1): + dependencies: + ms: 2.1.2 + optionalDependencies: + supports-color: 8.1.1 + debug@4.3.4: dependencies: ms: 2.1.2 decamelize@1.2.0: {} + decamelize@4.0.0: {} + decompress-response@6.0.0: dependencies: mimic-response: 3.1.0 @@ -6071,6 +6508,8 @@ snapshots: diff@4.0.2: {} + diff@5.0.0: {} + dijkstrajs@1.0.3: {} dir-glob@3.0.1: @@ -6095,6 +6534,8 @@ snapshots: eastasianwidth@0.2.0: {} + electron-to-chromium@1.5.13: {} + emittery@1.0.3: {} emoji-regex@10.3.0: {} @@ -6379,6 +6820,8 @@ snapshots: keyv: 4.5.4 rimraf: 3.0.2 + flat@5.0.2: {} + flatted@3.3.1: {} focus-trap@7.5.4: @@ -6532,6 +6975,15 @@ snapshots: minipass: 7.0.4 path-scurry: 1.10.1 + glob@7.2.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -6571,6 +7023,8 @@ snapshots: graphemer@1.4.0: {} + growl@1.10.5: {} + handlebars@4.7.8: dependencies: minimist: 1.2.8 @@ -6612,6 +7066,10 @@ snapshots: dependencies: function-bind: 1.1.2 + he@1.2.0: {} + + helpertypes@0.0.19: {} + hookable@5.5.3: {} hosted-git-info@7.0.1: @@ -6742,6 +7200,10 @@ snapshots: is-arrayish@0.2.1: {} + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + is-callable@1.2.7: {} is-ci@3.0.1: @@ -6776,6 +7238,8 @@ snapshots: is-path-inside@3.0.3: {} + is-plain-obj@2.1.0: {} + is-plain-obj@4.1.0: {} is-plain-object@2.0.4: @@ -6808,6 +7272,8 @@ snapshots: is-unicode-supported@2.0.0: {} + isbot@3.8.0: {} + isexe@2.0.0: {} isexe@3.1.1: {} @@ -6966,6 +7432,10 @@ snapshots: lunr@2.3.9: {} + magic-string@0.26.7: + dependencies: + sourcemap-codec: 1.4.8 + magic-string@0.30.8: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 @@ -7068,6 +7538,10 @@ snapshots: dependencies: brace-expansion: 1.1.11 + minimatch@4.2.1: + dependencies: + brace-expansion: 1.1.11 + minimatch@9.0.3: dependencies: brace-expansion: 2.0.1 @@ -7142,6 +7616,33 @@ snapshots: mkdirp@1.0.4: {} + mocha@9.2.2: + dependencies: + '@ungap/promise-all-settled': 1.1.2 + ansi-colors: 4.1.1 + browser-stdout: 1.3.1 + chokidar: 3.5.3 + debug: 4.3.3(supports-color@8.1.1) + diff: 5.0.0 + escape-string-regexp: 4.0.0 + find-up: 5.0.0 + glob: 7.2.0 + growl: 1.10.5 + he: 1.2.0 + js-yaml: 4.1.0 + log-symbols: 4.1.0 + minimatch: 4.2.1 + ms: 2.1.3 + nanoid: 3.3.1 + serialize-javascript: 6.0.0 + strip-json-comments: 3.1.1 + supports-color: 8.1.1 + which: 2.0.2 + workerpool: 6.2.0 + yargs: 16.2.0 + yargs-parser: 20.2.4 + yargs-unparser: 2.0.0 + moment-timezone@0.5.45: dependencies: moment: 2.30.1 @@ -7154,6 +7655,8 @@ snapshots: mute-stream@1.0.0: {} + nanoid@3.3.1: {} + nanoid@3.3.7: {} napi-build-utils@1.0.2: {} @@ -7230,6 +7733,8 @@ snapshots: - supports-color optional: true + node-releases@2.0.18: {} + nofilter@3.1.0: {} nopt@5.0.0: @@ -7317,6 +7822,8 @@ snapshots: object-assign@4.1.1: {} + object-path@0.11.8: {} + once@1.4.0: dependencies: wrappy: 1.0.2 @@ -7488,6 +7995,8 @@ snapshots: picocolors@1.0.0: {} + picocolors@1.0.1: {} + picomatch@2.3.1: {} picomatch@3.0.1: {} @@ -7589,6 +8098,10 @@ snapshots: queue-microtask@1.2.3: {} + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + rc@1.2.8: dependencies: deep-extend: 0.6.0 @@ -7629,6 +8142,10 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + regexp-to-ast@0.5.0: {} require-directory@2.1.1: {} @@ -7662,6 +8179,33 @@ snapshots: dependencies: glob: 7.2.3 + rollup-plugin-dts@4.2.3(rollup@2.79.1)(typescript@4.9.5): + dependencies: + magic-string: 0.26.7 + rollup: 2.79.1 + typescript: 4.9.5 + optionalDependencies: + '@babel/code-frame': 7.24.2 + + rollup-plugin-ts@3.4.5(rollup@2.79.1)(typescript@4.9.5): + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@2.79.1) + '@wessberg/stringutil': 1.0.19 + ansi-colors: 4.1.3 + browserslist: 4.23.3 + browserslist-generator: 2.1.0 + compatfactory: 3.0.0(typescript@4.9.5) + crosspath: 2.0.0 + magic-string: 0.30.8 + rollup: 2.79.1 + ts-clone-node: 3.0.0(typescript@4.9.5) + tslib: 2.6.3 + typescript: 4.9.5 + + rollup@2.79.1: + optionalDependencies: + fsevents: 2.3.3 + rollup@4.13.0: dependencies: '@types/estree': 1.0.5 @@ -7734,6 +8278,10 @@ snapshots: dependencies: type-fest: 0.13.1 + serialize-javascript@6.0.0: + dependencies: + randombytes: 2.1.0 + set-blocking@2.0.0: {} set-function-length@1.1.1: @@ -7844,6 +8392,8 @@ snapshots: source-map@0.6.1: {} + sourcemap-codec@1.4.8: {} + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 @@ -7933,6 +8483,8 @@ snapshots: minimist: 1.2.8 through: 2.3.8 + style-mod@4.1.2: {} + supertap@3.0.1: dependencies: indent-string: 5.0.0 @@ -7948,6 +8500,10 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + tabbable@6.2.0: {} tar-fs@2.1.1: @@ -8010,6 +8566,11 @@ snapshots: dependencies: typescript: 5.4.3 + ts-clone-node@3.0.0(typescript@4.9.5): + dependencies: + compatfactory: 3.0.0(typescript@4.9.5) + typescript: 4.9.5 + ts-node@10.9.2(@types/node@20.11.30)(typescript@5.4.3): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -8077,8 +8638,12 @@ snapshots: shiki: 0.14.7 typescript: 5.4.3 + typescript@4.9.5: {} + typescript@5.4.3: {} + ua-parser-js@1.0.38: {} + uglify-js@3.17.4: optional: true @@ -8108,6 +8673,12 @@ snapshots: universalify@2.0.1: {} + update-browserslist-db@1.1.0(browserslist@4.23.3): + dependencies: + browserslist: 4.23.3 + escalade: 3.1.2 + picocolors: 1.0.1 + uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -8218,6 +8789,8 @@ snapshots: optionalDependencies: typescript: 5.4.3 + w3c-keyname@2.2.8: {} + walk-up-path@3.0.1: {} wcwidth@1.0.1: @@ -8472,6 +9045,8 @@ snapshots: wordwrap@1.0.0: {} + workerpool@6.2.0: {} + wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 @@ -8532,8 +9107,17 @@ snapshots: camelcase: 5.3.1 decamelize: 1.2.0 + yargs-parser@20.2.4: {} + yargs-parser@21.1.1: {} + yargs-unparser@2.0.0: + dependencies: + camelcase: 6.3.0 + decamelize: 4.0.0 + flat: 5.0.2 + is-plain-obj: 2.1.0 + yargs@15.4.1: dependencies: cliui: 6.0.0 @@ -8548,6 +9132,16 @@ snapshots: y18n: 4.0.3 yargs-parser: 18.1.3 + yargs@16.2.0: + dependencies: + cliui: 7.0.4 + escalade: 3.1.2 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.4 + yargs@17.7.2: dependencies: cliui: 8.0.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 052e4495..74a2bf05 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -5,3 +5,4 @@ packages: - pkg/* - docs/statements + - grammar From f1ab7b6ba5a30dc08f4597bd624248640845bec3 Mon Sep 17 00:00:00 2001 From: matteo-cristino Date: Wed, 28 Aug 2024 10:08:30 +0200 Subject: [PATCH 20/29] chore(grammar): remove capital letter from package name --- grammar/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grammar/package.json b/grammar/package.json index 718591e3..e0914f96 100644 --- a/grammar/package.json +++ b/grammar/package.json @@ -1,5 +1,5 @@ { - "name": "codemirror-lang-Slangroom", + "name": "codemirror-lang-slangroom", "version": "0.1.0", "description": "Slangroom language support for CodeMirror", "scripts": { From b06f28706ac9867d7f8fa5f6c11f235d8ab8f3b9 Mon Sep 17 00:00:00 2001 From: matteo-cristino Date: Wed, 28 Aug 2024 10:08:58 +0200 Subject: [PATCH 21/29] chore: add test:grammar command to test grammar --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index ddf5c443..fc068ded 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "lint": "eslint --ext .ts pkg/*/src pkg/*/test", "format": "prettier --ignore-path .gitignore --write '**/*.+(js|ts|json|html)'", "test": "pnpm build && pnpm -F @slangroom/* exec ava --verbose build/esm/test", + "test:grammar": "pnpm -F codemirror-lang-slangroom test", "coverage": "c8 -r text -r lcov -o .coverage --exclude '**/test/' pnpm test", "clean": "rm -rf .coverage && pnpm -F @slangroom/* exec -- rm -rf build", "build": "pnpm -F @slangroom/* exec tsc --outdir build/esm", From 95be7e5845c8bf60d691990fe1e6bf41c2ef9762 Mon Sep 17 00:00:00 2001 From: matteo-cristino Date: Wed, 28 Aug 2024 10:09:57 +0200 Subject: [PATCH 22/29] ci: update grammar test --- .github/workflows/ci.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 39f8d1e3..d2947030 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -52,11 +52,7 @@ jobs: - name: 🧪 Run the tests run: pnpm coverage - name: 🧪 Test grammar package - run: | - make - pnpm run prepare - pnpm test - working-directory: ./pkg/grammar + run: pnpm test:grammar - name: 📨 Setup playwright run: | npx playwright install From edee98c404402fbaac8c45f08498d5bcbdb40207 Mon Sep 17 00:00:00 2001 From: matteo-cristino Date: Wed, 28 Aug 2024 10:56:39 +0200 Subject: [PATCH 23/29] refactor(grammar): remove unused Makefile --- grammar/Makefile | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 grammar/Makefile diff --git a/grammar/Makefile b/grammar/Makefile deleted file mode 100644 index b82dcd2b..00000000 --- a/grammar/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -slangroom.js: - lezer-generator src/syntax.grammar -o src/slangroom.js From 650f7d49d4115d84d53d187579b53bd179462a54 Mon Sep 17 00:00:00 2001 From: matteo-cristino Date: Wed, 28 Aug 2024 11:11:48 +0200 Subject: [PATCH 24/29] chore: add missing license headers --- grammar/src/index.ts | 1 + grammar/test/cases.txt.license | 3 +++ grammar/test/test.js | 4 ++++ 3 files changed, 8 insertions(+) create mode 100644 grammar/test/cases.txt.license diff --git a/grammar/src/index.ts b/grammar/src/index.ts index 2fd92fe1..b3dae535 100644 --- a/grammar/src/index.ts +++ b/grammar/src/index.ts @@ -1,6 +1,7 @@ // SPDX-FileCopyrightText: 2024 Dyne.org foundation // // SPDX-License-Identifier: AGPL-3.0-or-later + import {parser} from "./syntax.grammar" import {LRLanguage, LanguageSupport, indentNodeProp, foldNodeProp, foldInside, delimitedIndent} from "@codemirror/language" import {styleTags, tags as t} from "@lezer/highlight" diff --git a/grammar/test/cases.txt.license b/grammar/test/cases.txt.license new file mode 100644 index 00000000..e7fc1c66 --- /dev/null +++ b/grammar/test/cases.txt.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Dyne.org foundation + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/grammar/test/test.js b/grammar/test/test.js index f09ed137..009f7231 100644 --- a/grammar/test/test.js +++ b/grammar/test/test.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2024 Dyne.org foundation +// +// SPDX-License-Identifier: AGPL-3.0-or-later + import {SlangroomLanguage} from "../dist/index.js" import {fileTests} from "@lezer/generator/dist/test" From 473f58f19ee3643c437ca93e24b5c046a009ec6e Mon Sep 17 00:00:00 2001 From: matteo-cristino Date: Wed, 28 Aug 2024 11:53:21 +0200 Subject: [PATCH 25/29] chore: add grammar package acknowledgement in the readme --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a5e4864a..e9cf25a1 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,9 @@ To write new plugins and other technical documentation head your browser to software by Dyne.org -Copyleft 🄯 2023—2024 by [Dyne.org](https://www.dyne.org) foundation, Amsterdam +Copyleft 🄯 2023—2024 by [Dyne.org](https://www.dyne.org) foundation, Amsterdam. + +The grammar package has been created starting from [CodeMirror 6 language package template](https://github.com/codemirror/lang-example). **[🔝 back to top](#toc)** From a289008b2051fff1c30de5866cd111e615489749 Mon Sep 17 00:00:00 2001 From: puria Date: Wed, 28 Aug 2024 11:54:34 +0200 Subject: [PATCH 26/29] chore: Give to Cesar what is to Cesar --- grammar/package.json | 6 ++++++ package.json | 12 +++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/grammar/package.json b/grammar/package.json index e0914f96..62c8b935 100644 --- a/grammar/package.json +++ b/grammar/package.json @@ -6,6 +6,12 @@ "test": "mocha test/test.js", "prepare": "rollup -c" }, + "author": { + "name": "Filippo Trotter" + }, + "contributors": [ + { "name": "Matteo Cristino" } + ], "type": "module", "main": "dist/index.cjs", "module": "dist/index.js", diff --git a/package.json b/package.json index fc068ded..681d932c 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,16 @@ "version": "0.0.3", "description": "Enhance zencode smart contracts with your slang dialect", "repository": "https://github.com/dyne/slangroom", + "author": { + "name": "Deniz Engin" + }, + "contributors": [ + { "name": "Puria Nafisi Azizi", "email": "puria@dyne.org" }, + { "name": "Matteo Cristino" }, + { "name": "Alberto Lerda" }, + { "name": "Ennio Donato" }, + { "name": "Giovanni Abbatepaolo" } + ], "author": { "name": "Puria Nafisi Azizi", "email": "puria@dyne.org" @@ -44,6 +54,6 @@ "vitepress": "^1.0.1" }, "engines": { - "node": "^18.20.0 || ^20.10.0 || ^22" + "node": "^18.20.0 || ^20.10.0 || ^22" } } From 891af637927260dab95cfeab8e415b162bd024ea Mon Sep 17 00:00:00 2001 From: puria Date: Wed, 28 Aug 2024 12:25:59 +0200 Subject: [PATCH 27/29] feat(grammar): publish npm package on main merge --- .github/workflows/grammar.yml | 38 +++++++++++++++++++++++++++++++ .gitignore | 1 + grammar/.releaserc | 43 +++++++++++++++++++++++++++++++++++ grammar/package.json | 15 +++++++++--- package.json | 4 ---- 5 files changed, 94 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/grammar.yml create mode 100644 grammar/.releaserc diff --git a/.github/workflows/grammar.yml b/.github/workflows/grammar.yml new file mode 100644 index 00000000..bccac4e8 --- /dev/null +++ b/.github/workflows/grammar.yml @@ -0,0 +1,38 @@ +# SPDX-FileCopyrightText: 2024 Dyne.org foundation +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +name: 🪶 Grammar publish + +on: + push: + branches: + - main + paths: [ "grammar" ] + +permissions: + contents: write + issues: write + id-token: write + pull-requests: write + +concurrency: + group: ${{ github.workflow }}-${{ github.ref_name }} + cancel-in-progress: true + +jobs: + + publish: + runs-on: ubuntu-latest + needs: build_and_test + if: github.ref == 'refs/heads/main' + steps: + - name: 🛠️ Prepare pnpm workspace + uses: dyne/pnpm@main + - name: 📦 Releases + working-directory: ./grammar + run: npx semantic-release + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + diff --git a/.gitignore b/.gitignore index 65e7143e..2037d7f4 100644 --- a/.gitignore +++ b/.gitignore @@ -76,6 +76,7 @@ node_modules !/grammar/package.json !/grammar/rollup.config.js !/grammar/tsconfig.json +!/grammar/.releaserc diff --git a/grammar/.releaserc b/grammar/.releaserc new file mode 100644 index 00000000..9c227465 --- /dev/null +++ b/grammar/.releaserc @@ -0,0 +1,43 @@ +# Copyright 2017-2018 Dyne.org foundation +# SPDX-FileCopyrightText: 2017-2021 Dyne.org foundation +# +# SPDX-License-Identifier: AGPL-3.0-or-later +{ + "extends": ["semantic-release-commit-filter"] + "repositoryUrl": "git@github.com:dyne/slangroom.git", + "dryRun": false, + "plugins": [ + "@semantic-release/release-notes-generator", + "@semantic-release/changelog", + [ + "@semantic-release/commit-analyzer", + { + "preset": "angular", + "releaseRules": [ + { "type": "build", "scope": "deps", "release": "patch" }, + { "type": "build", "scope": "deps-dev", "release": "patch" } + ] + } + ], + [ + "@semantic-release/npm", + { + "npmPublish": true + } + ], + [ + "@semantic-release/git", + { + "assets": [ + "grammar/CHANGELOG.md", + "grammar/pnpm-lock.yaml", + "grammar/package.json" + ], + "message": "chore(grammar release): 🚀 ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}" + } + ], + ], + "branches": [ + "main" + ] +} diff --git a/grammar/package.json b/grammar/package.json index 62c8b935..55fd4e7b 100644 --- a/grammar/package.json +++ b/grammar/package.json @@ -7,11 +7,14 @@ "prepare": "rollup -c" }, "author": { - "name": "Filippo Trotter" + "name": "Filippo Trotter" }, "contributors": [ - { "name": "Matteo Cristino" } + { "name": "Matteo Cristino" } ], + "publishConfig": { + "access": "public" + }, "type": "module", "main": "dist/index.cjs", "module": "dist/index.js", @@ -28,11 +31,17 @@ }, "devDependencies": { "@lezer/generator": "^1.0.0", + "@semantic-release/changelog": "^6.0.3", + "@semantic-release/commit-analyzer": "^13.0.0", + "@semantic-release/git": "^10.0.1", + "@semantic-release/npm": "^12.0.1", + "@semantic-release/release-notes-generator": "^14.0.1", "mocha": "^9.0.1", "rollup": "^2.60.2", "rollup-plugin-dts": "^4.0.1", "rollup-plugin-ts": "^3.0.2", + "semantic-release-commit-filter": "^1.0.2", "typescript": "^4.3.4" }, - "license": "MIT" + "license": "AGPL-3.0-or-later" } diff --git a/package.json b/package.json index 681d932c..2e0fef92 100644 --- a/package.json +++ b/package.json @@ -13,10 +13,6 @@ { "name": "Ennio Donato" }, { "name": "Giovanni Abbatepaolo" } ], - "author": { - "name": "Puria Nafisi Azizi", - "email": "puria@dyne.org" - }, "license": "AGPL-3.0-only", "scripts": { "lint": "eslint --ext .ts pkg/*/src pkg/*/test", From 6db7c5d2aebdf0429723d9620b8f9d21078c78e4 Mon Sep 17 00:00:00 2001 From: puria Date: Wed, 28 Aug 2024 12:29:40 +0200 Subject: [PATCH 28/29] =?UTF-8?q?pnpm-lock=20=E2=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pnpm-lock.yaml | 1270 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1270 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 73d0376b..2d8e2d9b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -126,6 +126,21 @@ importers: '@lezer/generator': specifier: ^1.0.0 version: 1.7.1 + '@semantic-release/changelog': + specifier: ^6.0.3 + version: 6.0.3(semantic-release@24.1.0(typescript@4.9.5)) + '@semantic-release/commit-analyzer': + specifier: ^13.0.0 + version: 13.0.0(semantic-release@24.1.0(typescript@4.9.5)) + '@semantic-release/git': + specifier: ^10.0.1 + version: 10.0.1(semantic-release@24.1.0(typescript@4.9.5)) + '@semantic-release/npm': + specifier: ^12.0.1 + version: 12.0.1(semantic-release@24.1.0(typescript@4.9.5)) + '@semantic-release/release-notes-generator': + specifier: ^14.0.1 + version: 14.0.1(semantic-release@24.1.0(typescript@4.9.5)) mocha: specifier: ^9.0.1 version: 9.2.2 @@ -138,6 +153,9 @@ importers: rollup-plugin-ts: specifier: ^3.0.2 version: 3.4.5(rollup@2.79.1)(typescript@4.9.5) + semantic-release-commit-filter: + specifier: ^1.0.2 + version: 1.0.2 typescript: specifier: ^4.3.4 version: 4.9.5 @@ -569,6 +587,10 @@ packages: '@codemirror/view@6.33.0': resolution: {integrity: sha512-AroaR3BvnjRW8fiZBalAaK+ZzB5usGgI014YKElYZvQdNH5ZIidHlO+cyf/2rWzyBFRkvG6VhiXeAEbC53P2YQ==} + '@colors/colors@1.5.0': + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -1106,10 +1128,22 @@ packages: resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} engines: {node: '>= 18'} + '@octokit/auth-token@5.1.1': + resolution: {integrity: sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==} + engines: {node: '>= 18'} + '@octokit/core@5.1.0': resolution: {integrity: sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g==} engines: {node: '>= 18'} + '@octokit/core@6.1.2': + resolution: {integrity: sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==} + engines: {node: '>= 18'} + + '@octokit/endpoint@10.1.1': + resolution: {integrity: sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==} + engines: {node: '>= 18'} + '@octokit/endpoint@9.0.4': resolution: {integrity: sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==} engines: {node: '>= 18'} @@ -1118,12 +1152,25 @@ packages: resolution: {integrity: sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==} engines: {node: '>= 18'} + '@octokit/graphql@8.1.1': + resolution: {integrity: sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==} + engines: {node: '>= 18'} + '@octokit/openapi-types@20.0.0': resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==} + '@octokit/openapi-types@22.2.0': + resolution: {integrity: sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==} + '@octokit/plugin-enterprise-rest@6.0.1': resolution: {integrity: sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==} + '@octokit/plugin-paginate-rest@11.3.3': + resolution: {integrity: sha512-o4WRoOJZlKqEEgj+i9CpcmnByvtzoUYC6I8PD2SA95M+BJ2x8h7oLcVOg9qcowWXBOdcTRsMZiwvM3EyLm9AfA==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '>=6' + '@octokit/plugin-paginate-rest@9.2.1': resolution: {integrity: sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw==} engines: {node: '>= 18'} @@ -1142,14 +1189,34 @@ packages: peerDependencies: '@octokit/core': '5' + '@octokit/plugin-retry@7.1.1': + resolution: {integrity: sha512-G9Ue+x2odcb8E1XIPhaFBnTTIrrUDfXN05iFXiqhR+SeeeDMMILcAnysOsxUpEWcQp2e5Ft397FCXTcPkiPkLw==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '>=6' + + '@octokit/plugin-throttling@9.3.1': + resolution: {integrity: sha512-Qd91H4liUBhwLB2h6jZ99bsxoQdhgPk6TdwnClPyTBSDAdviGPceViEgUwj+pcQDmB/rfAXAXK7MTochpHM3yQ==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': ^6.0.0 + '@octokit/request-error@5.0.1': resolution: {integrity: sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==} engines: {node: '>= 18'} + '@octokit/request-error@6.1.4': + resolution: {integrity: sha512-VpAhIUxwhWZQImo/dWAN/NpPqqojR6PSLgLYAituLM6U+ddx9hCioFGwBr5Mi+oi5CLeJkcAs3gJ0PYYzU6wUg==} + engines: {node: '>= 18'} + '@octokit/request@8.2.0': resolution: {integrity: sha512-exPif6x5uwLqv1N1irkLG1zZNJkOtj8bZxuVHd71U5Ftuxf2wGNvAJyNBcPbPC+EBzwYEbBDdSFb8EPcjpYxPQ==} engines: {node: '>= 18'} + '@octokit/request@9.1.3': + resolution: {integrity: sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==} + engines: {node: '>= 18'} + '@octokit/rest@20.0.2': resolution: {integrity: sha512-Ux8NDgEraQ/DMAU1PlAohyfBBXDwhnX2j33Z1nJNziqAfHi70PuxkFYIcIt8aIAxtRE7KVuKp8lSR8pA0J5iOQ==} engines: {node: '>= 18'} @@ -1157,6 +1224,9 @@ packages: '@octokit/types@12.6.0': resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==} + '@octokit/types@13.5.0': + resolution: {integrity: sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -1166,6 +1236,18 @@ packages: engines: {node: '>=16'} hasBin: true + '@pnpm/config.env-replace@1.1.0': + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} + + '@pnpm/network.ca-file@1.0.2': + resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} + engines: {node: '>=12.22.0'} + + '@pnpm/npm-conf@2.3.1': + resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} + engines: {node: '>=12'} + '@redis/client@1.5.12': resolution: {integrity: sha512-/ZjE18HRzMd80eXIIUIPcH81UoZpwulbo8FmbElrjPqH0QC0SeIKu1BOU49bO5trM5g895kAjhvalt5h77q+4A==} engines: {node: '>=14'} @@ -1257,6 +1339,53 @@ packages: '@scure/bip39@1.2.1': resolution: {integrity: sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==} + '@sec-ant/readable-stream@0.4.1': + resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} + + '@semantic-release/changelog@6.0.3': + resolution: {integrity: sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==} + engines: {node: '>=14.17'} + peerDependencies: + semantic-release: '>=18.0.0' + + '@semantic-release/commit-analyzer@13.0.0': + resolution: {integrity: sha512-KtXWczvTAB1ZFZ6B4O+w8HkfYm/OgQb1dUGNFZtDgQ0csggrmkq8sTxhd+lwGF8kMb59/RnG9o4Tn7M/I8dQ9Q==} + engines: {node: '>=20.8.1'} + peerDependencies: + semantic-release: '>=20.1.0' + + '@semantic-release/error@3.0.0': + resolution: {integrity: sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==} + engines: {node: '>=14.17'} + + '@semantic-release/error@4.0.0': + resolution: {integrity: sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==} + engines: {node: '>=18'} + + '@semantic-release/git@10.0.1': + resolution: {integrity: sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==} + engines: {node: '>=14.17'} + peerDependencies: + semantic-release: '>=18.0.0' + + '@semantic-release/github@10.1.7': + resolution: {integrity: sha512-QnhP4k1eqzYLz6a4kpWrUQeKJYXqHggveMykvUFbSquq07GF85BXvr/QLhpOD7bpDcmEfL8VnphRA7KT5i9lzQ==} + engines: {node: '>=20.8.1'} + peerDependencies: + semantic-release: '>=20.1.0' + + '@semantic-release/npm@12.0.1': + resolution: {integrity: sha512-/6nntGSUGK2aTOI0rHPwY3ZjgY9FkXmEHbW9Kr+62NVOsyqpKKeP0lrCH+tphv+EsNdJNmqqwijTEnVWUMQ2Nw==} + engines: {node: '>=20.8.1'} + peerDependencies: + semantic-release: '>=20.1.0' + + '@semantic-release/release-notes-generator@14.0.1': + resolution: {integrity: sha512-K0w+5220TM4HZTthE5dDpIuFrnkN1NfTGPidJFm04ULT1DEZ9WG89VNXN7F0c+6nMEpWgqmPvb7vY7JkB2jyyA==} + engines: {node: '>=20.8.1'} + peerDependencies: + semantic-release: '>=20.1.0' + '@shikijs/core@1.2.0': resolution: {integrity: sha512-OlFvx+nyr5C8zpcMBnSGir0YPD6K11uYhouqhNmm1qLiis4GA7SsGtu07r9gKS9omks8RtQqHrJL4S+lqWK01A==} @@ -1287,10 +1416,18 @@ packages: resolution: {integrity: sha512-BNANJms49rw9Q5J+fJjrDqOQSzjXDcOq/pgKDaVdDoIvQwqIfaoUriy+fQfh8sBX04hr4bkkrwu3EbhQqoQH7A==} engines: {node: ^16.14.0 || >=18.0.0} + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + '@sindresorhus/merge-streams@2.3.0': resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} + '@sindresorhus/merge-streams@4.0.0': + resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} + engines: {node: '>=18'} + '@tootallnate/once@1.1.2': resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} engines: {node: '>= 6'} @@ -1615,6 +1752,10 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} + aggregate-error@5.0.0: + resolution: {integrity: sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==} + engines: {node: '>=18'} + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -1636,6 +1777,10 @@ packages: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} + ansi-escapes@7.0.0: + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + engines: {node: '>=18'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -1659,6 +1804,9 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -1688,6 +1836,9 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + argv-formatter@1.0.0: + resolution: {integrity: sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==} + array-find-index@1.0.2: resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==} engines: {node: '>=0.10.0'} @@ -1749,6 +1900,9 @@ packages: before-after-hook@2.2.3: resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + before-after-hook@3.0.2: + resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==} + bin-links@4.0.3: resolution: {integrity: sha512-obsRaULtJurnfox/MDwgq6Yo9kzbv1CPTk/1/s7Z/61Lezc8IKkFCOXNeVLXz0456WRzBQmSsDWlai2tIhBsfA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -1766,6 +1920,9 @@ packages: blueimp-md5@2.19.0: resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==} + bottleneck@2.19.5: + resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -1859,6 +2016,10 @@ packages: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} @@ -1897,14 +2058,27 @@ packages: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} + clean-stack@5.2.0: + resolution: {integrity: sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==} + engines: {node: '>=14.16'} + cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} + cli-highlight@2.1.11: + resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} + engines: {node: '>=8.0.0', npm: '>=5.0.0'} + hasBin: true + cli-spinners@2.9.2: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} + cli-table3@0.6.5: + resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} + engines: {node: 10.* || >= 12.*} + cli-truncate@4.0.0: resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} engines: {node: '>=18'} @@ -2000,6 +2174,10 @@ packages: resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} engines: {node: '>=16'} + conventional-changelog-angular@8.0.0: + resolution: {integrity: sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==} + engines: {node: '>=18'} + conventional-changelog-core@7.0.0: resolution: {integrity: sha512-UYgaB1F/COt7VFjlYKVE/9tTzfU3VUq47r6iWf6lM5T7TlOxr0thI63ojQueRLIpVbrtHK4Ffw+yQGduw2Bhdg==} engines: {node: '>=16'} @@ -2013,20 +2191,38 @@ packages: engines: {node: '>=16'} hasBin: true + conventional-changelog-writer@8.0.0: + resolution: {integrity: sha512-TQcoYGRatlAnT2qEWDON/XSfnVG38JzA7E0wcGScu7RElQBkg9WWgZd1peCWFcWDh1xfb2CfsrcvOn1bbSzztA==} + engines: {node: '>=18'} + hasBin: true + conventional-commits-filter@4.0.0: resolution: {integrity: sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==} engines: {node: '>=16'} + conventional-commits-filter@5.0.0: + resolution: {integrity: sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==} + engines: {node: '>=18'} + conventional-commits-parser@5.0.0: resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} engines: {node: '>=16'} hasBin: true + conventional-commits-parser@6.0.0: + resolution: {integrity: sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==} + engines: {node: '>=18'} + hasBin: true + conventional-recommended-bump@9.0.0: resolution: {integrity: sha512-HR1yD0G5HgYAu6K0wJjLd7QGRK8MQDqqj6Tn1n/ja1dFwBCE6QmV+iSgQ5F7hkx7OUR/8bHpxJqYtXj2f/opPQ==} engines: {node: '>=16'} hasBin: true + convert-hrtime@5.0.0: + resolution: {integrity: sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==} + engines: {node: '>=12'} + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -2034,6 +2230,9 @@ packages: resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + cosmiconfig@9.0.0: resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} @@ -2062,6 +2261,10 @@ packages: resolution: {integrity: sha512-ju88BYCQ2uvjO2bR+SsgLSTwTSctU+6Vp2ePbKPgSCZyy4MWZxYsT738DlKVRE5utUjobjPRm1MkTYKJxCmpTA==} engines: {node: '>=14.9.0'} + crypto-random-string@4.0.0: + resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} + engines: {node: '>=12'} + cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -2201,6 +2404,9 @@ packages: dottie@2.0.6: resolution: {integrity: sha512-iGCHkfUc5kFekGiqhe8B/mdaurD+lakO9txNnTvKtA6PISrw86LgqHvRzWYPyoE2Ph5aMIrCw9/uko6XHTKCwA==} + duplexer2@0.1.4: + resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} + duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} @@ -2223,6 +2429,9 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + emojilib@2.4.0: + resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} + encode-utf8@1.0.3: resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} @@ -2236,10 +2445,18 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + env-ci@11.1.0: + resolution: {integrity: sha512-Z8dnwSDbV1XYM9SBF2J0GcNVvmfmfh3a49qddGIROhBoVro6MZVTji15z/sJbQ2ko2ei8n988EU1wzoLU/tF+g==} + engines: {node: ^18.17 || >=20.6.1} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} @@ -2337,10 +2554,18 @@ packages: eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} + execa@9.3.1: + resolution: {integrity: sha512-gdhefCCNy/8tpH/2+ajP9IQc14vXchNdd0weyzSJEFURhRMGncQ+zKFxwjAufIewPEJm9BPOaJnvg2UtlH2gPQ==} + engines: {node: ^18.19.0 || >=20.5.0} + expand-template@2.0.3: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} @@ -2383,6 +2608,10 @@ packages: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} + figures@2.0.0: + resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} + engines: {node: '>=4'} + figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} @@ -2406,6 +2635,10 @@ packages: resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} engines: {node: '>=18'} + find-up@2.1.0: + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} + engines: {node: '>=4'} + find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -2418,6 +2651,10 @@ packages: resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + find-versions@6.0.0: + resolution: {integrity: sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==} + engines: {node: '>=18'} + flat-cache@3.2.0: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} @@ -2456,6 +2693,9 @@ packages: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} + from2@2.3.0: + resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} + fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} @@ -2487,6 +2727,10 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + function-timeout@1.0.2: + resolution: {integrity: sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==} + engines: {node: '>=18'} + gauge@3.0.2: resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} engines: {node: '>=10'} @@ -2523,10 +2767,25 @@ packages: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-stream@7.0.1: + resolution: {integrity: sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==} + engines: {node: '>=16'} + get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} + get-stream@9.0.1: + resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} + engines: {node: '>=18'} + + git-log-parser@1.2.1: + resolution: {integrity: sha512-PI+sPDvHXNPl5WNOErAK05s3j0lgwUzMN6o8cyQrDaKfT3qd7TmNJKeXX+SknI5I0QhG5fVPAEwSY4tRGDtYoQ==} + git-raw-commits@4.0.0: resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} engines: {node: '>=16'} @@ -2581,6 +2840,9 @@ packages: gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -2645,6 +2907,13 @@ packages: resolution: {integrity: sha512-J00e55zffgi3yVnUp0UdbMztNkr2PnizEkOe9URNohnrNhW5X0QpegkuLpOmFQInpi93Nb8MCjQRHAiCDF42NQ==} engines: {node: '>=10.0.0'} + highlight.js@10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + + hook-std@3.0.0: + resolution: {integrity: sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} @@ -2674,10 +2943,18 @@ packages: resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} engines: {node: '>= 14'} + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} + human-signals@8.0.0: + resolution: {integrity: sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==} + engines: {node: '>=18.18.0'} + humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} @@ -2712,11 +2989,18 @@ packages: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} + import-from-esm@1.3.4: + resolution: {integrity: sha512-7EyUlPFC0HOlBDpUFGfYstsU7XHxZJKAAMzCT8wZ0hMW7b+hG51LIKTDcsgtz8Pu6YC0HqRVbX+rVUtsGMUKvg==} + engines: {node: '>=16.20'} + import-local@3.1.0: resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} engines: {node: '>=8'} hasBin: true + import-meta-resolve@4.1.0: + resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -2729,6 +3013,10 @@ packages: resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} engines: {node: '>=12'} + index-to-position@0.1.2: + resolution: {integrity: sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==} + engines: {node: '>=18'} + infer-owner@1.0.4: resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} @@ -2749,6 +3037,10 @@ packages: resolution: {integrity: sha512-qzgbB+yNjgSzk2omeqMDtO9IgJet/UL67luT1MaaggRpGK73DBQct5Q4pipwFQcIKK1GbMODYd4UfsRCkSP1DA==} engines: {node: '>=18'} + into-stream@7.0.0: + resolution: {integrity: sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==} + engines: {node: '>=12'} + ip-address@9.0.5: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} @@ -2840,6 +3132,10 @@ packages: is-ssh@1.4.0: resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==} + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2867,6 +3163,9 @@ packages: resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} engines: {node: '>=18'} + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + isbot@3.8.0: resolution: {integrity: sha512-vne1mzQUTR+qsMLeCBL9+/tgnDXRyc2pygLGl/WsgA+EZKIiB5Ehu0CiVTHIIk30zhJ24uGz4M5Ppse37aR0Hg==} engines: {node: '>=12'} @@ -2892,6 +3191,10 @@ packages: peerDependencies: ws: '*' + issue-parser@7.0.1: + resolution: {integrity: sha512-3YZcUUR2Wt1WsapF+S/WiA2WmlW0cWAoPccMqne7AxEBhCdFeTPjfv/Axb8V2gyCgY3nRw+ksZ3xSUX+R47iAg==} + engines: {node: ^18.17 || >=20.6.1} + istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} @@ -2908,6 +3211,10 @@ packages: resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} + java-properties@1.0.2: + resolution: {integrity: sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==} + engines: {node: '>= 0.6.0'} + jose@5.1.3: resolution: {integrity: sha512-GPExOkcMsCLBTi1YetY2LmkoY559fss0+0KVa6kOfb2YFe84nAM7Nm/XzuZozah4iHgmBGrCOHL5/cy670SBRw==} @@ -2932,6 +3239,9 @@ packages: json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -3001,10 +3311,18 @@ packages: resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + load-json-file@4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} + engines: {node: '>=4'} + load-json-file@7.0.1: resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + locate-path@2.0.0: + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} + engines: {node: '>=4'} + locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -3017,9 +3335,27 @@ packages: resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + + lodash.capitalize@4.2.1: + resolution: {integrity: sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==} + + lodash.escaperegexp@4.1.2: + resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.isstring@4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.uniqby@4.7.0: + resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} + lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -3071,6 +3407,17 @@ packages: markdown-table@3.0.3: resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + marked-terminal@7.1.0: + resolution: {integrity: sha512-+pvwa14KZL74MVXjYdPR3nSInhGhNvPce/3mqLVZT2oUvt654sL1XImFuLZ1pkA866IYZ3ikDTOFUIC7XzpZZg==} + engines: {node: '>=16.0.0'} + peerDependencies: + marked: '>=1 <14' + + marked@12.0.2: + resolution: {integrity: sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==} + engines: {node: '>= 18'} + hasBin: true + marked@4.3.0: resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} engines: {node: '>= 12'} @@ -3096,6 +3443,10 @@ packages: resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} engines: {node: '>=16.10'} + meow@13.2.0: + resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} + engines: {node: '>=18'} + merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -3115,6 +3466,11 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + mime@4.0.4: + resolution: {integrity: sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ==} + engines: {node: '>=16'} + hasBin: true + mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -3230,6 +3586,9 @@ packages: resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + nanoid@3.3.1: resolution: {integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -3253,6 +3612,9 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + nerf-dart@1.0.0: + resolution: {integrity: sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==} + new-github-release-url@2.0.0: resolution: {integrity: sha512-NHDDGYudnvRutt/VhKFlX26IotXe1w0cmkDm6JGquh5bz/bDTw0LufSmH/GxTjEdpHEO+bVKFTwdrcGa/9XlKQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3273,6 +3635,10 @@ packages: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} + node-emoji@2.1.3: + resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} + engines: {node: '>=18'} + node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -3325,6 +3691,10 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + normalize-url@8.0.1: + resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} + engines: {node: '>=14.16'} + npm-bundled@3.0.0: resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -3353,10 +3723,92 @@ packages: resolution: {integrity: sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==} engines: {node: ^16.14.0 || >=18.0.0} + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + npm-run-path@5.1.0: resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + npm@10.8.2: + resolution: {integrity: sha512-x/AIjFIKRllrhcb48dqUNAAZl0ig9+qMuN91RpZo3Cb2+zuibfh+KISl6+kVVyktDz230JKc208UkQwwMqyB+w==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + bundledDependencies: + - '@isaacs/string-locale-compare' + - '@npmcli/arborist' + - '@npmcli/config' + - '@npmcli/fs' + - '@npmcli/map-workspaces' + - '@npmcli/package-json' + - '@npmcli/promise-spawn' + - '@npmcli/redact' + - '@npmcli/run-script' + - '@sigstore/tuf' + - abbrev + - archy + - cacache + - chalk + - ci-info + - cli-columns + - fastest-levenshtein + - fs-minipass + - glob + - graceful-fs + - hosted-git-info + - ini + - init-package-json + - is-cidr + - json-parse-even-better-errors + - libnpmaccess + - libnpmdiff + - libnpmexec + - libnpmfund + - libnpmhook + - libnpmorg + - libnpmpack + - libnpmpublish + - libnpmsearch + - libnpmteam + - libnpmversion + - make-fetch-happen + - minimatch + - minipass + - minipass-pipeline + - ms + - node-gyp + - nopt + - normalize-package-data + - npm-audit-report + - npm-install-checks + - npm-package-arg + - npm-pick-manifest + - npm-profile + - npm-registry-fetch + - npm-user-validate + - p-map + - pacote + - parse-conflict-json + - proc-log + - qrcode-terminal + - read + - semver + - spdx-expression-parse + - ssri + - supports-color + - tar + - text-table + - tiny-relative-date + - treeverse + - validate-npm-package-name + - which + - write-file-atomic + npmlog@5.0.1: resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} deprecated: This package is no longer supported. @@ -3400,6 +3852,22 @@ packages: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} + p-each-series@3.0.0: + resolution: {integrity: sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==} + engines: {node: '>=12'} + + p-filter@4.1.0: + resolution: {integrity: sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==} + engines: {node: '>=18'} + + p-is-promise@3.0.0: + resolution: {integrity: sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==} + engines: {node: '>=8'} + + p-limit@1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} + p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -3412,6 +3880,10 @@ packages: resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-locate@2.0.0: + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} + engines: {node: '>=4'} + p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -3440,6 +3912,10 @@ packages: resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==} engines: {node: '>=18'} + p-reduce@2.1.0: + resolution: {integrity: sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==} + engines: {node: '>=8'} + p-reduce@3.0.0: resolution: {integrity: sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==} engines: {node: '>=12'} @@ -3448,6 +3924,10 @@ packages: resolution: {integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==} engines: {node: '>=14.16'} + p-try@1.0.0: + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} + engines: {node: '>=4'} + p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -3472,6 +3952,10 @@ packages: resolution: {integrity: sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -3480,6 +3964,10 @@ packages: resolution: {integrity: sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==} engines: {node: '>=16'} + parse-json@8.1.0: + resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} + engines: {node: '>=18'} + parse-ms@4.0.0: resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} engines: {node: '>=18'} @@ -3490,6 +3978,19 @@ packages: parse-url@8.1.0: resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} + parse5-htmlparser2-tree-adapter@6.0.1: + resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} + + parse5@5.1.1: + resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} + + parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + + path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -3545,6 +4046,10 @@ packages: resolution: {integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==} engines: {node: '>=10'} + pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} @@ -3553,6 +4058,10 @@ packages: resolution: {integrity: sha512-KocF8ve28eFjjuBKKGvzOBGzG8ew2OqOOSxTTZhirkzH7h3BI1vyzqlR0qbfcDBve1Yzo3FVlWUAtCRrbVN8Fw==} engines: {node: '>=14.16'} + pkg-conf@2.1.0: + resolution: {integrity: sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==} + engines: {node: '>=4'} + pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} @@ -3611,6 +4120,9 @@ packages: resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + promise-all-reject-late@1.0.1: resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} @@ -3676,6 +4188,10 @@ packages: resolution: {integrity: sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==} engines: {node: ^16.14.0 || >=18.0.0} + read-package-up@11.0.0: + resolution: {integrity: sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==} + engines: {node: '>=18'} + read-pkg-up@10.1.0: resolution: {integrity: sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==} engines: {node: '>=16'} @@ -3684,6 +4200,13 @@ packages: resolution: {integrity: sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==} engines: {node: '>=16'} + read-pkg@9.0.1: + resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} + engines: {node: '>=18'} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} @@ -3695,6 +4218,10 @@ packages: regexp-to-ast@0.5.0: resolution: {integrity: sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==} + registry-auth-token@5.0.2: + resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} + engines: {node: '>=14'} + require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -3808,6 +4335,22 @@ packages: search-insights@2.13.0: resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} + semantic-release-commit-filter@1.0.2: + resolution: {integrity: sha512-LpIB1UN78oRmJnqgPdvA/qRgVitih5V1Ybyszv8GcOBAJWJBHGWI1PmSrOfdEmbf1ZvGkdK/NNDdBHbuSQqSyQ==} + + semantic-release@24.1.0: + resolution: {integrity: sha512-FwaE2hKDHQn9G6GA7xmqsc9WnsjaFD/ppLM5PUg56Do9oKSCf+vH6cPeb3hEBV/m06n8Sh9vbVqPjHu/1onzQw==} + engines: {node: '>=20.8.1'} + hasBin: true + + semver-diff@4.0.0: + resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} + engines: {node: '>=12'} + + semver-regex@4.0.5: + resolution: {integrity: sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==} + engines: {node: '>=12'} + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -3904,6 +4447,10 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + signale@1.4.0: + resolution: {integrity: sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==} + engines: {node: '>=6'} + sigstore@2.2.2: resolution: {integrity: sha512-2A3WvXkQurhuMgORgT60r6pOWiCOO5LlEqY2ADxGBDGVYLSo5HN0uLtb68YpVpuL/Vi8mLTe7+0Dx2Fq8lLqEg==} engines: {node: ^16.14.0 || >=18.0.0} @@ -3914,6 +4461,10 @@ packages: simple-get@4.0.1: resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + skin-tone@2.0.0: + resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} + engines: {node: '>=8'} + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -3958,6 +4509,9 @@ packages: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} deprecated: Please use @jridgewell/sourcemap-codec instead + spawn-error-forwarder@1.0.0: + resolution: {integrity: sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==} + spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} @@ -3974,6 +4528,9 @@ packages: resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} engines: {node: '>=0.10.0'} + split2@1.0.0: + resolution: {integrity: sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==} + split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} @@ -3999,6 +4556,9 @@ packages: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} + stream-combiner2@1.1.1: + resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -4011,6 +4571,9 @@ packages: resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==} engines: {node: '>=18'} + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -4022,10 +4585,22 @@ packages: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} + strip-final-newline@4.0.0: + resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} + engines: {node: '>=18'} + strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} @@ -4042,6 +4617,10 @@ packages: style-mod@4.1.2: resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} + super-regex@1.0.0: + resolution: {integrity: sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==} + engines: {node: '>=18'} + supertap@3.0.1: resolution: {integrity: sha512-u1ZpIBCawJnO+0QePsEiOknOfCRq0yERxiAchT0i4li0WHNUJbf0evXXSXOcCAR4M8iMDoajXYmstm/qO81Isw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4058,6 +4637,10 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} + supports-hyperlinks@3.1.0: + resolution: {integrity: sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==} + engines: {node: '>=14.18'} + tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} @@ -4076,6 +4659,10 @@ packages: resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} engines: {node: '>=14.16'} + tempy@3.1.0: + resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==} + engines: {node: '>=14.16'} + test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -4087,9 +4674,23 @@ packages: text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + time-span@5.1.0: + resolution: {integrity: sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==} + engines: {node: '>=12'} + time-zone@1.0.0: resolution: {integrity: sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==} engines: {node: '>=4'} @@ -4112,6 +4713,10 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + traverse@0.6.8: + resolution: {integrity: sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==} + engines: {node: '>= 0.4'} + treeverse@3.0.0: resolution: {integrity: sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -4171,6 +4776,10 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} + type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + type-fest@2.19.0: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} @@ -4218,6 +4827,10 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + unicode-emoji-modifier-base@1.0.0: + resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} + engines: {node: '>=4'} + unicorn-magic@0.1.0: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} @@ -4236,9 +4849,16 @@ packages: resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + unique-string@3.0.0: + resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} + engines: {node: '>=12'} + universal-user-agent@6.0.1: resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + universal-user-agent@7.0.2: + resolution: {integrity: sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==} + universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} @@ -4252,6 +4872,10 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + url-join@5.0.0: + resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -4515,6 +5139,10 @@ packages: utf-8-validate: optional: true + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} @@ -4568,6 +5196,10 @@ packages: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} + yoctocolors@2.1.1: + resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} + engines: {node: '>=18'} + zenroom@4.31.2: resolution: {integrity: sha512-1q+1xoakhGQTha63G2foZHZQaDNBeWxoLpFHmDVBKgPIs5RBXIuRCXehJDHSKQM9YWRjeYdtKX9Mb2gfkwhFfQ==} @@ -4761,6 +5393,9 @@ snapshots: style-mod: 4.1.2 w3c-keyname: 2.2.8 + '@colors/colors@1.5.0': + optional: true + '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 @@ -5351,6 +5986,8 @@ snapshots: '@octokit/auth-token@4.0.0': {} + '@octokit/auth-token@5.1.1': {} + '@octokit/core@5.1.0': dependencies: '@octokit/auth-token': 4.0.0 @@ -5361,6 +5998,21 @@ snapshots: before-after-hook: 2.2.3 universal-user-agent: 6.0.1 + '@octokit/core@6.1.2': + dependencies: + '@octokit/auth-token': 5.1.1 + '@octokit/graphql': 8.1.1 + '@octokit/request': 9.1.3 + '@octokit/request-error': 6.1.4 + '@octokit/types': 13.5.0 + before-after-hook: 3.0.2 + universal-user-agent: 7.0.2 + + '@octokit/endpoint@10.1.1': + dependencies: + '@octokit/types': 13.5.0 + universal-user-agent: 7.0.2 + '@octokit/endpoint@9.0.4': dependencies: '@octokit/types': 12.6.0 @@ -5372,10 +6024,23 @@ snapshots: '@octokit/types': 12.6.0 universal-user-agent: 6.0.1 + '@octokit/graphql@8.1.1': + dependencies: + '@octokit/request': 9.1.3 + '@octokit/types': 13.5.0 + universal-user-agent: 7.0.2 + '@octokit/openapi-types@20.0.0': {} + '@octokit/openapi-types@22.2.0': {} + '@octokit/plugin-enterprise-rest@6.0.1': {} + '@octokit/plugin-paginate-rest@11.3.3(@octokit/core@6.1.2)': + dependencies: + '@octokit/core': 6.1.2 + '@octokit/types': 13.5.0 + '@octokit/plugin-paginate-rest@9.2.1(@octokit/core@5.1.0)': dependencies: '@octokit/core': 5.1.0 @@ -5390,12 +6055,29 @@ snapshots: '@octokit/core': 5.1.0 '@octokit/types': 12.6.0 + '@octokit/plugin-retry@7.1.1(@octokit/core@6.1.2)': + dependencies: + '@octokit/core': 6.1.2 + '@octokit/request-error': 6.1.4 + '@octokit/types': 13.5.0 + bottleneck: 2.19.5 + + '@octokit/plugin-throttling@9.3.1(@octokit/core@6.1.2)': + dependencies: + '@octokit/core': 6.1.2 + '@octokit/types': 13.5.0 + bottleneck: 2.19.5 + '@octokit/request-error@5.0.1': dependencies: '@octokit/types': 12.6.0 deprecation: 2.3.1 once: 1.4.0 + '@octokit/request-error@6.1.4': + dependencies: + '@octokit/types': 13.5.0 + '@octokit/request@8.2.0': dependencies: '@octokit/endpoint': 9.0.4 @@ -5403,6 +6085,13 @@ snapshots: '@octokit/types': 12.6.0 universal-user-agent: 6.0.1 + '@octokit/request@9.1.3': + dependencies: + '@octokit/endpoint': 10.1.1 + '@octokit/request-error': 6.1.4 + '@octokit/types': 13.5.0 + universal-user-agent: 7.0.2 + '@octokit/rest@20.0.2': dependencies: '@octokit/core': 5.1.0 @@ -5414,6 +6103,10 @@ snapshots: dependencies: '@octokit/openapi-types': 20.0.0 + '@octokit/types@13.5.0': + dependencies: + '@octokit/openapi-types': 22.2.0 + '@pkgjs/parseargs@0.11.0': optional: true @@ -5421,6 +6114,18 @@ snapshots: dependencies: playwright: 1.40.1 + '@pnpm/config.env-replace@1.1.0': {} + + '@pnpm/network.ca-file@1.0.2': + dependencies: + graceful-fs: 4.2.10 + + '@pnpm/npm-conf@2.3.1': + dependencies: + '@pnpm/config.env-replace': 1.1.0 + '@pnpm/network.ca-file': 1.0.2 + config-chain: 1.1.13 + '@redis/client@1.5.12': dependencies: cluster-key-slot: 1.1.2 @@ -5492,6 +6197,103 @@ snapshots: '@noble/hashes': 1.3.1 '@scure/base': 1.1.3 + '@sec-ant/readable-stream@0.4.1': {} + + '@semantic-release/changelog@6.0.3(semantic-release@24.1.0(typescript@4.9.5))': + dependencies: + '@semantic-release/error': 3.0.0 + aggregate-error: 3.1.0 + fs-extra: 11.2.0 + lodash: 4.17.21 + semantic-release: 24.1.0(typescript@4.9.5) + + '@semantic-release/commit-analyzer@13.0.0(semantic-release@24.1.0(typescript@4.9.5))': + dependencies: + conventional-changelog-angular: 8.0.0 + conventional-changelog-writer: 8.0.0 + conventional-commits-filter: 5.0.0 + conventional-commits-parser: 6.0.0 + debug: 4.3.4 + import-from-esm: 1.3.4 + lodash-es: 4.17.21 + micromatch: 4.0.5 + semantic-release: 24.1.0(typescript@4.9.5) + transitivePeerDependencies: + - supports-color + + '@semantic-release/error@3.0.0': {} + + '@semantic-release/error@4.0.0': {} + + '@semantic-release/git@10.0.1(semantic-release@24.1.0(typescript@4.9.5))': + dependencies: + '@semantic-release/error': 3.0.0 + aggregate-error: 3.1.0 + debug: 4.3.4 + dir-glob: 3.0.1 + execa: 5.1.1 + lodash: 4.17.21 + micromatch: 4.0.5 + p-reduce: 2.1.0 + semantic-release: 24.1.0(typescript@4.9.5) + transitivePeerDependencies: + - supports-color + + '@semantic-release/github@10.1.7(semantic-release@24.1.0(typescript@4.9.5))': + dependencies: + '@octokit/core': 6.1.2 + '@octokit/plugin-paginate-rest': 11.3.3(@octokit/core@6.1.2) + '@octokit/plugin-retry': 7.1.1(@octokit/core@6.1.2) + '@octokit/plugin-throttling': 9.3.1(@octokit/core@6.1.2) + '@semantic-release/error': 4.0.0 + aggregate-error: 5.0.0 + debug: 4.3.4 + dir-glob: 3.0.1 + globby: 14.0.1 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.4 + issue-parser: 7.0.1 + lodash-es: 4.17.21 + mime: 4.0.4 + p-filter: 4.1.0 + semantic-release: 24.1.0(typescript@4.9.5) + url-join: 5.0.0 + transitivePeerDependencies: + - supports-color + + '@semantic-release/npm@12.0.1(semantic-release@24.1.0(typescript@4.9.5))': + dependencies: + '@semantic-release/error': 4.0.0 + aggregate-error: 5.0.0 + execa: 9.3.1 + fs-extra: 11.2.0 + lodash-es: 4.17.21 + nerf-dart: 1.0.0 + normalize-url: 8.0.1 + npm: 10.8.2 + rc: 1.2.8 + read-pkg: 9.0.1 + registry-auth-token: 5.0.2 + semantic-release: 24.1.0(typescript@4.9.5) + semver: 7.6.0 + tempy: 3.1.0 + + '@semantic-release/release-notes-generator@14.0.1(semantic-release@24.1.0(typescript@4.9.5))': + dependencies: + conventional-changelog-angular: 8.0.0 + conventional-changelog-writer: 8.0.0 + conventional-commits-filter: 5.0.0 + conventional-commits-parser: 6.0.0 + debug: 4.3.4 + get-stream: 7.0.1 + import-from-esm: 1.3.4 + into-stream: 7.0.0 + lodash-es: 4.17.21 + read-package-up: 11.0.0 + semantic-release: 24.1.0(typescript@4.9.5) + transitivePeerDependencies: + - supports-color + '@shikijs/core@1.2.0': {} '@shikijs/transformers@1.2.0': @@ -5528,8 +6330,12 @@ snapshots: '@sigstore/core': 1.1.0 '@sigstore/protobuf-specs': 0.3.0 + '@sindresorhus/is@4.6.0': {} + '@sindresorhus/merge-streams@2.3.0': {} + '@sindresorhus/merge-streams@4.0.0': {} + '@tootallnate/once@1.1.2': optional: true @@ -5880,6 +6686,11 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 + aggregate-error@5.0.0: + dependencies: + clean-stack: 5.2.0 + indent-string: 5.0.0 + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -5919,6 +6730,10 @@ snapshots: dependencies: type-fest: 0.21.3 + ansi-escapes@7.0.0: + dependencies: + environment: 1.1.0 + ansi-regex@5.0.1: {} ansi-regex@6.0.1: {} @@ -5935,6 +6750,8 @@ snapshots: ansi-styles@6.2.1: {} + any-promise@1.3.0: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -5963,6 +6780,8 @@ snapshots: argparse@2.0.1: {} + argv-formatter@1.0.0: {} + array-find-index@1.0.2: {} array-ify@1.0.0: {} @@ -6047,6 +6866,8 @@ snapshots: before-after-hook@2.2.3: {} + before-after-hook@3.0.2: {} + bin-links@4.0.3: dependencies: cmd-shim: 6.0.2 @@ -6068,6 +6889,8 @@ snapshots: blueimp-md5@2.19.0: {} + bottleneck@2.19.5: {} + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -6214,6 +7037,8 @@ snapshots: chalk@5.3.0: {} + char-regex@1.0.2: {} + chardet@0.7.0: {} chevrotain@10.5.0: @@ -6253,12 +7078,31 @@ snapshots: clean-stack@2.2.0: {} + clean-stack@5.2.0: + dependencies: + escape-string-regexp: 5.0.0 + cli-cursor@3.1.0: dependencies: restore-cursor: 3.1.0 + cli-highlight@2.1.11: + dependencies: + chalk: 4.1.2 + highlight.js: 10.7.3 + mz: 2.7.0 + parse5: 5.1.1 + parse5-htmlparser2-tree-adapter: 6.0.1 + yargs: 16.2.0 + cli-spinners@2.9.2: {} + cli-table3@0.6.5: + dependencies: + string-width: 4.2.3 + optionalDependencies: + '@colors/colors': 1.5.0 + cli-truncate@4.0.0: dependencies: slice-ansi: 5.0.0 @@ -6361,6 +7205,10 @@ snapshots: dependencies: compare-func: 2.0.0 + conventional-changelog-angular@8.0.0: + dependencies: + compare-func: 2.0.0 + conventional-changelog-core@7.0.0: dependencies: '@hutson/parse-repository-url': 5.0.0 @@ -6385,8 +7233,18 @@ snapshots: semver: 7.6.0 split2: 4.2.0 + conventional-changelog-writer@8.0.0: + dependencies: + '@types/semver': 7.5.8 + conventional-commits-filter: 5.0.0 + handlebars: 4.7.8 + meow: 13.2.0 + semver: 7.6.0 + conventional-commits-filter@4.0.0: {} + conventional-commits-filter@5.0.0: {} + conventional-commits-parser@5.0.0: dependencies: JSONStream: 1.3.5 @@ -6394,6 +7252,10 @@ snapshots: meow: 12.1.1 split2: 4.2.0 + conventional-commits-parser@6.0.0: + dependencies: + meow: 13.2.0 + conventional-recommended-bump@9.0.0: dependencies: conventional-changelog-preset-loader: 4.1.0 @@ -6403,10 +7265,23 @@ snapshots: git-semver-tags: 7.0.1 meow: 12.1.1 + convert-hrtime@5.0.0: {} + convert-source-map@2.0.0: {} convert-to-spaces@2.0.1: {} + core-util-is@1.0.3: {} + + cosmiconfig@9.0.0(typescript@4.9.5): + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + optionalDependencies: + typescript: 4.9.5 + cosmiconfig@9.0.0(typescript@5.4.3): dependencies: env-paths: 2.2.1 @@ -6436,6 +7311,10 @@ snapshots: dependencies: '@types/node': 17.0.45 + crypto-random-string@4.0.0: + dependencies: + type-fest: 1.4.0 + cssesc@3.0.0: {} csstype@3.1.3: {} @@ -6530,6 +7409,10 @@ snapshots: dottie@2.0.6: {} + duplexer2@0.1.4: + dependencies: + readable-stream: 2.3.8 + duplexer@0.1.2: {} eastasianwidth@0.2.0: {} @@ -6544,6 +7427,8 @@ snapshots: emoji-regex@9.2.2: {} + emojilib@2.4.0: {} + encode-utf8@1.0.3: {} encoding@0.1.13: @@ -6557,8 +7442,15 @@ snapshots: entities@4.5.0: {} + env-ci@11.1.0: + dependencies: + execa: 8.0.1 + java-properties: 1.0.2 + env-paths@2.2.1: {} + environment@1.1.0: {} + err-code@2.0.3: {} error-ex@1.3.2: @@ -6718,6 +7610,18 @@ snapshots: eventemitter3@5.0.1: {} + execa@5.1.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + execa@8.0.1: dependencies: cross-spawn: 7.0.3 @@ -6730,6 +7634,21 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 + execa@9.3.1: + dependencies: + '@sindresorhus/merge-streams': 4.0.0 + cross-spawn: 7.0.3 + figures: 6.1.0 + get-stream: 9.0.1 + human-signals: 8.0.0 + is-plain-obj: 4.1.0 + is-stream: 4.0.1 + npm-run-path: 5.3.0 + pretty-ms: 9.0.0 + signal-exit: 4.1.0 + strip-final-newline: 4.0.0 + yoctocolors: 2.1.1 + expand-template@2.0.3: {} exponential-backoff@3.1.1: {} @@ -6779,6 +7698,10 @@ snapshots: node-domexception: 1.0.0 web-streams-polyfill: 3.3.3 + figures@2.0.0: + dependencies: + escape-string-regexp: 1.0.5 + figures@3.2.0: dependencies: escape-string-regexp: 1.0.5 @@ -6799,6 +7722,10 @@ snapshots: find-up-simple@1.0.0: {} + find-up@2.1.0: + dependencies: + locate-path: 2.0.0 + find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -6814,6 +7741,11 @@ snapshots: locate-path: 7.2.0 path-exists: 5.0.0 + find-versions@6.0.0: + dependencies: + semver-regex: 4.0.5 + super-regex: 1.0.0 + flat-cache@3.2.0: dependencies: flatted: 3.3.1 @@ -6849,6 +7781,11 @@ snapshots: dependencies: fetch-blob: 3.2.0 + from2@2.3.0: + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + fs-constants@1.0.0: {} fs-extra@11.2.0: @@ -6875,6 +7812,8 @@ snapshots: function-bind@1.1.2: {} + function-timeout@1.0.2: {} + gauge@3.0.2: dependencies: aproba: 2.0.0 @@ -6935,8 +7874,26 @@ snapshots: dependencies: pump: 3.0.0 + get-stream@6.0.1: {} + + get-stream@7.0.1: {} + get-stream@8.0.1: {} + get-stream@9.0.1: + dependencies: + '@sec-ant/readable-stream': 0.4.1 + is-stream: 4.0.1 + + git-log-parser@1.2.1: + dependencies: + argv-formatter: 1.0.0 + spawn-error-forwarder: 1.0.0 + split2: 1.0.0 + stream-combiner2: 1.1.1 + through2: 2.0.5 + traverse: 0.6.8 + git-raw-commits@4.0.0: dependencies: dargs: 8.1.0 @@ -7019,6 +7976,8 @@ snapshots: dependencies: get-intrinsic: 1.2.2 + graceful-fs@4.2.10: {} + graceful-fs@4.2.11: {} graphemer@1.4.0: {} @@ -7070,6 +8029,10 @@ snapshots: helpertypes@0.0.19: {} + highlight.js@10.7.3: {} + + hook-std@3.0.0: {} + hookable@5.5.3: {} hosted-git-info@7.0.1: @@ -7110,8 +8073,12 @@ snapshots: transitivePeerDependencies: - supports-color + human-signals@2.1.0: {} + human-signals@5.0.0: {} + human-signals@8.0.0: {} + humanize-ms@1.2.1: dependencies: ms: 2.1.3 @@ -7143,17 +8110,28 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 + import-from-esm@1.3.4: + dependencies: + debug: 4.3.4 + import-meta-resolve: 4.1.0 + transitivePeerDependencies: + - supports-color + import-local@3.1.0: dependencies: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 + import-meta-resolve@4.1.0: {} + imurmurhash@0.1.4: {} indent-string@4.0.0: {} indent-string@5.0.0: {} + index-to-position@0.1.2: {} + infer-owner@1.0.4: optional: true @@ -7186,6 +8164,11 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 6.2.0 + into-stream@7.0.0: + dependencies: + from2: 2.3.0 + p-is-promise: 3.0.0 + ip-address@9.0.5: dependencies: jsbn: 1.1.0 @@ -7254,6 +8237,8 @@ snapshots: dependencies: protocols: 2.0.1 + is-stream@2.0.1: {} + is-stream@3.0.0: {} is-stream@4.0.1: {} @@ -7272,6 +8257,8 @@ snapshots: is-unicode-supported@2.0.0: {} + isarray@1.0.0: {} + isbot@3.8.0: {} isexe@2.0.0: {} @@ -7298,6 +8285,14 @@ snapshots: dependencies: ws: 8.15.0 + issue-parser@7.0.1: + dependencies: + lodash.capitalize: 4.2.1 + lodash.escaperegexp: 4.1.2 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.uniqby: 4.7.0 + istanbul-lib-coverage@3.2.2: {} istanbul-lib-report@3.0.1: @@ -7317,6 +8312,8 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 + java-properties@1.0.2: {} + jose@5.1.3: {} js-string-escape@1.0.1: {} @@ -7336,6 +8333,8 @@ snapshots: json-buffer@3.0.1: {} + json-parse-better-errors@1.0.2: {} + json-parse-even-better-errors@2.3.1: {} json-parse-even-better-errors@3.0.1: {} @@ -7401,8 +8400,20 @@ snapshots: lines-and-columns@2.0.4: {} + load-json-file@4.0.0: + dependencies: + graceful-fs: 4.2.11 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + load-json-file@7.0.1: {} + locate-path@2.0.0: + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -7415,8 +8426,20 @@ snapshots: dependencies: p-locate: 6.0.0 + lodash-es@4.17.21: {} + + lodash.capitalize@4.2.1: {} + + lodash.escaperegexp@4.1.2: {} + + lodash.isplainobject@4.0.6: {} + + lodash.isstring@4.0.1: {} + lodash.merge@4.6.2: {} + lodash.uniqby@4.7.0: {} + lodash@4.17.21: {} log-symbols@4.1.0: @@ -7493,6 +8516,18 @@ snapshots: markdown-table@3.0.3: {} + marked-terminal@7.1.0(marked@12.0.2): + dependencies: + ansi-escapes: 7.0.0 + chalk: 5.3.0 + cli-highlight: 2.1.11 + cli-table3: 0.6.5 + marked: 12.0.2 + node-emoji: 2.1.3 + supports-hyperlinks: 3.1.0 + + marked@12.0.2: {} + marked@4.3.0: {} matcher@5.0.0: @@ -7511,6 +8546,8 @@ snapshots: meow@12.1.1: {} + meow@13.2.0: {} + merge-stream@2.0.0: {} merge2@1.4.1: {} @@ -7526,6 +8563,8 @@ snapshots: dependencies: mime-db: 1.52.0 + mime@4.0.4: {} + mimic-fn@2.1.0: {} mimic-fn@4.0.0: {} @@ -7655,6 +8694,12 @@ snapshots: mute-stream@1.0.0: {} + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + nanoid@3.3.1: {} nanoid@3.3.7: {} @@ -7667,6 +8712,8 @@ snapshots: neo-async@2.6.2: {} + nerf-dart@1.0.0: {} + new-github-release-url@2.0.0: dependencies: type-fest: 2.19.0 @@ -7687,6 +8734,13 @@ snapshots: node-domexception@1.0.0: {} + node-emoji@2.1.3: + dependencies: + '@sindresorhus/is': 4.6.0 + char-regex: 1.0.2 + emojilib: 2.4.0 + skin-tone: 2.0.0 + node-fetch@2.7.0(encoding@0.1.13): dependencies: whatwg-url: 5.0.0 @@ -7754,6 +8808,8 @@ snapshots: normalize-path@3.0.0: {} + normalize-url@8.0.1: {} + npm-bundled@3.0.0: dependencies: npm-normalize-package-bin: 3.0.1 @@ -7794,10 +8850,20 @@ snapshots: transitivePeerDependencies: - supports-color + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + npm-run-path@5.1.0: dependencies: path-key: 4.0.0 + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + + npm@10.8.2: {} + npmlog@5.0.1: dependencies: are-we-there-yet: 2.0.0 @@ -7859,6 +8925,18 @@ snapshots: os-tmpdir@1.0.2: {} + p-each-series@3.0.0: {} + + p-filter@4.1.0: + dependencies: + p-map: 7.0.1 + + p-is-promise@3.0.0: {} + + p-limit@1.3.0: + dependencies: + p-try: 1.0.0 + p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -7871,6 +8949,10 @@ snapshots: dependencies: yocto-queue: 1.0.0 + p-locate@2.0.0: + dependencies: + p-limit: 1.3.0 + p-locate@4.1.0: dependencies: p-limit: 2.3.0 @@ -7896,10 +8978,14 @@ snapshots: eventemitter3: 5.0.1 p-timeout: 6.1.2 + p-reduce@2.1.0: {} + p-reduce@3.0.0: {} p-timeout@6.1.2: {} + p-try@1.0.0: {} + p-try@2.2.0: {} package-config@5.0.0: @@ -7943,6 +9029,11 @@ snapshots: just-diff: 6.0.2 just-diff-apply: 5.5.0 + parse-json@4.0.0: + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + parse-json@5.2.0: dependencies: '@babel/code-frame': 7.24.2 @@ -7958,6 +9049,12 @@ snapshots: lines-and-columns: 2.0.4 type-fest: 3.13.1 + parse-json@8.1.0: + dependencies: + '@babel/code-frame': 7.24.2 + index-to-position: 0.1.2 + type-fest: 4.14.0 + parse-ms@4.0.0: {} parse-path@7.0.0: @@ -7968,6 +9065,16 @@ snapshots: dependencies: parse-path: 7.0.0 + parse5-htmlparser2-tree-adapter@6.0.1: + dependencies: + parse5: 6.0.1 + + parse5@5.1.1: {} + + parse5@6.0.1: {} + + path-exists@3.0.0: {} + path-exists@4.0.0: {} path-exists@5.0.0: {} @@ -8001,10 +9108,17 @@ snapshots: picomatch@3.0.1: {} + pify@3.0.0: {} + pify@4.0.1: {} pify@6.1.0: {} + pkg-conf@2.1.0: + dependencies: + find-up: 2.1.0 + load-json-file: 4.0.0 + pkg-dir@4.2.0: dependencies: find-up: 4.1.0 @@ -8063,6 +9177,8 @@ snapshots: proc-log@3.0.0: {} + process-nextick-args@2.0.1: {} + promise-all-reject-late@1.0.1: {} promise-call-limit@3.0.1: {} @@ -8123,6 +9239,12 @@ snapshots: normalize-package-data: 6.0.0 npm-normalize-package-bin: 3.0.1 + read-package-up@11.0.0: + dependencies: + find-up-simple: 1.0.0 + read-pkg: 9.0.1 + type-fest: 4.14.0 + read-pkg-up@10.1.0: dependencies: find-up: 6.3.0 @@ -8136,6 +9258,24 @@ snapshots: parse-json: 7.1.1 type-fest: 4.14.0 + read-pkg@9.0.1: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 6.0.0 + parse-json: 8.1.0 + type-fest: 4.14.0 + unicorn-magic: 0.1.0 + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + readable-stream@3.6.2: dependencies: inherits: 2.0.4 @@ -8148,6 +9288,10 @@ snapshots: regexp-to-ast@0.5.0: {} + registry-auth-token@5.0.2: + dependencies: + '@pnpm/npm-conf': 2.3.1 + require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -8243,6 +9387,49 @@ snapshots: search-insights@2.13.0: {} + semantic-release-commit-filter@1.0.2: {} + + semantic-release@24.1.0(typescript@4.9.5): + dependencies: + '@semantic-release/commit-analyzer': 13.0.0(semantic-release@24.1.0(typescript@4.9.5)) + '@semantic-release/error': 4.0.0 + '@semantic-release/github': 10.1.7(semantic-release@24.1.0(typescript@4.9.5)) + '@semantic-release/npm': 12.0.1(semantic-release@24.1.0(typescript@4.9.5)) + '@semantic-release/release-notes-generator': 14.0.1(semantic-release@24.1.0(typescript@4.9.5)) + aggregate-error: 5.0.0 + cosmiconfig: 9.0.0(typescript@4.9.5) + debug: 4.3.4 + env-ci: 11.1.0 + execa: 9.3.1 + figures: 6.1.0 + find-versions: 6.0.0 + get-stream: 6.0.1 + git-log-parser: 1.2.1 + hook-std: 3.0.0 + hosted-git-info: 7.0.1 + import-from-esm: 1.3.4 + lodash-es: 4.17.21 + marked: 12.0.2 + marked-terminal: 7.1.0(marked@12.0.2) + micromatch: 4.0.5 + p-each-series: 3.0.0 + p-reduce: 3.0.0 + read-package-up: 11.0.0 + resolve-from: 5.0.0 + semver: 7.6.0 + semver-diff: 4.0.0 + signale: 1.4.0 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + - typescript + + semver-diff@4.0.0: + dependencies: + semver: 7.6.0 + + semver-regex@4.0.5: {} + semver@6.3.1: {} semver@7.6.0: @@ -8332,6 +9519,12 @@ snapshots: signal-exit@4.1.0: {} + signale@1.4.0: + dependencies: + chalk: 2.4.2 + figures: 2.0.0 + pkg-conf: 2.1.0 + sigstore@2.2.2: dependencies: '@sigstore/bundle': 2.2.0 @@ -8351,6 +9544,10 @@ snapshots: once: 1.4.0 simple-concat: 1.0.1 + skin-tone@2.0.0: + dependencies: + unicode-emoji-modifier-base: 1.0.0 + slash@3.0.0: {} slash@5.1.0: {} @@ -8394,6 +9591,8 @@ snapshots: sourcemap-codec@1.4.8: {} + spawn-error-forwarder@1.0.0: {} + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 @@ -8410,6 +9609,10 @@ snapshots: speakingurl@14.0.1: {} + split2@1.0.0: + dependencies: + through2: 2.0.5 + split2@4.2.0: {} sprintf-js@1.0.3: {} @@ -8441,6 +9644,11 @@ snapshots: dependencies: escape-string-regexp: 2.0.0 + stream-combiner2@1.1.1: + dependencies: + duplexer2: 0.1.4 + readable-stream: 2.3.8 + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -8459,6 +9667,10 @@ snapshots: get-east-asian-width: 1.2.0 strip-ansi: 7.1.0 + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 @@ -8471,8 +9683,14 @@ snapshots: dependencies: ansi-regex: 6.0.1 + strip-bom@3.0.0: {} + + strip-final-newline@2.0.0: {} + strip-final-newline@3.0.0: {} + strip-final-newline@4.0.0: {} + strip-json-comments@2.0.1: {} strip-json-comments@3.1.1: {} @@ -8485,6 +9703,11 @@ snapshots: style-mod@4.1.2: {} + super-regex@1.0.0: + dependencies: + function-timeout: 1.0.2 + time-span: 5.1.0 + supertap@3.0.1: dependencies: indent-string: 5.0.0 @@ -8504,6 +9727,11 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-hyperlinks@3.1.0: + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + tabbable@6.2.0: {} tar-fs@2.1.1: @@ -8532,6 +9760,13 @@ snapshots: temp-dir@3.0.0: {} + tempy@3.1.0: + dependencies: + is-stream: 3.0.0 + temp-dir: 3.0.0 + type-fest: 2.19.0 + unique-string: 3.0.0 + test-exclude@6.0.0: dependencies: '@istanbuljs/schema': 0.1.3 @@ -8542,8 +9777,25 @@ snapshots: text-table@0.2.0: {} + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + through2@2.0.5: + dependencies: + readable-stream: 2.3.8 + xtend: 4.0.2 + through@2.3.8: {} + time-span@5.1.0: + dependencies: + convert-hrtime: 5.0.0 + time-zone@1.0.0: {} tmp@0.0.33: @@ -8560,6 +9812,8 @@ snapshots: tr46@0.0.3: {} + traverse@0.6.8: {} + treeverse@3.0.0: {} ts-api-utils@1.3.0(typescript@5.4.3): @@ -8615,6 +9869,8 @@ snapshots: type-fest@0.21.3: {} + type-fest@1.4.0: {} + type-fest@2.19.0: {} type-fest@3.13.1: {} @@ -8649,6 +9905,8 @@ snapshots: undici-types@5.26.5: {} + unicode-emoji-modifier-base@1.0.0: {} + unicorn-magic@0.1.0: {} unique-filename@1.1.1: @@ -8669,8 +9927,14 @@ snapshots: dependencies: imurmurhash: 0.1.4 + unique-string@3.0.0: + dependencies: + crypto-random-string: 4.0.0 + universal-user-agent@6.0.1: {} + universal-user-agent@7.0.2: {} + universalify@2.0.1: {} update-browserslist-db@1.1.0(browserslist@4.23.3): @@ -8683,6 +9947,8 @@ snapshots: dependencies: punycode: 2.3.1 + url-join@5.0.0: {} + util-deprecate@1.0.2: {} util@0.12.5: @@ -9096,6 +10362,8 @@ snapshots: ws@8.15.0: {} + xtend@4.0.2: {} + y18n@4.0.3: {} y18n@5.0.8: {} @@ -9163,6 +10431,8 @@ snapshots: yocto-queue@1.0.0: {} + yoctocolors@2.1.1: {} + zenroom@4.31.2: {} zod@3.22.4: {} From 94c4506391d5e6efa537264452f19d967eaf75be Mon Sep 17 00:00:00 2001 From: puria Date: Wed, 28 Aug 2024 12:39:59 +0200 Subject: [PATCH 29/29] fix(grammar): read also subpath for CI action trigger --- .github/workflows/grammar.yml | 2 +- grammar/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/grammar.yml b/.github/workflows/grammar.yml index bccac4e8..c39dfcc7 100644 --- a/.github/workflows/grammar.yml +++ b/.github/workflows/grammar.yml @@ -8,7 +8,7 @@ on: push: branches: - main - paths: [ "grammar" ] + paths: [ "grammar/**" ] permissions: contents: write diff --git a/grammar/package.json b/grammar/package.json index 55fd4e7b..e6a5e133 100644 --- a/grammar/package.json +++ b/grammar/package.json @@ -1,7 +1,7 @@ { "name": "codemirror-lang-slangroom", "version": "0.1.0", - "description": "Slangroom language support for CodeMirror", + "description": "Slangroom lezer grammar", "scripts": { "test": "mocha test/test.js", "prepare": "rollup -c"