diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 053c9066..00000000 --- a/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -*.own linguist-language=Scala diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml deleted file mode 100644 index 15ba0c83..00000000 --- a/.github/workflows/docs.yml +++ /dev/null @@ -1,55 +0,0 @@ -name: docs - -on: - push: - branches: [ "latest" ] - -jobs: - docs-build: - runs-on: ubuntu-latest - strategy: - matrix: - node-version: [16] - java: [21] - steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v3 - with: - version: 8 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - cache: pnpm - cache-dependency-path: docs/pnpm-lock.yaml - - name: Install dependencies - run: cd docs && pnpm install - - - name: Set up JDK ${{ matrix.java }} - uses: actions/setup-java@v4 - with: - java-version: ${{ matrix.java }} - distribution: 'temurin' - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - name: Build docs - run: ./gradlew buildDocs - - - name: Clear docs - uses: appleboy/ssh-action@v1.0.3 - with: - host: ${{ secrets.SSH_HOST }} - username: ${{ secrets.SSH_USERNAME }} - port: ${{ secrets.SSH_PORT }} - key: ${{ secrets.SSH_KEY }} - script: ${{ secrets.DOCS_CLEAR_SCRIPT }} - - name: Upload docs - uses: appleboy/scp-action@v0.1.7 - with: - host: ${{ secrets.SSH_HOST }} - username: ${{ secrets.SSH_USERNAME }} - port: ${{ secrets.SSH_PORT }} - key: ${{ secrets.SSH_KEY }} - source: './docs/docs/.vuepress/dist/*' - target: ${{ secrets.DOCS_UPLOAD_PATH }} - strip_components: 4 diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml deleted file mode 100644 index 5d69a63c..00000000 --- a/.github/workflows/gradle.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: build - -on: - push: - branches: [ "latest" ] - pull_request: - branches: [ "latest" ] - -jobs: - build: - runs-on: ubuntu-latest - strategy: - matrix: - java: [ '17', '21' ] - name: Test - steps: - - uses: actions/checkout@v4 - - name: Set up JDK ${{ matrix.java }} - uses: actions/setup-java@v4 - with: - java-version: ${{ matrix.java }} - distribution: 'temurin' - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - name: Run tests - run: ./gradlew test diff --git a/.gitignore b/.gitignore deleted file mode 100644 index ee9683a7..00000000 --- a/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -/.gradle/ -/.idea/ -/.nb-gradle/ -**/build/ -/out/ -/store/ -/optimizations/ -OwnLang.iml -*.sh \ No newline at end of file diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 7662d625..00000000 --- a/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM gradle:8.13.0-jdk21-alpine AS cache -RUN mkdir -p /home/gradle/cache_home -ENV GRADLE_USER_HOME=/home/gradle/cache_home -COPY build.gradle /home/gradle/java-code/ -WORKDIR /home/gradle/java-code -RUN GRADLE_OPTS="-Xmx256m" gradle build --build-cache --stacktrace -i --no-daemon - -FROM gradle:8.13.0-jdk21-alpine AS builder -COPY --from=cache /home/gradle/cache_home /home/gradle/.gradle -COPY . /usr/src/java-code -WORKDIR /usr/src/java-code -RUN GRADLE_OPTS="-Xmx256m" gradle shadowJar --build-cache --stacktrace --no-daemon - -FROM eclipse-temurin:21-jre-alpine -WORKDIR /opt/ownlang -ENV PATH /opt/ownlang:$PATH -COPY --from=builder /usr/src/java-code/ownlang-desktop/build/libs/*.jar libs/OwnLang.jar -COPY --from=builder /usr/src/java-code/modules/jdbc/build/libs/*.jar modules/ -COPY --from=builder /usr/src/java-code/modules/server/build/libs/*.jar modules/ -COPY --from=builder /usr/src/java-code/modules/socket/build/libs/*.jar modules/ -COPY dist/own . -COPY dist/ownlang . -RUN chmod +x own ownlang -ENTRYPOINT ["ownlang"] - diff --git a/LICENSE b/LICENSE deleted file mode 100644 index b9f4d675..00000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License - -Copyright (c) 2015-2016 Victor Melnik - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/README.md b/README.md index dfd9473a..0f050d01 100644 --- a/README.md +++ b/README.md @@ -1,157 +1,3 @@ -# OwnLang +# OwnLang Registry -OwnLang - dynamic functional programming language inspired by Scala and Python. Available for PC, Android and Java ME devices. -## Installing - -| Free | Pro | Desktop | -| :--: | :-: |:------------------------------------------------------------------------------------------:| -| [![Free](https://developer.android.com/images/brand/en_generic_rgb_wo_45.png)](https://play.google.com/store/apps/details?id=com.annimon.ownlang.free) | [![Pro](https://developer.android.com/images/brand/en_generic_rgb_wo_45.png)](https://play.google.com/store/apps/details?id=com.annimon.ownlang) | [v2.1.0](https://github.com/aNNiMON/Own-Programming-Language-Tutorial/releases/tag/v2.1.0) | - -Also available as AUR package: - -``` -yay -S ownlang -``` - -## Key features - -#### Higher-order functions - -Functions are values, so we can store them to variables for operating. - -```scala -operations = { - "+" : def(a,b) = a+b, - "-" : def(a,b) = a-b, - "*" : def(a,b) = a*b, - "/" : ::division -} - -def division(v1, v2) { - if (v2 == 0) return "error: division by zero" - return v1 / v2 -} - -for name, operation : operations { - println "2 " + name + " 3 = " + operation(2, 3) -} -``` - -#### Pattern Matching - -Pattern matching with value pattern, tuple pattern, list pattern and optional condition. - -```scala -def factorial(n) = match n { - case 0: 1 - case n if n < 0: 0 - case _: n * factorial(n - 1) -} - -def fizzbuzz(limit = 100) { - for i = 1, i <= limit, i++ { - println match [i % 3 == 0, i % 5 == 0] { - case (true, false): "Fizz" - case (false, true): "Buzz" - case (true, true): "FizzBuzz" - case _: i - } - } -} - -// run -fizzbuzz() -``` - -#### Functional data operations - -Operate data in functional style. - -```scala -use std, functional - -nums = [1,2,3,4,5,6,7,8,9,10] -nums = filter(nums, def(x) = x % 2 == 0) -// Squares of even numbers -squares = map(nums, def(x) = x * x) -foreach(squares, ::echo) -// Sum of squares -sum = reduce(squares, 0, def(x, y) = x + y) -println "Sum: " + sum -// Same using stream -println "Sum: " + stream(range(1, 11)) - .filter(def(x) = x % 2 == 0) - .map(def(x) = x * x) - .reduce(0, def(x, y) = x + y) -``` - -#### Operator overloading - -Why not? - -```scala -use std, types, math - -def `..`(a, b) = range(a, b) -def `**`(a, b) = int(pow(a, b)) -for y : 1 .. 10 { - println sprintf("2 ^ %d = %d", y, 2 ** y) -} -``` - -#### Network module - -Easy async HTTP requests with `http` module. - -```scala -use std, http, functional, json - -// GET request -http("https://api.github.com/events", def(r) { - events = jsondecode(r) - println events[0] -}) - -// POST request -http("http://jsonplaceholder.typicode.com/users", "POST", { - "name": "OwnLang", - "versionCode": 10 -}, ::echo) - -// PATCH request -http("http://jsonplaceholder.typicode.com/users/2", "PATCH", {"name": "Patched Name"}, ::patch_callback) - -def patch_callback(v) { - println v -} -``` - -## Language specification - -[English](https://annimon.com/docs/ownlang/en/) and [Russian](https://annimon.com/docs/ownlang/ru/) - -[Examples](examples/) - - -## Build - -Build using Gradle `./gradlew shadowJar` - -or take a look to [latest release](https://github.com/aNNiMON/Own-Programming-Language-Tutorial/releases/latest) for binaries. - - -## Run - -To run script use command - -`java -jar OwnLang.jar -f input.own` - -or - -`java -jar OwnLang.jar < input.own` - - -## License - -MIT - see [MIT license information](LICENSE) diff --git a/build.gradle b/build.gradle deleted file mode 100644 index b4573e47..00000000 --- a/build.gradle +++ /dev/null @@ -1,34 +0,0 @@ -ext { - versions = [ - project: '2.1.0', - - json: '20240303', // org.json:json - snakeyaml: '1.33', // org.yaml:snakeyaml - okhttp: '4.12.0', // com.squareup.okhttp3:okhttp - socket: '2.1.1', // io.socket:socket.io-client - jline: '2.14.6', // jline:jline - - javalin: '6.3.0', // io.javalin:javalin - slf4j: '2.0.16', // org.slf4j:slf4j-simple - jackson: '2.18.0', // com.fasterxml.jackson.core:jackson-databind - - junit: '5.11.2', // org.junit:junit-bom - jmh: '1.37', // org.openjdk.jmh:jmh-core - assertj: '3.26.3' // org.assertj:assertj-core - ] -} - -allprojects { - repositories { - mavenCentral() - } - - gradle.projectsEvaluated { - tasks.withType(JavaCompile).tap { - configureEach { - [compileJava, compileTestJava]*.options*.encoding = 'UTF-8' - options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" - } - } - } -} diff --git a/dist/icon.png b/dist/icon.png deleted file mode 100644 index 608745a0..00000000 Binary files a/dist/icon.png and /dev/null differ diff --git a/dist/own b/dist/own deleted file mode 100755 index 00f7a6f8..00000000 --- a/dist/own +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -ownlang run own "$@" \ No newline at end of file diff --git a/dist/own.cmd b/dist/own.cmd deleted file mode 100644 index 76496d75..00000000 --- a/dist/own.cmd +++ /dev/null @@ -1,2 +0,0 @@ -@echo off -ownlang run own %* \ No newline at end of file diff --git a/dist/ownlang b/dist/ownlang deleted file mode 100755 index a717400c..00000000 --- a/dist/ownlang +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env sh -(set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix - -# resolve links - $0 may be a softlink -PRG="$0" -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`/"$link" - fi -done -PRGDIR=`dirname "$PRG"` - -_classpath=".:$PRGDIR/OwnLang.jar" -if [ `uname -a | grep -i -c cygwin` -ne 0 ]; then # Cygwin, translate the path - for k in "$PRGDIR"/modules/*.jar - do - _classpath="${_classpath};`cygpath -w ${k}`" - done - for k in "$PRGDIR"/libs/*.jar - do - _classpath="${_classpath};`cygpath -w ${k}`" - done -else - for k in "$PRGDIR"/modules/*.jar - do - _classpath="${_classpath}:${k}" - done - for k in "$PRGDIR"/libs/*.jar - do - _classpath="${_classpath}:${k}" - done -fi - -java -cp "${_classpath}" com.annimon.ownlang.Main "$@" \ No newline at end of file diff --git a/dist/ownlang-runner.cmd b/dist/ownlang-runner.cmd deleted file mode 100644 index a7099924..00000000 --- a/dist/ownlang-runner.cmd +++ /dev/null @@ -1,4 +0,0 @@ -@echo off -set JAVA=java -%JAVA% -cp "%~dp0/*;%~dp0modules/*;%~dp0libs/*" com.annimon.ownlang.Main --file %1 -pause \ No newline at end of file diff --git a/dist/ownlang.cmd b/dist/ownlang.cmd deleted file mode 100644 index 8595d86d..00000000 --- a/dist/ownlang.cmd +++ /dev/null @@ -1,5 +0,0 @@ -@echo off - -set JAVA=java -%JAVA% ^ - -cp "%~dp0/*;%~dp0modules/*;%~dp0libs/*" com.annimon.ownlang.Main %* diff --git a/docs/.gitignore b/docs/.gitignore deleted file mode 100644 index c561d8e5..00000000 --- a/docs/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -node_modules -.temp -.cache -docs/.vuepress/configs/modules.js -docs/.vuepress/dist/ -docs/*/modules/ diff --git a/docs/build.gradle b/docs/build.gradle deleted file mode 100644 index 72811d40..00000000 --- a/docs/build.gradle +++ /dev/null @@ -1,54 +0,0 @@ -plugins { - id 'java' -} - -group = 'com.annimon' -version = versions.project - -dependencies { - implementation project(":ownlang-core") - implementation project(":ownlang-parser") - implementation project(":ownlang-utils") - implementation project(":modules:main") - implementation project(":modules:canvasfx") - implementation project(":modules:server") - - implementation "org.yaml:snakeyaml:${versions.snakeyaml}" -} - -tasks.register('generateMarkdownModules') { - group = "documentation" - def ownlangExec = tasks.getByPath(':ownlang-desktop:ownlangExec') - doFirst { - ownlangExec.configure { - workingDir '../docs/src' - args '-f', 'docgen-md.own' - } - } - finalizedBy ownlangExec -} - -tasks.register('runDocsDev', Exec) { - group = "documentation" - description = "Start docs dev server" - dependsOn generateMarkdownModules - workingDir '../docs/docs' - commandLine 'pnpm', 'docs:dev' -} - -tasks.register('buildDocs', Exec) { - group = "documentation" - description = "Build docs to static site" - dependsOn generateMarkdownModules - workingDir '../docs/docs' - commandLine 'pnpm', 'docs:build' -} - -tasks.register('generateModuleInfo', JavaExec) { - group = "documentation" - description = "Run sample program" - dependsOn classes - mainClass = 'com.annimon.ownlang.docs.ModulesInfoCreator' - classpath = sourceSets.main.runtimeClasspath - args 'server', 'okhttp' -} \ No newline at end of file diff --git a/docs/docs/.vuepress/components/Scope.vue b/docs/docs/.vuepress/components/Scope.vue deleted file mode 100644 index 0d5cd18e..00000000 --- a/docs/docs/.vuepress/components/Scope.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - - - \ No newline at end of file diff --git a/docs/docs/.vuepress/components/Since.vue b/docs/docs/.vuepress/components/Since.vue deleted file mode 100644 index 62232ab3..00000000 --- a/docs/docs/.vuepress/components/Since.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - - - \ No newline at end of file diff --git a/docs/docs/.vuepress/config.js b/docs/docs/.vuepress/config.js deleted file mode 100644 index 78845b53..00000000 --- a/docs/docs/.vuepress/config.js +++ /dev/null @@ -1,63 +0,0 @@ -import { defineUserConfig, defaultTheme } from 'vuepress' -import { getDirname, path } from '@vuepress/utils' -import { registerComponentsPlugin } from '@vuepress/plugin-register-components' -import { prismjsPlugin } from '@vuepress/plugin-prismjs' -import { searchPlugin } from '@vuepress/plugin-search' -import { sidebarConfig } from './configs/sidebar' -import { navbarConfig } from './configs/navbar' -import Prism from 'prismjs'; -import definePrismOwnLang from '../../../editors/prismjs/own-language.js' - -definePrismOwnLang(Prism) -const __dirname = getDirname(import.meta.url) - -export default defineUserConfig({ - base: "/docs/ownlang/", - locales: { - '/en/': { - lang: 'en-US', - title: 'OwnLang', - description: 'OwnLang documentation', - }, - '/ru/': { - lang: 'ru-RU', - title: 'OwnLang', - description: 'Документация OwnLang', - } - }, - - theme: defaultTheme({ - repo: 'aNNiMON/Own-Programming-Language-Tutorial', - docsBranch: 'next', - editLinkPattern: ':repo/blob/:branch/docs/docs/:path', - editLinkText: 'View source', - contributors: false, - locales: { - '/en/': { - selectLanguageName: 'English', - sidebar: sidebarConfig.en, - navbar: navbarConfig.en - }, - '/ru/': { - selectLanguageName: 'Русский', - sidebar: sidebarConfig.ru, - navbar: navbarConfig.ru - } - } - }), - - plugins: [ - prismjsPlugin({ - preloadLanguages: ['own', 'json'] - }), - registerComponentsPlugin({ - componentsDir: path.resolve(__dirname, './components'), - }), - searchPlugin({ - locales: { - '/en/': { placeholder: 'Search' }, - '/ru/': { placeholder: 'Поиск' }, - }, - }), - ], -}) diff --git a/docs/docs/.vuepress/configs/navbar.js b/docs/docs/.vuepress/configs/navbar.js deleted file mode 100644 index 2c7a2a69..00000000 --- a/docs/docs/.vuepress/configs/navbar.js +++ /dev/null @@ -1,16 +0,0 @@ -import pages from './pages' - -let navbar = {} -for (let lang of ['en', 'ru']) { - let config = [] - for (let [relativePath, entry] of Object.entries(pages)) { - const path = '/' + lang + relativePath - config.push({ - text: entry.text[lang], - children: entry.pages.map(r => path + r) - }) - } - navbar[lang] = config -} - -export const navbarConfig = navbar \ No newline at end of file diff --git a/docs/docs/.vuepress/configs/pages.js b/docs/docs/.vuepress/configs/pages.js deleted file mode 100644 index d60daba0..00000000 --- a/docs/docs/.vuepress/configs/pages.js +++ /dev/null @@ -1,31 +0,0 @@ -import modules from './modules' -export default { - '/': { - text: {'en': 'OwnLang', 'ru': 'OwnLang'}, - pages: [ - 'README.md', - 'links.md', - 'changelog.md', - ] - }, - - '/basics/': { - text: {'en': 'Basics', 'ru': 'Основы'}, - pages: [ - 'comments.md', - 'strings.md', - 'types.md', - 'loops.md', - 'functions.md', - 'destructuring_assignment.md', - 'pattern_matching.md', - 'string_functions.md', - 'array_functions.md' - ] - }, - - '/modules/': { - text: {'en': 'Modules', 'ru': 'Модули'}, - pages: modules - } -} \ No newline at end of file diff --git a/docs/docs/.vuepress/configs/sidebar.js b/docs/docs/.vuepress/configs/sidebar.js deleted file mode 100644 index 057ca20d..00000000 --- a/docs/docs/.vuepress/configs/sidebar.js +++ /dev/null @@ -1,17 +0,0 @@ -import pages from './pages' - -let sidebar = {} -for (let lang of ['en', 'ru']) { - let config = {} - for (let [relativePath, entry] of Object.entries(pages)) { - const path = '/' + lang + relativePath - config[path] = (path in config) ? config[path] : [] - config[path].push({ - text: entry.text[lang], - children: entry.pages.map(r => path + r) - }) - } - sidebar[lang] = config -} - -export const sidebarConfig = sidebar \ No newline at end of file diff --git a/docs/docs/.vuepress/styles/palette.scss b/docs/docs/.vuepress/styles/palette.scss deleted file mode 100644 index c4f3dd38..00000000 --- a/docs/docs/.vuepress/styles/palette.scss +++ /dev/null @@ -1,15 +0,0 @@ -:root { - --c-brand: #f15d15; - --c-brand-light: #ff9562; - --c-badge-danger: #f63f3f; - --c-badge-warning: #d0af01; - - --usc-since: var(--c-badge-warning); - --usc-scope: var(--c-brand); -} -html.dark { - --c-brand: #e1792d; - --c-brand-light: #ff8e3d; - --c-badge-danger: #d94657; - --c-badge-danger-text: #160304; -} \ No newline at end of file diff --git a/docs/docs/README.md b/docs/docs/README.md deleted file mode 100644 index 4b8be740..00000000 --- a/docs/docs/README.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -home: true -title: OwnLang -heroText: OwnLang -tagline: Dynamic functional programming language -actions: - - text: English - link: /en/ - type: primary - - text: Русский - link: /ru/ - type: primary -footer: © 2024 aNNiMON ---- - \ No newline at end of file diff --git a/docs/docs/code/basics/destructuring_assignment1.own b/docs/docs/code/basics/destructuring_assignment1.own deleted file mode 100644 index 893d4c8a..00000000 --- a/docs/docs/code/basics/destructuring_assignment1.own +++ /dev/null @@ -1,5 +0,0 @@ -arr = ["a", "b", "c"] -extract(var1, var2, var3) = arr -print var1 // a -print var2 // b -print var3 // c \ No newline at end of file diff --git a/docs/docs/code/basics/destructuring_assignment2.own b/docs/docs/code/basics/destructuring_assignment2.own deleted file mode 100644 index bb1b128a..00000000 --- a/docs/docs/code/basics/destructuring_assignment2.own +++ /dev/null @@ -1,4 +0,0 @@ -arr = ["a", "b", "c"] -var1 = arr[0] -var2 = arr[1] -var3 = arr[2] \ No newline at end of file diff --git a/docs/docs/code/basics/destructuring_assignment3.own b/docs/docs/code/basics/destructuring_assignment3.own deleted file mode 100644 index 1c8a6a14..00000000 --- a/docs/docs/code/basics/destructuring_assignment3.own +++ /dev/null @@ -1,4 +0,0 @@ -map = {"key1": 1, "test": "text"} -extract(var1, var2) = map -println var1 // [key1, 1] -println var2 // [test, text] \ No newline at end of file diff --git a/docs/docs/code/basics/destructuring_assignment4.own b/docs/docs/code/basics/destructuring_assignment4.own deleted file mode 100644 index 3538b909..00000000 --- a/docs/docs/code/basics/destructuring_assignment4.own +++ /dev/null @@ -1,3 +0,0 @@ -extract(x, , z) = [93, 58, 90] -println x // 93 -println z // 90 \ No newline at end of file diff --git a/docs/docs/code/basics/fibonacci.own b/docs/docs/code/basics/fibonacci.own deleted file mode 100644 index eae9e8bf..00000000 --- a/docs/docs/code/basics/fibonacci.own +++ /dev/null @@ -1,9 +0,0 @@ -def fibonacci(count) { - def fib(n) { - if n < 2 return n - return fib(n-2) + fib(n-1) - } - return fib(count) -} - -println fibonacci(10) // 55 \ No newline at end of file diff --git a/docs/docs/code/basics/loops1.own b/docs/docs/code/basics/loops1.own deleted file mode 100644 index 4a2ae95b..00000000 --- a/docs/docs/code/basics/loops1.own +++ /dev/null @@ -1,9 +0,0 @@ -arr = [1, 2, 3, 4] -for v : arr { - println v -} - -map = {"key1": 1, "key2": 2} -for key, value : map - println key + " = " value -} \ No newline at end of file diff --git a/docs/docs/code/basics/pattern_matching1.own b/docs/docs/code/basics/pattern_matching1.own deleted file mode 100644 index a67666f8..00000000 --- a/docs/docs/code/basics/pattern_matching1.own +++ /dev/null @@ -1,7 +0,0 @@ -x = 2 -print match x { - case 1: "One" - case 2: "Two" - case "str": "String" - case _: "Unknown" -} \ No newline at end of file diff --git a/docs/docs/code/basics/pattern_matching2.own b/docs/docs/code/basics/pattern_matching2.own deleted file mode 100644 index 80e6dccb..00000000 --- a/docs/docs/code/basics/pattern_matching2.own +++ /dev/null @@ -1,9 +0,0 @@ -x = "str" -match x { - case "": { - println "Empty string" - } - case "str": { - println "String!" - } -} \ No newline at end of file diff --git a/docs/docs/code/basics/pattern_matching3.own b/docs/docs/code/basics/pattern_matching3.own deleted file mode 100644 index ddacb268..00000000 --- a/docs/docs/code/basics/pattern_matching3.own +++ /dev/null @@ -1,10 +0,0 @@ -def test(x) = match x { - case a: "case a: " + a - case b: "case b: " + b - case c: "case c: " + c -} -a = 10 -b = 20 -println test(15) // case c: 15 -println test(20) // case b: 20 -println test("test") // case c: test \ No newline at end of file diff --git a/docs/docs/code/basics/pattern_matching4.own b/docs/docs/code/basics/pattern_matching4.own deleted file mode 100644 index 3ddbd67e..00000000 --- a/docs/docs/code/basics/pattern_matching4.own +++ /dev/null @@ -1,9 +0,0 @@ -def test(x) = match x { - case x if x < 0: "(-∞ .. 0)" - case x if x > 0: "(0 .. +∞)" - case x: "0" -} - -println test(-10) // (-∞ .. 0) -println test(0) // 0 -println test(10) // (0 .. +∞) \ No newline at end of file diff --git a/docs/docs/code/basics/pattern_matching5.own b/docs/docs/code/basics/pattern_matching5.own deleted file mode 100644 index 97d5e40d..00000000 --- a/docs/docs/code/basics/pattern_matching5.own +++ /dev/null @@ -1,7 +0,0 @@ -def arrayRecursive(arr) = match arr { - case [head :: tail]: "[" + head + ", " + arrayRecursive(tail) + "]" - case []: "[]" - case last: "[" + last + ", []]" -} - -println arrayRecursive([1, 2, 3, 4, 5, 6, 7]) // [1, [2, [3, [4, [5, [6, [7, []]]]]]]] \ No newline at end of file diff --git a/docs/docs/code/basics/pattern_matching6.own b/docs/docs/code/basics/pattern_matching6.own deleted file mode 100644 index 0ff5e70a..00000000 --- a/docs/docs/code/basics/pattern_matching6.own +++ /dev/null @@ -1,8 +0,0 @@ -for i = 1, i <= 100, i++ { - println match [i % 3 == 0, i % 5 == 0] { - case (true, false): "Fizz" - case (false, true): "Buzz" - case (true, true): "FizzBuzz" - case _: i - } -} \ No newline at end of file diff --git a/docs/docs/code/basics/string_functions1.own b/docs/docs/code/basics/string_functions1.own deleted file mode 100644 index 954d1714..00000000 --- a/docs/docs/code/basics/string_functions1.own +++ /dev/null @@ -1,7 +0,0 @@ -str = " ababcaab " -println indexOf(str, "abc") -println str.indexOf("abc") - -def isBlank(s) = s.trim().isEmpty() -println isBlank(str) -println str.isBlank() \ No newline at end of file diff --git a/docs/docs/code/functional_en.own b/docs/docs/code/functional_en.own deleted file mode 100644 index 9de63c2e..00000000 --- a/docs/docs/code/functional_en.own +++ /dev/null @@ -1,15 +0,0 @@ -use std, functional - -nums = [1,2,3,4,5,6,7,8,9,10] -nums = filter(nums, def(x) = x % 2 == 0) -// Squares of even numbers -squares = map(nums, def(x) = x * x) -foreach(squares, ::echo) -// Sum of squares -sum = reduce(squares, 0, def(x, y) = x + y) -println "Sum: " + sum -// Same using stream -println "Sum: " + stream(range(1, 11)) - .filter(def(x) = x % 2 == 0) - .map(def(x) = x * x) - .reduce(0, def(x, y) = x + y) diff --git a/docs/docs/code/functional_ru.own b/docs/docs/code/functional_ru.own deleted file mode 100644 index ef710b16..00000000 --- a/docs/docs/code/functional_ru.own +++ /dev/null @@ -1,15 +0,0 @@ -use std, functional - -nums = [1,2,3,4,5,6,7,8,9,10] -nums = filter(nums, def(x) = x % 2 == 0) -// Квадраты чётных чисел -squares = map(nums, def(x) = x * x) -foreach(squares, ::echo) -// Сумма квадратов -sum = reduce(squares, 0, def(x, y) = x + y) -println "Сумма: " + sum -// То же самое с использованием stream -println "Сумма: " + stream(range(1, 11)) - .filter(def(x) = x % 2 == 0) - .map(def(x) = x * x) - .reduce(0, def(x, y) = x + y) diff --git a/docs/docs/code/high_order_functions_en.own b/docs/docs/code/high_order_functions_en.own deleted file mode 100644 index a6c24356..00000000 --- a/docs/docs/code/high_order_functions_en.own +++ /dev/null @@ -1,14 +0,0 @@ -operations = { - "+" : def(a,b) = a+b, - "-" : def(a,b) = a-b, - "*" : def(a,b) = a*b, - "/" : ::division -} -def division(v1, v2) { - if (v2 == 0) return "error: division by zero" - return v1 / v2 -} - -for operation : operations { - println operation(2, 3) -} \ No newline at end of file diff --git a/docs/docs/code/high_order_functions_ru.own b/docs/docs/code/high_order_functions_ru.own deleted file mode 100644 index f3abd153..00000000 --- a/docs/docs/code/high_order_functions_ru.own +++ /dev/null @@ -1,14 +0,0 @@ -operations = { - "+" : def(a,b) = a+b, - "-" : def(a,b) = a-b, - "*" : def(a,b) = a*b, - "/" : ::division -} -def division(v1, v2) { - if (v2 == 0) return "ошибка: деление на ноль" - return v1 / v2 -} - -for operation : operations { - println operation(2, 3) -} \ No newline at end of file diff --git a/docs/docs/code/http_en.own b/docs/docs/code/http_en.own deleted file mode 100644 index 38e283b1..00000000 --- a/docs/docs/code/http_en.own +++ /dev/null @@ -1,20 +0,0 @@ -use std, http, functional - -// GET request -http("https://api.github.com/events", def(r) { - use json - events = jsondecode(r) -}) - -// POST request -http("http://jsonplaceholder.typicode.com/users", "POST", { - "name": "OwnLang", - "versionCode": 10 -}, ::echo) - -// PATCH request -http("http://jsonplaceholder.typicode.com/users/2", "PATCH", {"name": "Patched Name"}, ::patch_callback) - -def patch_callback(v) { - println v -} diff --git a/docs/docs/code/http_ru.own b/docs/docs/code/http_ru.own deleted file mode 100644 index abc3f799..00000000 --- a/docs/docs/code/http_ru.own +++ /dev/null @@ -1,20 +0,0 @@ -use std, http, functional - -// GET-запрос -http("https://api.github.com/events", def(r) { - use json - events = jsondecode(r) -}) - -// POST-запрос -http("http://jsonplaceholder.typicode.com/users", "POST", { - "name": "OwnLang", - "versionCode": 10 -}, ::echo) - -// PATCH-запрос -http("http://jsonplaceholder.typicode.com/users/2", "PATCH", {"name": "Патч"}, ::patch_callback) - -def patch_callback(v) { - println v -} diff --git a/docs/docs/code/operator_overloading.own b/docs/docs/code/operator_overloading.own deleted file mode 100644 index d823b227..00000000 --- a/docs/docs/code/operator_overloading.own +++ /dev/null @@ -1,7 +0,0 @@ -use std, types, math - -def `..`(a, b) = range(a, b - 1) -def `**`(a, b) = int(pow(a, b)) -for y : 1 .. 10 { - println sprintf("2 ^ %d = %d", y, 2 ** y) -} \ No newline at end of file diff --git a/docs/docs/code/pattern_matching.own b/docs/docs/code/pattern_matching.own deleted file mode 100644 index 6beb3e85..00000000 --- a/docs/docs/code/pattern_matching.own +++ /dev/null @@ -1,16 +0,0 @@ -def factorial(n) = match n { - case 0: 1 - case n if n < 0: 0 - case _: n * factorial(n - 1) -} - -def fizzbuzz(limit = 100) { - for i = 1, i <= limit, i++ { - println match [i % 3 == 0, i % 5 == 0] { - case (true, false): "Fizz" - case (false, true): "Buzz" - case (true, true): "FizzBuzz" - case _: i - } - } -} \ No newline at end of file diff --git a/docs/docs/en/README.md b/docs/docs/en/README.md deleted file mode 100644 index 7b4b5931..00000000 --- a/docs/docs/en/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# Overview - -OwnLang — dynamic functional programming language inspired by Scala and Python. Available for PC and Android devices. - -## Key features - -### Higher-order functions - -Functions are values, so we can store them to variables for operating. - -@[code](../code/high_order_functions_en.own) - -### Pattern Matching - -Pattern matching with value pattern, tuple pattern, list pattern and optional condition. - -@[code](../code/pattern_matching.own) - -### Functional data operations - -Operate data in functional style. - -@[code](../code/functional_en.own) - -### Operator overloading - -Why not? - -@[code](../code/operator_overloading.own) - -### Network module - -Easy async HTTP requests with `http` module. - -@[code](../code/http_en.own) \ No newline at end of file diff --git a/docs/docs/en/basics/README.md b/docs/docs/en/basics/README.md deleted file mode 100644 index b68cc02f..00000000 --- a/docs/docs/en/basics/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Basics - -* [Comments](comments.md) -* [Strings](strings.md) -* [Types](types.md) -* [Loops](loops.md) -* [Functions definition](functions.md) -* [Destructuring assignment](destructuring_assignment.md) -* [Pattern matching](pattern_matching.md) -* [String functions](string_functions.md) -* [Array functions](array_functions.md) diff --git a/docs/docs/en/basics/array_functions.md b/docs/docs/en/basics/array_functions.md deleted file mode 100644 index 16e827dc..00000000 --- a/docs/docs/en/basics/array_functions.md +++ /dev/null @@ -1,8 +0,0 @@ -# Array functions - -Fields: - - `length` - number of elements of the array - -Functions: - - `isEmpty()` - returns true, if the array is empty - - `joinToString(delimiter = "", prefix = "", suffix = "")` - joins array into a string diff --git a/docs/docs/en/basics/comments.md b/docs/docs/en/basics/comments.md deleted file mode 100644 index 01eaa68b..00000000 --- a/docs/docs/en/basics/comments.md +++ /dev/null @@ -1,9 +0,0 @@ -# Comments - -```own -// Line comment -/* multiline - comment -*/ -print /*inner comment*/ "Text" -``` \ No newline at end of file diff --git a/docs/docs/en/basics/destructuring_assignment.md b/docs/docs/en/basics/destructuring_assignment.md deleted file mode 100644 index fca2558b..00000000 --- a/docs/docs/en/basics/destructuring_assignment.md +++ /dev/null @@ -1,19 +0,0 @@ -# Destructuring assignment - -Destructuring assignment allows to define multiple variables for each element of an array or map. - -For arrays, value is assigned to variable: - -@[code](../../code/basics/destructuring_assignment1.own) - -Which is equivalent to: - -@[code](../../code/basics/destructuring_assignment2.own) - -For maps, key and value are assigned to variable: - -@[code](../../code/basics/destructuring_assignment3.own) - -To skip value just leave argument empty: - -@[code](../../code/basics/destructuring_assignment4.own) diff --git a/docs/docs/en/basics/functions.md b/docs/docs/en/basics/functions.md deleted file mode 100644 index b12be6e2..00000000 --- a/docs/docs/en/basics/functions.md +++ /dev/null @@ -1,54 +0,0 @@ -# Functions definition - -To define function uses the `def` keyword: - -```own -def function(arg1, arg2) { - println arg1 -} -``` - -## Shorthand definition - -There is short syntax fot function body: - -```own -def repeat(str, count) = str * count -``` - -Which is equivalent to: - -```own -def repeat(str, count) { - return str * count -} -``` - -## Default arguments - -Function arguments can have default values. - -```own -def repeat(str, count = 5) = str * count -``` - -In this case only `str` argument is required. - -```own -repeat("*") // ***** -repeat("+", 3) // +++ -``` - -Default arguments can't be declared before required arguments. - -```own -def repeat(str = "*", count) = str * count -``` - -Causes parsing error: `ParseError on line 1: Required argument cannot be after optional` - -## Inner functions - -You can define function in other function. - -@[code](../../code/basics/fibonacci.own) diff --git a/docs/docs/en/basics/loops.md b/docs/docs/en/basics/loops.md deleted file mode 100644 index ace5bff0..00000000 --- a/docs/docs/en/basics/loops.md +++ /dev/null @@ -1,113 +0,0 @@ -# Loops - -## while loop - -```own -while condition { - body -} -``` - -Parentheses in condition are not necessary. - -```own -i = 0 -while i < 5 { - print i++ -} - -// or - -i = 0 -while (i < 5) { - print i++ -} -``` - -## do-while loop - -```own -do { - body -} while condition -``` - -Parentheses in condition are not necessary. - -```own -i = 0 -do { - print i++ -} while i < 5 - -// or - -i = 0 -do { - print i++ -} while (i < 5) -``` - -## for loop - -```own -for initializing, condition, increment { - body -} - -for (initializing, condition, increment) { - body -} -``` - -```own -for i = 0, i < 5, i++ - print i++ - -// or - -for (i = 0, i < 5, i++) { - print i++ -} -``` - -## foreach loop - -Iterates elements of an string, array or map. - -Iterating over string: - -```own -for char : string { - body -} -for char, code : string { - body -} -``` - -Iterating over array: - -```own -for value : array { - body -} -for value, index : array { - body -} -``` - -Iterating over map: - -```own -for key, value : map { - body -} -for (key, value : map) { - body -} -``` - -Parentheses are not necessary. - -@[code](../../code/basics/loops1.own) diff --git a/docs/docs/en/basics/pattern_matching.md b/docs/docs/en/basics/pattern_matching.md deleted file mode 100644 index 86d775cc..00000000 --- a/docs/docs/en/basics/pattern_matching.md +++ /dev/null @@ -1,79 +0,0 @@ -# Pattern matching - -The `match` operator allows to match values by pattern. - -@[code](../../code/basics/pattern_matching1.own) - -@[code](../../code/basics/pattern_matching2.own) - -In this case value and type are checking. If none of `case` branches doesn't match, the body of `case _` branch will executes. - - -In addition to the constant values, you can set variable name to `case`. - -@[code](../../code/basics/pattern_matching3.own) - -In this case there is two scenarios: - -1. Variable is already defined. Matching to its value. -2. Variable is not defined. Assign matching value to it and executes body of the `case` branch. - -In the example above, the interpreter sees the first two branches as: - -```own -case 10: -case 20: -``` - -For the last branch `c` variable is not defined, so assign `c = x` and execute body of the `case c` branch. - - -## Refinements - -`case` branch may have additional comparison - -@[code](../../code/basics/pattern_matching4.own) - - -## Matching arrays - -To compare elements of arrays, the following syntax is used: - -* `case []:` executes if there are no elements in array -* `case [a]:` executes if an array contains one element -* `case [a :: b]:` executes if an array contains two or more elements -* `case [a :: b :: c :: d :: e]:` executes if an array contain five or more elements - -There are two rules for the last two cases: - -* If variables count matches array elements count - all variables are assigned to the value of the array. - -```own -match [0, 1, 2] { - case [x :: y :: z]: // x = 0, y = 1, z = 2 -} -``` - -* If array elements count is greater, then the rest of the array will be assigned to the last variable. - -```own -match [0, 1, 2, 3, 4] { - case [x :: y :: z]: // x = 0, y = 1, z = [2, 3, 4] -} -``` - -An example of a recursive output array - -@[code](../../code/basics/pattern_matching5.own) - - -## Matching array's value - -To compare values of array's elements, the following syntax is used: - -* `case (expr1, expr2, expr3):` executes if an array contain 3 elements and first element is equal to expr1 result, second element is equal to expr2 and third element is equal to expr3. -* `case (expr1, _):` executes if an array contain 2 elements and first element is equal to expr1 result and result of the second element is not importand. - -FizzBuzz classical problem can be solved using Pattern Matching: - -@[code](../../code/basics/pattern_matching6.own) diff --git a/docs/docs/en/basics/string_functions.md b/docs/docs/en/basics/string_functions.md deleted file mode 100644 index 070dcb63..00000000 --- a/docs/docs/en/basics/string_functions.md +++ /dev/null @@ -1,20 +0,0 @@ -# String functions - -Fields: - - `length` - string length - - `lower` - lower case string - - `upper` - upper case string - - `chars` - ASCII characters array - -Functions: - - `trim()` - removes any leading and trailing whitespaces in string - - `startsWith(str, offset = 0)` - checks whether the string starts with the substring str at offset - - `endsWith(str)` - checks whether the string ends with the str - - `matches(regex)` - checks whether the string matches regex pattern - - `contains(str)` - checks whether the string contains substring str - - `equalsIgnoreCase(str)` - checks equality of two strings ignore case (tEsT = TEST) - - `isEmpty()` - returns true, if the string is empty - -In addition, there are automatic function extensions available if the function accepts a string as the first argument: - -@[code](../../code/basics/string_functions1.own) diff --git a/docs/docs/en/basics/strings.md b/docs/docs/en/basics/strings.md deleted file mode 100644 index d44a99bb..00000000 --- a/docs/docs/en/basics/strings.md +++ /dev/null @@ -1,12 +0,0 @@ -# Strings - -Strings are defined in double quotes and can be multiline. Escaping Unicode characters is also supported.: - -```own -str = "\n\tThis is -\tmultiline -\ttext -" -``` - -`print` and `println` operators are used to output text. \ No newline at end of file diff --git a/docs/docs/en/basics/types.md b/docs/docs/en/basics/types.md deleted file mode 100644 index c7b5b116..00000000 --- a/docs/docs/en/basics/types.md +++ /dev/null @@ -1,25 +0,0 @@ -# Types - -OwnLang types are: - - * Number - numbers (integer, float) - * String - strings - * Array - arrays - * Map - objects (an associative arrays) - * Function - functions - * Class - -Since OwnLang is dynamic programming language, which means that explicitly declare the types is not necessary. - -```own -x = 10 // integer -y = 1.61803 // float -z = "abcd" // string -``` - -If some function requires string as argument, but number was passed, then numeric value will automatically converts to string. - -```own -x = 90 -print x // Ok, 90 converts to "90" -``` \ No newline at end of file diff --git a/docs/docs/en/changelog.md b/docs/docs/en/changelog.md deleted file mode 100644 index 89621261..00000000 --- a/docs/docs/en/changelog.md +++ /dev/null @@ -1,113 +0,0 @@ -# Changelog - -## Next - - -## 2.1.0 - -### Changes -- Add `own` package manager. Usage examples: `own`, `own init`, `own add openai`. -- Use relative path in include statement. - -### Fixes -- Fix passing command-line arguments to scripts. -- Fix `this` in non-static class methods. -- Fix program is not finished if using any http call (okhttp issue). -- Fix visitor and linter checks inside functions. - -### Modules -- [okhttp] Added `okhttp.newClient()` and `HttpClientBuilderValue`. -- [canvasfx] Updated JavaFX version. - - -## 2.0.0 - -### Breaking changes -- Minimal Java version is 17. -- Simplified use statement. `use std, math` instead of `use ["std", "math"]`. -- Change `case [x]` behavior in list pattern matching to match single element. -- More strict lexer. Fixed escaping backslash in strings. Fixed HEX numbers println 0x0123456789, 0x०१२३४५६७८९. - -### Changes -- Introducing Constants. Constant can be imported only when using a module. -- Support for long number declaration: `700L`, `0xABL` -- Fixed variables scope in shadowing. -- Better error visualizing. Parse errors shows exact line in which an error occurs. Same for Linter and Runtime errors. -- Semantic linter as a required stage. -- Preserve the order of Map elements by default. -- Ability to run programs from resources by adding "resource:" prefix to path. -- Added internal scripts and command `ownlang run` to run them. Added script `checkUpdate` that checks app updates. -- Updated [documentation](https://annimon.com/docs/ownlang/). New documentation engine based on vuepress. - -### Modules -- [std] Added parseDouble, nanotime, exit, getenv, getprop functions. -- [http] Added httpSync function. -- [functional] Added groupby, tomap, Stream.groupBy, Stream.filterNot, Stream.forEachIndexed, Stream::toMap, Stream.anyMatch, Stream.allMatch, Stream.noneMatch operators. -- [canvasfx] Works for Java 17+ with Java FX 17 (Windows only). -- [server] New server module. - - -## 1.5.0 - -- Added modules `zip`, `gzip`, `okhttp` -- Added functions `std::getBytes`, `std::stringFromBytes`, `std::stripMargin` -- Added JProgressBar, JTextArea, JScrollPane to `forms`, methods for JButton, JTextField and WindowListener -- Added function `joining` to `functional::stream` -- Added array properties: `arr.length`, `arr.isEmpty()`, `arr.joinToString(...)` -- Added null coalesce operator `??` -- Added basic support for classes -- Strict string to number conversion -- `for` supports iterating strings and arrays with index: - `for ch : "test"` - `for ch, code : "test"` - `for el : arr` - `for el, index : arr` -- Pretty-print for `jsonencode`: - `jsonencode(obj)` — minified json - `jsonencode(obj, 2)` — pretty-print json with 2 spaces indent -- Ability to set options for yaml parser/dumper -- Fixed mysql connection in `jdbc` -- Fixed `str::range` for reversed ranges -- Fixed files::readBytes with offset and length -- Fixed matching class constructor in `java::new`. Ability to instantiate classes with `new` operator -- Other minor changes - - -## 1.4.0 - -- Added modules `downloader`, `regex` -- Added functions `std::arraySplice`, `std::default` -- Added constant `std::OwnLang` which stores language version and platform metadata -- Added `peek`, `sorted` to StreamValue -- An ability to import several modules `use ["std", "types", "math"]` -- String internal fields support (length, lower, upper, chars, trim(), startsWith(s), endsWith(s), matches(s), contains(s), equalsIgnoreCase(s), isEmpty()). Also support for extensions: `"%d. %s".sprintf(1, "OwnLang")` -> `sprintf("%d. %s", 1, "OwnLang")` -- Added kawaii-operator `^^` -- Improved REPL mode. Now command history (up key) supported on all platforms. Added autocompletion by Tab key. -- Improved error output -- Updated examples - - -## 1.3.0 - -- Function and function call chaining support (`func().func()` and `func()()`) -- Added `takewhile`, `dropwhile`, `stream` functions to `functional` module -- Added `parseInt`, `parseLong`, `toHexString` functions to `std` module -- Added `copy` function to `files` module -- Added `socket`, `base64`, `java`, `forms`, `jdbc` modules -- Improved optimization -- Updated examples -- Minor fixes and improvements - -## 1.2.0 - -- Added `canvasfx`, `date`, `yml`, `aimp` modules -- Updated `std`, `math`, `files`, `functional` modules -- Added `std::ARGS` constant for accessing command-line arguments -- Added REPL mode, Beautifier, Linter, Optimizer -- Fixed error recovering in parser and deadlock in lexer -- Added merging objects operation `map1 + map2` -- Fixed variables scope -- Speed up files reading -- Added NumberValue cache -- Updated Netbeans plugin -- Added examples and help diff --git a/docs/docs/en/links.md b/docs/docs/en/links.md deleted file mode 100644 index 345725c1..00000000 --- a/docs/docs/en/links.md +++ /dev/null @@ -1,13 +0,0 @@ -# Links - -## Downloads - -Android: [Free](https://play.google.com/store/apps/details?id=com.annimon.ownlang.free) / [Pro](https://play.google.com/store/apps/details?id=com.annimon.ownlang) -PC / Netbeans Plugin / etc: [GitHub Releases](https://github.com/aNNiMON/Own-Programming-Language-Tutorial/releases) -Source code: [GitHub](https://github.com/aNNiMON/Own-Programming-Language-Tutorial) - -Also available as AUR package: - -``` -paru -S ownlang -``` diff --git a/docs/docs/ru/README.md b/docs/docs/ru/README.md deleted file mode 100644 index 0e7c2b2e..00000000 --- a/docs/docs/ru/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# Возможности - -OwnLang — скриптовый функциональный язык программирования с динамической типизацией для ПК и Android устройств. - -## Ключевые особенности - -### Функции высшего порядка - -Функции выступают как значения, а значит мы можем сохранять их в переменные для дальнейшего использования. - -@[code](../code/high_order_functions_ru.own) - -### Pattern Matching - -Сопоставление по образцу с шаблоном значений, шаблоном кортежей, шаблоном списков и дополнительным сравнением. - -@[code](../code/pattern_matching.own) - -### Функциональные операции над данными - -Оперирование данными в функциональном стиле. - -@[code](../code/functional_ru.own) - -### Перегрузка операторов - -Почему бы и нет? - -@[code](../code/operator_overloading.own) - -### Модуль для работы с сетью Интернет - -Простые асинхронные HTTP-запросы с модулем `http`. - -@[code](../code/http_ru.own) \ No newline at end of file diff --git a/docs/docs/ru/basics/README.md b/docs/docs/ru/basics/README.md deleted file mode 100644 index 0b843ddb..00000000 --- a/docs/docs/ru/basics/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Синтаксис и основы языка - -* [Комментарии](comments.md) -* [Строки](strings.md) -* [Типы](types.md) -* [Циклы](loops.md) -* [Определение функций](functions.md) -* [Реструктуризующее присваивание](destructuring_assignment.md) -* [Pattern matching](pattern_matching.md) (сопоставление с образцом) -* [Функции строк](string_functions.md) -* [Функции массивов](array_functions.md) \ No newline at end of file diff --git a/docs/docs/ru/basics/array_functions.md b/docs/docs/ru/basics/array_functions.md deleted file mode 100644 index cba7892e..00000000 --- a/docs/docs/ru/basics/array_functions.md +++ /dev/null @@ -1,8 +0,0 @@ -# Функции массивов - -Поля: - - `length` - количество элементов массива - -Функции: - - `isEmpty()` - возвращает true, если массив пуст - - `joinToString(delimiter = "", prefix = "", suffix = "")` - склеивает массив в строку diff --git a/docs/docs/ru/basics/comments.md b/docs/docs/ru/basics/comments.md deleted file mode 100644 index 189f8405..00000000 --- a/docs/docs/ru/basics/comments.md +++ /dev/null @@ -1,9 +0,0 @@ -# Комментарии - -```own -// Однострочный комментарий -/* многострочный - комментарий -*/ -print /*или так*/ "Текст" -``` \ No newline at end of file diff --git a/docs/docs/ru/basics/destructuring_assignment.md b/docs/docs/ru/basics/destructuring_assignment.md deleted file mode 100644 index b2b21cb3..00000000 --- a/docs/docs/ru/basics/destructuring_assignment.md +++ /dev/null @@ -1,19 +0,0 @@ -# Реструктуризующее присваивание - -Реструктуризующее (деструктивное) присваивание позволяет определить сразу несколько переменных по каждому элементу массива или объекта. - -Для массивов, переменным присваивается значение. - -@[code](../../code/basics/destructuring_assignment1.own) - -Что равносильно: - -@[code](../../code/basics/destructuring_assignment2.own) - -Для объектов, переменным присваивается массив [ключ, значение] - -@[code](../../code/basics/destructuring_assignment3.own) - -Если нужно пропустить какое-либо значение, название переменной можно не писать: - -@[code](../../code/basics/destructuring_assignment4.own) \ No newline at end of file diff --git a/docs/docs/ru/basics/functions.md b/docs/docs/ru/basics/functions.md deleted file mode 100644 index a1cc0fc5..00000000 --- a/docs/docs/ru/basics/functions.md +++ /dev/null @@ -1,54 +0,0 @@ -# Определение функций - -Для определения функции используется ключевое слово `def`. Затем идёт имя, аргументы и тело функции. Пример: - -```own -def function(arg1, arg2) { - println arg1 -} -``` - -## Короткий синтаксис - -Возможен короткий синтаксис: - -```own -def repeat(str, count) = str * count -``` - -что равносильно: - -```own -def repeat(str, count) { - return str * count -} -``` - -## Аргументы по умолчанию - -Аргументы функции могут иметь значения по умолчанию. - -```own -def repeat(str, count = 5) = str * count -``` - -В этом случае обязательным будет только аргумент `str` - -```own -repeat("*") // ***** -repeat("+", 3) // +++ -``` - -Аргументы по умолчанию обязательно должны идти после обязательных аргументов, если такие были. - -```own -def repeat(str = "*", count) = str * count -``` - -Приведёт к ошибки парсинга: `ParseError on line 1: Required argument cannot be after optional` - -## Внутренние функции - -Внутри функции можно объявить другую функцию. - -@[code](../../code/basics/fibonacci.own) \ No newline at end of file diff --git a/docs/docs/ru/basics/loops.md b/docs/docs/ru/basics/loops.md deleted file mode 100644 index fae20b42..00000000 --- a/docs/docs/ru/basics/loops.md +++ /dev/null @@ -1,115 +0,0 @@ -# Циклы - -## Цикл while - -```own -while условие { - тело цикла -} -``` - -Скобки в условии необязательны. - -```own -i = 0 -while i < 5 { - print i++ -} - -// или - -i = 0 -while (i < 5) { - print i++ -} -``` - -## Цикл do-while - -```own -do { - тело цикла -} while условие -``` - -Скобки в условии необязательны. - -```own -i = 0 -do { - print i++ -} while i < 5 - -// или - -i = 0 -do { - print i++ -} while (i < 5) -``` - -## Цикл for - -```own -for инициализация, условие_работы, инкремент { - тело цикла -} - -for (инициализация, условие_работы, инкремент) { - тело цикла -} -``` - -Скобки в условии необязательны. - -```own -for i = 0, i < 5, i++ - print i++ - -// или - -for (i = 0, i < 5, i++) { - print i++ -} -``` - -## Цикл foreach - -Перебирает элементы строки, массива или карты. - -Перебор строки: - -```own -for символ : строка { - тело цикла -} -for символ, код : строка { - тело цикла -} -``` - -Перебор массива: - -```own -for значение : массив { - тело цикла -} -for значение, индекс : массив { - тело цикла -} -for (значение : массив) { - тело цикла -} -``` - -Перебор карты: - -```own -for (ключ, значение : карта) { - тело цикла -} -``` - -Скобки необязательны. - -@[code](../../code/basics/loops1.own) \ No newline at end of file diff --git a/docs/docs/ru/basics/pattern_matching.md b/docs/docs/ru/basics/pattern_matching.md deleted file mode 100644 index ab96bc37..00000000 --- a/docs/docs/ru/basics/pattern_matching.md +++ /dev/null @@ -1,79 +0,0 @@ -# Pattern Matching (сопоставление с образцом) - -Оператор `match` позволяет выполнить сопоставление значения с образцом. - -@[code](../../code/basics/pattern_matching1.own) - -@[code](../../code/basics/pattern_matching2.own) - -Проверяется тип и значение. Если ни одна из веток `case` не обнаружила совпадение, выполняется тело ветки `case _`. - - -Помимо константных значений, в `case` может присутствовать имя переменной. - -@[code](../../code/basics/pattern_matching3.own) - -В таком случае возможен один из двух сценариев: - -1. Переменная уже определена. Сравнивается её значение. -2. Переменная не определена. Ей присваивается сопоставляемое значение и выполняется ветка `case`. - -В примере выше, интерпретатор видит первые две ветки так: - -```own -case 10: -case 20: -``` - -Для последней ветки переменная `c` не определена, поэтому выполнится присваивание `c = x`, после чего вызов передаётся телу ветки `case c`. - - -## Уточнения - -Ветка `case` может иметь дополнительное сравнение - -@[code](../../code/basics/pattern_matching4.own) - - -## Сопоставление массивов - -Для сопоставления элементов массивов, в блоке case используется следующий синтаксис: - -* `case []:` выполняется, если в массиве нет элементов -* `case [a]:` выполняется, если в массиве есть один элемент -* `case [a :: b]:` выполняется, если в массиве есть два и более элементов -* `case [a :: b :: c :: d :: e]:` выполняется, если в массиве есть пять и более элементов - -Для двух последних случаев справедливы такие правила: - -* Если количество переменных в списке совпадает с количество элементов массива, то всем переменным присваивается значение массива. - -```own -match [0, 1, 2] { - case [x :: y :: z]: // x = 0, y = 1, z = 2 -} -``` - -* Если элементов массива больше, то в последней переменной будут сохранены оставшиеся элементы массива. - -```own -match [0, 1, 2, 3, 4] { - case [x :: y :: z]: // x = 0, y = 1, z = [2, 3, 4] -} -``` - -Пример рекурсивного вывода элементов массива - -@[code](../../code/basics/pattern_matching5.own) - - -## Сопоставление значений массивов - -Для сопоставления значений элементов массивов, используется синтаксис: - -* `case (expr1, expr2, expr3):` выполняется, если в массиве есть 3 элемента и первый элемент равен результату выражения expr1, второй - результату expr2 и третий - результату expr3. -* `case (expr1, _):` выполняется, если в массиве есть 2 элемента и первый элемент равен результату выражения expr1, а результат второго не важен. - -Классическая задача FizzBuzz может быть решена с использованием Pattern Matching: - -@[code](../../code/basics/pattern_matching6.own) diff --git a/docs/docs/ru/basics/string_functions.md b/docs/docs/ru/basics/string_functions.md deleted file mode 100644 index 17d1c9ed..00000000 --- a/docs/docs/ru/basics/string_functions.md +++ /dev/null @@ -1,20 +0,0 @@ -# Функции строк - -Поля: - - `length` - длина строки - - `lower` - строка в нижнем регистре - - `upper` - строка в верхнем регистре - - `chars` - массив символов в виде ASCII-кодов - -Функции: - - `trim()` - обрезает пробельные невидимые символы по обоим концам строки - - `startsWith(str, offset = 0)` - проверяет, начинается ли строка с подстроки str в позиции offset - - `endsWith(str)` - проверяет, заканчивается ли строка подстрокой str - - `matches(regex)` - проверяет соответствие строки с заданным шаблоном - - `contains(str)` - проверяет, содержится ли в строке подстрока str - - `equalsIgnoreCase(str)` - проверяет, равны ли строки вне зависимости от регистра (tEsT = TEST) - - `isEmpty()` - возвращает true, если строка пустая - -Кроме того, доступны автоматические функции-расширения, если функция принимает в качестве первого аргумента строку: - -@[code](../../code/basics/string_functions1.own) diff --git a/docs/docs/ru/basics/strings.md b/docs/docs/ru/basics/strings.md deleted file mode 100644 index 8ad5fa99..00000000 --- a/docs/docs/ru/basics/strings.md +++ /dev/null @@ -1,12 +0,0 @@ -# Строки - -Строки задаются в двойных кавычках и могут быть многострочные. Поддерживается юникод и экранирование символов: - -```own -str = "\n\tЭто -\tмногострочный -\tтекст -" -``` - -Для вывода строк есть два оператора `print` и `println` \ No newline at end of file diff --git a/docs/docs/ru/basics/types.md b/docs/docs/ru/basics/types.md deleted file mode 100644 index 0d0f55ca..00000000 --- a/docs/docs/ru/basics/types.md +++ /dev/null @@ -1,25 +0,0 @@ -# Типы - -В OwnLang есть такие типы: - - * Number - числа (охватывает как целые, так и вещественные числа) - * String - строки - * Array - массивы - * Map - объекты (ассоциативные массивы) - * Function - функции - * Class - классы - -Поскольку OwnLang - динамически типизируемый язык программирования, это значит, что явно объявлять типы не нужно. - -```own -x = 10 // целое число -y = 1.61803 // вещественное число -z = "abcd" // строка -``` - -Если какая-либо функция предполагает использование строк в качестве аргументов, а были переданы числа, то значения автоматически приведутся к строке. - -```own -x = 90 -print x -``` \ No newline at end of file diff --git a/docs/docs/ru/changelog.md b/docs/docs/ru/changelog.md deleted file mode 100644 index f996edcd..00000000 --- a/docs/docs/ru/changelog.md +++ /dev/null @@ -1,115 +0,0 @@ -# История изменений - -## Next - - -## 2.1.0 - -### Изменения -- Добавлен `own` пакетный менеджер. Примеры испльзования: `own`, `own init`, `own add openai`. -- Относительные пути в include. - -### Исправления -- Исправлена передача аргументов командной строки скриптам. -- Исправлен `this` в нестатических методах классов. -- Исправлено завершение программы при использовании любого http запроса (баг в okhttp). -- Исправлен visitor и проверки линтера внутри функций. - -### Модули -- [okhttp] Добавлен `okhttp.newClient()` и `HttpClientBuilderValue`. -- [canvasfx] Обновлена версия JavaFX. - - -## 2.0.0 - -### Критические изменения -- Минимальная версия Java — 17. -- Упрощён оператор use. `use std, math` вместо `use ["std", "math"]`. -- `case [x]` при сопоставлении списков теперь соответствует лишь одному элементу. -- Более строгий лексер. Исправлено экранирование обратного слэша в строках. Исправлены HEX числа println 0x0123456789, 0x०१२३४५६७८९. - -### Изменения -- Добавлены константы. Константа может быть импортирована только при подключении модуля. -- Возможность задать числа типа long: `700L`, `0xABL` -- Исправлена область видимости переменных при шедоуинге. -- Улучшена визуализация ошибок. Ошибки парсинга показывают конкретное место, где возникла ошибка. То же самое с линтером и ошибками времени исполнения. -- Семантический линтер как обязательный этап работы интерпретатора. -- Сохранение порядка элементов в Map по умолчанию. -- Возможность запускать программы из ресурсов, указав "resource:" в качестве префикса пути. -- Добавлены внутренние скрипты и команда `ownlang run` для их запуска. Добавлен скрипт `checkUpdate` для проверки новых версий. -- Обновлена [документация](https://annimon.com/docs/ownlang/). Новый движок документации, основанный на vuepress. - -### Модули -- [std] Добавлены функции parseDouble, nanotime, exit, getenv, getprop. -- [http] Добавлена функция httpSync. -- [functional] Добавлены функции groupby, tomap и операторы Stream.groupBy, Stream.filterNot, Stream.forEachIndexed, Stream::toMap, Stream.anyMatch, Stream.allMatch, Stream.noneMatch -- [canvasfx] Исправлено для Java 17+ с Java FX 17 (только Windows) -- [server] Новый модуль сервера - - -## 1.5.0 - -- Добавлены модули `zip`, `gzip`, `okhttp` -- Добавлены функции `std::getBytes`, `std::stringFromBytes`, `std::stripMargin` -- В `forms` добавлены JProgressBar, JTextArea, JScrollPane, методы для JButton, JTextField и WindowListener -- В `functional::stream` добавлена функция `joining` -- Добавлены свойства и функции для массивов: `arr.length`, `arr.isEmpty()`, `arr.joinToString(...)` -- Добавлен оператор объединения с null `??` (null coalesce) -- Добавлены классы (пока без наследования, как структура) -- Строгое преобразование строк в числа (раньше int("test") выдавало 0, а теперь ошибку) -- В `for` теперь можно итерировать строки и массивы с индексом: - `for ch : "test"` - `for ch, code : "test"` - `for el : arr` - `for el, index : arr` -- В jsonencode можно задать отступ для читабельного форматирования: - `jsonencode(obj)` — минифицированный json - `jsonencode(obj, 2)` — pretty-print с отступом в 2 пробела -- Возможность задать параметры парсера/дампера yaml -- Исправлено подключение к mysql в модуле `jdbc` -- Исправлен `str::range` для реверсивных промежутков -- Исправлена функция files::readBytes с заданными offset и length -- Исправлен поиск подходящего конструктора класса в `java::new`, так же можно инстанцировать класс через оператор new -- Другие мелкие изменения - - -## 1.4.0 - -- Добавлены модули `downloader`, `regex` -- Добавлены функции `std::arraySplice`, `std::default` -- Добавлена константа `OwnLang` в модуль `std`, содержащая метаинформацию о версии языка и платформы -- В StreamValue добавлены функции `peek`, `sorted` -- Возможность импортировать сразу несколько модулей `use ["std", "types", "math"]` -- Поддержка внутренних полей и функций у строк (length, lower, upper, chars, trim(), startsWith(s), endsWith(s), matches(s), contains(s), equalsIgnoreCase(s), isEmpty()). Также доступны автоматические функции расширения: `"%d. %s".sprintf(1, "OwnLang")` -> `sprintf("%d. %s", 1, "OwnLang")` -- Добавлен kawaii-оператор `^^` для возможного переопределения -- Улучшен режим REPL, теперь история команд (клавиша вверх) поддерживается на всех платформах, а по табу теперь всплывают подсказки автодополнения -- Немного улучшен вывод ошибок -- Обновлены примеры - - -## 1.3.0 - -- Поддержка цепочек функций и функциональных вызовов (`func().func()` и `func()()`) -- Добавлены функции `takewhile`, `dropwhile`, `stream` в модуль `functional` -- Добавлены функции `parseInt`, `parseLong`, `toHexString` в модуль `std` -- Добавлена функция `copy` в модуль `files` -- Добавлены модули `socket`, `base64`, `java`, `forms`, `jdbc` -- Улучшена оптимизация -- Обновлены примеры -- Мелкие исправления и улучшения - - -## 1.2.0 - -- Добавлены модули `canvasfx`, `date`, `yml`, `aimp` -- Обновлены модули `std`, `math`, `files`, `functional` -- Добавлена константа `std::ARGS` для доступа к аргументам командной строки -- Добавлен режим REPL, Beautifier, линтер, оптимизатор -- Добавлена операция слияния объектов `map1 + map2` -- Исправлено восстановление при ошибках парсинга и зависание в лексере -- Исправлена область видимости переменных -- Ускорено чтение файлов -- Добавлен кэш числовых значений -- Обновлён плагин для Netbeans -- Добавлены примеры и помощь - diff --git a/docs/docs/ru/links.md b/docs/docs/ru/links.md deleted file mode 100644 index 60d91f40..00000000 --- a/docs/docs/ru/links.md +++ /dev/null @@ -1,13 +0,0 @@ -# Ссылки - -## Загрузки - -Android: [Free](https://play.google.com/store/apps/details?id=com.annimon.ownlang.free) / [Pro](https://play.google.com/store/apps/details?id=com.annimon.ownlang) -PC / плагин Netbeans / прочее: [GitHub Releases](https://github.com/aNNiMON/Own-Programming-Language-Tutorial/releases) -Исходный код: [GitHub](https://github.com/aNNiMON/Own-Programming-Language-Tutorial) - -Также доступно в виде пакета в AUR: - -``` -paru -S ownlang -``` diff --git a/docs/package.json b/docs/package.json deleted file mode 100644 index ef6505e1..00000000 --- a/docs/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "ownlang-docs", - "version": "1.0.0", - "description": "OwnLang Documentation", - "main": "index.js", - "scripts": { - "docs:dev": "vuepress dev docs", - "docs:build": "vuepress build docs" - }, - "keywords": [ - "documentation", - "ownlang", - "programming-language" - ], - "author": "aNNiMON", - "license": "MIT", - "devDependencies": { - "@vuepress/client": "2.0.0-rc.0", - "@vuepress/plugin-prismjs": "2.0.0-rc.0", - "@vuepress/plugin-register-components": "2.0.0-rc.0", - "@vuepress/plugin-search": "2.0.0-rc.0", - "@vuepress/utils": "2.0.0-rc.0", - "prismjs": "^1.30.0", - "vue": "^3.4.20", - "vuepress": "2.0.0-rc.0" - } -} diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml deleted file mode 100644 index 03c204d5..00000000 --- a/docs/pnpm-lock.yaml +++ /dev/null @@ -1,2177 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - devDependencies: - '@vuepress/client': - specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0 - '@vuepress/plugin-prismjs': - specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0 - '@vuepress/plugin-register-components': - specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0 - '@vuepress/plugin-search': - specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0 - '@vuepress/utils': - specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0 - prismjs: - specifier: ^1.30.0 - version: 1.30.0 - vue: - specifier: ^3.4.20 - version: 3.4.20 - vuepress: - specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0(@types/node@20.11.20)(@vuepress/client@2.0.0-rc.0)(sass@1.71.1)(vue@3.4.20) - -packages: - - '@babel/helper-string-parser@7.23.4': - resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.22.20': - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.23.9': - resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/types@7.23.9': - resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} - engines: {node: '>=6.9.0'} - - '@esbuild/aix-ppc64@0.19.12': - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.19.12': - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.19.12': - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.19.12': - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.19.12': - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.19.12': - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.19.12': - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.19.12': - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.19.12': - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.19.12': - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.19.12': - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.19.12': - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.19.12': - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.19.12': - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.19.12': - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.19.12': - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.19.12': - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.19.12': - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.19.12': - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.19.12': - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.19.12': - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.19.12': - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.19.12': - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - - '@mdit-vue/plugin-component@1.0.0': - resolution: {integrity: sha512-ZXsJwxkG5yyTHARIYbR74cT4AZ0SfMokFFjiHYCbypHIeYWgJhso4+CZ8+3V9EWFG3EHlGoKNGqKp9chHnqntQ==} - - '@mdit-vue/plugin-frontmatter@1.0.0': - resolution: {integrity: sha512-MMA7Ny+YPZA7eDOY1t4E+rKuEWO39mzDdP/M68fKdXJU6VfcGkPr7gnpnJfW2QBJ5qIvMrK/3lDAA2JBy5TfpA==} - - '@mdit-vue/plugin-headers@1.0.0': - resolution: {integrity: sha512-0rK/iKy6x13d/Pp5XxdLBshTD0+YjZvtHIaIV+JO+/H2WnOv7oaRgs48G5d44z3XJVUE2u6fNnTlI169fef0/A==} - - '@mdit-vue/plugin-sfc@1.0.0': - resolution: {integrity: sha512-agMUe0fY4YHxsZivSvplBwRwrFvsIf/JNUJCAYq1+2Sg9+2hviTBZwjZDxYqHDHOVLtiNr+wuo68tE24mAx3AQ==} - - '@mdit-vue/plugin-title@1.0.0': - resolution: {integrity: sha512-8yC60fCZ95xcJ/cvJH4Lv43Rs4k+33UGyKrRWj5J8TNyMwUyGcwur0XyPM+ffJH4/Bzq4myZLsj/TTFSkXRxvw==} - - '@mdit-vue/plugin-toc@1.0.0': - resolution: {integrity: sha512-WN8blfX0X/5Nolic0ClDWP7eVo9IB+U4g0jbycX3lolIZX5Bai1UpsD3QYZr5VVsPbQJMKMGvTrCEtCNTGvyWQ==} - - '@mdit-vue/shared@1.0.0': - resolution: {integrity: sha512-nbYBfmEi+pR2Lm0Z6TMVX2/iBjfr/kGEsHW8CC0rQw+3+sG5dY6VG094HuFAkiAmmvZx9DZZb+7ZMWp9vkwCRw==} - - '@mdit-vue/types@1.0.0': - resolution: {integrity: sha512-xeF5+sHLzRNF7plbksywKCph4qli20l72of2fMlZQQ7RECvXYrRkE9+bjRFQCyULC7B8ydUYbpbkux5xJlVWyw==} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@rollup/rollup-android-arm-eabi@4.22.4': - resolution: {integrity: sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.22.4': - resolution: {integrity: sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.22.4': - resolution: {integrity: sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.22.4': - resolution: {integrity: sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-linux-arm-gnueabihf@4.22.4': - resolution: {integrity: sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.22.4': - resolution: {integrity: sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.22.4': - resolution: {integrity: sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.22.4': - resolution: {integrity: sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.22.4': - resolution: {integrity: sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.22.4': - resolution: {integrity: sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.22.4': - resolution: {integrity: sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.22.4': - resolution: {integrity: sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.22.4': - resolution: {integrity: sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.22.4': - resolution: {integrity: sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.22.4': - resolution: {integrity: sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.22.4': - resolution: {integrity: sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==} - cpu: [x64] - os: [win32] - - '@sindresorhus/merge-streams@2.3.0': - resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} - engines: {node: '>=18'} - - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - - '@types/fs-extra@11.0.4': - resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} - - '@types/hash-sum@1.0.2': - resolution: {integrity: sha512-UP28RddqY8xcU0SCEp9YKutQICXpaAq9N8U2klqF5hegGha7KzTOL8EdhIIV3bOSGBzjEpN9bU/d+nNZBdJYVw==} - - '@types/jsonfile@6.1.4': - resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} - - '@types/linkify-it@3.0.5': - resolution: {integrity: sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==} - - '@types/markdown-it-emoji@2.0.4': - resolution: {integrity: sha512-H6ulk/ZmbDxOayPwI/leJzrmoW1YKX1Z+MVSCHXuYhvqckV4I/c+hPTf6UiqJyn2avWugfj30XroheEb6/Ekqg==} - - '@types/markdown-it@13.0.7': - resolution: {integrity: sha512-U/CBi2YUUcTHBt5tjO2r5QV/x0Po6nsYwQU4Y04fBS6vfoImaiZ6f8bi3CjTCxBPQSO1LMyUqkByzi8AidyxfA==} - - '@types/mdurl@1.0.5': - resolution: {integrity: sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==} - - '@types/ms@0.7.34': - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - - '@types/node@20.11.20': - resolution: {integrity: sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==} - - '@types/web-bluetooth@0.0.20': - resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} - - '@vitejs/plugin-vue@4.6.2': - resolution: {integrity: sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: ^4.0.0 || ^5.0.0 - vue: ^3.2.25 - - '@vue/compiler-core@3.4.20': - resolution: {integrity: sha512-l7M+xUuL8hrGtRLkrf+62d9zucAdgqNBTbJ/NufCOIuJQhauhfyAKH9ra/qUctCXcULwmclGAVpvmxjbBO30qg==} - - '@vue/compiler-dom@3.4.20': - resolution: {integrity: sha512-/cSBGL79HFBYgDnqCNKErOav3bPde3n0sJwJM2Z09rXlkiowV/2SG1tgDAiWS1CatS4Cvo0o74e1vNeCK1R3RA==} - - '@vue/compiler-sfc@3.4.20': - resolution: {integrity: sha512-nPuTZz0yxTPzjyYe+9nQQsFYImcz/57UX8N3jyhl5oIUUs2jqqAMaULsAlJwve3qNYfjQzq0bwy3pqJrN9ecZw==} - - '@vue/compiler-ssr@3.4.20': - resolution: {integrity: sha512-b3gFQPiHLvI12C56otzBPpQhZ5kgkJ5RMv/zpLjLC2BIFwX5GktDqYQ7xg0Q2grP6uFI8al3beVKvAVxFtXmIg==} - - '@vue/devtools-api@6.6.1': - resolution: {integrity: sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==} - - '@vue/reactivity@3.4.20': - resolution: {integrity: sha512-P5LJcxUkG6inlHr6MHVA4AVFAmRYJQ7ONGWJILNjMjoYuEXFhYviSCb9BEMyszSG/1kWCZbtWQlKSLasFRpThw==} - - '@vue/runtime-core@3.4.20': - resolution: {integrity: sha512-MPvsQpGAxoBqLHjqopt4YPtUYBpq0K6oAWDTwIR1CTNZ3y9O/J2ZVh+i2JpxKNYwANJBiZ20O99NE20uisB7xw==} - - '@vue/runtime-dom@3.4.20': - resolution: {integrity: sha512-OkbPVP69H+8m74543zMAAx/LIkajxufYyow41gc0s5iF0uplT5uTQ4llDYu1GeJZEI8wjL5ueiPQruk4qwOMmA==} - - '@vue/server-renderer@3.4.20': - resolution: {integrity: sha512-w3VH2GuwxQHA6pJo/HCV22OfVC8Mw4oeHQM+vKeqtRK0OPE1Wilnh+P/SDVGGxPjJsGmyfphi0dbw8UKZQJH9w==} - peerDependencies: - vue: 3.4.20 - - '@vue/shared@3.4.20': - resolution: {integrity: sha512-KTEngal0aiUvNJ6I1Chk5Ew5XqChsFsxP4GKAYXWb99zKJWjNU72p2FWEOmZWHxHcqtniOJsgnpd3zizdpfEag==} - - '@vuepress/bundler-vite@2.0.0-rc.0': - resolution: {integrity: sha512-rX8S8IYpqqlJfNPstS/joorpxXx/4WuE7+gDM31i2HUrxOKGZVzq8ZsRRRU2UdoTwHZSd3LpUS4sMtxE5xLK1A==} - - '@vuepress/cli@2.0.0-rc.0': - resolution: {integrity: sha512-XWSIFO9iOR7N4O2lXIwS5vZuLjU9WU/aGAtmhMWEMxrdMx7TQaJbgrfpTUEbHMf+cPI1DXBbUbtmkqIvtfOV0w==} - hasBin: true - - '@vuepress/client@2.0.0-rc.0': - resolution: {integrity: sha512-TwQx8hJgYONYxX+QltZ2aw9O5Ym6SKelfiUduuIRb555B1gece/jSVap3H/ZwyBhpgJMtG4+/Mrmf8nlDSHjvw==} - - '@vuepress/core@2.0.0-rc.0': - resolution: {integrity: sha512-uoOaZP1MdxZYJIAJcRcmYKKeCIVnxZeOuLMOOB9CPuAKSalT1RvJ1lztw6RX3q9SPnlqtSZPQXDncPAZivw4pA==} - - '@vuepress/markdown@2.0.0-rc.0': - resolution: {integrity: sha512-USmqdKKMT6ZFHYRztTjKUlO8qgGfnEygMAAq4AzC/uYXiEfrbMBLAWJhteyGS56P3rGLj0OPAhksE681bX/wOg==} - - '@vuepress/plugin-active-header-links@2.0.0-rc.0': - resolution: {integrity: sha512-UJdXLYNGL5Wjy5YGY8M2QgqT75bZ95EHebbqGi8twBdIJE9O+bM+dPJyYtAk2PIVqFORiw3Hj+PchsNSxdn9+g==} - - '@vuepress/plugin-back-to-top@2.0.0-rc.0': - resolution: {integrity: sha512-6GPfuzV5lkAnR00BxRUhqMXwMWt741alkq2R6bln4N8BneSOwEpX/7vi19MGf232aKdS/Va4pF5p0/nJ8Sed/g==} - - '@vuepress/plugin-container@2.0.0-rc.0': - resolution: {integrity: sha512-b7vrLN11YE7qiUDPfA3N9P7Z8fupe9Wbcr9KAE/bmfZ9VT4d6kzpVyoU7XHi99XngitsmnkaXP4aBvBF1c2AnA==} - - '@vuepress/plugin-external-link-icon@2.0.0-rc.0': - resolution: {integrity: sha512-o8bk0oIlj/BkKc02mq91XLDloq1VOz/8iNcRwKAeqBE6svXzdYiyoTGet0J/4iPuAetsCn75S57W6RioDJHMnQ==} - - '@vuepress/plugin-git@2.0.0-rc.0': - resolution: {integrity: sha512-r7UF77vZxaYeJQLygzodKv+15z3/dTLuGp4VcYO21W6BlJZvd4u9zqgiV7A//bZQvK4+3Hprylr0G3KgXqMewA==} - - '@vuepress/plugin-medium-zoom@2.0.0-rc.0': - resolution: {integrity: sha512-peU1lYKsmKikIe/0pkJuHzD/k6xW2TuqdvKVhV4I//aOE1WxsREKJ4ACcldmoIsnysoDydAUqKT6xDPGyDsH2g==} - - '@vuepress/plugin-nprogress@2.0.0-rc.0': - resolution: {integrity: sha512-rI+eK0Pg1KiZE+7hGmDUeSbgdWCid8Vnw0hFKNmjinDzGVmx4m03M6qfvclsI0SryH+lR7itZGLaR4gbTlrz/w==} - - '@vuepress/plugin-palette@2.0.0-rc.0': - resolution: {integrity: sha512-wW70SCp3/K7s1lln5YQsBGTog2WXaQv5piva5zhXcQ47YGf4aAJpThDa5C/ot4HhkPOKn8Iz5s0ckxXZzW8DIg==} - - '@vuepress/plugin-prismjs@2.0.0-rc.0': - resolution: {integrity: sha512-c5WRI7+FhVjdbymOKQ8F2KY/Bnv7aQtWScVk8vCMUimNi7v7Wff/A/i3KSFNz/tge3LxiAeH/Dc2WS/OnQXwCg==} - - '@vuepress/plugin-register-components@2.0.0-rc.0': - resolution: {integrity: sha512-yN71x93j8ce99bqOwHn3lVfgiwsfhv21ByW/3em1kGXANjzOOoXOvt7ITbXNa5g6bsfjdJpoeUkUtFPwfK8dNA==} - - '@vuepress/plugin-search@2.0.0-rc.0': - resolution: {integrity: sha512-1ikJUgIN+7QrcAftxpWUKTrNVHEN2+k/az0Sjz7Ok7EthMHcG6qQsIb+AoK4WIQMsJkwVPLxwym/M1FbBTZDWQ==} - - '@vuepress/plugin-theme-data@2.0.0-rc.0': - resolution: {integrity: sha512-FXY3/Ml+rM6gNKvwdBF6vKAcwnSvtXCzKgQwJAw3ppQTKUkLcbOxqM+h4d8bzHWAAvdnEvQFug5uEZgWllBQbA==} - - '@vuepress/shared@2.0.0-rc.0': - resolution: {integrity: sha512-ikdSfjRv5LGM1iv4HHwF9P6gqTjaFCXKPK+hzlkHFHNZO1GLqk7/BPc4F51tAG1s8TcLhUZc+54LrfgS7PkXXA==} - - '@vuepress/theme-default@2.0.0-rc.0': - resolution: {integrity: sha512-I8Y08evDmMuD1jh3NftPpFFSlCWOizQDJLjN7EQwcg7jiAP4A7c2REo6nBN2EmP24Mi7UrRM+RnytHR5V+pElA==} - peerDependencies: - sass-loader: ^13.3.2 - peerDependenciesMeta: - sass-loader: - optional: true - - '@vuepress/utils@2.0.0-rc.0': - resolution: {integrity: sha512-Q1ay/woClDHcW0Qe91KsnHoupdNN0tp/vhjvVLuAYxlv/1Obii7hz9WFcajyyGEhmsYxdvG2sGmcxFA02tuKkw==} - - '@vueuse/core@10.8.0': - resolution: {integrity: sha512-G9Ok9fjx10TkNIPn8V1dJmK1NcdJCtYmDRyYiTMUyJ1p0Tywc1zmOoCQ2xhHYyz8ULBU4KjIJQ9n+Lrty74iVw==} - - '@vueuse/metadata@10.8.0': - resolution: {integrity: sha512-Nim/Vle5OgXcXhAvGOgkJQXB1Yb+Kq/fMbLuv3YYDYbiQrwr39ljuD4k9fPeq4yUyokYRo2RaNQmbbIMWB/9+w==} - - '@vueuse/shared@10.8.0': - resolution: {integrity: sha512-dUdy6zwHhULGxmr9YUg8e+EnB39gcM4Fe2oKBSrh3cOsV30JcMPtsyuspgFCUo5xxFNaeMf/W2yyKfST7Bg8oQ==} - - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - autoprefixer@10.4.17: - resolution: {integrity: sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - - bl@5.1.0: - resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - - caniuse-lite@1.0.30001589: - resolution: {integrity: sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==} - - chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - - connect-history-api-fallback@2.0.0: - resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} - engines: {node: '>=0.8'} - - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - electron-to-chromium@1.4.681: - resolution: {integrity: sha512-1PpuqJUFWoXZ1E54m8bsLPVYwIVCRzvaL+n5cjigGga4z854abDnFRc+cTa2th4S79kyGqya/1xoR7h+Y5G5lg==} - - emoji-regex@10.3.0: - resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} - - entities@3.0.1: - resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} - engines: {node: '>=0.12'} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - envinfo@7.11.1: - resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} - engines: {node: '>=4'} - hasBin: true - - esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} - engines: {node: '>=12'} - hasBin: true - - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - - execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} - - extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} - - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - - fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - globby@14.0.1: - resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==} - engines: {node: '>=18'} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - gray-matter@4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} - - hash-sum@2.0.0: - resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} - - human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} - - immutable@4.3.5: - resolution: {integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==} - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-interactive@2.0.0: - resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} - engines: {node: '>=12'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - - lilconfig@3.1.1: - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} - engines: {node: '>=14'} - - linkify-it@4.0.1: - resolution: {integrity: sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==} - - log-symbols@5.1.0: - resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} - engines: {node: '>=12'} - - magic-string@0.30.7: - resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} - engines: {node: '>=12'} - - markdown-it-anchor@8.6.7: - resolution: {integrity: sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==} - peerDependencies: - '@types/markdown-it': '*' - markdown-it: '*' - - markdown-it-container@3.0.0: - resolution: {integrity: sha512-y6oKTq4BB9OQuY/KLfk/O3ysFhB3IMYoIWhGJEidXt1NQFocFK2sA2t0NYZAMyMShAGL6x5OPIbrmXPIqaN9rw==} - - markdown-it-emoji@2.0.2: - resolution: {integrity: sha512-zLftSaNrKuYl0kR5zm4gxXjHaOI3FAOEaloKmRA5hijmJZvSjmxcokOLlzycb/HXlUFWzXqpIEoyEMCE4i9MvQ==} - - markdown-it@13.0.2: - resolution: {integrity: sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==} - hasBin: true - - mdurl@1.0.1: - resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} - - medium-zoom@1.1.0: - resolution: {integrity: sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ==} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} - - npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - - ora@7.0.1: - resolution: {integrity: sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==} - engines: {node: '>=16'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - - path-type@5.0.0: - resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} - engines: {node: '>=12'} - - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - postcss-load-config@4.0.2: - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - - postcss@8.4.35: - resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} - engines: {node: ^10 || ^12 || >=14} - - prismjs@1.30.0: - resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} - engines: {node: '>=6'} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rollup@4.22.4: - resolution: {integrity: sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - sass@1.71.1: - resolution: {integrity: sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==} - engines: {node: '>=14.0.0'} - hasBin: true - - section-matter@1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - slash@5.1.0: - resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} - engines: {node: '>=14.16'} - - source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - stdin-discarder@0.1.0: - resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - string-width@6.1.0: - resolution: {integrity: sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==} - engines: {node: '>=16'} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - - strip-bom-string@1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} - - strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - ts-debounce@4.0.0: - resolution: {integrity: sha512-+1iDGY6NmOGidq7i7xZGA4cm8DAa6fqdYcvO5Z6yBevH++Bdo9Qt/mN0TzHUgcCcKv1gmh9+W5dHqz8pMWbCbg==} - - uc.micro@1.0.6: - resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} - - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} - engines: {node: '>=18'} - - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - - upath@2.0.1: - resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} - engines: {node: '>=4'} - - update-browserslist-db@1.0.13: - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - vite@5.0.13: - resolution: {integrity: sha512-/9ovhv2M2dGTuA+dY93B9trfyWMDRQw2jdVBhHNP6wr0oF34wG2i/N55801iZIpgUpnHDm4F/FabGQLyc+eOgg==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - vue-demi@0.14.7: - resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} - engines: {node: '>=12'} - hasBin: true - peerDependencies: - '@vue/composition-api': ^1.0.0-rc.1 - vue: ^3.0.0-0 || ^2.6.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - - vue-router@4.3.0: - resolution: {integrity: sha512-dqUcs8tUeG+ssgWhcPbjHvazML16Oga5w34uCUmsk7i0BcnskoLGwjpa15fqMr2Fa5JgVBrdL2MEgqz6XZ/6IQ==} - peerDependencies: - vue: ^3.2.0 - - vue@3.4.20: - resolution: {integrity: sha512-xF4zDKXp67NjgORFX/HOuaiaKYjgxkaToK0KWglFQEYlCw9AqgBlj1yu5xa6YaRek47w2IGiuvpvrGg/XuQFCw==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - vuepress-vite@2.0.0-rc.0: - resolution: {integrity: sha512-+2XBejeiskPyr2raBeA2o4uDFDsjtadpUVmtio3qqFtQpOhidz/ORuiTLr2UfLtFn1ASIHP6Vy2YjQ0e/TeUVw==} - engines: {node: '>=18.16.0'} - hasBin: true - peerDependencies: - '@vuepress/client': 2.0.0-rc.0 - vue: ^3.3.4 - - vuepress@2.0.0-rc.0: - resolution: {integrity: sha512-sydt/B7+pIw926G5PntYmptLkC5o2buXKh+WR1+P2KnsvkXU+UGnQrJJ0FBvu/4RNuY99tkUZd59nyPhEmRrCg==} - engines: {node: '>=18.16.0'} - hasBin: true - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - yaml@2.4.0: - resolution: {integrity: sha512-j9iR8g+/t0lArF4V6NE/QCfT+CO7iLqrXAHZbJdo+LfjqP1vR8Fg5bSiaq6Q2lOD1AUEVrEVIgABvBFYojJVYQ==} - engines: {node: '>= 14'} - hasBin: true - -snapshots: - - '@babel/helper-string-parser@7.23.4': {} - - '@babel/helper-validator-identifier@7.22.20': {} - - '@babel/parser@7.23.9': - dependencies: - '@babel/types': 7.23.9 - - '@babel/types@7.23.9': - dependencies: - '@babel/helper-string-parser': 7.23.4 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - - '@esbuild/aix-ppc64@0.19.12': - optional: true - - '@esbuild/android-arm64@0.19.12': - optional: true - - '@esbuild/android-arm@0.19.12': - optional: true - - '@esbuild/android-x64@0.19.12': - optional: true - - '@esbuild/darwin-arm64@0.19.12': - optional: true - - '@esbuild/darwin-x64@0.19.12': - optional: true - - '@esbuild/freebsd-arm64@0.19.12': - optional: true - - '@esbuild/freebsd-x64@0.19.12': - optional: true - - '@esbuild/linux-arm64@0.19.12': - optional: true - - '@esbuild/linux-arm@0.19.12': - optional: true - - '@esbuild/linux-ia32@0.19.12': - optional: true - - '@esbuild/linux-loong64@0.19.12': - optional: true - - '@esbuild/linux-mips64el@0.19.12': - optional: true - - '@esbuild/linux-ppc64@0.19.12': - optional: true - - '@esbuild/linux-riscv64@0.19.12': - optional: true - - '@esbuild/linux-s390x@0.19.12': - optional: true - - '@esbuild/linux-x64@0.19.12': - optional: true - - '@esbuild/netbsd-x64@0.19.12': - optional: true - - '@esbuild/openbsd-x64@0.19.12': - optional: true - - '@esbuild/sunos-x64@0.19.12': - optional: true - - '@esbuild/win32-arm64@0.19.12': - optional: true - - '@esbuild/win32-ia32@0.19.12': - optional: true - - '@esbuild/win32-x64@0.19.12': - optional: true - - '@jridgewell/sourcemap-codec@1.4.15': {} - - '@mdit-vue/plugin-component@1.0.0': - dependencies: - '@types/markdown-it': 13.0.7 - markdown-it: 13.0.2 - - '@mdit-vue/plugin-frontmatter@1.0.0': - dependencies: - '@mdit-vue/types': 1.0.0 - '@types/markdown-it': 13.0.7 - gray-matter: 4.0.3 - markdown-it: 13.0.2 - - '@mdit-vue/plugin-headers@1.0.0': - dependencies: - '@mdit-vue/shared': 1.0.0 - '@mdit-vue/types': 1.0.0 - '@types/markdown-it': 13.0.7 - markdown-it: 13.0.2 - - '@mdit-vue/plugin-sfc@1.0.0': - dependencies: - '@mdit-vue/types': 1.0.0 - '@types/markdown-it': 13.0.7 - markdown-it: 13.0.2 - - '@mdit-vue/plugin-title@1.0.0': - dependencies: - '@mdit-vue/shared': 1.0.0 - '@mdit-vue/types': 1.0.0 - '@types/markdown-it': 13.0.7 - markdown-it: 13.0.2 - - '@mdit-vue/plugin-toc@1.0.0': - dependencies: - '@mdit-vue/shared': 1.0.0 - '@mdit-vue/types': 1.0.0 - '@types/markdown-it': 13.0.7 - markdown-it: 13.0.2 - - '@mdit-vue/shared@1.0.0': - dependencies: - '@mdit-vue/types': 1.0.0 - '@types/markdown-it': 13.0.7 - markdown-it: 13.0.2 - - '@mdit-vue/types@1.0.0': {} - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 - - '@rollup/rollup-android-arm-eabi@4.22.4': - optional: true - - '@rollup/rollup-android-arm64@4.22.4': - optional: true - - '@rollup/rollup-darwin-arm64@4.22.4': - optional: true - - '@rollup/rollup-darwin-x64@4.22.4': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.22.4': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.22.4': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.22.4': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.22.4': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.22.4': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.22.4': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.22.4': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.22.4': - optional: true - - '@rollup/rollup-linux-x64-musl@4.22.4': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.22.4': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.22.4': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.22.4': - optional: true - - '@sindresorhus/merge-streams@2.3.0': {} - - '@types/debug@4.1.12': - dependencies: - '@types/ms': 0.7.34 - - '@types/estree@1.0.5': {} - - '@types/fs-extra@11.0.4': - dependencies: - '@types/jsonfile': 6.1.4 - '@types/node': 20.11.20 - - '@types/hash-sum@1.0.2': {} - - '@types/jsonfile@6.1.4': - dependencies: - '@types/node': 20.11.20 - - '@types/linkify-it@3.0.5': {} - - '@types/markdown-it-emoji@2.0.4': - dependencies: - '@types/markdown-it': 13.0.7 - - '@types/markdown-it@13.0.7': - dependencies: - '@types/linkify-it': 3.0.5 - '@types/mdurl': 1.0.5 - - '@types/mdurl@1.0.5': {} - - '@types/ms@0.7.34': {} - - '@types/node@20.11.20': - dependencies: - undici-types: 5.26.5 - - '@types/web-bluetooth@0.0.20': {} - - '@vitejs/plugin-vue@4.6.2(vite@5.0.13(@types/node@20.11.20)(sass@1.71.1))(vue@3.4.20)': - dependencies: - vite: 5.0.13(@types/node@20.11.20)(sass@1.71.1) - vue: 3.4.20 - - '@vue/compiler-core@3.4.20': - dependencies: - '@babel/parser': 7.23.9 - '@vue/shared': 3.4.20 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.0.2 - - '@vue/compiler-dom@3.4.20': - dependencies: - '@vue/compiler-core': 3.4.20 - '@vue/shared': 3.4.20 - - '@vue/compiler-sfc@3.4.20': - dependencies: - '@babel/parser': 7.23.9 - '@vue/compiler-core': 3.4.20 - '@vue/compiler-dom': 3.4.20 - '@vue/compiler-ssr': 3.4.20 - '@vue/shared': 3.4.20 - estree-walker: 2.0.2 - magic-string: 0.30.7 - postcss: 8.4.35 - source-map-js: 1.0.2 - - '@vue/compiler-ssr@3.4.20': - dependencies: - '@vue/compiler-dom': 3.4.20 - '@vue/shared': 3.4.20 - - '@vue/devtools-api@6.6.1': {} - - '@vue/reactivity@3.4.20': - dependencies: - '@vue/shared': 3.4.20 - - '@vue/runtime-core@3.4.20': - dependencies: - '@vue/reactivity': 3.4.20 - '@vue/shared': 3.4.20 - - '@vue/runtime-dom@3.4.20': - dependencies: - '@vue/runtime-core': 3.4.20 - '@vue/shared': 3.4.20 - csstype: 3.1.3 - - '@vue/server-renderer@3.4.20(vue@3.4.20)': - dependencies: - '@vue/compiler-ssr': 3.4.20 - '@vue/shared': 3.4.20 - vue: 3.4.20 - - '@vue/shared@3.4.20': {} - - '@vuepress/bundler-vite@2.0.0-rc.0(@types/node@20.11.20)(sass@1.71.1)': - dependencies: - '@vitejs/plugin-vue': 4.6.2(vite@5.0.13(@types/node@20.11.20)(sass@1.71.1))(vue@3.4.20) - '@vuepress/client': 2.0.0-rc.0 - '@vuepress/core': 2.0.0-rc.0 - '@vuepress/shared': 2.0.0-rc.0 - '@vuepress/utils': 2.0.0-rc.0 - autoprefixer: 10.4.17(postcss@8.4.35) - connect-history-api-fallback: 2.0.0 - postcss: 8.4.35 - postcss-load-config: 4.0.2(postcss@8.4.35) - rollup: 4.22.4 - vite: 5.0.13(@types/node@20.11.20)(sass@1.71.1) - vue: 3.4.20 - vue-router: 4.3.0(vue@3.4.20) - transitivePeerDependencies: - - '@types/node' - - '@vue/composition-api' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - ts-node - - typescript - - '@vuepress/cli@2.0.0-rc.0': - dependencies: - '@vuepress/core': 2.0.0-rc.0 - '@vuepress/shared': 2.0.0-rc.0 - '@vuepress/utils': 2.0.0-rc.0 - cac: 6.7.14 - chokidar: 3.6.0 - envinfo: 7.11.1 - esbuild: 0.19.12 - transitivePeerDependencies: - - '@vue/composition-api' - - supports-color - - typescript - - '@vuepress/client@2.0.0-rc.0': - dependencies: - '@vue/devtools-api': 6.6.1 - '@vuepress/shared': 2.0.0-rc.0 - '@vueuse/core': 10.8.0(vue@3.4.20) - vue: 3.4.20 - vue-router: 4.3.0(vue@3.4.20) - transitivePeerDependencies: - - '@vue/composition-api' - - typescript - - '@vuepress/core@2.0.0-rc.0': - dependencies: - '@vuepress/client': 2.0.0-rc.0 - '@vuepress/markdown': 2.0.0-rc.0 - '@vuepress/shared': 2.0.0-rc.0 - '@vuepress/utils': 2.0.0-rc.0 - vue: 3.4.20 - transitivePeerDependencies: - - '@vue/composition-api' - - supports-color - - typescript - - '@vuepress/markdown@2.0.0-rc.0': - dependencies: - '@mdit-vue/plugin-component': 1.0.0 - '@mdit-vue/plugin-frontmatter': 1.0.0 - '@mdit-vue/plugin-headers': 1.0.0 - '@mdit-vue/plugin-sfc': 1.0.0 - '@mdit-vue/plugin-title': 1.0.0 - '@mdit-vue/plugin-toc': 1.0.0 - '@mdit-vue/shared': 1.0.0 - '@mdit-vue/types': 1.0.0 - '@types/markdown-it': 13.0.7 - '@types/markdown-it-emoji': 2.0.4 - '@vuepress/shared': 2.0.0-rc.0 - '@vuepress/utils': 2.0.0-rc.0 - markdown-it: 13.0.2 - markdown-it-anchor: 8.6.7(@types/markdown-it@13.0.7)(markdown-it@13.0.2) - markdown-it-emoji: 2.0.2 - mdurl: 1.0.1 - transitivePeerDependencies: - - supports-color - - '@vuepress/plugin-active-header-links@2.0.0-rc.0': - dependencies: - '@vuepress/client': 2.0.0-rc.0 - '@vuepress/core': 2.0.0-rc.0 - '@vuepress/utils': 2.0.0-rc.0 - ts-debounce: 4.0.0 - vue: 3.4.20 - vue-router: 4.3.0(vue@3.4.20) - transitivePeerDependencies: - - '@vue/composition-api' - - supports-color - - typescript - - '@vuepress/plugin-back-to-top@2.0.0-rc.0': - dependencies: - '@vuepress/client': 2.0.0-rc.0 - '@vuepress/core': 2.0.0-rc.0 - '@vuepress/utils': 2.0.0-rc.0 - ts-debounce: 4.0.0 - vue: 3.4.20 - transitivePeerDependencies: - - '@vue/composition-api' - - supports-color - - typescript - - '@vuepress/plugin-container@2.0.0-rc.0': - dependencies: - '@types/markdown-it': 13.0.7 - '@vuepress/core': 2.0.0-rc.0 - '@vuepress/markdown': 2.0.0-rc.0 - '@vuepress/shared': 2.0.0-rc.0 - '@vuepress/utils': 2.0.0-rc.0 - markdown-it: 13.0.2 - markdown-it-container: 3.0.0 - transitivePeerDependencies: - - '@vue/composition-api' - - supports-color - - typescript - - '@vuepress/plugin-external-link-icon@2.0.0-rc.0': - dependencies: - '@vuepress/client': 2.0.0-rc.0 - '@vuepress/core': 2.0.0-rc.0 - '@vuepress/markdown': 2.0.0-rc.0 - '@vuepress/shared': 2.0.0-rc.0 - '@vuepress/utils': 2.0.0-rc.0 - vue: 3.4.20 - transitivePeerDependencies: - - '@vue/composition-api' - - supports-color - - typescript - - '@vuepress/plugin-git@2.0.0-rc.0': - dependencies: - '@vuepress/core': 2.0.0-rc.0 - '@vuepress/utils': 2.0.0-rc.0 - execa: 8.0.1 - transitivePeerDependencies: - - '@vue/composition-api' - - supports-color - - typescript - - '@vuepress/plugin-medium-zoom@2.0.0-rc.0': - dependencies: - '@vuepress/client': 2.0.0-rc.0 - '@vuepress/core': 2.0.0-rc.0 - '@vuepress/utils': 2.0.0-rc.0 - medium-zoom: 1.1.0 - vue: 3.4.20 - transitivePeerDependencies: - - '@vue/composition-api' - - supports-color - - typescript - - '@vuepress/plugin-nprogress@2.0.0-rc.0': - dependencies: - '@vuepress/client': 2.0.0-rc.0 - '@vuepress/core': 2.0.0-rc.0 - '@vuepress/utils': 2.0.0-rc.0 - vue: 3.4.20 - vue-router: 4.3.0(vue@3.4.20) - transitivePeerDependencies: - - '@vue/composition-api' - - supports-color - - typescript - - '@vuepress/plugin-palette@2.0.0-rc.0': - dependencies: - '@vuepress/core': 2.0.0-rc.0 - '@vuepress/utils': 2.0.0-rc.0 - chokidar: 3.6.0 - transitivePeerDependencies: - - '@vue/composition-api' - - supports-color - - typescript - - '@vuepress/plugin-prismjs@2.0.0-rc.0': - dependencies: - '@vuepress/core': 2.0.0-rc.0 - prismjs: 1.30.0 - transitivePeerDependencies: - - '@vue/composition-api' - - supports-color - - typescript - - '@vuepress/plugin-register-components@2.0.0-rc.0': - dependencies: - '@vuepress/core': 2.0.0-rc.0 - '@vuepress/utils': 2.0.0-rc.0 - chokidar: 3.6.0 - transitivePeerDependencies: - - '@vue/composition-api' - - supports-color - - typescript - - '@vuepress/plugin-search@2.0.0-rc.0': - dependencies: - '@vuepress/client': 2.0.0-rc.0 - '@vuepress/core': 2.0.0-rc.0 - '@vuepress/shared': 2.0.0-rc.0 - '@vuepress/utils': 2.0.0-rc.0 - chokidar: 3.6.0 - vue: 3.4.20 - vue-router: 4.3.0(vue@3.4.20) - transitivePeerDependencies: - - '@vue/composition-api' - - supports-color - - typescript - - '@vuepress/plugin-theme-data@2.0.0-rc.0': - dependencies: - '@vue/devtools-api': 6.6.1 - '@vuepress/client': 2.0.0-rc.0 - '@vuepress/core': 2.0.0-rc.0 - '@vuepress/shared': 2.0.0-rc.0 - '@vuepress/utils': 2.0.0-rc.0 - vue: 3.4.20 - transitivePeerDependencies: - - '@vue/composition-api' - - supports-color - - typescript - - '@vuepress/shared@2.0.0-rc.0': - dependencies: - '@mdit-vue/types': 1.0.0 - '@vue/shared': 3.4.20 - - '@vuepress/theme-default@2.0.0-rc.0': - dependencies: - '@vuepress/client': 2.0.0-rc.0 - '@vuepress/core': 2.0.0-rc.0 - '@vuepress/plugin-active-header-links': 2.0.0-rc.0 - '@vuepress/plugin-back-to-top': 2.0.0-rc.0 - '@vuepress/plugin-container': 2.0.0-rc.0 - '@vuepress/plugin-external-link-icon': 2.0.0-rc.0 - '@vuepress/plugin-git': 2.0.0-rc.0 - '@vuepress/plugin-medium-zoom': 2.0.0-rc.0 - '@vuepress/plugin-nprogress': 2.0.0-rc.0 - '@vuepress/plugin-palette': 2.0.0-rc.0 - '@vuepress/plugin-prismjs': 2.0.0-rc.0 - '@vuepress/plugin-theme-data': 2.0.0-rc.0 - '@vuepress/shared': 2.0.0-rc.0 - '@vuepress/utils': 2.0.0-rc.0 - '@vueuse/core': 10.8.0(vue@3.4.20) - sass: 1.71.1 - vue: 3.4.20 - vue-router: 4.3.0(vue@3.4.20) - transitivePeerDependencies: - - '@vue/composition-api' - - supports-color - - typescript - - '@vuepress/utils@2.0.0-rc.0': - dependencies: - '@types/debug': 4.1.12 - '@types/fs-extra': 11.0.4 - '@types/hash-sum': 1.0.2 - '@vuepress/shared': 2.0.0-rc.0 - debug: 4.3.4 - fs-extra: 11.2.0 - globby: 14.0.1 - hash-sum: 2.0.0 - ora: 7.0.1 - picocolors: 1.0.0 - upath: 2.0.1 - transitivePeerDependencies: - - supports-color - - '@vueuse/core@10.8.0(vue@3.4.20)': - dependencies: - '@types/web-bluetooth': 0.0.20 - '@vueuse/metadata': 10.8.0 - '@vueuse/shared': 10.8.0(vue@3.4.20) - vue-demi: 0.14.7(vue@3.4.20) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - - '@vueuse/metadata@10.8.0': {} - - '@vueuse/shared@10.8.0(vue@3.4.20)': - dependencies: - vue-demi: 0.14.7(vue@3.4.20) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - - ansi-regex@6.0.1: {} - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - - argparse@2.0.1: {} - - autoprefixer@10.4.17(postcss@8.4.35): - dependencies: - browserslist: 4.23.0 - caniuse-lite: 1.0.30001589 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.0.0 - postcss: 8.4.35 - postcss-value-parser: 4.2.0 - - base64-js@1.5.1: {} - - binary-extensions@2.2.0: {} - - bl@5.1.0: - dependencies: - buffer: 6.0.3 - inherits: 2.0.4 - readable-stream: 3.6.2 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - browserslist@4.23.0: - dependencies: - caniuse-lite: 1.0.30001589 - electron-to-chromium: 1.4.681 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) - - buffer@6.0.3: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - cac@6.7.14: {} - - caniuse-lite@1.0.30001589: {} - - chalk@5.3.0: {} - - chokidar@3.6.0: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - 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 - - cli-cursor@4.0.0: - dependencies: - restore-cursor: 4.0.0 - - cli-spinners@2.9.2: {} - - connect-history-api-fallback@2.0.0: {} - - cross-spawn@7.0.3: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - csstype@3.1.3: {} - - debug@4.3.4: - dependencies: - ms: 2.1.2 - - eastasianwidth@0.2.0: {} - - electron-to-chromium@1.4.681: {} - - emoji-regex@10.3.0: {} - - entities@3.0.1: {} - - entities@4.5.0: {} - - envinfo@7.11.1: {} - - esbuild@0.19.12: - optionalDependencies: - '@esbuild/aix-ppc64': 0.19.12 - '@esbuild/android-arm': 0.19.12 - '@esbuild/android-arm64': 0.19.12 - '@esbuild/android-x64': 0.19.12 - '@esbuild/darwin-arm64': 0.19.12 - '@esbuild/darwin-x64': 0.19.12 - '@esbuild/freebsd-arm64': 0.19.12 - '@esbuild/freebsd-x64': 0.19.12 - '@esbuild/linux-arm': 0.19.12 - '@esbuild/linux-arm64': 0.19.12 - '@esbuild/linux-ia32': 0.19.12 - '@esbuild/linux-loong64': 0.19.12 - '@esbuild/linux-mips64el': 0.19.12 - '@esbuild/linux-ppc64': 0.19.12 - '@esbuild/linux-riscv64': 0.19.12 - '@esbuild/linux-s390x': 0.19.12 - '@esbuild/linux-x64': 0.19.12 - '@esbuild/netbsd-x64': 0.19.12 - '@esbuild/openbsd-x64': 0.19.12 - '@esbuild/sunos-x64': 0.19.12 - '@esbuild/win32-arm64': 0.19.12 - '@esbuild/win32-ia32': 0.19.12 - '@esbuild/win32-x64': 0.19.12 - - escalade@3.1.2: {} - - esprima@4.0.1: {} - - estree-walker@2.0.2: {} - - execa@8.0.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.3.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - - extend-shallow@2.0.1: - dependencies: - is-extendable: 0.1.1 - - fast-glob@3.3.2: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - - fastq@1.17.1: - dependencies: - reusify: 1.0.4 - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - fraction.js@4.3.7: {} - - fs-extra@11.2.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - - fsevents@2.3.3: - optional: true - - get-stream@8.0.1: {} - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - globby@14.0.1: - dependencies: - '@sindresorhus/merge-streams': 2.3.0 - fast-glob: 3.3.2 - ignore: 5.3.1 - path-type: 5.0.0 - slash: 5.1.0 - unicorn-magic: 0.1.0 - - graceful-fs@4.2.11: {} - - gray-matter@4.0.3: - dependencies: - js-yaml: 3.14.1 - kind-of: 6.0.3 - section-matter: 1.0.0 - strip-bom-string: 1.0.0 - - hash-sum@2.0.0: {} - - human-signals@5.0.0: {} - - ieee754@1.2.1: {} - - ignore@5.3.1: {} - - immutable@4.3.5: {} - - inherits@2.0.4: {} - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.2.0 - - is-extendable@0.1.1: {} - - is-extglob@2.1.1: {} - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-interactive@2.0.0: {} - - is-number@7.0.0: {} - - is-stream@3.0.0: {} - - is-unicode-supported@1.3.0: {} - - isexe@2.0.0: {} - - js-yaml@3.14.1: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - - jsonfile@6.1.0: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - - kind-of@6.0.3: {} - - lilconfig@3.1.1: {} - - linkify-it@4.0.1: - dependencies: - uc.micro: 1.0.6 - - log-symbols@5.1.0: - dependencies: - chalk: 5.3.0 - is-unicode-supported: 1.3.0 - - magic-string@0.30.7: - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - - markdown-it-anchor@8.6.7(@types/markdown-it@13.0.7)(markdown-it@13.0.2): - dependencies: - '@types/markdown-it': 13.0.7 - markdown-it: 13.0.2 - - markdown-it-container@3.0.0: {} - - markdown-it-emoji@2.0.2: {} - - markdown-it@13.0.2: - dependencies: - argparse: 2.0.1 - entities: 3.0.1 - linkify-it: 4.0.1 - mdurl: 1.0.1 - uc.micro: 1.0.6 - - mdurl@1.0.1: {} - - medium-zoom@1.1.0: {} - - merge-stream@2.0.0: {} - - merge2@1.4.1: {} - - micromatch@4.0.5: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - mimic-fn@2.1.0: {} - - mimic-fn@4.0.0: {} - - ms@2.1.2: {} - - nanoid@3.3.7: {} - - node-releases@2.0.14: {} - - normalize-path@3.0.0: {} - - normalize-range@0.1.2: {} - - npm-run-path@5.3.0: - dependencies: - path-key: 4.0.0 - - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - - onetime@6.0.0: - dependencies: - mimic-fn: 4.0.0 - - ora@7.0.1: - dependencies: - chalk: 5.3.0 - cli-cursor: 4.0.0 - cli-spinners: 2.9.2 - is-interactive: 2.0.0 - is-unicode-supported: 1.3.0 - log-symbols: 5.1.0 - stdin-discarder: 0.1.0 - string-width: 6.1.0 - strip-ansi: 7.1.0 - - path-key@3.1.1: {} - - path-key@4.0.0: {} - - path-type@5.0.0: {} - - picocolors@1.0.0: {} - - picomatch@2.3.1: {} - - postcss-load-config@4.0.2(postcss@8.4.35): - dependencies: - lilconfig: 3.1.1 - yaml: 2.4.0 - optionalDependencies: - postcss: 8.4.35 - - postcss-value-parser@4.2.0: {} - - postcss@8.4.35: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 - - prismjs@1.30.0: {} - - queue-microtask@1.2.3: {} - - readable-stream@3.6.2: - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 - - restore-cursor@4.0.0: - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - - reusify@1.0.4: {} - - rollup@4.22.4: - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.22.4 - '@rollup/rollup-android-arm64': 4.22.4 - '@rollup/rollup-darwin-arm64': 4.22.4 - '@rollup/rollup-darwin-x64': 4.22.4 - '@rollup/rollup-linux-arm-gnueabihf': 4.22.4 - '@rollup/rollup-linux-arm-musleabihf': 4.22.4 - '@rollup/rollup-linux-arm64-gnu': 4.22.4 - '@rollup/rollup-linux-arm64-musl': 4.22.4 - '@rollup/rollup-linux-powerpc64le-gnu': 4.22.4 - '@rollup/rollup-linux-riscv64-gnu': 4.22.4 - '@rollup/rollup-linux-s390x-gnu': 4.22.4 - '@rollup/rollup-linux-x64-gnu': 4.22.4 - '@rollup/rollup-linux-x64-musl': 4.22.4 - '@rollup/rollup-win32-arm64-msvc': 4.22.4 - '@rollup/rollup-win32-ia32-msvc': 4.22.4 - '@rollup/rollup-win32-x64-msvc': 4.22.4 - fsevents: 2.3.3 - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - safe-buffer@5.2.1: {} - - sass@1.71.1: - dependencies: - chokidar: 3.6.0 - immutable: 4.3.5 - source-map-js: 1.0.2 - - section-matter@1.0.0: - dependencies: - extend-shallow: 2.0.1 - kind-of: 6.0.3 - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - signal-exit@3.0.7: {} - - signal-exit@4.1.0: {} - - slash@5.1.0: {} - - source-map-js@1.0.2: {} - - sprintf-js@1.0.3: {} - - stdin-discarder@0.1.0: - dependencies: - bl: 5.1.0 - - string-width@6.1.0: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 10.3.0 - strip-ansi: 7.1.0 - - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - - strip-ansi@7.1.0: - dependencies: - ansi-regex: 6.0.1 - - strip-bom-string@1.0.0: {} - - strip-final-newline@3.0.0: {} - - to-fast-properties@2.0.0: {} - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - ts-debounce@4.0.0: {} - - uc.micro@1.0.6: {} - - undici-types@5.26.5: {} - - unicorn-magic@0.1.0: {} - - universalify@2.0.1: {} - - upath@2.0.1: {} - - update-browserslist-db@1.0.13(browserslist@4.23.0): - dependencies: - browserslist: 4.23.0 - escalade: 3.1.2 - picocolors: 1.0.0 - - util-deprecate@1.0.2: {} - - vite@5.0.13(@types/node@20.11.20)(sass@1.71.1): - dependencies: - esbuild: 0.19.12 - postcss: 8.4.35 - rollup: 4.22.4 - optionalDependencies: - '@types/node': 20.11.20 - fsevents: 2.3.3 - sass: 1.71.1 - - vue-demi@0.14.7(vue@3.4.20): - dependencies: - vue: 3.4.20 - - vue-router@4.3.0(vue@3.4.20): - dependencies: - '@vue/devtools-api': 6.6.1 - vue: 3.4.20 - - vue@3.4.20: - dependencies: - '@vue/compiler-dom': 3.4.20 - '@vue/compiler-sfc': 3.4.20 - '@vue/runtime-dom': 3.4.20 - '@vue/server-renderer': 3.4.20(vue@3.4.20) - '@vue/shared': 3.4.20 - - vuepress-vite@2.0.0-rc.0(@types/node@20.11.20)(@vuepress/client@2.0.0-rc.0)(sass@1.71.1)(vue@3.4.20): - dependencies: - '@vuepress/bundler-vite': 2.0.0-rc.0(@types/node@20.11.20)(sass@1.71.1) - '@vuepress/cli': 2.0.0-rc.0 - '@vuepress/client': 2.0.0-rc.0 - '@vuepress/core': 2.0.0-rc.0 - '@vuepress/theme-default': 2.0.0-rc.0 - vue: 3.4.20 - transitivePeerDependencies: - - '@types/node' - - '@vue/composition-api' - - less - - lightningcss - - sass - - sass-loader - - stylus - - sugarss - - supports-color - - terser - - ts-node - - typescript - - vuepress@2.0.0-rc.0(@types/node@20.11.20)(@vuepress/client@2.0.0-rc.0)(sass@1.71.1)(vue@3.4.20): - dependencies: - vuepress-vite: 2.0.0-rc.0(@types/node@20.11.20)(@vuepress/client@2.0.0-rc.0)(sass@1.71.1)(vue@3.4.20) - transitivePeerDependencies: - - '@types/node' - - '@vue/composition-api' - - '@vuepress/client' - - less - - lightningcss - - sass - - sass-loader - - stylus - - sugarss - - supports-color - - terser - - ts-node - - typescript - - vue - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - yaml@2.4.0: {} diff --git a/docs/src/docgen-md.own b/docs/src/docgen-md.own deleted file mode 100644 index 53e61abe..00000000 --- a/docs/src/docgen-md.own +++ /dev/null @@ -1,200 +0,0 @@ -use std, types, files, json, yaml, functional - -INPUT_PATH_FMT = "./modules/%s.yml" -OUTPUT_DIR_FMT = "../docs/%s/modules" -OUTPUT_PATH_FMT = OUTPUT_DIR_FMT + "/%s.md" - -LANGS = ["en", "ru"] -MODULES = [ - "std", - "collections", - "date", - "downloader", - "files", - "functional", - "http", - "okhttp", - "java", - "math", - "ounit", - "regex", - "robot", - "socket", - "types", - // formats - "base64", - "json", - "yaml", - "gzip", - "zip" - - // Desktop-only - "canvas", - "canvasfx", - "forms", - "jdbc", - "server", - - // Android-only - "android", - "canvas_android", - "forms_android", - "gps_android", - "imageprocessing_android" -] - -messages = { - "constants": {"en": "Constants", "ru": "Константы"}, - "functions": {"en": "Functions", "ru": "Функции"}, - "types": {"en": "Types", "ru": "Типы"}, - "example": {"en": "Example", "ru": "Пример"}, - "since": {"en": "Since", "ru": "Начиная с"}, - "elements": {"en": " elements", "ru": " элементов"} -} - -// Write modules pages to vuepress config -modulesPages = jsonencode(map(MODULES, def(m) = m + ".md")) -f = fopen("../docs/.vuepress/configs/modules.js", "w") -writeLine(f, "export default " + modulesPages) -flush(f) -fclose(f) - -// Create output dirs -for lang : LANGS { - mkdirs(sprintf(OUTPUT_DIR_FMT, lang)) -} - -for moduleName : MODULES { - module = readYml(sprintf(INPUT_PATH_FMT, moduleName)) - for lang : LANGS { - println "" + module.name + " / " + lang - file = sprintf(OUTPUT_PATH_FMT, lang, moduleName) - f = fopen(file, "w") - - writeHeader(f, module, lang) - writeConstants(f, module.constants ?? [], lang) - writeFunctions(f, module.functions ?? [], lang, 2); - writeTypes(f, module.types ?? [], lang); - - flush(f) - fclose(f) - } -} - -// -- write -def writeHeader(f, module, lang) { - writeText(f, header(module.name, 1)) - if length(module.scope ?? "") && (module.scope != "both") { - writeText(f, " (" + module.scope + ")") - } - writeLine(f, "\n") - if length(module.since ?? "") { - writeSince(f, module.since, lang) - } - writeDescription(f, module, lang, "\n%s\n") -} - -def writeConstants(f, constants, lang) { - if (constants.isEmpty()) return 0 - - writeLine(f, "\n\n## " + messages.constants[lang]) - for info : constants { - writeText(f, "\n`%s` : *%s*".sprintf(info.name, info.typeName)) - writeScope(f, info.scope ?? "") - writeText(f, " = ") - constValue = getValue(info, "value", lang) - if (info.type != MAP && info.type != CLASS) { - writeText(f, "`%s`".sprintf(constValue)) - } else { - mapValues = constValue.substring(1, constValue.length - 1).split(", ") - if (mapValues.length >= 7) { - writeText(f, "\n\n::: details %d %s".sprintf(mapValues.length, messages.elements[lang])); - writeText(f, "\n\n```own:no-line-numbers\n{\n "); - writeText(f, mapValues.joinToString(",\n ")); - writeText(f, "\n}\n```"); - writeText(f, "\n:::"); - } else { - writeText(f, "`%s`".sprintf(constValue)); - } - } - writeLine(f, "") - writeDescription(f, info, lang, "\n%s\n") - } - -} - -def writeFunctions(f, functions, lang, level = 2) { - if (functions.isEmpty()) return 0 - - writeLine(f, "\n\n" + header(messages.functions[lang], level)) - for info : functions { - writeText(f, "\n`%s(%s)`".sprintf(info.name, info.args)) - writeScope(f, info.scope ?? "") - if length(info.since ?? "") { - writeSince(f, info.since, lang, true) - } - writeDescription(f, info, lang, " — %s") - writeLine(f, "") - - writeExample(f, info, lang) - } -} - -def writeTypes(f, types, lang) { - if (types.isEmpty()) return 0 - - writeLine(f, "\n\n" + header(messages.types[lang])) - for info : types { - writeText(f, "\n\n" + header("`%s`".sprintf(info.name), 3)) - writeScope(f, info.scope ?? "") - writeDescription(f, info, lang, "%s\n") - writeFunctions(f, info.functions ?? [], lang, 4); - writeLine(f, "") - writeExample(f, info, lang) - } -} - -def writeScope(f, scope) = match(scope) { - case "android": writeText(f, " ") - case "desktop": writeText(f, " ") - case _: { } -} - -def writeDescription(f, obj, lang, format = "%s") { - str = getValue(obj, "desc", lang) - if (str != "") { - writeText(f, sprintf(format, str)) - } -} - -def writeSince(f, version, lang, isInline = false) { - if (isInline) { - writeText(f, "".sprintf(version)) - } else { - writeText(f, "".sprintf(messages.since[lang], version)) - } -} - -def writeExample(f, info, lang) { - example = getValue(info, "example", lang) - if (length(example ?? "")) { - writeLine(f, "\n```own") - writeLine(f, example) - writeLine(f, "```") - } -} - -// -- utils -def getValue(object, key, lang = "en") { - newKey = (lang != "en") ? (key + "_" + lang) : key - return object[newKey] ?? object[key] ?? "" -} - -def header(text, level = 2) = ("#" * level) + " " + text - -def readYml(filename) { - f = fopen(filename, "r") - s = readText(f) - fclose(f) - return yamldecode(s) -} \ No newline at end of file diff --git a/docs/src/main/java/com/annimon/ownlang/docs/ModuleInfo.java b/docs/src/main/java/com/annimon/ownlang/docs/ModuleInfo.java deleted file mode 100644 index d47f0fec..00000000 --- a/docs/src/main/java/com/annimon/ownlang/docs/ModuleInfo.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.annimon.ownlang.docs; - -import com.annimon.ownlang.Version; -import com.annimon.ownlang.lib.MapValue; -import com.annimon.ownlang.lib.Types; -import com.annimon.ownlang.lib.Value; -import java.util.*; -import java.util.stream.Collectors; - -public class ModuleInfo { - private final String name; - final List functions; - final Map constants; - final List types; - - public ModuleInfo(String name) { - this.name = name; - functions = new ArrayList<>(); - constants = new HashMap<>(); - types = new ArrayList<>(); - } - - public String name() { - return name; - } - - public List> functions() { - return functions.stream().sorted() - .map(f -> { - final Map function = new LinkedHashMap<>(); - function.put("name", f); - function.put("args", ""); - function.put("desc", ""); - function.put("desc_ru", ""); - return function; - }) - .collect(Collectors.toList()); - } - - public List> constants() { - final List> result = new ArrayList<>(); - constants.entrySet().stream() - .sorted(Map.Entry.comparingByKey()) - .forEach(entry -> { - final Value value = entry.getValue(); - - final Map constant = new LinkedHashMap<>(); - constant.put("name", entry.getKey()); - constant.put("type", value.type()); - constant.put("typeName", Types.typeToString(value.type())); - if (value.type() == Types.MAP) { - String text = ((MapValue) value).getMap().entrySet().stream() - .sorted(Comparator.comparing( - e -> ((MapValue) value).size() > 16 ? e.getKey() : e.getValue())) - .map(Object::toString) - .collect(Collectors.joining(", ", "{", "}")); - constant.put("value", text); - } else { - constant.put("value", value.asString()); - } - result.add(constant); - }); - return result; - } - - public Map info() { - final Map result = new LinkedHashMap<>(); - result.put("name", name); - result.put("since", "%d.%d.%d".formatted(Version.VERSION_MAJOR, Version.VERSION_MINOR, Version.VERSION_PATCH)); - result.put("scope", "both"); - result.put("constants", constants()); - result.put("functions", functions()); - if (!types.isEmpty()) { - result.put("types", types.stream().sorted() - .map(s -> { - final Map type = new HashMap<>(); - type.put("name", s); - return type; - }) - .toArray()); - } - return result; - } -} \ No newline at end of file diff --git a/docs/src/main/java/com/annimon/ownlang/docs/ModulesInfoCreator.java b/docs/src/main/java/com/annimon/ownlang/docs/ModulesInfoCreator.java deleted file mode 100644 index 8c069911..00000000 --- a/docs/src/main/java/com/annimon/ownlang/docs/ModulesInfoCreator.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.annimon.ownlang.docs; - -import com.annimon.ownlang.lib.ModuleLoader; -import com.annimon.ownlang.lib.Value; -import com.annimon.ownlang.modules.Module; -import org.yaml.snakeyaml.DumperOptions; -import org.yaml.snakeyaml.Yaml; -import java.util.*; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -public final class ModulesInfoCreator { - - public static void main(String[] args) { - if (args.length == 0) { - System.err.println("No modules provided.\nUsage: ModulesInfoCreator ..."); - System.exit(1); - } - - final Class clazz = Module.class; // get classloader for package - - final List moduleInfos = new ArrayList<>(); - - for (String moduleName : args) { - final Module module = ModuleLoader.load(moduleName); - - final ModuleInfo moduleInfo = new ModuleInfo(moduleName); - moduleInfo.functions.addAll(module.functions().keySet()); - moduleInfo.constants.putAll(module.constants()); - moduleInfo.types.addAll(listValues(module.getClass())); - moduleInfos.add(moduleInfo); - } - - printAsYaml(moduleInfos); - - System.out.println("Total functions: " + moduleInfos.stream() - .mapToLong(m -> m.functions.size()) - .sum() - ); - System.out.println("Total constants: " + moduleInfos.stream() - .mapToLong(m -> m.constants.keySet().size()) - .sum() - ); - } - - private static void printAsYaml(List moduleInfos) { - DumperOptions options = new DumperOptions(); - options.setIndent(2); - options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK); - - final Yaml yaml = new Yaml(options); - for (ModuleInfo moduleInfo : moduleInfos) { - final String separator = "-".repeat(moduleInfo.name().length() + 12); - System.out.println(separator); - System.out.print("--- "); - System.out.print(moduleInfo.name() + ".yml"); - System.out.println(" ---"); - System.out.println(separator); - System.out.println(yaml.dump(moduleInfo.info())); - } - } - - private static List listValues(Class moduleClass) { - return Arrays.stream(moduleClass.getDeclaredClasses()) - .filter(clazz -> getAllInterfaces(clazz).stream().anyMatch(i -> i.equals(Value.class))) - .map(Class::getSimpleName) - .collect(Collectors.toList()); - } - - private static Set> getAllInterfaces(Class clazz) { - if (clazz.getSuperclass() == null) { - return Collections.emptySet(); - } - return Stream.concat(Arrays.stream(clazz.getInterfaces()), getAllInterfaces(clazz.getSuperclass()).stream()) - .collect(Collectors.toSet()); - } - -} diff --git a/docs/src/modules/android.yml b/docs/src/modules/android.yml deleted file mode 100644 index 8880db8b..00000000 --- a/docs/src/modules/android.yml +++ /dev/null @@ -1,62 +0,0 @@ -name: android -scope: "android" -desc: "Contains common Android functions" -desc_ru: "Содержит вспомогательные функции для Android" -constants: - - name: "Intent" - typeName: map - type: 4 - value: "{ACTION_BOOT_COMPLETED=android.intent.action.BOOT_COMPLETED, ACTION_DEFAULT=android.intent.action.VIEW, ACTION_DELETE=android.intent.action.DELETE, ACTION_EDIT=android.intent.action.EDIT, ACTION_INSTALL_PACKAGE=android.intent.action.INSTALL_PACKAGE, ACTION_LOCATION_SOURCE_SETTINGS=android.settings.LOCATION_SOURCE_SETTINGS, ACTION_MAIN=android.intent.action.MAIN, ACTION_MEDIA_MOUNTED=android.intent.action.MEDIA_MOUNTED, ACTION_REBOOT=android.intent.action.REBOOT, ACTION_RUN=android.intent.action.RUN, ACTION_SEARCH=android.intent.action.SEARCH, ACTION_SEND=android.intent.action.SEND, ACTION_VIEW=android.intent.action.VIEW, ACTION_WEB_SEARCH=android.intent.action.WEB_SEARCH}" - - name: R - type: 4 - typeName: map - value: '{array={}, attr={}, color={}, drawable={}, id={}, integer={}, layout={}, string={}}' - desc: "Resource constants from android.R.xxx class" - desc_ru: "Константы ресурсов класса android.R.xxx" - - name: SDK_INT - type: 1 - typeName: number - value: 'Android version SDK' - desc: "Android version SDK" - desc_ru: "Версия SDK Android" - - name: "Span" - typeName: map - type: 4 - value: "{COLOR=0, ABSOLUTE_SIZE=1, RELATIVE_SIZE=2, URL=3, STYLE=4, CLICKABLE=5, TYPEFACE=6, HTML=7}" -functions: - - name: "assetBitmap" - args: "path" - desc: "loads bitmap from the file in apk's assets folder" - desc_ru: "загружает изображение из файла в папке assets внутри apk" - - name: "assetBytes" - args: "path" - desc: "reads bytes of the file in apk's assets folder" - desc_ru: "читает массив байт из файла в папке assets внутри apk" - - name: "assetText" - args: "path" - desc: "reads text content of the file in apk's assets folder" - desc_ru: "читает текст файла в папке assets внутри apk" - - name: "chooser" - args: "" - desc: "" - desc_ru: "" - - name: "listAssets" - args: "path" - desc: "returns list of files in apk's assets folder" - desc_ru: "возвращает список файлов в папке assets внутри apk" - - name: "spannable" - args: "type, text, ..." - desc: "" - desc_ru: "" - - name: "startActivity" - args: "intent, uri = \"\", bundle = []" - desc: "starts an activity" - desc_ru: "запускает Activity" - - name: "toast" - args: "text, duration = 0" - desc: "shows toast notification" - desc_ru: "показывает всплывающее уведомление (toast)" - - name: "uithread" - args: "function, ..." - desc: "runs function in main UI-thread" - desc_ru: "выполняет функцию в главном UI-потоке" \ No newline at end of file diff --git a/docs/src/modules/base64.yml b/docs/src/modules/base64.yml deleted file mode 100644 index ab771c50..00000000 --- a/docs/src/modules/base64.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: base64 -scope: both -desc: "Contains base64 encoding and decoding functions" -desc_ru: "Содержит функции кодирования данных в base64 и наоборот" -constants: - - name: BASE64_URL_SAFE - type: 1 - typeName: number - value: '8' - desc: 'Url safe encoding output' - desc_ru: 'Вывод данных в безопасном для ссылок формате' -functions: - - name: base64decode - args: 'data, type = 0' - desc: 'decodes base64-encoded byte array or string into byte array' - desc_ru: 'декодирует массив байт или строку, закодированную в base64, в массив байт' - - name: base64encode - args: 'data, type = 0' - desc: 'encodes byte array or string into base64-encoded byte array' - desc_ru: 'кодирует массив байт или строку в закодированный base64 массив байт' - - name: base64encodeToString - args: 'data, type = 0' - desc: 'encodes byte array or string into base64-encoded string' - desc_ru: 'кодирует массив байт или строку в закодированную base64 строку' \ No newline at end of file diff --git a/docs/src/modules/canvas.yml b/docs/src/modules/canvas.yml deleted file mode 100644 index 101f829a..00000000 --- a/docs/src/modules/canvas.yml +++ /dev/null @@ -1,98 +0,0 @@ -name: canvas -scope: "desktop" -desc: "Contains functions for working with graphics" -desc_ru: "Содержит функции для работы с графикой" -constants: - - name: "VK_DOWN" - typeName: number - type: 1 - value: "40" - desc: "arrow down key code" - desc_ru: "код клавиши стрелка вниз" - - name: "VK_ESCAPE" - typeName: number - type: 1 - value: "27" - desc: "Esc key code" - desc_ru: "код клавиши Esc" - - name: "VK_FIRE" - typeName: number - type: 1 - value: "10" - desc: "Enter key code" - desc_ru: "код клавиши Enter" - - name: "VK_LEFT" - typeName: number - type: 1 - value: "37" - desc: "arrow left key code" - desc_ru: "код клавиши стрелка влево" - - name: "VK_RIGHT" - typeName: number - type: 1 - value: "39" - desc: "arrow left key code" - desc_ru: "код клавиши стрелка вправо" - - name: "VK_UP" - typeName: number - type: 1 - value: "38" - desc: "arrow up key code" - desc_ru: "код клавиши стрелка вверх" -functions: - - name: "clip" - args: "x, y, w, h" - desc: "sets the current clip to the rectangle specified by the given coordinates" - desc_ru: "устанавливает текущий клип в прямоугольник, заданный данными координатами" - - name: "color" - args: "rgb" - desc: "sets color drawing. `rgb` - color with the specified combined RGB value" - desc_ru: "устанвливает цвет рисования. `rgb` - целое, комбинация цветов RGB, например `#FFGGFF`" - - name: "color" - args: "red, green, blue" - desc: "sets color with the specified red, green, and blue values in the range (0 - 255)" - desc_ru: "устанвливает цвет рисования c отдельными уровнями красного, зеленого и синего в диапазоне (0 - 255)" - - name: "drawstring" - args: "text, x, y" - desc: "draws string `text` at position `x`, `y`" - desc_ru: "рисует строку `text` с координатами `x`, `y`" - - name: "foval" - args: "x, y, w, h" - desc: "draws a filled oval at position `x`,` y`, size `w`,` h`" - desc_ru: "рисует закрашенный овал на позиции `x`, `y`, размером `w`, `h`" - - name: "frect" - args: "x, y, w, h" - desc: "draws a filled rectangle at position `x`,` y`, size `w`,` h`" - desc_ru: "рисует закрашенный прямоугольник на позиции `x`, `y`, размером `w`, `h`" - - name: "keypressed" - args: "" - desc: "returns the code of the pressed key (see the constant section)" - desc_ru: "возрвращает код нажатой клавиши (см. раздел константы)" - - name: "line" - args: "x1, y1, x2, y2" - desc: "draws line from point (`x1`;y1`) to (`x2`;y2`)" - desc_ru: "рисует линию от позиции (`x1`;y1`) до (`x2`;y2`)" - - name: "mousehover" - args: "" - desc: "returns array with current mouse pointer coordinates" - desc_ru: "возвращает массив с текущими координатами указателя мыши" - - name: "oval" - args: "x, y, w, h" - desc: "draws a oval at position `x`,` y`, size `w`,` h`" - desc_ru: "рисует овал на позиции `x`, `y`, размером `w`, `h`" - - name: "prompt" - args: "message" - desc: "displays a dialog box that prompts the visitor for input" - desc_ru: "показывает диалог для ввода значения от пользователя" - - name: "rect" - args: "x, y, w, h" - desc: "draws a rectangle at position `x`,` y`, size `w`,` h`" - desc_ru: "рисует прямоугольник на позиции `x`, `y`, размером `w`, `h`" - - name: "repaint" - args: "" - desc: "draws elements from graphics buffer on canvas" - desc_ru: "прорисовывает элементы из буфера на холсте" - - name: "window" - args: "name, width, hight" - desc: "creates a new window with the specified `name` and size `width`x`height`" - desc_ru: "создает новое окно с именем `name` и размером `width`x`height`" \ No newline at end of file diff --git a/docs/src/modules/canvas_android.yml b/docs/src/modules/canvas_android.yml deleted file mode 100644 index a224c722..00000000 --- a/docs/src/modules/canvas_android.yml +++ /dev/null @@ -1,658 +0,0 @@ -name: canvas -scope: "android" -desc: "Contains functions for working with graphics on Android" -desc_ru: "Содержит функции для работы с графикой в Android" -constants: - - name: "VertexMode" - typeName: map - type: 4 - value: "{TRIANGLES=0, TRIANGLE_STRIP=1, TRIANGLE_FAN=2}" - - name: "Action" - typeName: map - type: 4 - value: "{DOWN=0, UP=1, MOVE=2, MULTIPLE=2, CANCEL=3, OUTSIDE=4, POINTER_DOWN=5, POINTER_UP=6, POINTER_INDEX_SHIFT=8, MASK=255, POINTER_INDEX_MASK=65280}" - - name: "BitmapCompressFormat" - typeName: map - type: 4 - value: "{JPEG=0, PNG=1, WEBP=2}" - - name: "EdgeType" - typeName: map - type: 4 - value: "{BW=0, AA=1}" - - name: "Cap" - typeName: map - type: 4 - value: "{BUTT=0, ROUND=1, SQUARE=2}" - - name: "Style" - typeName: map - type: 4 - value: "{FILL=0, STROKE=1, FILL_AND_STROKE=2}" - - name: "BitmapConfig" - typeName: map - type: 4 - value: "{ALPHA_8=0, RGB_565=1, ARGB_4444=2, ARGB_8888=3}" - - name: "Join" - typeName: map - type: 4 - value: "{MITER=0, ROUND=1, BEVEL=2}" - - name: "Align" - typeName: map - type: 4 - value: "{LEFT=0, CENTER=1, RIGHT=2}" - - name: "DisplayMetrics" - typeName: map - type: 4 - value: "{density=, densityDpi=, scaledDensity=, widthPixels=, heightPixels=, xdpi=, ydpi=}" - since: 1.5.1 -functions: - - name: "createBitmap" - args: "..." - desc: |- - `createBitmap(bitmap)` - creates a copy of the bitmap. - - `createBitmap(bytes)` - creates bitmap from byte array. - - `createBitmap(w, h)` - creates new bitmap with the given size. - - `createBitmap(w, h, config)` - creates new bitmap with the given size and config. - - `createBitmap(bytes, offset, length)` - creates bitmap from byte array starting from offset. - - `createBitmap(pixels, w, h, config)` - creates new bitmap from pixels array. - - `createBitmap(bitmap, x, y, w, h)` - creates new bitmap from the part of the `bitmap`. - - `createBitmap(pixels, offset, stride, w, h, config)` - creates new bitmap from pixels array starting from offset. - - Returns BitmapValue. - desc_ru: |- - `createBitmap(bitmap)` - создаёт копию изображения. - - `createBitmap(bytes)` - создаёт изображение из массива байт. - - `createBitmap(w, h)` - создаёт новое изображение с заданным размером. - - `createBitmap(w, h, config)` - создаёт новое изображение с заданным размером и конфигурацией. - - `createBitmap(bytes, offset, length)` - создаёт изображение из массива байт, начиная с offset. - - `createBitmap(pixels, w, h, config)` - создаёт изображение из массива пикселей. - - `createBitmap(bitmap, x, y, w, h)` - создаёт изображение из части другого изображения. - - `createBitmap(pixels, offset, stride, w, h, config)` - создаёт изображение из массива пикселей, начиная с offset. - - Возвращает BitmapValue. - example: |- - use http, canvas - - g = showcanvas() - url = "http://lorempixel.com/640/480/nature" - imageBytes = download(url) - bitmap = createBitmap(imageBytes) - g.drawBitmap(bitmap, 0, 0) - repaint() - - name: "createScaledBitmap" - args: "srcBitmap, width, height, filter" - desc: "scales bitmap to size and returns new BitmapValue" - desc_ru: "возвращает BitmapValue с изменённым размером заданного изображения" - - name: "getScreenBitmap" - args: "" - desc: "returns current screen as bitmap" - desc_ru: "возвращает содержимое экрана в виде изображения" - - name: "hidecanvas" - args: "" - desc: "closes canvas screen and releases resources" - desc_ru: "закрывает экран канваса и освобождает ресурсы" - - name: "newPath" - args: "path = null" - desc: "creates new PathValue" - desc_ru: "создаёт новый PathValue" - since: 1.5.1 - - name: "newLinearGradient" - args: "x0, y0, x1, y1, colors|color1, positions|color2, tileMode" - desc: "creates new shader" - desc_ru: "создаёт новый шейдер" - since: 1.5.1 - - name: "newRadialGradient" - args: "cx, cy, radius, colors|color1, positions|color2, tileMode" - desc: "creates new shader" - desc_ru: "создаёт новый шейдер" - since: 1.5.1 - - name: "newSweepGradient" - args: "cx, cy, colors|color1, positions|color2" - desc: "creates new shader" - desc_ru: "создаёт новый шейдер" - since: 1.5.1 - - name: "newBitmapShader" - args: "bitmap, modeX, modeY" - desc: "creates new bitmap shader" - desc_ru: "создаёт новый шейдер из картинки" - since: 1.5.1 - - name: "newComposeShader" - args: "shader1, shader2, mode = SRC_OVER" - desc: "creates new composition shader" - desc_ru: "создаёт новый композитный шейдер" - since: 1.5.1 - - name: "repaint" - args: "" - desc: "" - desc_ru: "" - - name: "setOnKeyDownEvent" - args: "" - desc: "" - desc_ru: "" - - name: "setOnKeyUpEvent" - args: "" - desc: "" - desc_ru: "" - - name: "setOnLongPressEvent" - args: "" - desc: "" - desc_ru: "" - - name: "setOnTouchEvent" - args: "" - desc: "" - desc_ru: "" - - name: "setGestureDetectorListener" - args: "listener" - desc: "sets gesture detector listener" - desc_ru: "устанавливает обработчик детектора жестов" - since: 1.5.1 - - name: "showcanvas" - args: "" - desc: "shows canvas screen and returns GraphicsValue" - desc_ru: "показывает экран канваса и возвращает GraphicsValue" - example: |- - use canvas - g = showcanvas() -types: - - name: "BitmapValue" - functions: - - name: "compress" - args: "" - desc: "" - desc_ru: "" - - name: "copy" - args: "" - desc: "" - desc_ru: "" - - name: "eraseColor" - args: "" - desc: "" - desc_ru: "" - - name: "extractAlpha" - args: "" - desc: "" - desc_ru: "" - - name: "getAllocationByteCount" - args: "" - desc: "" - desc_ru: "" - - name: "getByteCount" - args: "" - desc: "" - desc_ru: "" - - name: "getDensity" - args: "" - desc: "" - desc_ru: "" - - name: "getGraphics" - args: "" - desc: "" - desc_ru: "" - - name: "getWidth" - args: "" - desc: "" - desc_ru: "" - - name: "getHeight" - args: "" - desc: "" - desc_ru: "" - - name: "getRowBytes" - args: "" - desc: "" - desc_ru: "" - - name: "getPixel" - args: "" - desc: "" - desc_ru: "" - - name: "getPixels" - args: "" - desc: "" - desc_ru: "" - - name: "getScaledWidth" - args: "" - desc: "" - desc_ru: "" - - name: "getScaledHeight" - args: "" - desc: "" - desc_ru: "" - - name: "hasAlpha" - args: "" - desc: "" - desc_ru: "" - - name: "hasMipMap" - args: "" - desc: "" - desc_ru: "" - - name: "isMutable" - args: "" - desc: "" - desc_ru: "" - - name: "isPremultiplied" - args: "" - desc: "" - desc_ru: "" - - name: "isRecycled" - args: "" - desc: "" - desc_ru: "" - - name: "prepareToDraw" - args: "" - desc: "" - desc_ru: "" - - name: "recycle" - args: "" - desc: "" - desc_ru: "" - - name: "setPixel" - args: "" - desc: "" - desc_ru: "" - - name: "setPixels" - args: "" - desc: "" - desc_ru: "" - - name: "GraphicsValue" - functions: - - name: "ascent" - args: "" - desc: "" - desc_ru: "" - - name: "breakText" - args: "" - desc: "" - desc_ru: "" - - name: "clearShadowLayer" - args: "" - desc: "" - desc_ru: "" - - name: "clipPath" - args: "path" - desc: "" - desc_ru: "" - since: 1.5.1 - - name: "clipRect" - args: "x, y, w, h, op = 0" - desc: "" - desc_ru: "" - - name: "descent" - args: "" - desc: "" - desc_ru: "" - - name: "drawARGB" - args: "" - desc: "" - desc_ru: "" - - name: "drawArc" - args: "" - desc: "" - desc_ru: "" - - name: "drawBitmap" - args: "" - desc: "" - desc_ru: "" - - name: "drawCircle" - args: "" - desc: "" - desc_ru: "" - - name: "drawColor" - args: "" - desc: "" - desc_ru: "" - - name: "drawLine" - args: "" - desc: "" - desc_ru: "" - - name: "drawOval" - args: "" - desc: "" - desc_ru: "" - - name: "drawPath" - args: "path" - desc: "" - desc_ru: "" - since: 1.5.1 - - name: "drawPoint" - args: "" - desc: "" - desc_ru: "" - - name: "drawRGB" - args: "" - desc: "" - desc_ru: "" - - name: "drawRect" - args: "" - desc: "" - desc_ru: "" - - name: "drawRoundRect" - args: "" - desc: "" - desc_ru: "" - - name: "drawText" - args: "" - desc: "" - desc_ru: "" - - name: "drawTextOnPath" - args: "text, path, hOffset, vOffset" - desc: "" - desc_ru: "" - since: 1.5.1 - - name: "fillCircle" - args: "" - desc: "" - desc_ru: "" - - name: "fillOval" - args: "" - desc: "" - desc_ru: "" - - name: "fillRect" - args: "" - desc: "" - desc_ru: "" - - name: "fillRoundRect" - args: "" - desc: "" - desc_ru: "" - - name: "getAlpha" - args: "" - desc: "" - desc_ru: "" - - name: "getClipBounds" - args: "" - desc: "" - desc_ru: "" - - name: "getColor" - args: "" - desc: "" - desc_ru: "" - - name: "getFillPath" - args: "src, dst" - desc: "" - desc_ru: "" - since: 1.5.1 - - name: "getDensity" - args: "" - desc: "" - desc_ru: "" - - name: "getFlags" - args: "" - desc: "" - desc_ru: "" - - name: "getFontSpacing" - args: "" - desc: "" - desc_ru: "" - - name: "getHeight" - args: "" - desc: "" - desc_ru: "" - - name: "getSaveCount" - args: "" - desc: "" - desc_ru: "" - - name: "getStrokeCap" - args: "" - desc: "" - desc_ru: "" - - name: "getStrokeJoin" - args: "" - desc: "" - desc_ru: "" - - name: "getStrokeMiter" - args: "" - desc: "" - desc_ru: "" - - name: "getStrokeWidth" - args: "" - desc: "" - desc_ru: "" - - name: "getStyle" - args: "" - desc: "" - desc_ru: "" - - name: "getTextAlign" - args: "" - desc: "" - desc_ru: "" - - name: "getTextBounds" - args: "" - desc: "" - desc_ru: "" - - name: "getTextScaleX" - args: "" - desc: "" - desc_ru: "" - - name: "getTextSize" - args: "" - desc: "" - desc_ru: "" - - name: "getTextSkewX" - args: "" - desc: "" - desc_ru: "" - - name: "getTextWidths" - args: "" - desc: "" - desc_ru: "" - - name: "getTypeface" - args: "" - desc: "" - desc_ru: "" - - name: "getWidth" - args: "" - desc: "" - desc_ru: "" - - name: "isAntiAlias" - args: "" - desc: "" - desc_ru: "" - - name: "isDither" - args: "" - desc: "" - desc_ru: "" - - name: "isFakeBoldText" - args: "" - desc: "" - desc_ru: "" - - name: "isFilterBitmap" - args: "" - desc: "" - desc_ru: "" - - name: "isLinearText" - args: "" - desc: "" - desc_ru: "" - - name: "isOpaque" - args: "" - desc: "" - desc_ru: "" - - name: "isStrikeThruText" - args: "" - desc: "" - desc_ru: "" - - name: "isSubpixelText" - args: "" - desc: "" - desc_ru: "" - - name: "isUnderlineText" - args: "" - desc: "" - desc_ru: "" - - name: "measureText" - args: "" - desc: "" - desc_ru: "" - - name: "quickReject" - args: "" - desc: "" - desc_ru: "" - - name: "reset" - args: "" - desc: "" - desc_ru: "" - - name: "restore" - args: "" - desc: "" - desc_ru: "" - - name: "restoreToCount" - args: "" - desc: "" - desc_ru: "" - - name: "rotate" - args: "" - desc: "" - desc_ru: "" - - name: "save" - args: "" - desc: "" - desc_ru: "" - - name: "saveLayer" - args: "" - desc: "" - desc_ru: "" - - name: "saveLayerAlpha" - args: "" - desc: "" - desc_ru: "" - - name: "scale" - args: "" - desc: "" - desc_ru: "" - - name: "setAlpha" - args: "" - desc: "" - desc_ru: "" - - name: "setAntiAlias" - args: "" - desc: "" - desc_ru: "" - - name: "setBitmap" - args: "" - desc: "" - desc_ru: "" - - name: "setColor" - args: "" - desc: "" - desc_ru: "" - - name: "setDensity" - args: "" - desc: "" - desc_ru: "" - - name: "setDither" - args: "" - desc: "" - desc_ru: "" - - name: "setFakeBoldText" - args: "" - desc: "" - desc_ru: "" - - name: "setFilterBitmap" - args: "" - desc: "" - desc_ru: "" - - name: "setFlags" - args: "" - desc: "" - desc_ru: "" - - name: "setLinearText" - args: "" - desc: "" - desc_ru: "" - - name: "setShader" - args: "shader" - desc: "" - desc_ru: "" - since: 1.5.1 - - name: "setShadowLayer" - args: "radius, dx, dy, shadowColor" - desc: "" - desc_ru: "" - - name: "setStrikeThruText" - args: "isEnabled" - desc: "" - desc_ru: "" - - name: "setStrokeCap" - args: "cap" - desc: "" - desc_ru: "" - - name: "setStrokeJoin" - args: "join" - desc: "" - desc_ru: "" - - name: "setStrokeMiter" - args: "miter" - desc: "" - desc_ru: "" - - name: "setStrokeWidth" - args: "" - desc: "" - desc_ru: "" - - name: "setStyle" - args: "" - desc: "" - desc_ru: "" - - name: "setSubpixelText" - args: "" - desc: "" - desc_ru: "" - - name: "setTextAlign" - args: "" - desc: "" - desc_ru: "" - - name: "setTextScaleX" - args: "" - desc: "" - desc_ru: "" - - name: "setTextSize" - args: "" - desc: "" - desc_ru: "" - - name: "setTextSkewX" - args: "" - desc: "" - desc_ru: "" - - name: "setTypeface" - args: "" - desc: "" - desc_ru: "" - - name: "setUnderlineText" - args: "" - desc: "" - desc_ru: "" - - name: "skew" - args: "" - desc: "" - desc_ru: "" - - name: "strokeCircle" - args: "" - desc: "" - desc_ru: "" - - name: "strokeOval" - args: "" - desc: "" - desc_ru: "" - - name: "strokeRect" - args: "" - desc: "" - desc_ru: "" - - name: "strokeRoundRect" - args: "" - desc: "" - desc_ru: "" - - name: "translate" - args: "" - desc: "" - desc_ru: "" \ No newline at end of file diff --git a/docs/src/modules/canvasfx.yml b/docs/src/modules/canvasfx.yml deleted file mode 100644 index 4e97a63d..00000000 --- a/docs/src/modules/canvasfx.yml +++ /dev/null @@ -1,417 +0,0 @@ -name: canvasfx -scope: "desktop" -desc: "Contains functions for working with Java FX graphics" -desc_ru: "Содержит функции для работы с графикой Java FX" -constants: - - name: "ArcType" - typeName: map - type: 4 - value: "{OPEN=0, CHORD=1, ROUND=2}" - - name: "BlendMode" - typeName: map - type: 4 - value: "{SRC_OVER=0, SRC_ATOP=1, ADD=2, MULTIPLY=3, SCREEN=4, OVERLAY=5, DARKEN=6, LIGHTEN=7, COLOR_DODGE=8, COLOR_BURN=9, HARD_LIGHT=10, SOFT_LIGHT=11, DIFFERENCE=12, EXCLUSION=13, RED=14, GREEN=15, BLUE=16}" - - name: "Color" - typeName: map - type: 4 - value: "{hsb=def(hue,saturation,brightness,opacity=1.0), new=def(rgb) def(r,g,b,opacity=1.0), rgb=def(r,g,b,opacity=1.0), web=def(name,opacity=1.0, ALICEBLUE=ColorValue 0xf0f8ffff, ANTIQUEWHITE=ColorValue 0xfaebd7ff, AQUA=ColorValue 0x00ffffff, AQUAMARINE=ColorValue 0x7fffd4ff, AZURE=ColorValue 0xf0ffffff, BEIGE=ColorValue 0xf5f5dcff, BISQUE=ColorValue 0xffe4c4ff, BLACK=ColorValue 0x000000ff, BLANCHEDALMOND=ColorValue 0xffebcdff, BLUE=ColorValue 0x0000ffff, BLUEVIOLET=ColorValue 0x8a2be2ff, BROWN=ColorValue 0xa52a2aff, BURLYWOOD=ColorValue 0xdeb887ff, CADETBLUE=ColorValue 0x5f9ea0ff, CHARTREUSE=ColorValue 0x7fff00ff, CHOCOLATE=ColorValue 0xd2691eff, CORAL=ColorValue 0xff7f50ff, CORNFLOWERBLUE=ColorValue 0x6495edff, CORNSILK=ColorValue 0xfff8dcff, CRIMSON=ColorValue 0xdc143cff, CYAN=ColorValue 0x00ffffff, DARKBLUE=ColorValue 0x00008bff, DARKCYAN=ColorValue 0x008b8bff, DARKGOLDENROD=ColorValue 0xb8860bff, DARKGRAY=ColorValue 0xa9a9a9ff, DARKGREEN=ColorValue 0x006400ff, DARKGREY=ColorValue 0xa9a9a9ff, DARKKHAKI=ColorValue 0xbdb76bff, DARKMAGENTA=ColorValue 0x8b008bff, DARKOLIVEGREEN=ColorValue 0x556b2fff, DARKORANGE=ColorValue 0xff8c00ff, DARKORCHID=ColorValue 0x9932ccff, DARKRED=ColorValue 0x8b0000ff, DARKSALMON=ColorValue 0xe9967aff, DARKSEAGREEN=ColorValue 0x8fbc8fff, DARKSLATEBLUE=ColorValue 0x483d8bff, DARKSLATEGRAY=ColorValue 0x2f4f4fff, DARKSLATEGREY=ColorValue 0x2f4f4fff, DARKTURQUOISE=ColorValue 0x00ced1ff, DARKVIOLET=ColorValue 0x9400d3ff, DEEPPINK=ColorValue 0xff1493ff, DEEPSKYBLUE=ColorValue 0x00bfffff, DIMGRAY=ColorValue 0x696969ff, DIMGREY=ColorValue 0x696969ff, DODGERBLUE=ColorValue 0x1e90ffff, FIREBRICK=ColorValue 0xb22222ff, FLORALWHITE=ColorValue 0xfffaf0ff, FORESTGREEN=ColorValue 0x228b22ff, FUCHSIA=ColorValue 0xff00ffff, GAINSBORO=ColorValue 0xdcdcdcff, GHOSTWHITE=ColorValue 0xf8f8ffff, GOLD=ColorValue 0xffd700ff, GOLDENROD=ColorValue 0xdaa520ff, GRAY=ColorValue 0x808080ff, GREEN=ColorValue 0x008000ff, GREENYELLOW=ColorValue 0xadff2fff, GREY=ColorValue 0x808080ff, HONEYDEW=ColorValue 0xf0fff0ff, HOTPINK=ColorValue 0xff69b4ff, INDIANRED=ColorValue 0xcd5c5cff, INDIGO=ColorValue 0x4b0082ff, IVORY=ColorValue 0xfffff0ff, KHAKI=ColorValue 0xf0e68cff, LAVENDER=ColorValue 0xe6e6faff, LAVENDERBLUSH=ColorValue 0xfff0f5ff, LAWNGREEN=ColorValue 0x7cfc00ff, LEMONCHIFFON=ColorValue 0xfffacdff, LIGHTBLUE=ColorValue 0xadd8e6ff, LIGHTCORAL=ColorValue 0xf08080ff, LIGHTCYAN=ColorValue 0xe0ffffff, LIGHTGOLDENRODYELLOW=ColorValue 0xfafad2ff, LIGHTGRAY=ColorValue 0xd3d3d3ff, LIGHTGREEN=ColorValue 0x90ee90ff, LIGHTGREY=ColorValue 0xd3d3d3ff, LIGHTPINK=ColorValue 0xffb6c1ff, LIGHTSALMON=ColorValue 0xffa07aff, LIGHTSEAGREEN=ColorValue 0x20b2aaff, LIGHTSKYBLUE=ColorValue 0x87cefaff, LIGHTSLATEGRAY=ColorValue 0x778899ff, LIGHTSLATEGREY=ColorValue 0x778899ff, LIGHTSTEELBLUE=ColorValue 0xb0c4deff, LIGHTYELLOW=ColorValue 0xffffe0ff, LIME=ColorValue 0x00ff00ff, LIMEGREEN=ColorValue 0x32cd32ff, LINEN=ColorValue 0xfaf0e6ff, MAGENTA=ColorValue 0xff00ffff, MAROON=ColorValue 0x800000ff, MEDIUMAQUAMARINE=ColorValue 0x66cdaaff, MEDIUMBLUE=ColorValue 0x0000cdff, MEDIUMORCHID=ColorValue 0xba55d3ff, MEDIUMPURPLE=ColorValue 0x9370dbff, MEDIUMSEAGREEN=ColorValue 0x3cb371ff, MEDIUMSLATEBLUE=ColorValue 0x7b68eeff, MEDIUMSPRINGGREEN=ColorValue 0x00fa9aff, MEDIUMTURQUOISE=ColorValue 0x48d1ccff, MEDIUMVIOLETRED=ColorValue 0xc71585ff, MIDNIGHTBLUE=ColorValue 0x191970ff, MINTCREAM=ColorValue 0xf5fffaff, MISTYROSE=ColorValue 0xffe4e1ff, MOCCASIN=ColorValue 0xffe4b5ff, NAVAJOWHITE=ColorValue 0xffdeadff, NAVY=ColorValue 0x000080ff, OLDLACE=ColorValue 0xfdf5e6ff, OLIVE=ColorValue 0x808000ff, OLIVEDRAB=ColorValue 0x6b8e23ff, ORANGE=ColorValue 0xffa500ff, ORANGERED=ColorValue 0xff4500ff, ORCHID=ColorValue 0xda70d6ff, PALEGOLDENROD=ColorValue 0xeee8aaff, PALEGREEN=ColorValue 0x98fb98ff, PALETURQUOISE=ColorValue 0xafeeeeff, PALEVIOLETRED=ColorValue 0xdb7093ff, PAPAYAWHIP=ColorValue 0xffefd5ff, PEACHPUFF=ColorValue 0xffdab9ff, PERU=ColorValue 0xcd853fff, PINK=ColorValue 0xffc0cbff, PLUM=ColorValue 0xdda0ddff, POWDERBLUE=ColorValue 0xb0e0e6ff, PURPLE=ColorValue 0x800080ff, RED=ColorValue 0xff0000ff, ROSYBROWN=ColorValue 0xbc8f8fff, ROYALBLUE=ColorValue 0x4169e1ff, SADDLEBROWN=ColorValue 0x8b4513ff, SALMON=ColorValue 0xfa8072ff, SANDYBROWN=ColorValue 0xf4a460ff, SEAGREEN=ColorValue 0x2e8b57ff, SEASHELL=ColorValue 0xfff5eeff, SIENNA=ColorValue 0xa0522dff, SILVER=ColorValue 0xc0c0c0ff, SKYBLUE=ColorValue 0x87ceebff, SLATEBLUE=ColorValue 0x6a5acdff, SLATEGRAY=ColorValue 0x708090ff, SLATEGREY=ColorValue 0x708090ff, SNOW=ColorValue 0xfffafaff, SPRINGGREEN=ColorValue 0x00ff7fff, STEELBLUE=ColorValue 0x4682b4ff, TAN=ColorValue 0xd2b48cff, TEAL=ColorValue 0x008080ff, THISTLE=ColorValue 0xd8bfd8ff, TOMATO=ColorValue 0xff6347ff, TRANSPARENT=ColorValue 0x00000000, TURQUOISE=ColorValue 0x40e0d0ff, VIOLET=ColorValue 0xee82eeff, WHEAT=ColorValue 0xf5deb3ff, WHITE=ColorValue 0xffffffff, WHITESMOKE=ColorValue 0xf5f5f5ff, YELLOW=ColorValue 0xffff00ff, YELLOWGREEN=ColorValue 0x9acd32ff}" - - name: "Events" - typeName: map - type: 4 - value: "{DRAG_DETECTED=0, MOUSE_CLICKED=1, MOUSE_DRAGGED=2, MOUSE_ENTERED=3, MOUSE_ENTERED_TARGET=4, MOUSE_EXITED=5, MOUSE_EXITED_TARGET=6, MOUSE_MOVED=7, MOUSE_PRESSED=8, MOUSE_RELEASED=9, KEY_PRESSED=10, KEY_RELEASED=11, KEY_TYPED=12, SWIPE_DOWN=13, SWIPE_LEFT=14, SWIPE_RIGHT=15, SWIPE_UP=16}" - - name: "FillRule" - typeName: map - type: 4 - value: "{EVEN_ODD=0, NON_ZERO=1}" - - name: "KeyCode" - typeName: map - type: 4 - value: "{A=36, ACCEPT=158, ADD=76, AGAIN=180, ALL_CANDIDATES=168, ALPHANUMERIC=162, ALT=7, ALT_GRAPH=185, AMPERSAND=134, ASTERISK=135, AT=141, B=37, BACK_QUOTE=112, BACK_SLASH=63, BACK_SPACE=1, BEGIN=186, BRACELEFT=139, BRACERIGHT=140, C=38, CANCEL=3, CAPS=9, CHANNEL_DOWN=218, CHANNEL_UP=217, CIRCUMFLEX=143, CLEAR=4, CLOSE_BRACKET=64, CODE_INPUT=170, COLON=142, COLORED_KEY_0=206, COLORED_KEY_1=207, COLORED_KEY_2=208, COLORED_KEY_3=209, COMMA=20, COMMAND=222, COMPOSE=184, CONTEXT_MENU=154, CONTROL=6, CONVERT=156, COPY=177, CUT=176, D=39, DEAD_ABOVEDOT=124, DEAD_ABOVERING=126, DEAD_ACUTE=119, DEAD_BREVE=123, DEAD_CARON=128, DEAD_CEDILLA=129, DEAD_CIRCUMFLEX=120, DEAD_DIAERESIS=125, DEAD_DOUBLEACUTE=127, DEAD_GRAVE=118, DEAD_IOTA=131, DEAD_MACRON=122, DEAD_OGONEK=130, DEAD_SEMIVOICED_SOUND=133, DEAD_TILDE=121, DEAD_VOICED_SOUND=132, DECIMAL=79, DELETE=81, DIGIT0=24, DIGIT1=25, DIGIT2=26, DIGIT3=27, DIGIT4=28, DIGIT5=29, DIGIT6=30, DIGIT7=31, DIGIT8=32, DIGIT9=33, DIVIDE=80, DOLLAR=144, DOWN=19, E=40, EJECT_TOGGLE=210, END=14, ENTER=0, EQUALS=35, ESCAPE=10, EURO_SIGN=145, EXCLAMATION_MARK=146, F=41, F1=84, F10=93, F11=94, F12=95, F13=96, F14=97, F15=98, F16=99, F17=100, F18=101, F19=102, F2=85, F20=103, F21=104, F22=105, F23=106, F24=107, F3=86, F4=87, F5=88, F6=89, F7=90, F8=91, F9=92, FAST_FWD=213, FINAL=155, FIND=181, FULL_WIDTH=165, G=42, GAME_A=198, GAME_B=199, GAME_C=200, GAME_D=201, GREATER=138, H=43, HALF_WIDTH=166, HELP=110, HIRAGANA=164, HOME=15, I=44, INFO=205, INPUT_METHOD_ON_OFF=175, INSERT=109, INVERTED_EXCLAMATION_MARK=147, J=45, JAPANESE_HIRAGANA=172, JAPANESE_KATAKANA=171, JAPANESE_ROMAN=173, K=46, KANA=160, KANA_LOCK=174, KANJI=161, KATAKANA=163, KP_DOWN=115, KP_LEFT=116, KP_RIGHT=117, KP_UP=114, L=47, LEFT=16, LEFT_PARENTHESIS=148, LESS=137, M=48, META=111, MINUS=21, MODECHANGE=159, MULTIPLY=75, MUTE=221, N=49, NONCONVERT=157, NUMBER_SIGN=149, NUMPAD0=65, NUMPAD1=66, NUMPAD2=67, NUMPAD3=68, NUMPAD4=69, NUMPAD5=70, NUMPAD6=71, NUMPAD7=72, NUMPAD8=73, NUMPAD9=74, NUM_LOCK=82, O=50, OPEN_BRACKET=62, P=51, PAGE_DOWN=13, PAGE_UP=12, PASTE=178, PAUSE=8, PERIOD=22, PLAY=211, PLUS=150, POUND=203, POWER=204, PREVIOUS_CANDIDATE=169, PRINTSCREEN=108, PROPS=182, Q=52, QUOTE=113, QUOTEDBL=136, R=53, RECORD=212, REWIND=214, RIGHT=18, RIGHT_PARENTHESIS=151, ROMAN_CHARACTERS=167, S=54, SCROLL_LOCK=83, SEMICOLON=34, SEPARATOR=77, SHIFT=5, SHORTCUT=223, SLASH=23, SOFTKEY_0=188, SOFTKEY_1=189, SOFTKEY_2=190, SOFTKEY_3=191, SOFTKEY_4=192, SOFTKEY_5=193, SOFTKEY_6=194, SOFTKEY_7=195, SOFTKEY_8=196, SOFTKEY_9=197, SPACE=11, STAR=202, STOP=183, SUBTRACT=78, T=55, TAB=2, TRACK_NEXT=216, TRACK_PREV=215, U=56, UNDEFINED=187, UNDERSCORE=152, UNDO=179, UP=17, V=57, VOLUME_DOWN=220, VOLUME_UP=219, W=58, WINDOWS=153, X=59, Y=60, Z=61}" - - name: "MouseButton" - typeName: map - type: 4 - value: "{NONE=0, PRIMARY=1, MIDDLE=2, SECONDARY=3}" - - name: "StrokeLineCap" - typeName: map - type: 4 - value: "{SQUARE=0, BUTT=1, ROUND=2}" - - name: "StrokeLineJoin" - typeName: map - type: 4 - value: "{MITER=0, BEVEL=1, ROUND=2}" - - name: "TextAlignment" - typeName: map - type: 4 - value: "{LEFT=0, CENTER=1, RIGHT=2, JUSTIFY=3}" - - name: "VPos" - typeName: map - type: 4 - value: "{TOP=0, CENTER=1, BASELINE=2, BOTTOM=3}" -functions: - - name: "BlendEffect" - args: "" - desc: "" - desc_ru: "" - - name: "BloomEffect" - args: "" - desc: "" - desc_ru: "" - - name: "BoxBlurEffect" - args: "" - desc: "" - desc_ru: "" - - name: "ColorAdjustEffect" - args: "" - desc: "" - desc_ru: "" - - name: "ColorInputEffect" - args: "" - desc: "" - desc_ru: "" - - name: "DropShadowEffect" - args: "" - desc: "" - desc_ru: "" - - name: "GaussianBlurEffect" - args: "" - desc: "" - desc_ru: "" - - name: "GlowEffect" - args: "" - desc: "" - desc_ru: "" - - name: "InnerShadowEffect" - args: "" - desc: "" - desc_ru: "" - - name: "LightingEffect" - args: "" - desc: "" - desc_ru: "" - - name: "MotionBlurEffect" - args: "" - desc: "" - desc_ru: "" - - name: "PerspectiveTransformEffect" - args: "" - desc: "" - desc_ru: "" - - name: "ReflectionEffect" - args: "" - desc: "" - desc_ru: "" - - name: "SepiaToneEffect" - args: "" - desc: "" - desc_ru: "" - - name: "ShadowEffect" - args: "" - desc: "" - desc_ru: "" - - name: "addEventFilter" - args: "" - desc: "" - desc_ru: "" - - name: "addEventHandler" - args: "" - desc: "" - desc_ru: "" - - name: "createImage" - args: "..." - desc: |- - `createImage(url)` - creates an image from url. - - `createImage(w, h)` - creates an image with the given size. - - `createBitmap(w, h, pixels)` - creates an image from pixels array. - - Returns ImageFXValue. - desc_ru: |- - `createImage(url)` - создаёт изображение из пути к ресурсу. - - `createImage(w, h)` - создаёт новое изображение с заданным размером. - - `createBitmap(w, h, pixels)` - создаёт изображение из массива пикселей. - - Возвращает ImageFXValue. - example: |- - use canvasfx - - g = showcanvas() - url = "http://lorempixel.com/640/480/nature" - bitmap = createImage(url) - g.drawBitmap(bitmap, 0, 0) - bitmap = createImage("file:image.png") - g.drawBitmap(bitmap, 200, 0) - - name: "repaint" - args: "" - desc: "" - desc_ru: "" - - name: "window" - args: "" - desc: "" - desc_ru: "" -types: - - name: "ColorValue" - - name: "EffectValue" - - name: "GraphicsFXValue" - functions: - - name: "appendSVGPath" - args: "" - desc: "" - desc_ru: "" - - name: "applyEffect" - args: "" - desc: "" - desc_ru: "" - - name: "arc" - args: "" - desc: "" - desc_ru: "" - - name: "arcTo" - args: "" - desc: "" - desc_ru: "" - - name: "beginPath" - args: "" - desc: "" - desc_ru: "" - - name: "bezierCurveTo" - args: "" - desc: "" - desc_ru: "" - - name: "clearRect" - args: "" - desc: "" - desc_ru: "" - - name: "clip" - args: "" - desc: "" - desc_ru: "" - - name: "closePath" - args: "" - desc: "" - desc_ru: "" - - name: "fill" - args: "" - desc: "" - desc_ru: "" - - name: "fillArc" - args: "" - desc: "" - desc_ru: "" - - name: "fillOval" - args: "" - desc: "" - desc_ru: "" - - name: "fillPolygon" - args: "" - desc: "" - desc_ru: "" - - name: "fillRect" - args: "" - desc: "" - desc_ru: "" - - name: "fillRoundRect" - args: "" - desc: "" - desc_ru: "" - - name: "fillText" - args: "" - desc: "" - desc_ru: "" - - name: "getFill" - args: "" - desc: "" - desc_ru: "" - - name: "getFillRule" - args: "" - desc: "" - desc_ru: "" - - name: "getGlobalAlpha" - args: "" - desc: "" - desc_ru: "" - - name: "getGlobalBlendMode" - args: "" - desc: "" - desc_ru: "" - - name: "getLineCap" - args: "" - desc: "" - desc_ru: "" - - name: "getLineJoin" - args: "" - desc: "" - desc_ru: "" - - name: "getLineWidth" - args: "" - desc: "" - desc_ru: "" - - name: "getMiterLimit" - args: "" - desc: "" - desc_ru: "" - - name: "getStroke" - args: "" - desc: "" - desc_ru: "" - - name: "getTextAlign" - args: "" - desc: "" - desc_ru: "" - - name: "getTextBaseline" - args: "" - desc: "" - desc_ru: "" - - name: "isPointInPath" - args: "" - desc: "" - desc_ru: "" - - name: "lineTo" - args: "" - desc: "" - desc_ru: "" - - name: "moveTo" - args: "" - desc: "" - desc_ru: "" - - name: "quadraticCurveTo" - args: "" - desc: "" - desc_ru: "" - - name: "rect" - args: "" - desc: "" - desc_ru: "" - - name: "restore" - args: "" - desc: "" - desc_ru: "" - - name: "rotate" - args: "" - desc: "" - desc_ru: "" - - name: "save" - args: "" - desc: "" - desc_ru: "" - - name: "scale" - args: "" - desc: "" - desc_ru: "" - - name: "setEffect" - args: "" - desc: "" - desc_ru: "" - - name: "setFill" - args: "" - desc: "" - desc_ru: "" - - name: "setFillRule" - args: "" - desc: "" - desc_ru: "" - - name: "setGlobalAlpha" - args: "" - desc: "" - desc_ru: "" - - name: "setGlobalBlendMode" - args: "" - desc: "" - desc_ru: "" - - name: "setLineCap" - args: "" - desc: "" - desc_ru: "" - - name: "setLineJoin" - args: "" - desc: "" - desc_ru: "" - - name: "setLineWidth" - args: "" - desc: "" - desc_ru: "" - - name: "setMiterLimit" - args: "" - desc: "" - desc_ru: "" - - name: "setStroke" - args: "" - desc: "" - desc_ru: "" - - name: "setTextAlign" - args: "" - desc: "" - desc_ru: "" - - name: "setTextBaseline" - args: "" - desc: "" - desc_ru: "" - - name: "stroke" - args: "" - desc: "" - desc_ru: "" - - name: "strokeArc" - args: "" - desc: "" - desc_ru: "" - - name: "strokeLine" - args: "x1, y1, x2, y2" - desc: "" - desc_ru: "" - - name: "strokeOval" - args: "" - desc: "" - desc_ru: "" - - name: "strokePolygon" - args: "" - desc: "" - desc_ru: "" - - name: "strokePolyline" - args: "" - desc: "" - desc_ru: "" - - name: "strokeRect" - args: "" - desc: "" - desc_ru: "" - - name: "strokeRoundRect" - args: "" - desc: "" - desc_ru: "" - - name: "strokeText" - args: "" - desc: "" - desc_ru: "" - - name: "transform" - args: "" - desc: "" - desc_ru: "" - - name: "translate" - args: "" - desc: "" - desc_ru: "" - - name: "ImageFXValue" - constants: - - name: "width" - typeName: number - type: 1 - value: "/*width of the image*/" - - name: "height" - typeName: number - type: 1 - value: "/*height of the image*/" - - name: "preserveRatio" - typeName: number - type: 1 - value: "/*is preserve ratio*/" - - name: "smooth" - typeName: number - type: 1 - value: "/*is smooth*/" - functions: - - name: "getPixels" - args: "" - desc: "returns pixels array of the image" - desc_ru: "возвращает массив пикселей изображения" \ No newline at end of file diff --git a/docs/src/modules/collections.yml b/docs/src/modules/collections.yml deleted file mode 100644 index 07f37667..00000000 --- a/docs/src/modules/collections.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: collections -scope: both -desc: Contains functions for working with collections -desc_ru: Содержит функции для работы с коллекциями -since: 2.0.0 -functions: - - name: hashMap - args: "fromMap = {}" - desc: creates a new HashMap based on `fromMap` values - desc_ru: создаёт новый HashMap из значений `fromMap` - - name: linkedHashMap - args: "fromMap = {}" - desc: creates a new LinkedHashMap based on `fromMap` values - desc_ru: создаёт новый LinkedHashMap из значений `fromMap` - - name: concurrentHashMap - args: "fromMap = {}" - desc: creates a new ConcurrentHashMap based on `fromMap` values - desc_ru: создаёт новый ConcurrentHashMap из значений `fromMap` - - name: treeMap - args: "fromMap = {}, comparator = def(a, b) = 0" - desc: creates a new TreeMap based on `fromMap` values and `comparator` - desc_ru: создаёт новый TreeMap из значений `fromMap` и компаратора `comparator` - - name: concurrentSkipListMap - args: "fromMap = {}, comparator = def(a, b) = 0" - desc: creates a new ConcurrentSkipListMap based on `fromMap` values and `comparator` - desc_ru: создаёт новый ConcurrentSkipListMap из значений `fromMap` и компаратора `comparator` diff --git a/docs/src/modules/date.yml b/docs/src/modules/date.yml deleted file mode 100644 index 7614ffc5..00000000 --- a/docs/src/modules/date.yml +++ /dev/null @@ -1,107 +0,0 @@ -name: date -scope: "both" -desc: "Contains functions for working with date and time" -desc_ru: "Содержит функции для работы с датой и временем" -constants: - - name: "STYLE_FULL" - typeName: number - type: 1 - value: "0" - - name: "STYLE_LONG" - typeName: number - type: 1 - value: "1" - - name: "STYLE_MEDIUM" - typeName: number - type: 1 - value: "2" - - name: "STYLE_SHORT" - typeName: number - type: 1 - value: "3" -functions: - - name: "newDate" - args: "..." - desc: |- - `newDate()` - returns current date. - - `newDate(timestamp)` - returns date by given timestamp. - - `newDate(dateString)` - parses and returns date by given string. - - `newDate(pattern, dateString)` - parses and returns date by given string in `pattern` format. - - `newDate(year, month, day)` - returns date by year, month and day. - - `newDate(year, month, day, hour, minute)` - returns date by year, month, day, hour and minute. - - `newDate(year, month, day, hour, minute, second)` - returns date by year, month, day, hour, minute and second. - - Returns DateValue. - desc_ru: |- - `newDate()` - возвращает текущую дату. - - `newDate(timestamp)` - возвращает дату для указанной метки времени. - - `newDate(dateString)` - парсит и возвращает дату, записанную в виде строки. - - `newDate(pattern, dateString)` - парсит и возвращает дату, записанную в виде строки в формате `pattern`. - - `newDate(year, month, day)` - возвращает дату для указанных года, месяца и дня. - - `newDate(year, month, day, hour, minute)` - возвращает дату для указанных года, месяца, дня, часа и минуты. - - `newDate(year, month, day, hour, minute, second)` - возвращает дату для указанных года, месяца, дня, часа, минуты и секунды. - - Возвращает DateValue. - - name: "newFormat" - args: "..." - desc: |- - `newFormat()` - returns default date format. - - `newFormat(pattern)` - returns date format by given pattern. - - `newFormat(type)` - returns format: 0 - default, 1 - date, 2 - time, 3 - date and time. - - `newFormat(pattern, locale)` - returns date format by given pattern and locale. - - `newFormat(type, style)` - returns format: 0 - default, 1 - date, 2 - time, 3 - date and time. `style`: 0 - full, 1 - long, 2 - medium, 3 - short. - - Returns DateFormatValue. - desc_ru: |- - `newFormat()` - возвращает формат даты по умолчанию. - - `newFormat(pattern)` - возвращает формат с указанным шаблоном. - - `newFormat(type)` - возвращает формат: 0 - по умолчанию, 1 - для даты, 2 - для времени, 3 - для времени и даты. - - `newFormat(pattern, locale)` - возвращает формат для указанного шаблона в заданной локализации. - - `newFormat(type, style)` - возвращает формат: 0 - по умолчанию, 1 - для даты, 2 - для времени, 3 - для времени и даты. `style`: 0 - полный, 1 - длинный, 2 - средний, 3 - короткий. - - Возвращает DateFormatValue. - - name: "formatDate" - args: "date, format = default" - desc: formats date by given format and returns string - desc_ru: форматирует дату в указанном формате и возвращает строку - example: |- - use date - - d = newDate(2016, 4, 8) - println formatDate(d, newFormat("yyyy/MM/dd")) // "2016/05/08" - - name: "parseDate" - args: "dateString, format = default" - desc: parses date from string by given pattern. Returns DateValue - desc_ru: парсит дату из строки в указанном шаблоне. Возвращает DateValue - example: |- - use date - - println parseDate("2016/05/08", newFormat("yyyy/MM/dd")) - - name: "toTimestamp" - args: "date" - desc: returns timestamp in milliseconds - desc_ru: возвращает время в миллисекундах -types: - - name: "DateValue" - value: "year, month, day, hour, minute, second, millisecond" - - name: "DateFormatValue" \ No newline at end of file diff --git a/docs/src/modules/downloader.yml b/docs/src/modules/downloader.yml deleted file mode 100644 index 64410d3b..00000000 --- a/docs/src/modules/downloader.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: downloader -scope: both -desc: "Contains functions for downloading large files" -desc_ru: "Содержит функции для скачивания больших файлов" -functions: - - name: getContentLength - args: 'url' - desc: 'gets content length by sending HEAD request to the given url' - desc_ru: 'получает значение заголовка Content-Length путём отправки HEAD-запроса на указанный url' - - name: downloader - args: 'downloadUrl, filePath, progressCallback = def() {}, bufferSize = 16384' - desc: 'downloads file from `downloadUrl` to `filePath`' - desc_ru: 'скачивает файл по адресу `downloadUrl` и сохраняет в `filePath`' - example: |- - use downloader, std - - MBYTES = 1048576.0 // 1024*1024 - url = "http://www.ovh.net/files/10Mb.dat" - file = "10Mb.dat" - - downloader(url, file, def(progress, bytesDownloaded, bytesMax) { - bar = "#" * (progress / 2) - print sprintf("%-50s %d%% %.2f / %.2f MiB\\r", bar, progress, bytesDownloaded / MBYTES, bytesMax / MBYTES) - }) \ No newline at end of file diff --git a/docs/src/modules/files.yml b/docs/src/modules/files.yml deleted file mode 100644 index 684e9d8d..00000000 --- a/docs/src/modules/files.yml +++ /dev/null @@ -1,288 +0,0 @@ -name: files -scope: "both" -desc: "Contains functions for working with files" -desc_ru: "Содержит функции для работы с файлами" -constants: - - name: "FILES_COMPARATOR" - typeName: "function" - scope: "both" - type: 5 - value: "def(f1, f2) = compare(f1, f2)" - desc: "function which compares two file descriptors" - desc_ru: "функция, которая сравнивает два файловых дескриптора" - - name: "SDCARD" - typeName: string - scope: "android" - type: 2 - value: "path to SDCARD" - desc: "path to SDCARD" - desc_ru: "путь к внешнему хранилищу" -functions: - - name: "canExecute" - args: "f" - desc: "checks execute permission of the descriptor `f`" - desc_ru: "проверяет права на выполнение дескриптора `f`" - - name: "canRead" - args: "f" - desc: "checks read permission of the descriptor `f`" - desc_ru: "проверяет права на чтение дескриптора `f`" - - name: "canWrite" - args: "f" - desc: "checks write permission of the descriptor `f`" - desc_ru: "проверяет права на запись дескриптора `f`" - - name: copy - args: 'src, dst' - desc: 'copies file src to dst location' - desc_ru: 'копирует файл src в dst' - - name: "delete" - args: "f" - desc: "removes file or directory. Returns 1 if delete was successfull, 0 otherwise" - desc_ru: "удаляет файл или папку. Возвращает 1, если удаление прошло успешно, иначе - 0" - - name: "exists" - args: "f" - desc: "checks file or directory existing. Returns 1 if exists, 0 otherwise" - desc_ru: "проверяет, существует ли файл или папка. Возвращает 1, если существует, иначе - 0" - - name: "fclose" - args: "f" - desc: "closes file" - desc_ru: "закрывает файл" - - name: "fileSize" - args: "f" - desc: "returns file size in bytes" - desc_ru: "возвращает размер файла в байтах" - - name: "flush" - args: "f" - desc: "flushes write buffer into file" - desc_ru: "сбрасывает буфер записи в файл" - - name: "fopen" - args: "path, mode = \"r\"" - desc: |- - opens file файл with `path` in given `mode`: - - - "" - opens file or directory for getting info; - - "r" - opens file for read in text mode; - - "rb" - opens file for read in binary mode; - - "w" - opens file for write in text mode; - - "w+" - opens file for append in text mode; - - "wb" - opens file for write in binary mode; - - "wb+" - opens file for append in binary mode. - - Returns a file descriptor for using in other functions. - desc_ru: |- - открывает файл по пути `path` в заданном режиме `mode`: - - - "" - открывает файл или папку для получения информации; - - "r" - открывает файл для чтения в текстовом режиме; - - "rb" - открывает файл для чтения в бинарном режиме; - - "w" - открывает файл для записи в текстовом режиме; - - "w+" - открывает файл для дозаписи в текстовом режиме; - - "wb" - открывает файл для записи в бинарном режиме; - - "wb+" - открывает файл для дозаписи в бинарном режиме. - - Возвращает дескриптор файла, который необходим для остальных функций. - example: |- - use files - - f1 = fopen("text.txt") // opens file text.txt for read in text mode - f2 = fopen("E:/1.dat", "rbwb") // opens file 1.dat on drive E for binary read and write" - example_ru: |- - use files - - f1 = fopen("text.txt") // открывает файл text.txt для текстового чтения - f2 = fopen("E:/1.dat", "rbwb") // открывает файл 1.dat на диске E для бинарного чтения и записи" - - name: "getParent" - args: "f" - desc: "returns parent path of the given descriptor `f`" - desc_ru: "возвращает родительский путь для заданного дескриптора `f`" - - name: "isDirectory" - args: "f" - desc: "checks if descriptor `f` is directory" - desc_ru: "проверяет, является ли дескриптор `f` папкой. 1 - является, 0 - нет" - - name: "isFile" - args: "f" - desc: "checks if descriptor `f` is file" - desc_ru: "проверяет, является ли дескриптор f файлом. 1 - является, 0 - нет" - - name: "isHidden" - args: "f" - desc: "checks if descriptor `f` is hidden" - desc_ru: "проверяет, скрыт ли дескриптор f. 1 - скрыт, 0 - нет" - - name: "lastModified" - args: "f" - desc: "returns last modification time" - desc_ru: "возвращает время последнего изменения" - - name: "listFiles" - args: "f" - desc: "returns array with filenames in given directory.\n\n f - directory descriptor" - desc_ru: "возвращает массив с именами файлов в указанной директории.\n\n f - дескриптор папки" - example: |- - use files - - f1 = fopen("E:/examples", "") // opens directory examples for getting information - list = listFiles(f1) // gets array with filenames in directory - example_ru: |- - use files - - f1 = fopen("E:/examples", "") // открыть папку examples для получения информации - list = listFiles(f1) // получить массив с именами файлов в этой папке - - name: "mkdir" - args: "f" - desc: "creates the directory. Returns 1 if operation was successfull, 0 otherwise" - desc_ru: "создаёт папку. Возвращает 1, если создание прошло успешно, иначе - 0" - - name: "mkdirs" - args: "f" - desc: "creates the directories. Returns 1 if operation was successfull, 0 otherwise" - desc_ru: "создаёт папки. Возвращает 1, если создание прошло успешно, иначе - 0" - - name: "readAllBytes" - args: "f" - desc: "reads all bytes from file. Returns array with bytes" - desc_ru: "чтение всех байт файла. Возвращает массив байт файла" - example: |- - use std, files - - f1 = fopen("file.bin", "rb") - array = readAllBytes(f1) - println length(array) - - name: "readBoolean" - args: "f" - desc: "reads boolean (1 byte). Returns 0 if byte was 0, 1 otherwise" - desc_ru: "чтение boolean-значения (1 байт). Возвращает 0, если байт имеет значение 0, 1 - если значение не равно 0" - - name: "readByte" - args: "f" - desc: "reads one byte" - desc_ru: "чтение одного байта" - - name: "readBytes" - args: "f, array, offset = 0, length = length(array)" - desc: "reads `length` bytes of file `f` and stores to `array` starting from `offset+1` byte. Returns number of read bytes" - desc_ru: "чтение заданного количества байт в массив `array`. Возвращает число прочитанных байт. \nЕсли offset и length не указаны, то читается количество байт равное длине массива. \nЕсли offset и length указаны, то читается length байт в массив array, начиная с `offset+1` байта" - example: |- - use files - - f1 = fopen("file.bin", "rb") // file.bin must contain more than 5000 bytes - array = newarray(2048) - readCount = readBytes(f1, array) // reads 2048 bytes - readCount = readBytes(f1, array, 10) // reads 2048 bytes starting from 11 byte - readCount = readBytes(f1, array, 20, 10) // reads 10 bytes, starting from 21 byte - example_ru: |- - use files - - f1 = fopen("file.bin", "rb") // file.bin должен иметь больше 5000 байтов - array = newarray(2048) - readCount = readBytes(f1, array) // читает 2048 байт из файла - readCount = readBytes(f1, array, 10) // читает 2048 байт, начиная с 11 байта - readCount = readBytes(f1, array, 20, 10) // читает 10 байт, начиная с 21 байта - - name: "readChar" - args: "f" - desc: "reads one char (2 bytes). Returns number char's code" - desc_ru: "чтение одного символа (2 байта). Возвращает число - код символа" - - name: "readDouble" - args: "f" - desc: "reads 8 bytes double number" - desc_ru: "чтение 8 байт (вещественное число двойной точности)" - - name: "readFloat" - args: "f" - desc: "reads 4 bytes float number" - desc_ru: "чтение 4 байт (вещественное число)" - - name: "readInt" - args: "f" - desc: "reads 4 bytes integer number" - desc_ru: "чтение 4 байт (целое число)" - - name: "readLine" - args: "f" - desc: "reads line from file opened in text mode" - desc_ru: "чтение строки в текстовом режиме" - - name: "readLong" - args: "f" - desc: "reads 8 bytes long number" - desc_ru: "чтение 8 байт (длинное целое число)" - - name: "readShort" - args: "f" - desc: "reads 2 bytes short number" - desc_ru: "чтение 2 байт (короткое целое число)" - - name: "readText" - args: "f" - desc: "reads all file's content as string" - desc_ru: "чтение всего файла в текстовом режиме в строку" - - name: "readUTF" - args: "f" - desc: "reads string in binary mode" - desc_ru: "чтение строки в бинарном режиме" - - name: "rename" - args: "from, to" - desc: "renames (or moves) file" - desc_ru: "переименование (или перемещение) файла" - example: |- - use files - - f1 = fopen("C:/file1", "i") - f2 = fopen("E:/file2", "i") - rename(f1, f2) - fclose(f1) - fclose(f2) - - name: "setLastModified" - args: "f, time" - desc: "sets last modified time" - desc_ru: "устанавливает время изменения" - - name: "setReadOnly" - args: "f" - desc: "marks descriptor read only" - desc_ru: "помечает дескриптор только для чтения" - - name: "setExecutable" - args: "f, executable, ownerOnly = true" - desc: "sets execute permission" - desc_ru: "устанавливает права на выполнение" - - name: "setReadable" - args: "f, readable, ownerOnly = true" - desc: "sets read permission" - desc_ru: "устанавливает права на чтение" - - name: "setWritable" - args: "f, writable, ownerOnly = true" - desc: "sets write permission" - desc_ru: "устанавливает права на запись" - - name: "writeBoolean" - args: "f, v" - desc: "writes boolean (0 or 1) to file" - desc_ru: "запись одного байта boolean (0 или 1) в файл" - - name: "writeByte" - args: "f, v" - desc: "writes one byte to file" - desc_ru: "запись одного байта в файл" - - name: "writeBytes" - args: "f, array, offset = 0, length = length(array)" - desc: "writes `length` bytes to file `f` from byte `array` starting from `offset`" - desc_ru: "запись заданного количества байт в файл `f` из массива байт `array`. \nЕсли offset и length не указаны, то записывается количество байт равное длине массива. \nЕсли offset и length указаны, то пропускается offset байт и записывается length байт" - - name: "writeChar" - args: "f, v" - desc: "writes one char (2 bytes) to file. `v` can be number - writes number, or string - writes code of first symbol" - desc_ru: "запись одного символа (2 байта) в файл. `v` может быть как числом (пишется это число), так и строкой (пишется код первого символа)" - - name: "writeDouble" - args: "f, v" - desc: "writes 8 bytes double number to file" - desc_ru: "запись 8 байт (вещественное число двойной точности)" - - name: "writeFloat" - args: "f, v" - desc: "writes 4 bytes float number to file" - desc_ru: "запись 4 байт (вещественное число)" - - name: "writeInt" - args: "f, v" - desc: "writes 4 bytes integer number to file" - desc_ru: "запись 4 байт (целое число)" - - name: "writeLine" - args: "f, v" - desc: "writes string to file in text mode **adds line break at the end of the string**" - desc_ru: "запись строки в текстовом режиме **Добавляет в конец символ переноса строки**" - - name: "writeLong" - args: "f, v" - desc: "writes 8 bytes long number to file" - desc_ru: "запись 8 байт (длинное целое число)" - - name: "writeShort" - args: "f, v" - desc: "writes 2 bytes short number to file" - desc_ru: "запись двух байт (короткое целое число)" - - name: "writeText" - args: "f, v" - desc: "writes string to file in text mode. Unlike `writeLine` does not add line break" - desc_ru: "запись всего текста в текстовом режиме. В отличие от `writeLine`, не добавляет символ переноса строки" - - name: "writeUTF" - args: "f, v" - desc: "writes string to file in binary mode" - desc_ru: "запись строки в бинарном режиме" \ No newline at end of file diff --git a/docs/src/modules/forms.yml b/docs/src/modules/forms.yml deleted file mode 100644 index cc6d6640..00000000 --- a/docs/src/modules/forms.yml +++ /dev/null @@ -1,89 +0,0 @@ -name: forms -scope: desktop -desc: "Contains functions for working with forms" -desc_ru: "Содержит функции для работы с формами" -constants: - - name: BorderLayout - type: 4 - typeName: map - value: '{AFTER_LINE_ENDS=After, LINE_END=After, LINE_START=Before, BEFORE_LINE_BEGINS=Before, CENTER=Center, EAST=East, BEFORE_FIRST_LINE=First, PAGE_START=First, AFTER_LAST_LINE=Last, PAGE_END=Last, NORTH=North, SOUTH=South, WEST=West}' - - name: BoxLayout - type: 4 - typeName: map - value: '{X_AXIS=0, Y_AXIS=1, LINE_AXIS=2, PAGE_AXIS=3}' - - name: DISPOSE_ON_CLOSE - type: 1 - typeName: number - value: '2' - - name: DO_NOTHING_ON_CLOSE - type: 1 - typeName: number - value: '0' - - name: EXIT_ON_CLOSE - type: 1 - typeName: number - value: '3' - - name: HIDE_ON_CLOSE - type: 1 - typeName: number - value: '1' - - name: SwingConstants - type: 4 - typeName: map - value: '{BOTTOM=3, CENTER=0, EAST=3, HORIZONTAL=0, LEADING=10, LEFT=2, NEXT=12, NORTH=1, NORTH_EAST=2, NORTH_WEST=8, PREVIOUS=13, RIGHT=4, SOUTH=5, SOUTH_EAST=4, SOUTH_WEST=6, TOP=1, TRAILING=11, VERTICAL=1, WEST=7}' -functions: - - name: borderLayout - args: 'hgap = 0, vgap = 0' - desc: 'creates BorderLayout' - desc_ru: 'создаёт BorderLayout' - - name: boxLayout - args: 'panel, axis = BoxLayout.PAGE_AXIS' - desc: 'creates BoxLayout' - desc_ru: 'создаёт BoxLayout' - - name: cardLayout - args: 'hgap = 0, vgap = 0' - desc: 'creates CardLayout' - desc_ru: 'создаёт CardLayout' - - name: flowLayout - args: 'align = FlowLayout.CENTER, hgap = 5, vgap = 5' - desc: 'creates FlowLayout' - desc_ru: 'создаёт FlowLayout' - - name: gridLayout - args: 'rows = 1, cols = 0, hgap = 0, vgap = 0' - desc: 'creates GridLayout' - desc_ru: 'создаёт GridLayout' - - name: newButton - args: 'text = ""' - desc: 'creates new button' - desc_ru: 'создаёт новую кнопку' - - name: newLabel - args: 'text = "", align = SwingConstants.LEADING' - desc: 'creates new label' - desc_ru: 'создаёт новую текстовую метку' - - name: newPanel - args: 'layoutManager = ...' - desc: 'creates new panel with optional layout manager' - desc_ru: 'создаёт новую панель с опциональным LayoutManager' - - name: newProgressBar - args: 'isVertical = false, min = 0, max = 100' - desc: 'creates new progress bar' - desc_ru: 'создаёт новый прогрессбар' - since: 1.5.0 - - name: newScrollPane - args: 'view, verticalPolicy = AS_NEEDED, horizontalPolicy = AS_NEEDED' - desc: 'creates new scroll pane' - desc_ru: 'создаёт новую область прокрутки' - since: 1.5.0 - - name: newTextArea - args: 'text = ""' - desc: 'creates new text area' - desc_ru: 'создаёт новую область ввода' - since: 1.5.0 - - name: newTextField - args: 'text = "", rows = 0, cols = 0' - desc: 'creates new text field' - desc_ru: 'создаёт новое поле ввода' - - name: newWindow - args: 'title = ""' - desc: 'creates new window and returns JFrameValue' - desc_ru: 'создаёт новое окно и возвращает JFrameValue' \ No newline at end of file diff --git a/docs/src/modules/forms_android.yml b/docs/src/modules/forms_android.yml deleted file mode 100644 index a5f3385a..00000000 --- a/docs/src/modules/forms_android.yml +++ /dev/null @@ -1,2015 +0,0 @@ -name: forms -scope: android -desc: "Contains functions for working with forms" -desc_ru: "Содержит функции для работы с формами" -constants: - - name: Gravity - type: 4 - typeName: map - value: '{NONE=0, NO_GRAVITY=0, CENTER_HORIZONTAL=1, LEFT=3, RIGHT=5, FILL_HORIZONTAL=7, CLIP_HORIZONTAL=8, CENTER_VERTICAL=16, CENTER=17, TOP=48, BOTTOM=80, FILL_VERTICAL=112, FILL=119, CLIP_VERTICAL=128}' - - name: InputType - type: 4 - typeName: map - value: '{TYPE_CLASS_DATETIME=4, TYPE_CLASS_NUMBER=2, TYPE_CLASS_PHONE=3, TYPE_CLASS_TEXT=1, TYPE_DATETIME_VARIATION_DATE=16, TYPE_DATETIME_VARIATION_NORMAL=0, TYPE_DATETIME_VARIATION_TIME=32, TYPE_MASK_CLASS=15, TYPE_MASK_FLAGS=16773120, TYPE_MASK_VARIATION=4080, TYPE_NULL=0, TYPE_NUMBER_FLAG_DECIMAL=8192, TYPE_NUMBER_FLAG_SIGNED=4096, TYPE_NUMBER_VARIATION_NORMAL=0, TYPE_NUMBER_VARIATION_PASSWORD=16, TYPE_TEXT_FLAG_AUTO_COMPLETE=65536, TYPE_TEXT_FLAG_AUTO_CORRECT=32768, TYPE_TEXT_FLAG_CAP_CHARACTERS=4096, TYPE_TEXT_FLAG_CAP_SENTENCES=16384, TYPE_TEXT_FLAG_CAP_WORDS=8192, TYPE_TEXT_FLAG_IME_MULTI_LINE=262144, TYPE_TEXT_FLAG_MULTI_LINE=131072, TYPE_TEXT_FLAG_NO_SUGGESTIONS=524288, TYPE_TEXT_VARIATION_EMAIL_ADDRESS=32, TYPE_TEXT_VARIATION_EMAIL_SUBJECT=48, TYPE_TEXT_VARIATION_FILTER=176, TYPE_TEXT_VARIATION_LONG_MESSAGE=80, TYPE_TEXT_VARIATION_NORMAL=0, TYPE_TEXT_VARIATION_PASSWORD=128, TYPE_TEXT_VARIATION_PERSON_NAME=96, TYPE_TEXT_VARIATION_PHONETIC=192, TYPE_TEXT_VARIATION_POSTAL_ADDRESS=112, TYPE_TEXT_VARIATION_SHORT_MESSAGE=64, TYPE_TEXT_VARIATION_URI=16, TYPE_TEXT_VARIATION_VISIBLE_PASSWORD=144, TYPE_TEXT_VARIATION_WEB_EDIT_TEXT=160, TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS=208, TYPE_TEXT_VARIATION_WEB_PASSWORD=224}' - - name: LinearLayout - type: 4 - typeName: map - value: '{HORIZONTAL=0, VERTICAL=1}' - - name: MATCH_PARENT - type: 1 - typeName: number - value: '-1' - - name: PorterDuff - type: 4 - typeName: map - value: '{ADD=16, CLEAR=0, DARKEN=12, DST=2, DST_ATOP=10, DST_IN=6, DST_OUT=8, DST_OVER=4, LIGHTEN=13, MULTIPLY=14, OVERLAY=17, SCREEN=15, SRC=1, SRC_ATOP=9, SRC_IN=5, SRC_OUT=7, SRC_OVER=3, XOR=11}' - - name: ScaleType - type: 4 - typeName: map - value: '{MATRIX=0, FIT_XY=1, FIT_START=2, FIT_CENTER=3, FIT_END=4, CENTER=5, CENTER_CROP=6, CENTER_INSIDE=7}' - - name: WRAP_CONTENT - type: 1 - typeName: number - value: '-2' -functions: - - name: showForm - args: 'view, layoutParams = {}' - desc: 'shows view' - desc_ru: 'показывает форму' - - name: inflate - args: 'resourceId, rootView = null, attachToRoot = false' - desc: 'Inflates view from resource xml' - desc_ru: 'Создаёт view из xml-ресурса' - - name: newArrayAdapter - args: 'resourceId = R.layout.simple_list_item_1, elements = []' - desc: 'Creates ArrayAdapter to use in ListView' - desc_ru: 'Создаёт ArrayAdapter для использования в ListView' - - name: newBaseAdapter - args: 'mapWithFunctions' - desc: '' - desc_ru: '' - example: |- - use std, android, forms - - img1 = assetBitmap("ownlang.png") - img2 = img1 - - items = [ - {"img" : img1, "text" : "Item 1"}, - {"img" : img2, "text" : "Item 2"} - ] - adapter = newBaseAdapter({ - "getCount": def() = length(items) - "getItem": def(pos) = items[pos] - "getItemId": def(pos) = pos - "getView": def(pos, view, parent) { - if (view == 0) { - view = newLinearLayout() - view.setOrientation(LinearLayout.HORIZONTAL) - imageView = newImageView() - view.addView(imageView) - textView = newTextView() - view.addView(textView) - view.setTag([imageView, textView]) - } else { - extract(imageView, textView) = view.getTag() - } - - imageView.setImageBitmap(items[pos].img); - textView.setText(items[pos].text); - return view - } - }); - - listView = newListView() - listView.setAdapter(adapter) - listView.onItemClick(def(v, pos, id) { - toast(adapter.getItem(pos).text + " selected") - }) - - panel = newLinearLayout() - panel.addView(newTextView("ListView with BaseAdapter demo")) - panel.addView(listView) - - showForm(panel) - - name: newButton - args: 'text = ""' - desc: 'creates Button' - desc_ru: 'создаёт Button' - - name: newCheckBox - args: '' - desc: 'creates CheckBox' - desc_ru: 'создаёт CheckBox' - - name: newEditText - args: '' - desc: 'creates EditText' - desc_ru: 'создаёт EditText' - - name: newFrameLayout - args: '' - desc: 'creates FrameLayout container' - desc_ru: 'создаёт контейнер FrameLayout' - - name: newImageButton - args: '' - desc: 'creates ImageButton' - desc_ru: 'создаёт ImageButton' - - name: newImageView - args: '' - desc: 'creates ImageView' - desc_ru: 'создаёт ImageView' - - name: newLinearLayout - args: '' - desc: 'creates LinearLayout container' - desc_ru: 'создаёт контейнер LinearLayout' - - name: newListView - args: '' - desc: 'creates ListView' - desc_ru: 'создаёт ListView' - - name: newProgressBar - args: 'style = R.attr.progressBarStyle' - desc: 'creates ProgressBar' - desc_ru: 'создаёт ProgressBar' - example: |- - use android, forms - pb1 = newProgressBar(R.attr.progressBarStyleHorizontal) - pb1.setMax(100) - pb1.setProgress(10) - pb2 = newProgressBar() - pb2.setIndeterminate(true) - - panel = newLinearLayout() - panel.addView(pb1) - panel.addView(pb2) - showForm(panel) - - name: newRadioButton - args: '' - desc: 'creates RadioButton' - desc_ru: 'создаёт RadioButton' - - name: newRadioGroup - args: '' - desc: 'creates RadioGroup container' - desc_ru: 'создаёт контейнер RadioGroup' - - name: newRelativeLayout - args: '' - desc: 'creates RelativeLayout container' - desc_ru: 'создаёт контейнер RelativeLayout' - - name: newScrollView - args: '' - desc: 'creates ScrollView container' - desc_ru: 'создаёт контейнер ScrollView' - - name: newSeekBar - args: '' - desc: 'creates SeekBar' - desc_ru: 'создаёт SeekBar' - - name: newSwitch - args: '' - desc: 'creates Switch (available for SDK_INT >= 14)' - desc_ru: 'создаёт Switch (доступен для SDK_INT >= 14)' - - name: newTextView - args: 'text = ""' - desc: 'creates TextView' - desc_ru: 'создаёт TextView' - - name: newToggleButton - args: '' - desc: 'creates ToggleButton' - desc_ru: 'создаёт ToggleButton' -types: - - name: ViewValue - functions: - - name: bringToFront - args: '' - desc: '' - desc_ru: '' - - name: buildDrawingCache - args: '' - desc: '' - desc_ru: '' - - name: callOnClick - args: '' - desc: 'available for SDK_INT >= 15' - desc_ru: 'доступно для SDK_INT >= 15' - - name: cancelLongPress - args: '' - desc: '' - desc_ru: '' - - name: clearAnimation - args: '' - desc: '' - desc_ru: '' - - name: clearFocus - args: '' - desc: '' - desc_ru: '' - - name: computeScroll - args: '' - desc: '' - desc_ru: '' - - name: destroyDrawingCache - args: '' - desc: '' - desc_ru: '' - - name: dispatchDisplayHint - args: '' - desc: '' - desc_ru: '' - - name: findFocus - args: '' - desc: '' - desc_ru: '' - - name: findViewById - args: '' - desc: '' - desc_ru: '' - - name: focusSearch - args: '' - desc: '' - desc_ru: '' - - name: forceLayout - args: '' - desc: '' - desc_ru: '' - - name: getAlpha - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: getBaseline - args: '' - desc: '' - desc_ru: '' - - name: getBottom - args: '' - desc: '' - desc_ru: '' - - name: getContentDescription - args: '' - desc: '' - desc_ru: '' - - name: getDrawingCacheBackgroundColor - args: '' - desc: '' - desc_ru: '' - - name: getDrawingCacheQuality - args: '' - desc: '' - desc_ru: '' - - name: getDrawingTime - args: '' - desc: '' - desc_ru: '' - - name: getHeight - args: '' - desc: '' - desc_ru: '' - - name: getHorizontalFadingEdgeLength - args: '' - desc: '' - desc_ru: '' - - name: getId - args: '' - desc: '' - desc_ru: '' - - name: getKeepScreenOn - args: '' - desc: '' - desc_ru: '' - - name: getLeft - args: '' - desc: '' - desc_ru: '' - - name: getMeasuredHeight - args: '' - desc: '' - desc_ru: '' - - name: getMeasuredHeightAndState - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: getMeasuredState - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: getMeasuredWidth - args: '' - desc: '' - desc_ru: '' - - name: getMeasuredWidthAndState - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: getNextFocusDownId - args: '' - desc: '' - desc_ru: '' - - name: getNextFocusForwardId - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: getNextFocusLeftId - args: '' - desc: '' - desc_ru: '' - - name: getNextFocusRightId - args: '' - desc: '' - desc_ru: '' - - name: getNextFocusUpId - args: '' - desc: '' - desc_ru: '' - - name: getOverScrollMode - args: '' - desc: '' - desc_ru: '' - - name: getPaddingBottom - args: '' - desc: '' - desc_ru: '' - - name: getPaddingEnd - args: '' - desc: 'available for SDK_INT >= 17' - desc_ru: 'доступно для SDK_INT >= 17' - - name: getPaddingLeft - args: '' - desc: '' - desc_ru: '' - - name: getPaddingRight - args: '' - desc: '' - desc_ru: '' - - name: getPaddingStart - args: '' - desc: 'available for SDK_INT >= 17' - desc_ru: 'доступно для SDK_INT >= 17' - - name: getPaddingTop - args: '' - desc: '' - desc_ru: '' - - name: getPivotX - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: getPivotY - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: getRight - args: '' - desc: '' - desc_ru: '' - - name: getRootView - args: '' - desc: '' - desc_ru: '' - - name: getRotation - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: getRotationX - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: getRotationY - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: getScaleX - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: getScaleY - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: getScrollBarFadeDuration - args: '' - desc: 'available for SDK_INT >= 16' - desc_ru: 'доступно для SDK_INT >= 16' - - name: getScrollBarSize - args: '' - desc: 'available for SDK_INT >= 16' - desc_ru: 'доступно для SDK_INT >= 16' - - name: getScrollBarStyle - args: '' - desc: '' - desc_ru: '' - - name: getScrollX - args: '' - desc: '' - desc_ru: '' - - name: getScrollY - args: '' - desc: '' - desc_ru: '' - - name: getSolidColor - args: '' - desc: '' - desc_ru: '' - - name: getSystemUiVisibility - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: getTag - args: '' - desc: '' - desc_ru: '' - - name: getTextAlignment - args: '' - desc: 'available for SDK_INT >= 17' - desc_ru: 'доступно для SDK_INT >= 17' - - name: getTextDirection - args: '' - desc: 'available for SDK_INT >= 17' - desc_ru: 'доступно для SDK_INT >= 17' - - name: getTop - args: '' - desc: '' - desc_ru: '' - - name: getTranslationX - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: getTranslationY - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: getTranslationZ - args: '' - desc: 'available for SDK_INT >= 21' - desc_ru: 'доступно для SDK_INT >= 21' - - name: getVerticalFadingEdgeLength - args: '' - desc: '' - desc_ru: '' - - name: getVerticalScrollbarPosition - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: getVerticalScrollbarWidth - args: '' - desc: '' - desc_ru: '' - - name: getVisibility - args: '' - desc: '' - desc_ru: '' - - name: getWidth - args: '' - desc: '' - desc_ru: '' - - name: getWindowSystemUiVisibility - args: '' - desc: 'available for SDK_INT >= 16' - desc_ru: 'доступно для SDK_INT >= 16' - - name: getWindowVisibility - args: '' - desc: '' - desc_ru: '' - - name: getX - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: getY - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: getZ - args: '' - desc: 'available for SDK_INT >= 21' - desc_ru: 'доступно для SDK_INT >= 21' - - name: hasFocus - args: '' - desc: '' - desc_ru: '' - - name: hasFocusable - args: '' - desc: '' - desc_ru: '' - - name: hasNestedScrollingParent - args: '' - desc: 'available for SDK_INT >= 21' - desc_ru: 'доступно для SDK_INT >= 21' - - name: hasOnClickListeners - args: '' - desc: 'available for SDK_INT >= 15' - desc_ru: 'доступно для SDK_INT >= 15' - - name: hasOverlappingRendering - args: '' - desc: 'available for SDK_INT >= 16' - desc_ru: 'доступно для SDK_INT >= 16' - - name: hasTransientState - args: '' - desc: 'available for SDK_INT >= 16' - desc_ru: 'доступно для SDK_INT >= 16' - - name: hasWindowFocus - args: '' - desc: '' - desc_ru: '' - - name: invalidate - args: '' - desc: '' - desc_ru: '' - - name: invalidateDrawable - args: '' - desc: '' - desc_ru: '' - - name: invalidateOutline - args: '' - desc: 'available for SDK_INT >= 21' - desc_ru: 'доступно для SDK_INT >= 21' - - name: isAccessibilityFocused - args: '' - desc: 'available for SDK_INT >= 21' - desc_ru: 'доступно для SDK_INT >= 21' - - name: isActivated - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: isAttachedToWindow - args: '' - desc: 'available for SDK_INT >= 19' - desc_ru: 'доступно для SDK_INT >= 19' - - name: isClickable - args: '' - desc: '' - desc_ru: '' - - name: isContextClickable - args: '' - desc: 'available for SDK_INT >= 23' - desc_ru: 'доступно для SDK_INT >= 23' - - name: isDirty - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: isDrawingCacheEnabled - args: '' - desc: '' - desc_ru: '' - - name: isDuplicateParentStateEnabled - args: '' - desc: '' - desc_ru: '' - - name: isEnabled - args: '' - desc: '' - desc_ru: '' - - name: isFocusable - args: '' - desc: '' - desc_ru: '' - - name: isFocusableInTouchMode - args: '' - desc: '' - desc_ru: '' - - name: isFocused - args: '' - desc: '' - desc_ru: '' - - name: isHapticFeedbackEnabled - args: '' - desc: '' - desc_ru: '' - - name: isHardwareAccelerated - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: isHorizontalFadingEdgeEnabled - args: '' - desc: '' - desc_ru: '' - - name: isHorizontalScrollBarEnabled - args: '' - desc: '' - desc_ru: '' - - name: isHovered - args: '' - desc: 'available for SDK_INT >= 14' - desc_ru: 'доступно для SDK_INT >= 14' - - name: isImportantForAccessibility - args: '' - desc: 'available for SDK_INT >= 21' - desc_ru: 'доступно для SDK_INT >= 21' - - name: isInEditMode - args: '' - desc: '' - desc_ru: '' - - name: isInLayout - args: '' - desc: 'available for SDK_INT >= 18' - desc_ru: 'доступно для SDK_INT >= 18' - - name: isInTouchMode - args: '' - desc: '' - desc_ru: '' - - name: isLaidOut - args: '' - desc: 'available for SDK_INT >= 19' - desc_ru: 'доступно для SDK_INT >= 19' - - name: isLayoutDirectionResolved - args: '' - desc: 'available for SDK_INT >= 19' - desc_ru: 'доступно для SDK_INT >= 19' - - name: isLayoutRequested - args: '' - desc: '' - desc_ru: '' - - name: isLongClickable - args: '' - desc: '' - desc_ru: '' - - name: isNestedScrollingEnabled - args: '' - desc: 'available for SDK_INT >= 21' - desc_ru: 'доступно для SDK_INT >= 21' - - name: isOpaque - args: '' - desc: '' - desc_ru: '' - - name: isPaddingRelative - args: '' - desc: 'available for SDK_INT >= 17' - desc_ru: 'доступно для SDK_INT >= 17' - - name: isPressed - args: '' - desc: '' - desc_ru: '' - - name: isSaveEnabled - args: '' - desc: '' - desc_ru: '' - - name: isSaveFromParentEnabled - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: isScrollContainer - args: '' - desc: 'available for SDK_INT >= 16' - desc_ru: 'доступно для SDK_INT >= 16' - - name: isScrollbarFadingEnabled - args: '' - desc: '' - desc_ru: '' - - name: isSelected - args: '' - desc: '' - desc_ru: '' - - name: isShown - args: '' - desc: '' - desc_ru: '' - - name: isSoundEffectsEnabled - args: '' - desc: '' - desc_ru: '' - - name: isTextAlignmentResolved - args: '' - desc: 'available for SDK_INT >= 19' - desc_ru: 'доступно для SDK_INT >= 19' - - name: isTextDirectionResolved - args: '' - desc: 'available for SDK_INT >= 19' - desc_ru: 'доступно для SDK_INT >= 19' - - name: isVerticalFadingEdgeEnabled - args: '' - desc: '' - desc_ru: '' - - name: isVerticalScrollBarEnabled - args: '' - desc: '' - desc_ru: '' - - name: jumpDrawablesToCurrentState - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: offsetLeftAndRight - args: '' - desc: '' - desc_ru: '' - - name: offsetTopAndBottom - args: '' - desc: '' - desc_ru: '' - - name: onClick - args: '' - desc: '' - desc_ru: '' - - name: onFocusChange - args: '' - desc: '' - desc_ru: '' - - name: onKey - args: '' - desc: '' - desc_ru: '' - - name: onLongClick - args: '' - desc: '' - desc_ru: '' - - name: performClick - args: '' - desc: '' - desc_ru: '' - - name: performHapticFeedback - args: '' - desc: '' - desc_ru: '' - - name: performLongClick - args: '' - desc: '' - desc_ru: '' - - name: playSoundEffect - args: '' - desc: '' - desc_ru: '' - - name: post - args: '' - desc: '' - desc_ru: '' - - name: postDelayed - args: '' - desc: '' - desc_ru: '' - - name: postInvalidate - args: '' - desc: '' - desc_ru: '' - - name: refreshDrawableState - args: '' - desc: '' - desc_ru: '' - - name: requestFocus - args: '' - desc: '' - desc_ru: '' - - name: requestFocusFromTouch - args: '' - desc: '' - desc_ru: '' - - name: requestLayout - args: '' - desc: '' - desc_ru: '' - - name: scrollBy - args: '' - desc: '' - desc_ru: '' - - name: scrollTo - args: '' - desc: '' - desc_ru: '' - - name: sendAccessibilityEvent - args: '' - desc: '' - desc_ru: '' - - name: setActivated - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: setAlpha - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: setBackground - args: '' - desc: '' - desc_ru: '' - - name: setBackgroundColor - args: '' - desc: '' - desc_ru: '' - - name: setBackgroundDrawable - args: '' - desc: '' - desc_ru: '' - - name: setBackgroundResource - args: '' - desc: '' - desc_ru: '' - - name: setBottom - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: setCameraDistance - args: '' - desc: 'available for SDK_INT >= 12' - desc_ru: 'доступно для SDK_INT >= 12' - - name: setClickable - args: '' - desc: '' - desc_ru: '' - - name: setClipToOutline - args: '' - desc: 'available for SDK_INT >= 21' - desc_ru: 'доступно для SDK_INT >= 21' - - name: setContentDescription - args: '' - desc: '' - desc_ru: '' - - name: setContextClickable - args: '' - desc: 'available for SDK_INT >= 23' - desc_ru: 'доступно для SDK_INT >= 23' - - name: setDrawingCacheBackgroundColor - args: '' - desc: '' - desc_ru: '' - - name: setDrawingCacheEnabled - args: '' - desc: '' - desc_ru: '' - - name: setDrawingCacheQuality - args: '' - desc: '' - desc_ru: '' - - name: setDuplicateParentStateEnabled - args: '' - desc: '' - desc_ru: '' - - name: setEnabled - args: '' - desc: '' - desc_ru: '' - - name: setFadingEdgeLength - args: '' - desc: '' - desc_ru: '' - - name: setFilterTouchesWhenObscured - args: '' - desc: '' - desc_ru: '' - - name: setFitsSystemWindows - args: '' - desc: 'available for SDK_INT >= 14' - desc_ru: 'доступно для SDK_INT >= 14' - - name: setFocusable - args: '' - desc: '' - desc_ru: '' - - name: setFocusableInTouchMode - args: '' - desc: '' - desc_ru: '' - - name: setForeground - args: '' - desc: '' - desc_ru: '' - - name: setHapticFeedbackEnabled - args: '' - desc: '' - desc_ru: '' - - name: setHorizontalFadingEdgeEnabled - args: '' - desc: '' - desc_ru: '' - - name: setHorizontalScrollBarEnabled - args: '' - desc: '' - desc_ru: '' - - name: setHovered - args: '' - desc: 'available for SDK_INT >= 14' - desc_ru: 'доступно для SDK_INT >= 14' - - name: setId - args: '' - desc: '' - desc_ru: '' - - name: setImportantForAccessibility - args: '' - desc: 'available for SDK_INT >= 16' - desc_ru: 'доступно для SDK_INT >= 16' - - name: setKeepScreenOn - args: '' - desc: '' - desc_ru: '' - - name: setLabelFor - args: '' - desc: 'available for SDK_INT >= 17' - desc_ru: 'доступно для SDK_INT >= 17' - - name: setLayoutDirection - args: '' - desc: 'available for SDK_INT >= 17' - desc_ru: 'доступно для SDK_INT >= 17' - - name: setLeft - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: setLongClickable - args: '' - desc: '' - desc_ru: '' - - name: setMinimumHeight - args: '' - desc: '' - desc_ru: '' - - name: setMinimumWidth - args: '' - desc: '' - desc_ru: '' - - name: setNestedScrollingEnabled - args: '' - desc: 'available for SDK_INT >= 21' - desc_ru: 'доступно для SDK_INT >= 21' - - name: setNextFocusDownId - args: '' - desc: '' - desc_ru: '' - - name: setNextFocusForwardId - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: setNextFocusLeftId - args: '' - desc: '' - desc_ru: '' - - name: setNextFocusRightId - args: '' - desc: '' - desc_ru: '' - - name: setNextFocusUpId - args: '' - desc: '' - desc_ru: '' - - name: setOnClickListener - args: '' - desc: '' - desc_ru: '' - - name: setOnFocusChangeListener - args: '' - desc: '' - desc_ru: '' - - name: setOnKeyListener - args: '' - desc: '' - desc_ru: '' - - name: setOnLongClickListener - args: '' - desc: '' - desc_ru: '' - - name: setOverScrollMode - args: '' - desc: '' - desc_ru: '' - - name: setPadding - args: '' - desc: '' - desc_ru: '' - - name: setPaddingRelative - args: '' - desc: 'available for SDK_INT >= 17' - desc_ru: 'доступно для SDK_INT >= 17' - - name: setPivotX - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: setPivotY - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: setPressed - args: '' - desc: '' - desc_ru: '' - - name: setRight - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: setRotation - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: setRotationX - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: setRotationY - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: setSaveEnabled - args: '' - desc: '' - desc_ru: '' - - name: setSaveFromParentEnabled - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: setScaleX - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: setScaleY - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: setScrollBarDefaultDelayBeforeFade - args: '' - desc: 'available for SDK_INT >= 16' - desc_ru: 'доступно для SDK_INT >= 16' - - name: setScrollBarFadeDuration - args: '' - desc: 'available for SDK_INT >= 16' - desc_ru: 'доступно для SDK_INT >= 16' - - name: setScrollBarSize - args: '' - desc: 'available for SDK_INT >= 16' - desc_ru: 'доступно для SDK_INT >= 16' - - name: setScrollBarStyle - args: '' - desc: '' - desc_ru: '' - - name: setScrollContainer - args: '' - desc: '' - desc_ru: '' - - name: setScrollX - args: '' - desc: 'available for SDK_INT >= 14' - desc_ru: 'доступно для SDK_INT >= 14' - - name: setScrollY - args: '' - desc: 'available for SDK_INT >= 14' - desc_ru: 'доступно для SDK_INT >= 14' - - name: setSelected - args: '' - desc: '' - desc_ru: '' - - name: setSoundEffectsEnabled - args: '' - desc: '' - desc_ru: '' - - name: setSystemUiVisibility - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: setTag - args: '' - desc: '' - desc_ru: '' - - name: setTextAlignment - args: '' - desc: 'available for SDK_INT >= 17' - desc_ru: 'доступно для SDK_INT >= 17' - - name: setTextDirection - args: '' - desc: 'available for SDK_INT >= 17' - desc_ru: 'доступно для SDK_INT >= 17' - - name: setTop - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: setTranslationX - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: setTranslationY - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: setTranslationZ - args: '' - desc: 'available for SDK_INT >= 21' - desc_ru: 'доступно для SDK_INT >= 21' - - name: setVerticalFadingEdgeEnabled - args: '' - desc: '' - desc_ru: '' - - name: setVerticalScrollbarPosition - args: '' - desc: '' - desc_ru: '' - - name: setVisibility - args: '' - desc: '' - desc_ru: '' - - name: setWillNotCacheDrawing - args: '' - desc: '' - desc_ru: '' - - name: setWillNotDraw - args: '' - desc: '' - desc_ru: '' - - name: setX - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: setY - args: '' - desc: 'available for SDK_INT >= 11' - desc_ru: 'доступно для SDK_INT >= 11' - - name: setZ - args: '' - desc: 'available for SDK_INT >= 21' - desc_ru: 'доступно для SDK_INT >= 21' - - name: showContextMenu - args: '' - desc: '' - desc_ru: '' - - name: willNotCacheDrawing - args: '' - desc: '' - desc_ru: '' - - name: willNotDraw - args: '' - desc: '' - desc_ru: '' - - name: TextViewValue - desc: 'Inheritance hierarchy: ViewValue' - desc_ru: 'Иерархия наследования: ViewValue' - functions: - - name: beginBatchEdit - args: '' - desc: '' - desc_ru: '' - - name: endBatchEdit - args: '' - desc: '' - desc_ru: '' - - name: getAutoLinkMask - args: '' - desc: '' - desc_ru: '' - - name: getCompoundDrawablePadding - args: '' - desc: '' - desc_ru: '' - - name: getCompoundPaddingBottom - args: '' - desc: '' - desc_ru: '' - - name: getCompoundPaddingLeft - args: '' - desc: '' - desc_ru: '' - - name: getCompoundPaddingRight - args: '' - desc: '' - desc_ru: '' - - name: getCompoundPaddingTop - args: '' - desc: '' - desc_ru: '' - - name: getCurrentHintTextColor - args: '' - desc: '' - desc_ru: '' - - name: getCurrentTextColor - args: '' - desc: '' - desc_ru: '' - - name: getEditableText - args: '' - desc: '' - desc_ru: '' - - name: getEllipsize - args: '' - desc: '' - desc_ru: '' - - name: getError - args: '' - desc: '' - desc_ru: '' - - name: getExtendedPaddingBottom - args: '' - desc: '' - desc_ru: '' - - name: getExtendedPaddingTop - args: '' - desc: '' - desc_ru: '' - - name: getFreezesText - args: '' - desc: '' - desc_ru: '' - - name: getGravity - args: '' - desc: '' - desc_ru: '' - - name: getHighlightColor - args: '' - desc: '' - desc_ru: '' - - name: getHint - args: '' - desc: '' - desc_ru: '' - - name: getImeActionId - args: '' - desc: '' - desc_ru: '' - - name: getImeActionLabel - args: '' - desc: '' - desc_ru: '' - - name: getImeOptions - args: '' - desc: '' - desc_ru: '' - - name: getInputType - args: '' - desc: '' - desc_ru: '' - - name: getLineCount - args: '' - desc: '' - desc_ru: '' - - name: getLineHeight - args: '' - desc: '' - desc_ru: '' - - name: getLinksClickable - args: '' - desc: '' - desc_ru: '' - - name: getSelectionEnd - args: '' - desc: '' - desc_ru: '' - - name: getSelectionStart - args: '' - desc: '' - desc_ru: '' - - name: getText - args: '' - desc: '' - desc_ru: '' - - name: getTextScaleX - args: '' - desc: '' - desc_ru: '' - - name: getTextSize - args: '' - desc: '' - desc_ru: '' - - name: getTotalPaddingBottom - args: '' - desc: '' - desc_ru: '' - - name: getTotalPaddingLeft - args: '' - desc: '' - desc_ru: '' - - name: getTotalPaddingRight - args: '' - desc: '' - desc_ru: '' - - name: getTotalPaddingTop - args: '' - desc: '' - desc_ru: '' - - name: hasSelection - args: '' - desc: '' - desc_ru: '' - - name: isCursorVisible - args: '' - desc: '' - desc_ru: '' - - name: isInputMethodTarget - args: '' - desc: '' - desc_ru: '' - - name: isSuggestionsEnabled - args: '' - desc: '' - desc_ru: '' - - name: isTextSelectable - args: '' - desc: '' - desc_ru: '' - - name: length - args: '' - desc: '' - desc_ru: '' - - name: moveCursorToVisibleOffset - args: '' - desc: '' - desc_ru: '' - - name: setAllCaps - args: '' - desc: '' - desc_ru: '' - - name: setAutoLinkMask - args: '' - desc: '' - desc_ru: '' - - name: setBreakStrategy - args: '' - desc: '' - desc_ru: '' - - name: setCompoundDrawablePadding - args: '' - desc: '' - desc_ru: '' - - name: setCompoundDrawables - args: '' - desc: '' - desc_ru: '' - - name: setCursorVisible - args: '' - desc: '' - desc_ru: '' - - name: setEllipsize - args: '' - desc: '' - desc_ru: '' - - name: setEms - args: '' - desc: '' - desc_ru: '' - - name: setError - args: '' - desc: '' - desc_ru: '' - - name: setFreezesText - args: '' - desc: '' - desc_ru: '' - - name: setGravity - args: '' - desc: '' - desc_ru: '' - - name: setHeight - args: '' - desc: '' - desc_ru: '' - - name: setHighlightColor - args: '' - desc: '' - desc_ru: '' - - name: setHint - args: '' - desc: '' - desc_ru: '' - - name: setHintTextColor - args: '' - desc: '' - desc_ru: '' - - name: setHorizontallyScrolling - args: '' - desc: '' - desc_ru: '' - - name: setImeOptions - args: '' - desc: '' - desc_ru: '' - - name: setInputType - args: '' - desc: '' - desc_ru: '' - - name: setLines - args: '' - desc: '' - desc_ru: '' - - name: setLinkTextColor - args: '' - desc: '' - desc_ru: '' - - name: setLinksClickable - args: '' - desc: '' - desc_ru: '' - - name: setMaxEms - args: '' - desc: '' - desc_ru: '' - - name: setMaxHeight - args: '' - desc: '' - desc_ru: '' - - name: setMaxLines - args: '' - desc: '' - desc_ru: '' - - name: setMaxWidth - args: '' - desc: '' - desc_ru: '' - - name: setMinEms - args: '' - desc: '' - desc_ru: '' - - name: setMinHeight - args: '' - desc: '' - desc_ru: '' - - name: setMinLines - args: '' - desc: '' - desc_ru: '' - - name: setMinWidth - args: '' - desc: '' - desc_ru: '' - - name: setPaintFlags - args: '' - desc: '' - desc_ru: '' - - name: setRawInputType - args: '' - desc: '' - desc_ru: '' - - name: setSelectAllOnFocus - args: '' - desc: '' - desc_ru: '' - - name: setSingleLine - args: '' - desc: '' - desc_ru: '' - - name: setText - args: '' - desc: '' - desc_ru: '' - - name: setTextColor - args: '' - desc: '' - desc_ru: '' - - name: setTextIsSelectable - args: '' - desc: '' - desc_ru: '' - - name: setTextScaleX - args: '' - desc: '' - desc_ru: '' - - name: setTextSize - args: '' - desc: '' - desc_ru: '' - - name: setWidth - args: '' - desc: '' - desc_ru: '' - - name: EditTextValue - desc: 'Inheritance hierarchy: TextViewValue < ViewValue' - desc_ru: 'Иерархия наследования: TextViewValue < ViewValue' - functions: - - name: extendSelection - args: '' - desc: '' - desc_ru: '' - - name: selectAll - args: '' - desc: '' - desc_ru: '' - - name: setSelection - args: '' - desc: '' - desc_ru: '' - - name: ButtonValue - desc: 'Inheritance hierarchy: TextViewValue < ViewValue' - desc_ru: 'Иерархия наследования: TextViewValue < ViewValue' - functions: [] - - name: CompoundButtonValue - desc: 'Inheritance hierarchy: ButtonValue < TextViewValue < ViewValue' - desc_ru: 'Иерархия наследования: ButtonValue < TextViewValue < ViewValue' - functions: - - name: isChecked - args: '' - desc: '' - desc_ru: '' - - name: onCheck - args: '' - desc: '' - desc_ru: '' - - name: setButtonDrawable - args: '' - desc: '' - desc_ru: '' - - name: setChecked - args: '' - desc: '' - desc_ru: '' - - name: toggle - args: '' - desc: '' - desc_ru: '' - - name: ToggleButtonValue - desc: 'Inheritance hierarchy: CompoundButtonValue < ButtonValue < TextViewValue < ViewValue' - desc_ru: 'Иерархия наследования: CompoundButtonValue < ButtonValue < TextViewValue < ViewValue' - functions: - - name: getTextOff - args: '' - desc: '' - desc_ru: '' - - name: getTextOn - args: '' - desc: '' - desc_ru: '' - - name: setTextOff - args: '' - desc: '' - desc_ru: '' - - name: setTextOn - args: '' - desc: '' - desc_ru: '' - - name: SwitchValue - desc: 'Inheritance hierarchy: CompoundButtonValue < ButtonValue < TextViewValue < ViewValue' - desc_ru: 'Иерархия наследования: CompoundButtonValue < ButtonValue < TextViewValue < ViewValue' - functions: - - name: getTextOff - args: '' - desc: '' - desc_ru: '' - - name: getTextOn - args: '' - desc: '' - desc_ru: '' - - name: setTextOff - args: '' - desc: '' - desc_ru: '' - - name: setTextOn - args: '' - desc: '' - desc_ru: '' - - name: ImageViewValue - desc: 'Inheritance hierarchy: ViewValue' - desc_ru: 'Иерархия наследования: ViewValue' - functions: - - name: clearColorFilter - args: '' - desc: '' - desc_ru: '' - - name: getScaleType - args: '' - desc: '' - desc_ru: '' - - name: setAdjustViewBounds - args: '' - desc: '' - desc_ru: '' - - name: setColorFilter - args: '' - desc: '' - desc_ru: '' - - name: setImageAlpha - args: '' - desc: '' - desc_ru: '' - - name: setImageBitmap - args: '' - desc: '' - desc_ru: '' - - name: setImageDrawable - args: '' - desc: '' - desc_ru: '' - - name: setImageLevel - args: '' - desc: '' - desc_ru: '' - - name: setImageResource - args: '' - desc: '' - desc_ru: '' - - name: setImageURI - args: '' - desc: '' - desc_ru: '' - - name: setMaxHeight - args: '' - desc: '' - desc_ru: '' - - name: setMaxWidth - args: '' - desc: '' - desc_ru: '' - - name: setScaleType - args: '' - desc: '' - desc_ru: '' - - name: ImageButtonValue - desc: 'Inheritance hierarchy: ImageViewValue < ViewValue' - desc_ru: 'Иерархия наследования: ImageViewValue < ViewValue' - functions: [] - - name: ViewGroupValue - desc: 'Inheritance hierarchy: ViewValue' - desc_ru: 'Иерархия наследования: ViewValue' - functions: - - name: addView - args: '' - desc: '' - desc_ru: '' - - name: bringChildToFront - args: '' - desc: '' - desc_ru: '' - - name: clearChildFocus - args: '' - desc: '' - desc_ru: '' - - name: getChildAt - args: '' - desc: '' - desc_ru: '' - - name: getChildCount - args: '' - desc: '' - desc_ru: '' - - name: indexOfChild - args: '' - desc: '' - desc_ru: '' - - name: recomputeViewAttributes - args: '' - desc: '' - desc_ru: '' - - name: removeAllViews - args: '' - desc: '' - desc_ru: '' - - name: removeAllViewsInLayout - args: '' - desc: '' - desc_ru: '' - - name: removeView - args: '' - desc: '' - desc_ru: '' - - name: removeViewAt - args: '' - desc: '' - desc_ru: '' - - name: removeViewInLayout - args: '' - desc: '' - desc_ru: '' - - name: LinearLayoutValue - desc: 'Inheritance hierarchy: ViewGroupValue < ViewValue' - desc_ru: 'Иерархия наследования: ViewGroupValue < ViewValue' - functions: - - name: getOrientation - args: '' - desc: '' - desc_ru: '' - - name: getWeightSum - args: '' - desc: '' - desc_ru: '' - - name: setGravity - args: '' - desc: '' - desc_ru: '' - - name: setHorizontalGravity - args: '' - desc: '' - desc_ru: '' - - name: setOrientation - args: '' - desc: '' - desc_ru: '' - - name: setVerticalGravity - args: '' - desc: '' - desc_ru: '' - - name: setWeightSum - args: '' - desc: '' - desc_ru: '' - - name: RelativeLayoutValue - desc: 'Inheritance hierarchy: ViewGroupValue < ViewValue' - desc_ru: 'Иерархия наследования: ViewGroupValue < ViewValue' - functions: - - name: getGravity - args: '' - desc: '' - desc_ru: '' - - name: setGravity - args: '' - desc: '' - desc_ru: '' - - name: setHorizontalGravity - args: '' - desc: '' - desc_ru: '' - - name: setIgnoreGravity - args: '' - desc: '' - desc_ru: '' - - name: setVerticalGravity - args: '' - desc: '' - desc_ru: '' - - name: FrameLayoutValue - desc: 'Inheritance hierarchy: ViewGroupValue < ViewValue' - desc_ru: 'Иерархия наследования: ViewGroupValue < ViewValue' - functions: [] - - name: ScrollViewValue - desc: 'Inheritance hierarchy: FrameLayoutValue < ViewGroupValue < ViewValue' - desc_ru: 'Иерархия наследования: FrameLayoutValue < ViewGroupValue < ViewValue' - functions: - - name: isFillViewport - args: '' - desc: '' - desc_ru: '' - - name: isSmoothScrollingEnabled - args: '' - desc: '' - desc_ru: '' - - name: setFillViewport - args: '' - desc: '' - desc_ru: '' - - name: setSmoothScrollingEnabled - args: '' - desc: '' - desc_ru: '' - - name: AdapterViewValue - desc: 'Inheritance hierarchy: ViewGroupValue < ViewValue' - desc_ru: 'Иерархия наследования: ViewGroupValue < ViewValue' - functions: - - name: getAdapter - args: '' - desc: '' - desc_ru: '' - - name: getCount - args: '' - desc: '' - desc_ru: '' - - name: getEmptyView - args: '' - desc: '' - desc_ru: '' - - name: getFirstVisiblePosition - args: '' - desc: '' - desc_ru: '' - - name: getItemAtPosition - args: '' - desc: '' - desc_ru: '' - - name: getItemIdAtPosition - args: '' - desc: '' - desc_ru: '' - - name: getLastVisiblePosition - args: '' - desc: '' - desc_ru: '' - - name: getPositionForView - args: '' - desc: '' - desc_ru: '' - - name: getSelectedItem - args: '' - desc: '' - desc_ru: '' - - name: getSelectedItemId - args: '' - desc: '' - desc_ru: '' - - name: getSelectedItemPosition - args: '' - desc: '' - desc_ru: '' - - name: getSelectedView - args: '' - desc: '' - desc_ru: '' - - name: onItemClick - args: '' - desc: '' - desc_ru: '' - - name: onItemLongClick - args: '' - desc: '' - desc_ru: '' - - name: onItemSelected - args: '' - desc: '' - desc_ru: '' - - name: performItemClick - args: '' - desc: '' - desc_ru: '' - - name: setAdapter - args: '' - desc: '' - desc_ru: '' - - name: setEmptyView - args: '' - desc: '' - desc_ru: '' - - name: ListViewValue - desc: 'Inheritance hierarchy: AdapterViewValue < ViewGroupValue < ViewValue' - desc_ru: 'Иерархия наследования: AdapterViewValue < ViewGroupValue < ViewValue' - functions: - - name: addFooterView - args: '' - desc: '' - desc_ru: '' - - name: addHeaderView - args: '' - desc: '' - desc_ru: '' - - name: getDividerHeight - args: '' - desc: '' - desc_ru: '' - - name: getFooterViewsCount - args: '' - desc: '' - desc_ru: '' - - name: getHeaderViewsCount - args: '' - desc: '' - desc_ru: '' - - name: getItemsCanFocus - args: '' - desc: '' - desc_ru: '' - - name: getMaxScrollAmount - args: '' - desc: '' - desc_ru: '' - - name: removeFooterView - args: '' - desc: '' - desc_ru: '' - - name: removeHeaderView - args: '' - desc: '' - desc_ru: '' - - name: setCacheColorHint - args: '' - desc: '' - desc_ru: '' - - name: setDividerHeight - args: '' - desc: '' - desc_ru: '' - - name: setFooterDividersEnabled - args: '' - desc: '' - desc_ru: '' - - name: setHeaderDividersEnabled - args: '' - desc: '' - desc_ru: '' - - name: setItemsCanFocus - args: '' - desc: '' - desc_ru: '' - - name: setSelection - args: '' - desc: '' - desc_ru: '' - - name: setSelectionAfterHeaderView - args: '' - desc: '' - desc_ru: '' - - name: smoothScrollToPosition - args: '' - desc: '' - desc_ru: '' - - name: RadioGroupValue - desc: 'Inheritance hierarchy: LinearLayoutValue < ViewGroupValue < ViewValue' - desc_ru: 'Иерархия наследования: LinearLayoutValue < ViewGroupValue < ViewValue' - functions: - - name: check - args: '' - desc: '' - desc_ru: '' - - name: clearCheck - args: '' - desc: '' - desc_ru: '' - - name: getCheckedRadioButtonId - args: '' - desc: '' - desc_ru: '' - - name: onCheck - args: '' - desc: '' - desc_ru: '' - - name: setOnCheckedChangeListener - args: '' - desc: '' - desc_ru: '' - - name: ProgressBarValue - desc: 'Inheritance hierarchy: ViewValue' - desc_ru: 'Иерархия наследования: ViewValue' - functions: - - name: getMax - args: '' - desc: '' - desc_ru: '' - - name: getProgress - args: '' - desc: '' - desc_ru: '' - - name: getSecondaryProgress - args: '' - desc: '' - desc_ru: '' - - name: incrementProgressBy - args: '' - desc: '' - desc_ru: '' - - name: incrementSecondaryProgressBy - args: '' - desc: '' - desc_ru: '' - - name: setIndeterminate - args: '' - desc: '' - desc_ru: '' - - name: setIndeterminateDrawable - args: '' - desc: '' - desc_ru: '' - - name: setMax - args: '' - desc: '' - desc_ru: '' - - name: setProgress - args: '' - desc: '' - desc_ru: '' - - name: setProgressDrawable - args: '' - desc: '' - desc_ru: '' - - name: setSecondaryProgress - args: '' - desc: '' - desc_ru: '' - - name: SeekBarValue - desc: 'Inheritance hierarchy: ProgressBarValue < ViewValue' - desc_ru: 'Иерархия наследования: ProgressBarValue < ViewValue' - functions: - - name: getKeyProgressIncrement - args: '' - desc: '' - desc_ru: '' - - name: getThumbOffset - args: '' - desc: '' - desc_ru: '' - - name: onSeekBarChange - args: '' - desc: '' - desc_ru: '' - - name: setKeyProgressIncrement - args: '' - desc: '' - desc_ru: '' - - name: setOnSeekBarChangeListener - args: '' - desc: '' - desc_ru: '' - - name: setThumb - args: '' - desc: '' - desc_ru: '' - - name: setThumbOffset - args: '' - desc: '' - desc_ru: '' - - name: AdapterValue - functions: - - name: getCount - args: '' - desc: '' - desc_ru: '' - - name: getItem - args: '' - desc: '' - desc_ru: '' - - name: getItemId - args: '' - desc: '' - desc_ru: '' - - name: getItemViewType - args: '' - desc: '' - desc_ru: '' - - name: getView - args: '' - desc: '' - desc_ru: '' - - name: getViewTypeCount - args: '' - desc: '' - desc_ru: '' - - name: hasStableIds - args: '' - desc: '' - desc_ru: '' - - name: isEmpty - args: '' - desc: '' - desc_ru: '' - - name: ListAdapterValue - desc: 'Inheritance hierarchy: AdapterValue' - desc_ru: 'Иерархия наследования: AdapterValue' - functions: - - name: areAllItemsEnabled - args: '' - desc: '' - desc_ru: '' - - name: isEnabled - args: '' - desc: '' - desc_ru: '' \ No newline at end of file diff --git a/docs/src/modules/functional.yml b/docs/src/modules/functional.yml deleted file mode 100644 index 3ab6bba8..00000000 --- a/docs/src/modules/functional.yml +++ /dev/null @@ -1,266 +0,0 @@ -name: functional -scope: "both" -desc: "Contains functions for operating data in functional style" -desc_ru: "Содержит функции для работы с данными в функциональном стиле" -constants: - - name: "IDENTITY" - typeName: "function" - type: 5 - value: "def(x) = x" - desc: "function which returns passed argument" - desc_ru: "функция, которая возвращает переданный в неё аргумент" -functions: - - name: chain - args: "data, functions..." - desc: "" - desc_ru: "" - - name: combine - args: "functions..." - desc: "combines functions" - desc_ru: "комбинирует функции (композиция)" - example: |- - use functional - - def f1() = 2 - def f2(a) = a*2 - def f3(a) = a/4 - - f = combine(::f1, ::f2, ::f3) - println f() // 1 - // same as - f = def() = f3(f2(f1())) - println f() // 1 - example_ru: |- - use functional - - def f1() = 2 - def f2(a) = a*2 - def f3(a) = a/4 - - f = combine(::f1, ::f2, ::f3) - println f() // 1 - // равносильно - f = def() = f3(f2(f1())) - println f() // 1 - - name: dropwhile - args: 'data, predicate' - desc: 'skips elements while predicate function returns true' - desc_ru: 'пропускает элементы пока функция-предикат возвращает true' - - name: "filter" - args: "data, predicate" - desc: "filters array or object.\n\n`predicate` is a function which takes one argument for arrays or two arguments for objects" - desc_ru: "фильтрует массив или объект и возвращает массив только с теми элементами, которые удовлетворяют предикату `predicate`.\n\n`predicate` - функция которая принимает один (для массивов) и два (для объектов) аргумента" - example: |- - use functional - - nums = [1,2,3,4,5] - print filter(nums, def(x) = x % 2 == 0) // [2, 4] - - name: flatmap - args: "array, mapper" - desc: "converts each element of an array to other array" - desc_ru: "преобразует каждый элемент массива в массив элементов" - example: |- - use functional - - nums = [1,2,3,4] - print flatmap(nums, def(x) { - arr = newarray(x) - for i = 0, i < x, i++ - arr[i] = x - return arr - }) // [1, 2, 2, 3, 3, 3, 4, 4, 4, 4] - - name: foreach - args: "data, consumer" - desc: "invokes function `consumer` for each element of array or map `data`\n\nIf `data` - массив, то в функции consumer необходим один параметр, если объект - два (ключ и значение)." - desc_ru: "для каждого элемента в массиве или объекте `data` вызывает функцию `consumer`\n\nЕсли `data` - массив, то в функции `consumer` необходим один параметр, если объект - два (ключ и значение)." - example: |- - use functional - - foreach([1, 2, 3], def(v) { print v }) - foreach({"key": 1, "key2": "text"}, def(key, value) { - print key + ": " + value - }) - - name: map - args: "data, mapper..." - desc: "converts elements of array or map. If `data` is array - `mapper` converts his elements, if `data` is object - you need to pass `keyMapper` - converts keys and `valueMapper` - converts values" - desc_ru: "преобразует элементы массива или объекта.\n\nЕсли `data` - массив, то функция `mapper` преобразует значения, если объект - необходимо передать две функции: `keyMapper` - преобразует ключи и `valueMapper` - преобразует значения" - example: |- - use functional - - nums = [3,4,5] - print map(nums, def(x) = x * x) // [9, 16, 25] - - name: reduce - args: "data, identity, accumulator" - desc: "converts elements of an array or a map to one value, e.g. sum of elements or concatenation string. `accumulator` takes one argument for array and two arguments for object (key and value)." - desc_ru: "преобразует элементы массива или объекта в одно значение, например сумма элементов или объединение в строку.\n\nЕсли `data` - массив, то в функции `accumulator` необходим один параметр, если объект - два (ключ и значение)" - example: |- - use functional - - nums = [1,2,3,4,5] - print reduce(nums, 0, def(x, y) = x + y) // 15 - - name: sortby - args: "array, function" - desc: "sorts elements of an array or a map by `function` result" - desc_ru: "сортирует элементы массива или объекта по данным в функции `function`" - example: |- - use functional - - data = [ - {"k1": 2, "k2": "x"}, - {"k1": 7, "k2": "d"}, - {"k1": 4, "k2": "z"}, - {"k1": 5, "k2": "p"}, - ] - println sortby(data, def(v) = v.k1) // [{k1=2, k2=x}, {k1=4, k2=z}, {k1=5, k2=p}, {k1=7, k2=d}] - println sortby(data, def(v) = v.k2) // [{k1=7, k2=d}, {k1=5, k2=p}, {k1=2, k2=x}, {k1=4, k2=z}] - - name: groupby - args: "data, function" - desc: "groups elements of an array or a map by `function` result" - desc_ru: "группирует элементы массива или объекта на основе результата функции `function`" - since: 2.0.0 - example: |- - use functional - - data = [ - {"k1": 2, "k2": "x"}, - {"k1": 4, "k2": "z"}, - {"k1": 5, "k2": "p"}, - ] - println groupby(data, def(e) = e.k1) // {"2"=[{k1=2, k2=x}], "4"=[{k1=4, k2=z}], "5"=[{k2=p, k1=5}]} - println groupby(data, def(e) = e.k2) // {"x"=[{k1=2, k2=x}], "z"=[{k1=4, k2=z}], "p"=[{k2=p, k1=5}]} - - name: tomap - args: "data, keyMapper, valueMapper = def(v) = v, merger = def(oldValue, newValue) = newValue" - desc: "converts elements of an array or a map to a map based on `keyMapper` and `valueMapper` functions result. `merger` function resolves collisions" - desc_ru: "преобразует элементы массива или объекта в объект, основываясь на результате функций `keyMapper` и `valueMapper`. Функция `merger` используется для разрешения коллизий" - since: 2.0.0 - example: |- - use functional - - data = ["apple", "banana"] - println tomap(data, def(str) = str.substring(0, 1)) // {"a": "apple", "b": "banana"} - println tomap(data, def(str) = str.substring(0, 1), ::toUpperCase) // {"a": "APPLE", "b": "BANANA"} - - name: stream - args: data - desc: creates stream from data and returns `StreamValue` - desc_ru: создаёт stream из данных и возвращает `StreamValue` - - name: takewhile - args: 'data, predicate' - desc: 'takes elements while predicate function returns true' - desc_ru: 'собирает элементы пока функция-предикат возвращает true' -types: - - name: StreamValue - functions: - - name: filter - args: func - desc: filters elements based on predicate function result (true - remain, false - drop) - desc_ru: фильтрует элементы на основе результата функции-предиката (true - оставить, false - убрать) - - name: filterNot - args: func - desc: filters elements based on negated predicate function result (false - remain, true - drop) - desc_ru: фильтрует элементы на основе обратного результата функции-предиката (false - оставить, true - убрать) - since: 2.0.0 - - name: map - args: func - desc: converts each element - desc_ru: преобразует каждый элемент - - name: flatMap - args: func - desc: converts each element to array - desc_ru: преобразует каждый элемент в массив - - name: sorted - args: func - desc: sorts elements with comparator function - desc_ru: сортирует элементы в соответствии с функцией-компаратором - - name: sortBy - args: func - desc: applies function, then sorts elements - desc_ru: применяет функцию, затем сортирует элементы - - name: groupBy - args: func - desc: groups elements based on function result - desc_ru: группирует элементы на основе результата выполнения функции - since: 2.0.0 - - name: takeWhile - args: func - desc: takes elements while predicate function returns true - desc_ru: собирает элементы пока функция-предикат возвращает true - - name: dropWhile - args: func - desc: skips elements while predicate function returns true, returns remaining elements - desc_ru: пропускает элементы пока функция-предикат возвращает true - - name: peek - args: func - desc: executes function for each element and returns stream - desc_ru: вызывает функцию для каждого элемента и возвращает stream - - name: skip - args: count - desc: skips `count` elements - desc_ru: пропускает указанное количество элементов - - name: limit - args: count - desc: limits elements size - desc_ru: ограничивает количество элементов - - name: custom - args: func - desc: performs custom operation - desc_ru: выполняет пользовательскую операцию над данными - example: |- - use std, functional - - println stream([1, 2, 3, 4]) - .custom(::reverse) - .toArray() - - def reverse(container) { - size = length(container) - result = newarray(size) - for i : range(size) { - result[size - i - 1] = container[i] - } - return result - } - - name: reduce - args: func - desc: converts elements to one value - desc_ru: преобразует элементы в одно значение - - name: forEach - args: func - desc: executes function for each element - desc_ru: вызывает функцию для каждого элемента - - name: forEachIndexed - args: func - desc: executes function for each element and its index - desc_ru: вызывает функцию для каждого элемента и его порядкового номера - since: 2.0.0 - - name: joining - args: delimiter = "", prefix = "", suffix = "" - desc: joins elements into a string - desc_ru: склеивает элементы в строку - - name: toArray - args: "" - desc: returns array of elements - desc_ru: возвращает массив элементов - - name: toMap - args: "keyMapper, valueMapper = def(v) = v, merger = def(oldValue, newValue) = newValue" - desc: "converts elements to a map based on `keyMapper` and `valueMapper` functions result. `merger` function resolves collisions" - desc_ru: "преобразует элементы в объект, основываясь на результате функций `keyMapper` и `valueMapper`. Функция `merger` используется для разрешения коллизий" - since: 2.0.0 - - name: anyMatch - args: predicate - desc: "returns `true` if there is any element matching the given `predicate`, otherwise returns `false`" - desc_ru: "возвращает `true`, если хотя бы один элемент удовлетворяет функции `predicate`, иначе возвращает `false`" - since: 2.0.0 - - name: allMatch - args: predicate - desc: "returns `true` if all elements match the given `predicate`, otherwise returns `false`" - desc_ru: "возвращает `true`, если все элементы удовлетворяют функции `predicate`, иначе возвращает `false`" - since: 2.0.0 - - name: noneMatch - args: predicate - desc: "returns `true` if no elements match the given `predicate`, otherwise returns `false`" - desc_ru: "возвращает `true`, если нет элементов, удовлетворяющих функции `predicate`, иначе возвращает `false`" - since: 2.0.0 - - name: count - args: "" - desc: returns the elements count - desc_ru: возвращает количество элементов diff --git a/docs/src/modules/gps_android.yml b/docs/src/modules/gps_android.yml deleted file mode 100644 index f1ae79d0..00000000 --- a/docs/src/modules/gps_android.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: gps -scope: "android" -desc: |- - Contains functions for working with GPS. -desc_ru: |- - Содержит функции для работы с GPS. -constants: - - name: GPS_PROVIDER - type: 2 - typeName: string - value: gps - - name: NETWORK_PROVIDER - type: 2 - typeName: string - value: network -functions: - - name: isEnabled - args: "provider" - desc: "checks if the given location service provider is enabled" - desc_ru: "проверяет доступность указанного провайдера местоположения" - - name: lastKnownLocation - args: "provider" - desc: "gets last known location with the given location provider, or zero if it is unable to get location" - desc_ru: "получает последнее сохранённое местоположение для указанного провайдера, либо 0, если получить местоположение не удалось" - - name: getProviders - args: "enabledOnly = false" - desc: "returns an array of location providers" - desc_ru: "возвращает массив провайдеров местоположения" - - name: "requestUpdates" - args: "provider, minTime, minDistance, callback" - desc: |- - subscribes to the location listener - desc_ru: |- - подписывается на обработчик получения местоположения - example: |- - use std, gps - - provider = "gps" // or passive, network if exists - // requestUpdates(provider, 0, 25, def(loc) = echo("location changed: ", loc)) - requestUpdates(provider, 10 * 1000, 25, { - "onLocationChanged" : def(loc) = echo("location changed: ", loc) - "onStatusChanged" : def(p, status) = echo("status changed: ", p, " is ", getStatus(status)) - "onProviderEnabled" : def(p) = echo("provider ", p, " is now enabled") - "onProviderDisabled" : def(p) = echo("provider ", p, " is now disabled") - }) diff --git a/docs/src/modules/gzip.yml b/docs/src/modules/gzip.yml deleted file mode 100644 index af290dd9..00000000 --- a/docs/src/modules/gzip.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: gzip -since: 1.5.0 -scope: both -desc: "Contains functions for working with gzip compression" -desc_ru: "Содержит функции для работы с gzip компрессией" -constants: [] -functions: - - name: gzip - args: "inputFile, outputFile" - desc: |- - creates a gzip archive with the `inputFile` file and saves to `outputFile`. - Returns 1 if compression was successfull, -1 otherwise. - desc_ru: |- - создаёт gzip архив с файлом `inputFile` и сохраняет в `outputFile`. - Возвращает 1 если компрессия завершилась успешно, и -1 в противном случае. - example: |- - use gzip - gzip("/tmp/readme.md", "/tmp/readme.md.gz") - - name: gzipBytes - args: "bytes" - desc: returns gzip-compressed input bytes. - desc_ru: возвращает сжатый в gzip массив байт. - example: |- - use gzip - bytes = gzipBytes([0, 119, 87, 80/* ... */]) - - name: ungzip - args: "inputFile, outputFile" - desc: |- - unpacks a gzip archive to `outputFile` file. - Returns 1 if operation was successfull, -1 otherwise. - desc_ru: |- - распаковывает gzip архив в файл `outputFile`. - Возвращает 1 если операция завершилась успешно, и -1 в противном случае. - example: |- - use gzip - gzip("/tmp/readme.md.gz", "/tmp/readme.md") - - name: ungzipBytes - args: "bytes" - desc: returns uncompressed bytes. - desc_ru: возвращает распакованный gzip массив байт. - example: |- - use gzip - bytes = ungzipBytes([0, 119, 87, 80/* ... */]) \ No newline at end of file diff --git a/docs/src/modules/http.yml b/docs/src/modules/http.yml deleted file mode 100644 index ed84e7a7..00000000 --- a/docs/src/modules/http.yml +++ /dev/null @@ -1,95 +0,0 @@ -name: http -scope: "both" -desc: "Contains network functions" -desc_ru: "Содержит функции для взаимодействия с сетью" -constants: [] -functions: - - name: http - args: "url, ..." - desc: |- - performs GET-request to `url`. - - `http(url, method)` - performs request with `method` (GET, POST, PUT, DELETE, PATCH, OPTIONS) to `url`. - - `http(url, callback)` - performs GET-request to `url`, response will be send to function `callback`. - - `http(url, method, params)` - performs request with given `method` and object `params` to `url`. - - `http(url, method, callback)` - performs request with given `method` to `url`, response will be send to function `callback`. - - `http(url, method, params, callback)` - performs request with given `method` and object `params` to `url`, response will be send to function `callback`. - - `http(url, method, params, options, callback)` - performs request with given `method`, object `params` and connection `options` to `url`, response will be send to function `callback`. - - Connection options is a object (map): - - - `header` - sets http-header (string or array). - - `encoded` - is `params` object already urlencoded. - - `content_type` - sets Content-Type. - - `extended_result` - marks that response should be extended and should contains: - - `text` - server response text - - `message` - server response message - - `code` - server response code - - `headers` - response http-header - - `content_length` - Content-Length - - `content_type` - Content-Type - desc_ru: |- - `http(url)` - выполняет GET-запрос на указанный адрес `url`. - - `http(url, method)` - выполняет запрос на указанный адрес `url` методом method (GET, POST, PUT, DELETE, PATCH, OPTIONS). - - `http(url, callback)` - выполняет GET-запрос на указанный адрес `url`, ответ сервера передаёт в функцию `callback`. - - `http(url, method, params)` - выполняет запрос на указанный адрес `url`, методом `method` c данными `params` (объект). - - `http(url, method, callback)` - выполняет запрос на указанный адрес `url`, методом `method`, ответ сервера передаёт в функцию `callback`. - - `http(url, method, params, callback)` - выполняет запрос на указанный адрес `url`, методом `method`, с данными `params`, ответ сервера передаёт в функцию `callback`. - - `http(url, method, params, options, callback)` - выполняет запрос на указанный адрес `url`, методом `method`, с данными `params`, параметрами подключения `options`, ответ сервера передаёт в функцию `callback`. - - Параметрами подключения выступает объект. Допустимы следующие параметры - - - `header` - задаёт http-заголовок, если передана строка или несколько заголовков, если массив. - - `encoded` - указывает, что данные `params` уже закодированы в URL-формате. - - `content_type` - указывает Content-Type. - - `extended_result` - указывает, что ответ сервера нужно вернуть в расширенном виде, а именно объектом с данными: - - `text` - текст ответа сервера - - `message` - сообщение сервера - - `code` - код ответа сервера - - `headers` - http-заголовки ответа - - `content_length` - Content-Length - - `content_type` - Content-Type - example: |- - use http - http("http://jsonplaceholder.typicode.com/users", "POST", {"name": "OwnLang", "versionCode": 10}, def(v) { - println "Added: " + v - }) - - name: httpSync - args: 'url, method = "GET", requestParams = {}, options = {}' - desc: Synchronous version of `http` function. See above for parameters description. - desc_ru: Синхронная версия функции `http`. См. выше описание параметров. - since: 2.0.0 - example: |- - use http - extract(isOk, content) = httpSync("http://jsonplaceholder.typicode.com/users", "POST", {"name": "OwnLang", "versionCode": 10}) - if (isOk) { - println "Added: " + content - } else { - println "Failure" - } - - name: "download" - args: "url" - desc: "downloads content by url as bytes array" - desc_ru: "получает содержимое по указанному адресу в виде массива байт" - example: |- - use http, files - bytes = download("http://url") - f = fopen("file", "wb") - writeBytes(f, bytes) - flush(f) - fclose(f) - - name: "urlencode" - args: "str" - desc: "converts string to URL-format" - desc_ru: "преобразует строку в URL-формат" \ No newline at end of file diff --git a/docs/src/modules/imageprocessing_android.yml b/docs/src/modules/imageprocessing_android.yml deleted file mode 100644 index f0354425..00000000 --- a/docs/src/modules/imageprocessing_android.yml +++ /dev/null @@ -1,109 +0,0 @@ -name: imageprocessing -scope: "android" -desc: |- - Contains functions for image processing. - - You can apply effect in two ways: - - 1. Pass BitmapValue and parameters array. The result will be a BitmapValue. `bitmap = boxBlur(bitmap, [20, 40])` - 2. Pass width, height, pixels array and parameters array. The result will be an array [width, height, pixels]. `extract(width, height, pixels) = boxBlur(w, h, pixels, [20, 40])` -desc_ru: |- - Содержит функции для обработки изображений. - - Применить эффект можно двумя способами: - - 1. Передать BitmapValue и массив параметров. Результатом будет BitmapValue. `bitmap = boxBlur(bitmap, [20, 40])` - 2. Передать ширину, высоту, массив пикселей и массив параметров. Результатом будет массив [ширина, высота, пиксели]. `extract(width, height, pixels) = boxBlur(w, h, pixels, [20, 40])` -functions: - - name: "boxBlur" - args: "horizontalBlur = 10 (min 1, max 100), verticalBlur = 10 (min 1, max 100)" - desc: "applies quick blur effect" - desc_ru: "применяет быстрый эффект размытия" - - name: "contrast" - args: "level = 40 (min -100, max 100)" - desc: "changes contrast of the image" - desc_ru: "изменяет контрастность изображения" - - name: "decolour" - args: "" - desc: "converts color image to grayscale" - desc_ru: "преобразует цветное изображение в оттенки серого" - - name: "edgeDetection" - args: "operator = 1, mode = 0" - desc: |- - applies edge detection effect. - - `operator` 0 - Roberts, 1 - Prewitt, 2 - Sobel, 3 - Scharr - `mode` 0 - color edges, 1 - gray edges, 2 - subtract edges - desc_ru: |- - применяет эффект выделения границ. - - `operator` 0 - оператор Робертса, 1 - Прюитт, 2 - Собеля, 3 - Шарра - `mode` 0 - цветные грани, 1 - чёрно-белые грани, 2 - вычитание границ - - name: "emboss" - args: "azimuth = 45 (min 0, max 360), elevation = 45 (min 0, max 90), edgeHeight = 140 (min 0, max 256), edgeThickness = 80 (min 2, max 100), emboss = 0 (min 0, max 1)" - desc: "applies emboss effect" - desc_ru: "применяет эффект выдавливания" - - name: "extractChannel" - args: "channel = 0, monochrome = 0" - desc: |- - extracts given channel from image. - - `channel` 0 - red, 1 - green, 2 - blue - `monochrome` 0 - off, 1 - on - desc_ru: |- - извлекает заданный канал из изображения. - - `channel` 0 - красный, 1 - зелёный, 2 - синий - `monochrome` конвертировать полученную маску в чёрно-белый, 0 - нет, 1 - да - - name: "gamma" - args: "level = 20 (min -50, max 50)" - desc: "changes gamma of the image" - desc_ru: "изменяет гамму изображения" - - name: "hsbCorrection" - args: "hue = 45 (min 0, max 360), saturation = 0 (min -100, max 100), brightness = 0 (min -100, max 100), tone = 0 (min 0, max 1)" - desc: "changes hue, saturation and brightness of the image" - desc_ru: "изменяет оттенок, насыщенность и яркость изображения, тонирует при `tone` = 1" - - name: "invert" - args: "invertAlpha = 0, invertRed = 1, invertGreen = 2, invertBlue = 3" - desc: "inverts channels of the image" - desc_ru: "инвертирует заданные каналы изображения" - - name: "monochrome" - args: "level = 128 (min 0, max 255)" - desc: "converts color image to monochrome" - desc_ru: "преобразует цветное изображение в монохромное" - - name: "mosaic" - args: "size = 4 (min 1, max 50)" - desc: "applies mosaic effect" - desc_ru: "применяет эффект мозайки" - - name: "noiseGeneration" - args: "amount = 50 (min 0, max 255), monochrome = 0" - desc: "adds noise to images" - desc_ru: "добавляет шум к изображению" - - name: "posterization" - args: "level = 64 (min 1, max 255)" - desc: "applies posterization effect" - desc_ru: "применяет эффект постеризации" - - name: "rgbCorrection" - args: "alpha = 0 (min -255, max 255), red = 0 (min -255, max 255), green = 0 (min -255, max 255), blue = 0 (min -255, max 255)" - desc: "changes alpha, red, green and blue channels of the image" - desc_ru: "изменяет прозрачность, красный, зелёный, синий каналы изображения" - - name: "rotate" - args: "angle = 45 (min 0, max 360)" - desc: "rotates image" - desc_ru: "поворачивает изображение" - - name: "saturation" - args: "level = 64 (min -255, max 255)" - desc: "changes saturation of the image" - desc_ru: "изменяет насыщенность изображения" - - name: "scatter" - args: "horizontalScatter = 10 (min 1, max 100), verticalScatter = 10 (min 1, max 100)" - desc: "applies pixel scatter effect" - desc_ru: "применяет эффект рассеивания пикселей" - - name: "smooth" - args: "level = 3 (min 1, max 25)" - desc: "applies smooth effect" - desc_ru: "применяет эффект сглаживания" - - name: "xor" - args: "level = 64 (min 0, max 255)" - desc: "applies xor operation for each pixel of the image" - desc_ru: "применяет операцию ИСКЛЮЧАЮЩЕЕ ИЛИ для каждого пикселя изображения" \ No newline at end of file diff --git a/docs/src/modules/java.yml b/docs/src/modules/java.yml deleted file mode 100644 index 4488b821..00000000 --- a/docs/src/modules/java.yml +++ /dev/null @@ -1,253 +0,0 @@ -name: java -scope: both -constants: - - name: Object.class - type: 4 - typeName: map - value: 'java.lang.Object' - - name: Object[].class - type: 4 - typeName: map - value: 'java.lang.Object[]' - - name: Object[][].class - type: 4 - typeName: map - value: 'java.lang.Object[][]' - - name: String.class - type: 4 - typeName: map - value: 'java.lang.String' - - name: String[].class - type: 4 - typeName: map - value: 'java.lang.String[]' - - name: String[][].class - type: 4 - typeName: map - value: 'java.lang.String[][]' - - name: boolean.class - type: 4 - typeName: map - value: 'boolean' - - name: boolean[].class - type: 4 - typeName: map - value: 'boolean[]' - - name: boolean[][].class - type: 4 - typeName: map - value: 'boolean[][]' - - name: byte.class - type: 4 - typeName: map - value: 'byte' - - name: byte[].class - type: 4 - typeName: map - value: 'byte[]' - - name: byte[][].class - type: 4 - typeName: map - value: 'byte[][]' - - name: char.class - type: 4 - typeName: map - value: 'char' - - name: char[].class - type: 4 - typeName: map - value: 'char[]' - - name: char[][].class - type: 4 - typeName: map - value: 'char[][]' - - name: double.class - type: 4 - typeName: map - value: 'double' - - name: double[].class - type: 4 - typeName: map - value: 'double[]' - - name: double[][].class - type: 4 - typeName: map - value: 'double[][]' - - name: float.class - type: 4 - typeName: map - value: 'float' - - name: float[].class - type: 4 - typeName: map - value: 'float[]' - - name: float[][].class - type: 4 - typeName: map - value: 'float[][]' - - name: int.class - type: 4 - typeName: map - value: 'int' - - name: int[].class - type: 4 - typeName: map - value: 'int[]' - - name: int[][].class - type: 4 - typeName: map - value: 'int[][]' - - name: long.class - type: 4 - typeName: map - value: 'long' - - name: long[].class - type: 4 - typeName: map - value: 'long[]' - - name: long[][].class - type: 4 - typeName: map - value: 'long[][]' - - name: 'null' - type: 482862660 - typeName: unknown (482862660) - value: 'null' - - name: short.class - type: 4 - typeName: map - value: 'short' - - name: short[].class - type: 4 - typeName: map - value: 'short[]' - - name: short[][].class - type: 4 - typeName: map - value: 'short[][]' -functions: - - name: isNull - args: 'values...' - desc: 'checks if one or more values are null' - desc_ru: 'проверяет, является ли одно или несколько значений null' - - name: newClass - args: 'name' - desc: 'creates ClassValue' - desc_ru: 'создаёт ClassValue' - - name: toObject - args: 'ownlangValue' - desc: 'converts ownlangValue to Java object' - desc_ru: 'конвертирует ownlangValue в Java объект' - - name: toValue - args: 'javaObject' - desc: 'converts javaObject to OwnLang value' - desc_ru: 'конвертирует javaObject в OwnLang значение' -types: - - name: ClassValue - functions: - - name: "asSubclass" - args: "" - desc: "" - desc_ru: "" - - name: "canonicalName" - args: "" - desc: "" - desc_ru: "" - - name: "cast" - args: "" - desc: "" - desc_ru: "" - - name: "genericString" - args: "" - desc: "" - desc_ru: "" - - name: "getComponentType" - args: "" - desc: "" - desc_ru: "" - - name: "getDeclaringClass" - args: "" - desc: "" - desc_ru: "" - - name: "getEnclosingClass" - args: "" - desc: "" - desc_ru: "" - - name: "getSuperclass" - args: "" - desc: "" - desc_ru: "" - - name: "getClasses" - args: "" - desc: "" - desc_ru: "" - - name: "getDeclaredClasses" - args: "" - desc: "" - desc_ru: "" - - name: "getInterfaces" - args: "" - desc: "" - desc_ru: "" - - name: "isAnnotation" - args: "" - desc: "" - desc_ru: "" - - name: "isAnonymousClass" - args: "" - desc: "" - desc_ru: "" - - name: "isArray" - args: "" - desc: "" - desc_ru: "" - - name: "isAssignableFrom" - args: "" - desc: "" - desc_ru: "" - - name: "isEnum" - args: "" - desc: "" - desc_ru: "" - - name: "isInterface" - args: "" - desc: "" - desc_ru: "" - - name: "isLocalClass" - args: "" - desc: "" - desc_ru: "" - - name: "isMemberClass" - args: "" - desc: "" - desc_ru: "" - - name: "isPrimitive" - args: "" - desc: "" - desc_ru: "" - - name: "isSynthetic" - args: "" - desc: "" - desc_ru: "" - - name: "modifiers" - args: "" - desc: "" - desc_ru: "" - - name: "name" - args: "" - desc: "" - desc_ru: "" - - name: "new" - args: "" - desc: "creates new instance of class" - desc_ru: "создаёт новый экземпляр класса" - - name: "simpleName" - args: "" - desc: "" - desc_ru: "" - - name: "typeName" - args: "" - desc: "" - desc_ru: "" - - name: NullValue - - name: ObjectValue \ No newline at end of file diff --git a/docs/src/modules/jdbc.yml b/docs/src/modules/jdbc.yml deleted file mode 100644 index 04e79833..00000000 --- a/docs/src/modules/jdbc.yml +++ /dev/null @@ -1,685 +0,0 @@ -name: jdbc -scope: desktop -constants: - - name: CLOSE_ALL_RESULTS - type: 1 - typeName: number - value: '3' - - name: CLOSE_CURRENT_RESULT - type: 1 - typeName: number - value: '1' - - name: CLOSE_CURSORS_AT_COMMIT - type: 1 - typeName: number - value: '2' - - name: CONCUR_READ_ONLY - type: 1 - typeName: number - value: '1007' - - name: CONCUR_UPDATABLE - type: 1 - typeName: number - value: '1008' - - name: EXECUTE_FAILED - type: 1 - typeName: number - value: '-3' - - name: FETCH_FORWARD - type: 1 - typeName: number - value: '1000' - - name: FETCH_REVERSE - type: 1 - typeName: number - value: '1001' - - name: FETCH_UNKNOWN - type: 1 - typeName: number - value: '1002' - - name: HOLD_CURSORS_OVER_COMMIT - type: 1 - typeName: number - value: '1' - - name: KEEP_CURRENT_RESULT - type: 1 - typeName: number - value: '2' - - name: NO_GENERATED_KEYS - type: 1 - typeName: number - value: '2' - - name: RETURN_GENERATED_KEYS - type: 1 - typeName: number - value: '1' - - name: SUCCESS_NO_INFO - type: 1 - typeName: number - value: '-2' - - name: TRANSACTION_NONE - type: 1 - typeName: number - value: '0' - - name: TRANSACTION_READ_COMMITTED - type: 1 - typeName: number - value: '2' - - name: TRANSACTION_READ_UNCOMMITTED - type: 1 - typeName: number - value: '1' - - name: TRANSACTION_REPEATABLE_READ - type: 1 - typeName: number - value: '4' - - name: TRANSACTION_SERIALIZABLE - type: 1 - typeName: number - value: '8' - - name: TYPE_FORWARD_ONLY - type: 1 - typeName: number - value: '1003' - - name: TYPE_SCROLL_INSENSITIVE - type: 1 - typeName: number - value: '1004' - - name: TYPE_SCROLL_SENSITIVE - type: 1 - typeName: number - value: '1005' -functions: - - name: getConnection - args: '...' - desc: |- - `getConnection(connectionUrl)` - - `getConnection(connectionUrl, driverClassName)` - - `getConnection(connectionUrl, user, password)` - - `getConnection(connectionUrl, user, password, driverClassName)` - - Creates connection and returns ConnectionValue. - desc_ru: |- - `getConnection(connectionUrl)` - - `getConnection(connectionUrl, driverClassName)` - - `getConnection(connectionUrl, user, password)` - - `getConnection(connectionUrl, user, password, driverClassName)` - - Создаёт подключение и возвращает ConnectionValue. - - name: mysql - args: 'connectionUrl' - desc: 'creates mysql connection' - desc_ru: 'создаёт mysql подключение' - - name: sqlite - args: 'connectionUrl' - desc: 'creates sqlite connection' - desc_ru: 'создаёт sqlite подключение' -types: - - name: ConnectionValue - functions: - - name: "clearWarnings" - args: "" - desc: "" - desc_ru: "" - - name: "close" - args: "" - desc: "" - desc_ru: "" - - name: "commit" - args: "" - desc: "" - desc_ru: "" - - name: "createStatement" - args: "" - desc: "" - desc_ru: "" - - name: "getAutoCommit" - args: "" - desc: "" - desc_ru: "" - - name: "getCatalog" - args: "" - desc: "" - desc_ru: "" - - name: "getHoldability" - args: "" - desc: "" - desc_ru: "" - - name: "getNetworkTimeout" - args: "" - desc: "" - desc_ru: "" - - name: "getSchema" - args: "" - desc: "" - desc_ru: "" - - name: "getTransactionIsolation" - args: "" - desc: "" - desc_ru: "" - - name: "getUpdateCount" - args: "" - desc: "" - desc_ru: "" - - name: "isClosed" - args: "" - desc: "" - desc_ru: "" - - name: "isReadOnly" - args: "" - desc: "" - desc_ru: "" - - name: "prepareStatement" - args: "" - desc: "" - desc_ru: "" - - name: "rollback" - args: "" - desc: "" - desc_ru: "" - - name: "setHoldability" - args: "" - desc: "" - desc_ru: "" - - name: "setTransactionIsolation" - args: "" - desc: "" - desc_ru: "" - - name: ResultSetValue - functions: - - name: "absolute" - args: "" - desc: "" - desc_ru: "" - - name: "afterLast" - args: "" - desc: "" - desc_ru: "" - - name: "beforeFirst" - args: "" - desc: "" - desc_ru: "" - - name: "cancelRowUpdates" - args: "" - desc: "" - desc_ru: "" - - name: "clearWarnings" - args: "" - desc: "" - desc_ru: "" - - name: "close" - args: "" - desc: "" - desc_ru: "" - - name: "deleteRow" - args: "" - desc: "" - desc_ru: "" - - name: "findColumn" - args: "" - desc: "" - desc_ru: "" - - name: "first" - args: "" - desc: "" - desc_ru: "" - - name: "getArray" - args: "" - desc: "" - desc_ru: "" - - name: "getBigDecimal" - args: "" - desc: "" - desc_ru: "" - - name: "getBoolean" - args: "" - desc: "" - desc_ru: "" - - name: "getByte" - args: "" - desc: "" - desc_ru: "" - - name: "getBytes" - args: "" - desc: "" - desc_ru: "" - - name: "getConcurrency" - args: "" - desc: "" - desc_ru: "" - - name: "getCursorName" - args: "" - desc: "" - desc_ru: "" - - name: "getDate" - args: "" - desc: "" - desc_ru: "" - - name: "getDouble" - args: "" - desc: "" - desc_ru: "" - - name: "getFetchDirection" - args: "" - desc: "" - desc_ru: "" - - name: "getFetchSize" - args: "" - desc: "" - desc_ru: "" - - name: "getFloat" - args: "" - desc: "" - desc_ru: "" - - name: "getHoldability" - args: "" - desc: "" - desc_ru: "" - - name: "getInt" - args: "" - desc: "" - desc_ru: "" - - name: "getLong" - args: "" - desc: "" - desc_ru: "" - - name: "getNString" - args: "" - desc: "" - desc_ru: "" - - name: "getRow" - args: "" - desc: "" - desc_ru: "" - - name: "getRowId" - args: "" - desc: "" - desc_ru: "" - - name: "getShort" - args: "" - desc: "" - desc_ru: "" - - name: "getStatement" - args: "" - desc: "" - desc_ru: "" - - name: "getString" - args: "" - desc: "" - desc_ru: "" - - name: "getTime" - args: "" - desc: "" - desc_ru: "" - - name: "getTimestamp" - args: "" - desc: "" - desc_ru: "" - - name: "getType" - args: "" - desc: "" - desc_ru: "" - - name: "getURL" - args: "" - desc: "" - desc_ru: "" - - name: "insertRow" - args: "" - desc: "" - desc_ru: "" - - name: "isAfterLast" - args: "" - desc: "" - desc_ru: "" - - name: "isBeforeFirst" - args: "" - desc: "" - desc_ru: "" - - name: "isClosed" - args: "" - desc: "" - desc_ru: "" - - name: "isFirst" - args: "" - desc: "" - desc_ru: "" - - name: "isLast" - args: "" - desc: "" - desc_ru: "" - - name: "last" - args: "" - desc: "" - desc_ru: "" - - name: "moveToCurrentRow" - args: "" - desc: "" - desc_ru: "" - - name: "moveToInsertRow" - args: "" - desc: "" - desc_ru: "" - - name: "next" - args: "" - desc: "" - desc_ru: "" - - name: "previous" - args: "" - desc: "" - desc_ru: "" - - name: "refreshRow" - args: "" - desc: "" - desc_ru: "" - - name: "relative" - args: "" - desc: "" - desc_ru: "" - - name: "rowDeleted" - args: "" - desc: "" - desc_ru: "" - - name: "rowInserted" - args: "" - desc: "" - desc_ru: "" - - name: "rowUpdated" - args: "" - desc: "" - desc_ru: "" - - name: "setFetchDirection" - args: "" - desc: "" - desc_ru: "" - - name: "setFetchSize" - args: "" - desc: "" - desc_ru: "" - - name: "updateBigDecimal" - args: "" - desc: "" - desc_ru: "" - - name: "updateBoolean" - args: "" - desc: "" - desc_ru: "" - - name: "updateByte" - args: "" - desc: "" - desc_ru: "" - - name: "updateBytes" - args: "" - desc: "" - desc_ru: "" - - name: "updateDate" - args: "" - desc: "" - desc_ru: "" - - name: "updateDouble" - args: "" - desc: "" - desc_ru: "" - - name: "updateFloat" - args: "" - desc: "" - desc_ru: "" - - name: "updateInt" - args: "" - desc: "" - desc_ru: "" - - name: "updateLong" - args: "" - desc: "" - desc_ru: "" - - name: "updateNString" - args: "" - desc: "" - desc_ru: "" - - name: "updateNull" - args: "" - desc: "" - desc_ru: "" - - name: "updateRow" - args: "" - desc: "" - desc_ru: "" - - name: "updateShort" - args: "" - desc: "" - desc_ru: "" - - name: "updateString" - args: "" - desc: "" - desc_ru: "" - - name: "updateTime" - args: "" - desc: "" - desc_ru: "" - - name: "updateTimestamp" - args: "" - desc: "" - desc_ru: "" - - name: "wasNull" - args: "" - desc: "" - desc_ru: "" - - name: StatementValue - functions: - - name: "addBatch" - args: "" - desc: "" - desc_ru: "" - - name: "cancel" - args: "" - desc: "" - desc_ru: "" - - name: "clearBatch" - args: "" - desc: "" - desc_ru: "" - - name: "clearParameters" - args: "" - desc: "" - desc_ru: "" - - name: "clearWarnings" - args: "" - desc: "" - desc_ru: "" - - name: "close" - args: "" - desc: "" - desc_ru: "" - - name: "closeOnCompletion" - args: "" - desc: "" - desc_ru: "" - - name: "execute" - args: "" - desc: "" - desc_ru: "" - - name: "executeBatch" - args: "" - desc: "" - desc_ru: "" - - name: "executeLargeBatch" - args: "" - desc: "" - desc_ru: "" - - name: "executeLargeUpdate" - args: "" - desc: "" - desc_ru: "" - - name: "executeQuery" - args: "" - desc: "" - desc_ru: "" - - name: "executeUpdate" - args: "" - desc: "" - desc_ru: "" - - name: "getFetchDirection" - args: "" - desc: "" - desc_ru: "" - - name: "getFetchSize" - args: "" - desc: "" - desc_ru: "" - - name: "getGeneratedKeys" - args: "" - desc: "" - desc_ru: "" - - name: "getMaxFieldSize" - args: "" - desc: "" - desc_ru: "" - - name: "getMaxRows" - args: "" - desc: "" - desc_ru: "" - - name: "getMoreResults" - args: "" - desc: "" - desc_ru: "" - - name: "getQueryTimeout" - args: "" - desc: "" - desc_ru: "" - - name: "getResultSet" - args: "" - desc: "" - desc_ru: "" - - name: "getResultSetConcurrency" - args: "" - desc: "" - desc_ru: "" - - name: "getResultSetHoldability" - args: "" - desc: "" - desc_ru: "" - - name: "getResultSetType" - args: "" - desc: "" - desc_ru: "" - - name: "getUpdateCount" - args: "" - desc: "" - desc_ru: "" - - name: "isCloseOnCompletion" - args: "" - desc: "" - desc_ru: "" - - name: "isClosed" - args: "" - desc: "" - desc_ru: "" - - name: "isPoolable" - args: "" - desc: "" - desc_ru: "" - - name: "setBigDecimal" - args: "" - desc: "" - desc_ru: "" - - name: "setBoolean" - args: "" - desc: "" - desc_ru: "" - - name: "setByte" - args: "" - desc: "" - desc_ru: "" - - name: "setBytes" - args: "" - desc: "" - desc_ru: "" - - name: "setCursorName" - args: "" - desc: "" - desc_ru: "" - - name: "setDate" - args: "" - desc: "" - desc_ru: "" - - name: "setDouble" - args: "" - desc: "" - desc_ru: "" - - name: "setEscapeProcessing" - args: "" - desc: "" - desc_ru: "" - - name: "setFetchDirection" - args: "" - desc: "" - desc_ru: "" - - name: "setFetchSize" - args: "" - desc: "" - desc_ru: "" - - name: "setFloat" - args: "" - desc: "" - desc_ru: "" - - name: "setInt" - args: "" - desc: "" - desc_ru: "" - - name: "setLargeMaxRows" - args: "" - desc: "" - desc_ru: "" - - name: "setLong" - args: "" - desc: "" - desc_ru: "" - - name: "setMaxFieldSize" - args: "" - desc: "" - desc_ru: "" - - name: "setMaxRows" - args: "" - desc: "" - desc_ru: "" - - name: "setNString" - args: "" - desc: "" - desc_ru: "" - - name: "setNull" - args: "" - desc: "" - desc_ru: "" - - name: "setPoolable" - args: "" - desc: "" - desc_ru: "" - - name: "setQueryTimeout" - args: "" - desc: "" - desc_ru: "" - - name: "setShort" - args: "" - desc: "" - desc_ru: "" - - name: "setString" - args: "" - desc: "" - desc_ru: "" - - name: "setTime" - args: "" - desc: "" - desc_ru: "" - - name: "setTimestamp" - args: "" - desc: "" - desc_ru: "" - - name: "setURL" - args: "" - desc: "" - desc_ru: "" \ No newline at end of file diff --git a/docs/src/modules/json.yml b/docs/src/modules/json.yml deleted file mode 100644 index 3bd555db..00000000 --- a/docs/src/modules/json.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: json -scope: "both" -desc: "Contains functions for working with the json format" -desc_ru: "Содержит функции преобразования данных в формат json и наоборот" -constants: [] -functions: - - name: "jsondecode" - args: "data" - desc: "converts data to json string" - desc_ru: "преобразует переданные данные в строку в формате json" - example: |- - use json - print jsondecode("{\"key1\":1,\"key2\":[1,2,3],\"key3\":\"text\"}") // {key2=[1, 2, 3], key3=text, key1=1} - - name: "jsonencode" - args: "jsonString, indent = 0" - desc: "converts string to data" - desc_ru: "преобразует строку в формате json в данные" - example: |- - use json - data = { - "key1": 1, - "key2": [1, 2, 3], - "key3": "text" - } - print jsonencode(data) // {"key1":1,"key2":[1,2,3],"key3":"text"} \ No newline at end of file diff --git a/docs/src/modules/math.yml b/docs/src/modules/math.yml deleted file mode 100644 index 643a8f2b..00000000 --- a/docs/src/modules/math.yml +++ /dev/null @@ -1,162 +0,0 @@ -name: math -scope: "both" -desc: "Contains math functions and constants" -desc_ru: "Содержит математические функции и константы" -constants: - - name: "E" - typeName: number - type: 1 - value: "2.718281828459045" - - name: "PI" - typeName: number - type: 1 - value: "3.141592653589793" -functions: - - name: "abs" - args: "x" - desc: "absolute value of `x`" - desc_ru: "модуль числа `x`" - - name: "acos" - args: "x" - desc: "arc cosine" - desc_ru: "арккосинус" - - name: "asin" - args: "x" - desc: "arc sine" - desc_ru: "арксинус" - - name: "atan" - args: "x" - desc: "arc tangent" - desc_ru: "арктангенс" - - name: "atan2" - args: "y, x" - desc: "returns angle θ whose tangent is the ratio of two numbers" - desc_ru: "угол θ, тангенс которого равен отношению двух указанных чисел" - - name: "cbrt" - args: "x" - desc: "cube root" - desc_ru: "кубический корень числа x" - - name: "ceil" - args: "x" - desc: "returns the ceiling of `x`" - desc_ru: "округляет вещественное число в большую сторону" - example: |- - use math - - ceil(6.4) // 7 - - name: "copySign" - args: "magnitude, sign" - desc: "returns a value with the magnitude of x and the sign of y" - desc_ru: "возвращает значение с величиной x и знаком y" - - name: "cos" - args: "x" - desc: "trigonometric cosine" - desc_ru: "косинус" - - name: "cosh" - args: "x" - desc: "hyperbolic cosine" - desc_ru: "гиперболический косинус" - - name: "exp" - args: "x" - desc: "ex" - desc_ru: "ex" - - name: "expm1" - args: "x" - desc: "ex-1" - desc_ru: "ex-1" - - name: "floor" - args: "x" - desc: "returns floor of `x`" - desc_ru: "округляет вещественное число в меньшую сторону" - example: |- - use math - - floor(3.8) // 3 - - name: "getExponent" - args: "x" - desc: "returns the unbiased exponent used in the representation of a double or float" - desc_ru: "возвращают несмещенное значение экспоненты числа" - - name: "hypot" - args: "x, y" - desc: "returns the square root of the sum of squares of its arguments" - desc_ru: "расчёт гипотенузы sqrt(x2 + y2) без переполнения" - - name: "IEEEremainder" - args: "x, y" - desc: "returns the remainder resulting from the division of a specified number by another specified number. This operation complies with the remainder operation defined in Section 5.1 of ANSI/IEEE Std 754-1985; IEEE Standard for Binary Floating-Point Arithmetic; Institute of Electrical and Electronics Engineers, Inc; 1985." - desc_ru: "возвращает остаток от деления x на y по стандарту ANSI/IEEE Std 754-1985, раздел 5.1" - - name: "log" - args: "x" - desc: "returns the logarithm of a specified number" - desc_ru: "логарифм" - - name: "log1p" - args: "x" - desc: "" - desc_ru: "натуральный логарифм от x + 1 (`ln(x + 1)`)" - - name: "log10" - args: "x" - desc: "returns the base 10 logarithm of a specified number" - desc_ru: "десятичный логарифм" - - name: "max" - args: "x, y" - desc: "returns the larger of two specified numbers" - desc_ru: "максимальное из двух чисел" - - name: "min" - args: "x, y" - desc: "returns the smaller of two numbers" - desc_ru: "минимальное из двух чисел" - - name: "nextAfter" - args: "x, y" - desc: "" - desc_ru: "" - - name: "nextUp" - args: "x" - desc: "" - desc_ru: "" - - name: "pow" - args: "x, y" - desc: "returns a specified number raised to the specified power" - desc_ru: "возведение x в степень y" - - name: "rint" - args: "x" - desc: "" - desc_ru: "" - - name: "round" - args: "x" - desc: "rounds a value to the nearest integer or to the specified number of fractional digits" - desc_ru: "округляет вещественное число до ближайшего целого" - - name: "signum" - args: "x" - desc: "returns an integer that indicates the sign of a number" - desc_ru: "возвращает целое число, указывающее знак числа" - - name: "sin" - args: "x" - desc: "" - desc_ru: "синус" - - name: "sinh" - args: "x" - desc: "" - desc_ru: "гиперболический синус" - - name: "sqrt" - args: "x" - desc: "" - desc_ru: "квадратный корень" - - name: "tan" - args: "x" - desc: "" - desc_ru: "тангенс" - - name: "tanh" - args: "x" - desc: "" - desc_ru: "гиперболический тангенс" - - name: "toDegrees" - args: "x" - desc: "" - desc_ru: "перевод радиан в градусы" - - name: "toRadians" - args: "x" - desc: "" - desc_ru: "перевод градусов в радианы" - - name: "ulp" - args: "x" - desc: "" - desc_ru: "" \ No newline at end of file diff --git a/docs/src/modules/okhttp.yml b/docs/src/modules/okhttp.yml deleted file mode 100644 index 09c74f88..00000000 --- a/docs/src/modules/okhttp.yml +++ /dev/null @@ -1,241 +0,0 @@ -name: okhttp -since: 1.5.0 -scope: both -constants: - - name: MultipartBody - type: 4 - typeName: map - value: MultipartBodyValue - - name: RequestBody - type: 4 - typeName: map - value: RequestBodyValue - - name: okhttp - type: 4 - typeName: map - value: OkHttpValue -functions: [] -types: - - name: CallValue - functions: - - name: cancel - args: '' - desc: '' - desc_ru: '' - - name: enqueue - args: 'onResponse, onFailure=def(call, errorMessage)' - desc: '' - desc_ru: '' - - name: execute - args: '' - desc: '' - desc_ru: '' - - name: isCanceled - args: '' - desc: '' - desc_ru: '' - - name: isExecuted - args: '' - desc: '' - desc_ru: '' - - name: MultipartBodyValue - constants: - - name: ALTERNATIVE - type: 2 - typeName: string - value: multipart/alternative - - name: DIGEST - type: 2 - typeName: string - value: multipart/digest - - name: FORM - type: 2 - typeName: string - value: multipart/form-data - - name: MIXED - type: 2 - typeName: string - value: multipart/mixed - - name: PARALLEL - type: 2 - typeName: string - value: multipart/parallel - functions: - - name: builder - args: '' - desc: returns MultipartBodyBuilderValue - desc_ru: dозвращает MultipartBodyBuilderValue - - name: MultipartBodyBuilderValue - functions: - - name: addFormData - args: 'data' - desc: '' - desc_ru: '' - - name: addFormDataPart - args: 'name, value, requestBody = empty' - desc: '' - desc_ru: '' - - name: addPart - args: 'requestBody, headers = {}' - desc: '' - desc_ru: '' - - name: build - args: '' - desc: creates and returns MultipartBodyValue - desc_ru: создаёт и возвращает MultipartBodyValue - - name: setType - args: 'type' - desc: '' - desc_ru: '' - - name: RequestBuilderValue - functions: - - name: addHeader - args: 'name, value' - desc: '' - desc_ru: '' - - name: cacheControl - args: '' - desc: '' - desc_ru: '' - - name: delete - args: 'requestBody = empty' - desc: '' - desc_ru: '' - - name: get - args: '' - desc: '' - desc_ru: '' - - name: head - args: '' - desc: '' - desc_ru: '' - - name: header - args: 'name, value' - desc: '' - desc_ru: '' - - name: headers - args: 'headersMap' - desc: '' - desc_ru: '' - - name: method - args: 'method, requestBody = empty' - desc: '' - desc_ru: '' - - name: newCall - args: 'client' - desc: creates new call, returns CallValue - desc_ru: создаёт новый вызов, возвращает CallValue - - name: patch - args: 'requestBody = empty' - desc: '' - desc_ru: '' - - name: post - args: 'requestBody = empty' - desc: '' - desc_ru: '' - - name: put - args: 'requestBody = empty' - desc: '' - desc_ru: '' - - name: removeHeader - args: 'name' - desc: '' - desc_ru: '' - - name: url - args: 'url' - desc: '' - desc_ru: '' - - name: RequestBodyValue - functions: - - name: bytes - args: 'contentType, bytes, offset = 0, bytesCount = bytes.length' - desc: '' - desc_ru: '' - - name: file - args: 'contentType, filePath' - desc: '' - desc_ru: '' - - name: string - args: 'contentType, content' - desc: '' - desc_ru: '' - - name: OkHttpValue - constants: - - name: client - type: 4 - typeName: map - value: HttpClientValue - functions: - - name: request - args: '' - desc: returns RequestBuilderValue - desc_ru: возвращает RequestBuilderValue - - name: newClient - args: '' - desc: returns HttpClientBuilderValue - desc_ru: возвращает HttpClientBuilderValue - - name: HttpClientValue - functions: - - name: connectTimeoutMillis - args: '' - desc: '' - desc_ru: '' - - name: followRedirects - args: '' - desc: '' - desc_ru: '' - - name: followSslRedirects - args: '' - desc: '' - desc_ru: '' - - name: newCall - args: 'request' - desc: creates new call, returns CallValue - desc_ru: создаёт новый вызов, возвращает CallValue - - name: newWebSocket - args: 'request, callbacks' - desc: '' - desc_ru: '' - - name: pingIntervalMillis - args: '' - desc: '' - desc_ru: '' - - name: readTimeoutMillis - args: '' - desc: '' - desc_ru: '' - - name: retryOnConnectionFailure - args: '' - desc: '' - desc_ru: '' - - name: writeTimeoutMillis - args: '' - desc: '' - desc_ru: '' - - name: HttpClientBuilderValue - functions: - - name: callTimeout - args: 'duration, timeUnit' - desc: 'Sets call timeout for `duration` and `timeUnit` one of "millis"/"milliseconds", "seconds", "minutes", "hours", "days"' - desc_ru: 'Устанавливает таймаут вызова в `duration` и `timeUnit` один из "millis"/"milliseconds", "seconds", "minutes", "hours", "days"' - - name: connectTimeout - args: 'duration, timeUnit' - desc: 'Sets connect timeout for `duration` and `timeUnit` one of "millis"/"milliseconds", "seconds", "minutes", "hours", "days"' - desc_ru: 'Устанавливает таймаут соединения в `duration` и `timeUnit` один из "millis"/"milliseconds", "seconds", "minutes", "hours", "days"' - - name: readTimeout - args: 'duration, timeUnit' - desc: 'Sets read timeout for `duration` and `timeUnit` one of "millis"/"milliseconds", "seconds", "minutes", "hours", "days"' - desc_ru: 'Устанавливает таймаут чтения в `duration` и `timeUnit` один из "millis"/"milliseconds", "seconds", "minutes", "hours", "days"' - - name: writeTimeout - args: 'duration, timeUnit' - desc: 'Sets write timeout for `duration` and `timeUnit` one of "millis"/"milliseconds", "seconds", "minutes", "hours", "days"' - desc_ru: 'Устанавливает таймаут записи в `duration` и `timeUnit` один из "millis"/"milliseconds", "seconds", "minutes", "hours", "days"' - - name: retryOnConnectionFailure - args: 'flag' - desc: 'Enables or disables retry on connection failure' - desc_ru: 'Включает или выключает повтор при ошибках соединения' - - name: build - args: '' - desc: 'Returns new HttpClientValue' - desc_ru: 'Возвращает новый HttpClientValue' - diff --git a/docs/src/modules/ounit.yml b/docs/src/modules/ounit.yml deleted file mode 100644 index 85f49d9a..00000000 --- a/docs/src/modules/ounit.yml +++ /dev/null @@ -1,60 +0,0 @@ -name: ounit -scope: "both" -desc: "Contains functions for testing. Invokes all functions with prefix `test` and checks expected and actual values, counts execution time" -desc_ru: "Содержит функции для тестирования. Поочерёдно вызывает все функции программы, которые имеют приставку `test` и подсчитывает время выполнение и расхождения с ожидаемыми значениями" -constants: [] -functions: - - name: "assertEquals" - args: "expected, actual" - desc: "checks that two values are equal" - desc_ru: "проверяет, равны ли два значения" - - name: "assertFalse" - args: "actual" - desc: "checks that value is false (equals 0)" - desc_ru: "проверяет, является ли значение ложным (равным нулю)" - - name: "assertNotEquals" - args: "expected, actual" - desc: "checks that two values are not equal" - desc_ru: "проверяет, отличаются ли два значения" - - name: "assertSameType" - args: "expected, actual" - desc: "checks that types of two values are equal" - desc_ru: "проверяет, одинаковы ли типы у двух значений" - - name: "assertTrue" - args: "actual" - desc: "checks that value is true (not equals 0)" - desc_ru: "проверяет, является ли значение истинным (не равным нулю)" - - name: "runTests" - args: "" - desc: "executes tests and returns information about it's results" - desc_ru: "запускает тесты и возвращает информацию о них по завершению работы в виде строки" - example: |- - use ounit - - def testAdditionOnNumbers() { - assertEquals(6, 0 + 1 + 2 + 3) - } - - def testTypes() { - assertSameType(0, 0.0) - } - - def testFail() { - assertTrue(false) - } - - println runTests() - - /* - testTypes [passed] - Elapsed: 0,0189 sec - - testAdditionOnNumbers [passed] - Elapsed: 0,0008 sec - - testFail [FAILED] - Expected true, but found false. - Elapsed: 0,0001 sec - - Tests run: 3, Failures: 1, Time elapsed: 0,0198 sec - */ \ No newline at end of file diff --git a/docs/src/modules/regex.yml b/docs/src/modules/regex.yml deleted file mode 100644 index 057d5e15..00000000 --- a/docs/src/modules/regex.yml +++ /dev/null @@ -1,147 +0,0 @@ -name: regex -since: 1.4.0 -constants: - - name: Pattern - type: 4 - typeName: map - value: "{UNIX_LINES=1, CASE_INSENSITIVE=2, I=2, COMMENTS=4, MULTILINE=8, M=8, LITERAL=16, S=32, DOTALL=32, UNICODE_CASE=64, CANON_EQ=128, UNICODE_CHARACTER_CLASS=256, U=256, quote=def(s) { return string }, matches=def(str,pattern) { return boolean }, split=def(str,pattern,limit = 0) { return array }, compile=def(pattern,flags = 0) { return PatternValue }}" -functions: - - name: regex - args: 'pattern, flags = 0' - desc: 'creates pattern and returns PatternValue' - desc_ru: 'создаёт шаблон регулярного выражения и возвращает PatternValue' -types: - - name: PatternValue - functions: - - name: "flags" - args: "" - desc: "returns pattern flags" - desc_ru: "возвращает флаги шаблона" - - name: "pattern" - args: "" - desc: "returns pattern as string" - desc_ru: "возвращает шаблон в виде строки" - - name: "matcher" - args: "input" - desc: "returns MatcherValue" - desc_ru: "возвращает MatcherValue" - - name: "matches" - args: "input" - desc: "checks if input matches the pattern" - desc_ru: "проверяет, соответствует ли входная строка шаблону" - - name: "split" - args: "input, limit = 0" - desc: "splits input around matches of this pattern" - desc_ru: "разбивает строку на основе совпадений шаблона" - - name: "replaceCallback" - args: "input, callback" - desc: "replaces input with the result of the given callback" - desc_ru: "заменяет строку результатом заданной функции" - example: |- - use regex - in = "dog cat" - pattern = regex("(\w+)\s(\w+)", Pattern.I) - println pattern.replaceCallback(in, def(m) = m.group(2) + "" + m.group(1)) - example_ru: |- - use regex - in = "пёс кот" - pattern = regex("(\w+)\s(\w+)", Pattern.U | Pattern.I) - println pattern.replaceCallback(in, def(m) = m.group(2) + "о" + m.group(1)) - - name: MatcherValue - functions: - - name: "start" - args: "group = ..." - desc: "returns the start index of matched subsequence" - desc_ru: "возвращает начальную позицию найденного совпадения" - - name: "end" - args: "group = ..." - desc: "returns the offset after last character of matched subsequence" - desc_ru: "возвращает позицию, следующую за последним символов найденного совпадения" - - name: "find" - args: "start = 0" - desc: "resets this matcher and attempts to find the next matched subsequence" - desc_ru: "сбрасывает состояние матчера и пытается найти следующее совпадение" - - name: "group" - args: "group = 0" - desc: "returns matched group" - desc_ru: "возвращает найденную группу" - - name: "pattern" - args: "" - desc: "returns the pattern" - desc_ru: "возвращает шаблон" - - name: "region" - args: "start, end" - desc: "sets the limits of this matcher's region" - desc_ru: "задаёт ограничения для текущего региона" - - name: "replaceFirst" - args: "replacement" - desc: "replaces first matched subsequence with the given replacement string" - desc_ru: "заменяет первое совпадение на заданную строку" - - name: "replaceAll" - args: "replacement" - desc: "replaces all matched subsequences with the given replacement string" - desc_ru: "заменяет все совпадения на заданную строку" - - name: "replaceCallback" - args: "callback" - desc: "replaces input with the result of the given callback" - desc_ru: "заменяет строку результатом заданной функции" - example: |- - use regex - in = "dog cat" - pattern = regex("(\w+)\s(\w+)", Pattern.I) - matcher = pattern.matcher(in) - println matcher.replaceCallback(def(m) = m.group(2) + m.group(1)) - example_ru: |- - use regex - in = "пёс кот" - pattern = regex("(\w+)\s(\w+)", Pattern.U | Pattern.I) - matcher = pattern.matcher(in) - println matcher.replaceCallback(def(m) = m.group(2) + "о" + m.group(1)) - - name: "reset" - args: input = "" - desc: "" - desc_ru: "" - - name: "usePattern" - args: "patternvalue" - desc: "" - desc_ru: "" - - name: "useAnchoringBounds" - args: "status" - desc: "" - desc_ru: "" - - name: "hasAnchoringBounds" - args: "" - desc: "" - desc_ru: "" - - name: "useTransparentBounds" - args: "status" - desc: "" - desc_ru: "" - - name: "hasTransparentBounds" - args: "" - desc: "" - desc_ru: "" - - name: "hitEnd" - args: "" - desc: "" - desc_ru: "" - - name: "lookingAt" - args: "" - desc: "" - desc_ru: "" - - name: "matches" - args: "" - desc: "" - desc_ru: "" - - name: "groupCount" - args: "" - desc: "" - desc_ru: "" - - name: "regionStart" - args: "" - desc: "" - desc_ru: "" - - name: "regionEnd" - args: "" - desc: "" - desc_ru: "" \ No newline at end of file diff --git a/docs/src/modules/robot.yml b/docs/src/modules/robot.yml deleted file mode 100644 index 9cf8e764..00000000 --- a/docs/src/modules/robot.yml +++ /dev/null @@ -1,139 +0,0 @@ -name: robot -scope: "both" -desc: "Contains functions for working with clipboard, processes, automation" -desc_ru: "Содержит функции для работы с буфером обмена, процессами, автоматизацией" -constants: - - name: "BUTTON1" - typeName: number - type: 1 - value: "16" - desc: "left mouse button code" - desc_ru: "код левой кнопки мыши" - - name: "BUTTON2" - typeName: number - type: 1 - value: "8" - desc: "middle mouse button code" - desc_ru: "код средней кнопки мыши" - - name: "BUTTON3" - typeName: number - type: 1 - value: "4" - desc: "right mouse button code" - desc_ru: "код правой кнопки мыши" - - name: "VK_DOWN" - typeName: number - type: 1 - value: "40" - desc: "key down code" - desc_ru: "код клавиши вниз" - - name: "VK_ESCAPE" - typeName: number - type: 1 - value: "27" - desc: "Escape key code" - desc_ru: "код клавиши Escape" - - name: "VK_FIRE" - typeName: number - type: 1 - value: "10" - desc: "Enter key code" - desc_ru: "код клавиши Enter" - - name: "VK_LEFT" - typeName: number - type: 1 - value: "37" - desc: "key left code" - desc_ru: "код клавиши влево" - - name: "VK_RIGHT" - typeName: number - type: 1 - value: "39" - desc: "key right code" - desc_ru: "код клавиши вправо" -functions: - - name: "click" - args: "buttons" - scope: "desktop" - desc: "performs click with given mouse buttons" - desc_ru: "осуществляет клик мышью с заданными клавишами" - example: |- - use robot - - click(BUTTON3) // right mouse button click - example_ru: |- - use robot - - click(BUTTON3) // клик правой кнопкой мыши - - name: "delay" - args: "ms" - scope: "desktop" - desc: "delay by given milliseconds" - desc_ru: "задержка на заданной количество миллисекунд" - - name: "execProcess" - args: "args..." - desc: "executes the process with parameters" - desc_ru: "запускает процесс с параметрами\n\n Если функции переданы несколько аргументов, то они все передаются как параметры.\n Если функции передан только один параметр - массив, то его элементы передаются как параметры.\n Если функции передан только один параметр, то он служит единственным параметром." - example: |- - use robot - - execProcess("mkdir", "Test") - execProcess("mkdir Test") - execProcess(["mkdir", "Test"]) - - name: "execProcessAndWait" - args: "args..." - desc: "same as `execProcess`, but waits until process completes, returns it's exit code" - desc_ru: "аналогичен функции `execProcess`, но ожидает завершение порождаемого процесса и возвращает его статус" - - name: "fromClipboard" - args: "" - desc: "gets text from clipboard" - desc_ru: "получает строку из буфера обмена" - - name: "keyPress" - args: "key" - scope: "desktop" - desc: "performs pressing key" - desc_ru: "осуществляет зажатие клавиши с кодом key" - - name: "keyRelease" - args: "key" - scope: "desktop" - desc: "performs releasing key" - desc_ru: "осуществляет отпускание клавиши с кодом key" - - name: "mouseMove" - args: "x, y" - scope: "desktop" - desc: "moves mouse pointer to given point" - desc_ru: "перемещает указатель мыши в заданную координату" - - name: "mousePress" - args: "buttons" - scope: "desktop" - desc: "performs pressing the given mouse button" - desc_ru: "осуществляет зажатие заданной кнопки мыши" - - name: "mouseRelease" - args: "buttons" - scope: "desktop" - desc: "performs releasing the given mouse button" - desc_ru: "осуществляет отпускание заданной кнопки мыши" - - name: "mouseWheel" - args: "value" - scope: "desktop" - desc: "performs scrolling (< 0 - up, > 0 - down)" - desc_ru: "осуществляет прокрутку колеса мыши (отрицательное значение - вверх, положительное - вниз)" - - name: "setAutoDelay" - args: "ms" - scope: "desktop" - desc: "sets delay after each automation event" - desc_ru: "установка длительности автоматической задержки после каждого события автоматизации" - - name: "toClipboard" - args: "text" - desc: "adds text to clipboards" - desc_ru: "копирует строку в буфер обмена" - - name: "typeText" - args: "text" - scope: "desktop" - desc: "performs typing text by pressing keys for each character" - desc_ru: "осуществляет последовательное нажатие клавиш для набора заданного текста" - - name: "sudo" - args: "args..." - scope: "android" - desc: "same as `execProcess`, but executes command as root (requires rooted device)" - desc_ru: "аналогичен функции `execProcess`, но выполняет команду от имени администратора (нужен Root)" \ No newline at end of file diff --git a/docs/src/modules/server.yml b/docs/src/modules/server.yml deleted file mode 100644 index a603e493..00000000 --- a/docs/src/modules/server.yml +++ /dev/null @@ -1,290 +0,0 @@ -name: server -since: 2.0.0 -scope: desktop -constants: - - name: Header - type: 4 - typeName: map - value: '{ACCEPT=Accept, ACCEPT_CHARSET=Accept-Charset, ACCEPT_ENCODING=Accept-Encoding, - ACCEPT_LANGUAGE=Accept-Language, ACCEPT_RANGES=Accept-Ranges, ACCESS_CONTROL_ALLOW_CREDENTIALS=Access-Control-Allow-Credentials, - ACCESS_CONTROL_ALLOW_HEADERS=Access-Control-Allow-Headers, ACCESS_CONTROL_ALLOW_METHODS=Access-Control-Allow-Methods, - ACCESS_CONTROL_ALLOW_ORIGIN=Access-Control-Allow-Origin, ACCESS_CONTROL_EXPOSE_HEADERS=Access-Control-Expose-Headers, - ACCESS_CONTROL_MAX_AGE=Access-Control-Max-Age, ACCESS_CONTROL_REQUEST_HEADERS=Access-Control-Request-Headers, - ACCESS_CONTROL_REQUEST_METHOD=Access-Control-Request-Method, AGE=Age, ALLOW=Allow, - AUTHORIZATION=Authorization, CACHE_CONTROL=Cache-Control, CLEAR_SITE_DATA=Clear-Site-Data, - CONNECTION=Connection, CONTENT_DISPOSITION=Content-Disposition, CONTENT_ENCODING=Content-Encoding, - CONTENT_LANGUAGE=Content-Language, CONTENT_LENGTH=Content-Length, CONTENT_LOCATION=Content-Location, - CONTENT_RANGE=Content-Range, CONTENT_SECURITY_POLICY=Content-Security-Policy, - CONTENT_TYPE=Content-Type, COOKIE=Cookie, CROSS_ORIGIN_EMBEDDER_POLICY=Cross-Origin-Embedder-Policy, - CROSS_ORIGIN_OPENER_POLICY=Cross-Origin-Opener-Policy, CROSS_ORIGIN_RESOURCE_POLICY=Cross-Origin-Resource-Policy, - DATE=Date, ETAG=ETag, EXPECT=Expect, EXPIRES=Expires, FROM=From, HOST=Host, - IF_MATCH=If-Match, IF_MODIFIED_SINCE=If-Modified-Since, IF_NONE_MATCH=If-None-Match, - IF_RANGE=If-Range, IF_UNMODIFIED_SINCE=If-Unmodified-Since, LAST_MODIFIED=Last-Modified, - LINK=Link, LOCATION=Location, MAX_FORWARDS=Max-Forwards, ORIGIN=Origin, PRAGMA=Pragma, - PROXY_AUTHENTICATE=Proxy-Authenticate, PROXY_AUTHORIZATION=Proxy-Authorization, - RANGE=Range, REFERER=Referer, REFERRER_POLICY=Referrer-Policy, RETRY_AFTER=Retry-After, - SEC_WEBSOCKET_KEY=Sec-WebSocket-Key, SERVER=Server, SET_COOKIE=Set-Cookie, STRICT_TRANSPORT_SECURITY=Strict-Transport-Security, - TE=TE, TRAILER=Trailer, TRANSFER_ENCODING=Transfer-Encoding, UPGRADE=Upgrade, - USER_AGENT=User-Agent, VARY=Vary, VIA=Via, WARNING=Warning, WWW_AUTHENTICATE=WWW-Authenticate, - X_ACCEL_BUFFERING=X-Accel-Buffering, X_CONTENT_TYPE_OPTIONS=X-Content-Type-Options, - X_FORWARDED_FOR=X-Forwarded-For, X_FORWARDED_PROTO=X-Forwarded-Proto, X_FRAME_OPTIONS=X-Frame-Options, - X_HTTP_METHOD_OVERRIDE=X-HTTP-Method-Override, X_PERMITTED_CROSS_DOMAIN_POLICIES=X-Permitted-Cross-Domain-Policies}' -functions: - - name: newServer - args: 'config = {}' - desc: Initializes server using provided config. Returns ServerValue. - desc_ru: Инициализирует сервер, используя заданный конфиг. Возвращает ServerValue. - example: |- - use std, server - - newServer() - .get("/", def(ctx) = ctx.json({"message": "Hello, world!"})) - .start(8081) - - name: serve - args: 'port = 8080, dir = "."' - desc: Starts a server on the `port` and hosts the directory `dir` - desc_ru: Запускает сервер на указанном порту и хостит директорию `dir` - example: |- - use server - serve(8083, "./public_html") -types: - - name: ServerValue - functions: - - name: get - args: 'path, handler, roles...' - desc: adds a GET request handler - desc_ru: добавляет обработчик GET запросов - - name: post - args: 'path, handler, roles...' - desc: adds a POST request handler - desc_ru: добавляет обработчик POST запросов - - name: put - args: 'path, handler, roles...' - desc: adds a PUT request handler - desc_ru: добавляет обработчик PUT запросов - - name: patch - args: 'path, handler, roles...' - desc: adds a PATCH request handler - desc_ru: добавляет обработчик PATCH запросов - - name: head - args: 'path, handler, roles...' - desc: adds a HEAD request handler - desc_ru: добавляет обработчик HEAD запросов - - name: delete - args: 'path, handler, roles...' - desc: adds a DELETE request handler - desc_ru: добавляет обработчик DELETE запросов - - name: options - args: 'path, handler, roles...' - desc: adds a OPTIONS request handler - desc_ru: добавляет обработчик OPTIONS запросов - - name: error - args: 'status, handler, contentType = "*"' - desc: adds an error handler - desc_ru: добавляет обработчик ошибок - - name: exception - args: 'className, handler' - desc: adds an exception handler - desc_ru: добавляет обработчик исключений - - name: start - args: 'port = 8080, host = ""' - desc: Starts a server. Use `port` 0 to start a server on a random port. - desc_ru: Запускает сервер. Укажите `port` 0, чтобы запустить сервер на случайном порте - - name: stop - args: '' - desc: Stops a server - desc_ru: Останавливает работу сервера - - name: ContextValue - functions: - - name: appData - args: 'key' - desc: gets an appData value by key. See config.appData - desc_ru: получает значение appData по ключу `key`. См. config.appData - - name: attribute - args: 'key, value = ""' - desc: gets or sets an attribute by key - desc_ru: получает или устанавливает аттрибут по ключу `key` - - name: basicAuthCredentials - args: '' - desc: returns a basic authorization credentials, an array with two elements — username and password - desc_ru: возвращает простые данные авторизации, массив с двумя элементами — имя пользователя и пароль - example: |- - extract(username, password) = ctx.basicAuthCredentials() - - name: body - args: '' - desc: returns a response body as a string - desc_ru: возвращает тело ответа в виде строки - - name: bodyAsBytes - args: '' - desc: returns a response body as a byte array - desc_ru: возвращает тело ответа в виде массива байт - - name: characterEncoding - args: '' - desc: returns a character encoding from Content-Type if possible - desc_ru: возвращает кодировку символов из заголовка Content-Type, если возможно - - name: cookie - args: 'name, value = "", maxAge = -1' - desc: gets or sets a cookie - desc_ru: получает или устанавливает значение куки - - name: contentLength - args: '' - desc: returns a content length in bytes - desc_ru: возвращает длину контента в байтах - - name: contentType - args: 'contentType = ""' - desc: gets or sets a Content-Type header - desc_ru: получает или устанавливает заголовок Content-Type - - name: contextPath - args: '' - desc: returns a request context path - desc_ru: возвращает путь контекста запроса - - name: endpointHandlerPath - args: '' - desc: returns a matched endpoint handler path - desc_ru: возвращает путь обработчика совпавшего эндпоинта - - name: formParam - args: 'key' - desc: returns a form parameter - desc_ru: возвращает параметр формы - - name: fullUrl - args: '' - desc: returns a full url - desc_ru: возвращает полный адрес - - name: handlerType - args: '' - desc: returns a current handler type - desc_ru: возвращает тип текущего обработчика - - name: header - args: 'name, value =""' - desc: gets or sets header - desc_ru: получает или устанавливает заголовок по названию `name` - - name: host - args: '' - desc: returns a host - desc_ru: возвращает имя хоста - - name: html - args: 'html' - desc: sets result to the specified html string. Also sets Content-Type header to text/html - desc_ru: устанавливает указанную html-строку в качестве результата. Также устанавливает заголовок Content-Type в text/html - - name: ip - args: '' - desc: returns an IP address - desc_ru: возвращает IP адрес - - name: isHttpMethod - args: '' - desc: returns true if the request is http method - desc_ru: возвращает true, если запрос — http метод - - name: isMultipartFormData - args: '' - desc: returns true if the request is multipart/formdata - desc_ru: возвращает true, если запрос — multipart/formdata - - name: isMultipart - args: '' - desc: returns true if the request is multipart - desc_ru: возвращает true, если запрос — multipart - - name: json - args: 'obj' - desc: serializes an object to json string and sets it as the result - desc_ru: сериализует объект в json строку и устанавливает в качестве результата - - name: jsonStream - args: 'obj' - desc: serializes an object to json stream and sets it as the result - desc_ru: сериализует объект в json потом и устанавливает в качестве результата - - name: matchedPath - args: '' - desc: returns a matched request path - desc_ru: возвращает совпавший путь запроса - - name: method - args: '' - desc: returns a method (GET, POST, ...) - desc_ru: возвращает метод (GET, POST, ...) - - name: path - args: '' - desc: returns a request path - desc_ru: возвращает путь запроса - - name: pathParam - args: 'key' - desc: returns a request path parameter - desc_ru: возвращает параметр пути запроса - - name: port - args: '' - desc: returns a port number - desc_ru: возвращает номер порта - - name: protocol - args: '' - desc: returns a protocol - desc_ru: возвращает протокол - - name: queryParam - args: 'key' - desc: returns a query parameter - desc_ru: возвращает параметр запроса - - name: queryString - args: '' - desc: returns a query string - desc_ru: возвращает строку запроса - - name: redirect - args: 'location, statusCode = 302' - desc: redirects to a location with the given status. By default, the status is 302 FOUND - desc_ru: редиректит на указанный путь с указанным статусом. По умолчанию, статус — 302 FOUND - - name: removeCookie - args: 'name, path = "/"' - desc: removes a cookie by name and path - desc_ru: удаляет куки по имени и пути - - name: render - args: 'filePath, data = {}' - desc: renders a file with specified data and sets it as the result - desc_ru: рендерит файл с указанными данными и устанавливает в качестве результата - - name: result - args: 'value = ""' - desc: gets or sets a result. `value` can be a string or a byte array - desc_ru: получает или устанавливает результат. `value` может быть строкой или массивом байт - - name: status - args: 'status = ...' - desc: gets or sets a status code. `status` can be an integer status code (404, 500) or a string status name ("NOT_FOUND", "INTERNAL_SERVER_ERROR"). - desc_ru: получает или устанавливает код статуса. `status` может быть числовым кодом (404, 500) или строкой имени статуса ("NOT_FOUND", "INTERNAL_SERVER_ERROR") - - name: statusCode - args: '' - desc: returns a response status code - desc_ru: возвращает код статуса ответа - - name: scheme - args: '' - desc: returns a request scheme - desc_ru: возвращает схему запроса - - name: url - args: '' - desc: returns a request url - desc_ru: возвращает адрес запроса - - name: userAgent - args: '' - desc: returns an User-Agent header - desc_ru: возвращает заголовок User-Agent - - name: Config - example: |- - { - "webjars": true, - "classpathDirs": ["dir1", "dir2"], - "externalDirs": ["dir1", "dir2"], - - "asyncTimeout": 6_000, - "defaultContentType": "text/plain", - "etags": true, - "maxRequestSize": 1_000_000, - - "defaultHost": "localhost", - "defaultPort": 8000, - - "caseInsensitiveRoutes": true, - "ignoreTrailingSlashes": true, - "multipleSlashesAsSingle": true, - "contextPath": "/", - - "basicAuth": ["user", "password"], - "dev": true, - "showBanner": false, - "sslRedirects": true, - "virtualThreads": true, - "appData": { - "key1": "value1", - "key2": "value2" - } - } \ No newline at end of file diff --git a/docs/src/modules/socket.yml b/docs/src/modules/socket.yml deleted file mode 100644 index 4a12016e..00000000 --- a/docs/src/modules/socket.yml +++ /dev/null @@ -1,161 +0,0 @@ -name: socket -scope: both -constants: - - name: EVENT_CONNECT - type: 2 - typeName: string - value: connect - - name: EVENT_CONNECTING - type: 2 - typeName: string - value: connecting - - name: EVENT_CONNECT_ERROR - type: 2 - typeName: string - value: connect_error - - name: EVENT_CONNECT_TIMEOUT - type: 2 - typeName: string - value: connect_timeout - - name: EVENT_DISCONNECT - type: 2 - typeName: string - value: disconnect - - name: EVENT_ERROR - type: 2 - typeName: string - value: error - - name: EVENT_MESSAGE - type: 2 - typeName: string - value: message - - name: EVENT_PING - type: 2 - typeName: string - value: ping - - name: EVENT_PONG - type: 2 - typeName: string - value: pong - - name: EVENT_RECONNECT - type: 2 - typeName: string - value: reconnect - - name: EVENT_RECONNECTING - type: 2 - typeName: string - value: reconnecting - - name: EVENT_RECONNECT_ATTEMPT - type: 2 - typeName: string - value: reconnect_attempt - - name: EVENT_RECONNECT_ERROR - type: 2 - typeName: string - value: reconnect_error - - name: EVENT_RECONNECT_FAILED - type: 2 - typeName: string - value: reconnect_failed -functions: - - name: newSocket - args: 'url, options = {}' - desc: |- - creates new SocketValue - - options (map with keys): - - forceNew (boolean) - - multiplex (boolean) - - reconnection (boolean) - - rememberUpgrade (boolean) - - secure (boolean) - - timestampRequests (boolean) - - upgrade (boolean) - - policyPort (integer) - - port (integer) - - reconnectionAttempts (integer) - - reconnectionDelay (timestamp - long) - - reconnectionDelayMax (timestamp - long) - - timeout (timestamp - long) - set -1 to disable - - randomizationFactor (double) - - host (string) - - hostname (string) - - path (string) - - query (string) - - timestampParam (string) - - transports (array of strings) - desc_ru: |- - создаёт новый SocketValue - - options (map с ключами): - - forceNew (boolean) - - multiplex (boolean) - - reconnection (boolean) - - rememberUpgrade (boolean) - - secure (boolean) - - timestampRequests (boolean) - - upgrade (boolean) - - policyPort (integer) - - port (integer) - - reconnectionAttempts (integer) - - reconnectionDelay (timestamp - long) - - reconnectionDelayMax (timestamp - long) - - timeout (timestamp - long) - -1 для отключения - - randomizationFactor (double) - - host (string) - - hostname (string) - - path (string) - - query (string) - - timestampParam (string) - - transports (array of strings) -types: - - name: SocketValue - functions: - - name: "close" - args: "" - desc: "disconnects the socket" - desc_ru: "закрывает соединение сокета" - - name: "connect" - args: "" - desc: "connects the socket" - desc_ru: "подключает сокет" - - name: "connected" - args: "" - desc: "returns connected status (1 - connected, 0 - no)" - desc_ru: "возвращает состояние подключения (1 - подключен, 0 - нет)" - - name: "disconnect" - args: "" - desc: "disconnects the socket" - desc_ru: "закрывает соединение сокета" - - name: "emit" - args: "event, data" - desc: "emits an event" - desc_ru: "посылает событие" - - name: "hasListeners" - args: "event" - desc: "returns true if there is listeners for specified event" - desc_ru: "возвращает true, если для указанного события есть обработчики" - - name: "id" - args: "" - desc: "returns socket id" - desc_ru: "возвращает id сокета" - - name: "off" - args: "event = .." - desc: "removes specified event handler, or removes all if no arguments were passed" - desc_ru: "удаляет обработчик указанного события или удаляет все обработчики, если не было передано ни одного аргумента" - - name: "on" - args: "event, listener" - desc: "adds event listener" - desc_ru: "добавляет обработчик указанного события" - - name: "once" - args: "event, listener" - desc: "adds one time event listener" - desc_ru: "добавляет одноразовый обработчик указанного события" - - name: "open" - args: "" - desc: "connects the socket" - desc_ru: "подключает сокет" - - name: "send" - args: "data" - desc: "send messages" - desc_ru: "отправляет сообщения" \ No newline at end of file diff --git a/docs/src/modules/std.yml b/docs/src/modules/std.yml deleted file mode 100644 index 92abeba2..00000000 --- a/docs/src/modules/std.yml +++ /dev/null @@ -1,328 +0,0 @@ -name: std -scope: "both" -desc: "Contains common functions" -desc_ru: "Содержит вспомогательные функции общего назначения" -constants: - - name: "ARGS" - typeName: string - scope: "desktop" - type: 2 - value: "command-line arguments" - - name: OwnLang - typeName: map - type: 4 - value: "{PLATFORM=android/desktop, VERSION=2.0.1_000000, VERSION_MAJOR=2, VERSION_MINOR=0, VERSION_PATCH=1}" - since: 1.4.0 -functions: - - name: arrayCombine - args: "keys, values" - desc: "creates map by combining two arrays" - desc_ru: "создаёт объект на основе двух массивов" - - name: arrayKeyExists - args: "key, map" - desc: "checks existing key in map. 1 - exists, 0 - no" - desc_ru: "проверяет, содержится ли ключ key в объекте map. 1 - содержится, 0 - нет" - - name: arrayKeys - args: "map" - desc: "returns array of map keys" - desc_ru: "возвращает массив ключей карты" - - name: arraySplice - args: "array, start, deleteCount = length(array) - start, additions = []" - desc: "returns new array with removed `deleteCount` elements starting from `start` and/or added new elements from `start` index" - desc_ru: "возвращает новый массив с удалёнными `deleteCount` элементами, начиная с позиции `start` и/или добавляет новые элементы с позиции `start`" - - name: arrayValues - args: "map" - desc: "returns array of map values" - desc_ru: "возвращает массив значений карты" - - name: charAt - args: "input, index" - desc: returns char code in position `index` of string `input` - desc_ru: возвращает код символа в позиции `index` строки `input` - - name: clearConsole - scope: "android" - args: "" - desc: "clears console" - desc_ru: "очищает консоль" - - name: default - args: a, b - desc: returns value `a` if it it non empty, returns `b` otherwise - desc_ru: возвращает значение `a`, если оно не пустое, иначе возвращается значение `b` - since: 1.4.0 - example: |- - use std - - user = {"name": "", "lastname": "Doe"} - name = default(user.name, "Unknown") - lastname = default(user.lastname, "Unknown") - println name + " " + lastname // Unknown Doe - example_ru: |- - use std - - user = {"name": "", "lastname": "Иванов"} - name = default(user.name, "Имя неизвестно") - lastname = default(user.lastname, "фамилия неизвестна") - println name + " " + lastname // Имя неизвестно Иванов - - name: echo - args: "arg..." - desc: "prints values to console, separate them by space and puts newline at the end. Takes variable number of arguments" - desc_ru: "выводит значения в консоль, разделяя их пробелом, а потом ставит перенос строки. Может принимать переменное значение аргументов" - example: |- - use std - - echo(1, "abc") // prints "1 abc" to console - echo(1, 2, 3, 4, 5, "a", "b") // prints "1 2 3 4 5 a b" - example_ru: |- - use std - - echo(1, "abc") // выведет строку "1 abc" в консоль - echo(1, 2, 3, 4, 5, "a", "b") // выведет строку "1 2 3 4 5 a b" в консоль" - - name: exit - args: status - desc: terminates an application with provided status code. Non-zero values indicates abnormal termination - desc_ru: завершает работу приложения с заданным кодом. Ненулевое значение означает завершение с ошибкой - since: 2.0.0 - example: |- - use std - - println "Bye!" - exit(0) - example_ru: |- - use std - - println "До свидания!" - exit(0) - - name: getBytes - args: input, charset = "UTF-8" - desc: returns byte array of the string in the given charset - desc_ru: возвращает массив байт строки в заданной кодировке - since: 1.5.0 - - name: getenv - args: key, defaultValue = "" - desc: returns the value of the specified environment variable if it's exists, returns `defaultValue` otherwise - desc_ru: возвращает значение указанной переменной среды, если такова существует. В противном случае возвращает `defaultValue` - since: 2.0.0 - example: |- - use std - println getenv("JAVA_HOME") - - name: getprop - args: key, defaultValue = "" - desc: returns the value of the system property if it's exists, returns `defaultValue` otherwise - desc_ru: возвращает значение системного свойства, если оно существует. В противном случае возвращает `defaultValue` - since: 2.0.0 - - name: indexOf - args: "input, what, index = 0" - desc: "finds first occurrence of `what` in string `input`, starting at position `index`" - desc_ru: "поиск первого вхождения подстроки `what` в строке `input`, начиная с позиции `index`" - - name: join - args: "array, delimiter = \"\", prefix = \"\", suffix = \"\"" - desc: "join array to string with `delimiter`, `prefix` and `suffix`" - desc_ru: "объединяет массив в строку с разделителем `delimiter`, префиксом `prefix` и суффиксом `suffix`" - - name: lastIndexOf - args: "input, what, index = 0" - desc: "finds last occurrence of `what` in string `input`, starting at position `index`" - desc_ru: "поиск последнего вхождения подстроки `what` в строке `input`, начиная с позиции `index`" - - name: length - args: "x" - desc: "returns length of string, array/map size or number of function arguments" - desc_ru: "возвращает длину строки, размер массива/объекта или количество аргументов функции в зависимости от типа аргумента x" - - name: nanotime - args: "" - desc: returns VM time source in nanoseconds for elapsed time purposes - desc_ru: возвращает время виртуальной машины в наносекундах, для отсчёта затраченного времени - since: 2.0.0 - - name: newarray - args: "size..." - desc: "creates array with `size`.\n`newarray(x)` - creates 1D array, `newarray(x,y)` - creates 2D array" - desc_ru: "оздаёт массив с размером size. Если указать 1 аргумент - создаётся одномерный массив, если 2 аргумента - двухмерный и т.д" - example: |- - use std - - println newarray(4) // [0, 0, 0, 0] - println newarray(2, 3) // [[0, 0, 0], [0, 0, 0]] - - name: parseInt - args: str, radix - desc: parses the input string into an integer with `radix` base - desc_ru: преобразует строку в целое число с указанным основанием - - name: parseLong - args: str, radix - desc: parses the input string into a long integer with `radix` base - desc_ru: преобразует строку в длинное целое число с указанным основанием - - name: parseDouble - args: str - desc: parses the input string into a double - desc_ru: преобразует строку в вещественное число типа double - since: 2.0.0 - - name: rand - args: "from = 0, to = .." - desc: |- - returns pseudo-random number. - `rand()` - returns float number from 0 to 1 - `rand(max)` - returns random number from 0 to max - `rand(from, to)` - return random number from `from` to `to` - desc_ru: "возвращает псевдослучайное число. Если вызвать функцию без аргументов, возвращается вещественное число от 0 до 1. Если указан один аргумент - возвращается целое число в диапазоне [0...значение). Если указаны два аргумента - возвращается псевдослучайное число в промежутке [from...to)" - - name: range - args: "from = 0, to, step = 1" - desc: |- - creates lazy array by number range. - `range(to)` - creates range from 0 to `to` (exclusive) with step 1 - `range(from, to)` - creates range from `from` to `to` (exclusive) with step 1 - `range(from, to, step)` - creates range from `from` to `to` (exclusive) with step `step` - desc_ru: |- - создаёт массив с элементами числового промежутка. Элементы вычисляются по мере их использования, так что в цикле foreach можно использовать любые промежутки. - `range(to)` - создаёт промежуток от 0 до `to` (не включительно) с шагом 1 - `range(from, to)` - создаёт промежуток от `from` до `to` (не включительно) с шагом 1 - `range(from, to, step)` - создаёт промежуток от `from` до `to` (не включительно) с шагом `step` - example: |- - use std - - println range(3) // [0, 1, 2] - r = range(-5, 0) // [-5, -4, -3, -2, -1] - println r[0] // -5 - println r[2] // -3 - for x : range(20, 9, -5) { - println x - } // 20 15 10 - - name: readln - scope: "desktop" - args: "x" - desc: "reads a line from console" - desc_ru: "чтение строки из консоли" - - name: replace - args: "str, target, replacement" - desc: "replaces all occurrences of string `target` with string `replacement`" - desc_ru: "заменяет все вхождения подстроки `target` на строку `replacement`" - - name: replaceAll - args: "str, regex, replacement" - desc: "replaces all occurrences of regular expression `regex` with string `replacement`" - desc_ru: "заменяет все вхождения регулярного выражения `regex` на строку `replacement`" - - name: replaceFirst - args: "str, regex, replacement" - desc: "replaces first occurrence of regular expression `regex` with string `replacement`" - desc_ru: "заменяет первое вхождение регулярного выражения `regex` на строку `replacement`" - - name: sleep - args: "time" - desc: "causes current thread to sleep for `time` milliseconds" - desc_ru: "приостановка текущего потока на time миллисекунд" - - name: sort - args: "array, comparator = .." - desc: "sorts array by natural order or by `comparator` function" - desc_ru: "сортирует массив. Если задана функция `comparator`, то сортировка будет производится на основе результата функции сравнения" - - name: split - args: "str, regex, limit = 0" - desc: "splits string `str` with regular expression `regex` into array. `limit` parameter affects the length of resulting array" - desc_ru: "разделяет строку `str` по шаблону `regex` и помещает элементы в массив. Если указан параметр `limit`, то будет произведено не более limit разбиений, соответственно размер результирующего массива будет ограничен этим значением limit" - example: |- - use std - - println split("a5b5c5d5e", "5") // ["a", "b", "c", "d", "e"] - println split("a5b5c5d5e", "5", 3) // ["a", "b", "c5d5e"] - - name: sprintf - args: "format, args..." - desc: "formats string by arguments" - desc_ru: "форматирует строку" - - name: stringFromBytes - args: input, charset = "UTF-8" - desc: returns a string from byte array in the given charset - desc_ru: возвращает строку из массива байт в заданной кодировке - since: 1.5.0 - - name: stripMargin - args: input, marginPrefix = "|" - desc: trims leading whitespaces followed by `marginPrefix` on each line and removes the first and the last lines if they are blank - desc_ru: обрезает начальные пробелы, сопровождаемые `marginPrefix` в каждой строке, и удаляет первую и последнюю строки, если они пустые - since: 1.5.0 - example: |- - use std - - println " - |123 - |456 - ".stripMargin() // "123\n456" - - name: substring - args: "str, startIndex, endIndex = .." - desc: "returns string from `startIndex` to `endIndex` or to end of string if `endIndex` is not set" - desc_ru: "обрезает строку `str`, начиная от символа после позиции `startIndex` и по `endIndex`. Если `endIndex` не указан, обрезается до конца строки" - example: |- - use std - - println substring("abcde", 1) // bcde - println substring("abcde", 2, 4) // cd - - name: sync - args: "callback" - desc: calls an asynchronous function synchronously - desc_ru: делает асинхронный вызов синхронным - example: |- - use std, http - - url = "https://whatthecommit.com/index.txt" - result = sync(def(ret) { - http(url, def(t) = ret(t)) - }) - println result - - name: thread - args: "func, args..." - desc: "creates new thread with parameters if passed" - desc_ru: |- - создаёт новый поток и передаёт параметры, если есть. - - `func` - функция, ссылка на функцию (`::function`) или имя функции (`"function"`) - - `args` - 0 или более аргументов, которые необходимо передать в функцию func - example: |- - use std - - thread(def() { - println "New Thread" - }) - - thread(::newthread, 10) - thread("newthread", 20) - - def newthread(x) { - println "New Thread. x = " + x - } - - name: time - args: "" - desc: "returns current time in milliseconds from 01.01.1970" - desc_ru: "возвращает текущее время в миллисекундах начиная с 1970 года" - - name: toChar - args: "code" - desc: "converts char code to string" - desc_ru: "переводит код символа в строку" - example: |- - use std - - println toChar(48) // "0" - - name: toHexString - args: 'number' - desc: 'converts number into hex string' - desc_ru: 'конвертирует число в строку с шестнадцатиричным представлением' - - name: toLowerCase - args: "str" - desc: "converts all symbols to lower case" - desc_ru: "переводит все символы строки в нижний регистр" - - name: toUpperCase - args: "str" - desc: "converts all symbols to upper case" - desc_ru: "переводит все символы строки в верхний регистр" - - name: trim - args: "str" - desc: "removes any leading and trailing whitespaces in string" - desc_ru: "обрезает пробельные невидимые символы по обоим концам строки" - - name: try - args: "unsafeFunction, catchFunction = def(type, message) = -1" - desc: suppress any error in `unsafeFunction` and returns the result of the `catchFunction` if any error occurs - desc_ru: подавляет любые ошибки в `unsafeFunction` и возрвщает результат функции `catchFunction`, если была ошибка - example: |- - use std - - println try(def() = "success") // success - println try(def() = try + 2) // -1 - println try(def() = try(), def(type, message) = sprintf("Error handled:\ntype: %s\nmessage: %s", type, message)) - println try(def() = try(), 42) // 42 - example_ru: |- - use std - - println try(def() = "успех") // успех - println try(def() = try + 2) // -1 - println try(def() = try(), def(type, message) = sprintf("Обработана ошибка:\nтип: %s\nсообщение: %s", type, message)) - println try(def() = try(), 42) // 42 \ No newline at end of file diff --git a/docs/src/modules/types.yml b/docs/src/modules/types.yml deleted file mode 100644 index 8b06f088..00000000 --- a/docs/src/modules/types.yml +++ /dev/null @@ -1,80 +0,0 @@ -name: types -scope: "both" -desc: "Contains functions for type checking and conversion" -desc_ru: "Содержит функции для проверки и преобразования типов" -constants: - - name: "OBJECT" - typeName: number - type: 1 - value: "0" - - name: "NUMBER" - typeName: number - type: 1 - value: "1" - - name: "STRING" - typeName: number - type: 1 - value: "2" - - name: "ARRAY" - typeName: number - type: 1 - value: "3" - - name: "MAP" - typeName: number - type: 1 - value: "4" - - name: "FUNCTION" - typeName: number - type: 1 - value: "5" -functions: - - name: "byte" - args: "value" - desc: "converts value to byte" - desc_ru: "преобразует значение к типу byte" - - name: "double" - args: "value" - desc: "converts value to double" - desc_ru: "преобразует значение к типу double" - - name: "float" - args: "value" - desc: "converts value to float" - desc_ru: "преобразует значение к типу float" - - name: "int" - args: "value" - desc: "converts value to int" - desc_ru: "преобразует значение к типу int" - - name: "long" - args: "value" - desc: "converts value to long" - desc_ru: "преобразует значение к типу long" - - name: "number" - args: "value" - desc: "converts value to number if possible" - desc_ru: "преобразует значение к числу, если это возможно" - example: |- - use types - - println typeof(number("2.3")) // 1 (NUMBER) - - name: "short" - args: "value" - desc: "converts value to short" - desc_ru: "преобразует значение к типу short" - - name: "string" - args: "value" - desc: "converts value to string" - desc_ru: "преобразует значение в строку" - example: |- - use types - - println typeof(string(1)) // 2 (STRING) - - name: "typeof" - args: "value" - desc: "returns the type of value" - desc_ru: "возвращает тип переданного значения" - example: |- - use types - - println typeof(1) // 1 (NUMBER) - println typeof("text") // 2 (STRING) - println typeof([]) // 3 (ARRAY) \ No newline at end of file diff --git a/docs/src/modules/yaml.yml b/docs/src/modules/yaml.yml deleted file mode 100644 index 7960bffa..00000000 --- a/docs/src/modules/yaml.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: yaml -scope: desktop -desc: "Contains functions for working with the yaml format" -desc_ru: "Содержит функции преобразования данных в формат yaml и наоборот" -constants: [] -functions: - - name: yamldecode - args: "data" - desc: "converts data to yaml string" - desc_ru: "преобразует переданные данные в строку в формате yaml" - - name: yamlencode - args: "yamlString" - desc: "converts yaml string to data" - desc_ru: "преобразует строку в формате yaml в данные" \ No newline at end of file diff --git a/docs/src/modules/zip.yml b/docs/src/modules/zip.yml deleted file mode 100644 index e34f5376..00000000 --- a/docs/src/modules/zip.yml +++ /dev/null @@ -1,98 +0,0 @@ -name: zip -since: 1.5.0 -scope: both -desc: "Contains functions for working with zip archives" -desc_ru: "Содержит функции для работы с zip архивами" -constants: [] -functions: - - - name: zip - args: "inputPath, outputFile, mapper = def(entryPath) = entryPath" - desc: |- - creates a zip archive with the contents of `inputPath` and saves to `outputFile`. - `mapper` is used to set the name of the final file inside the archive and for filtering. If the mapper returns an empty string, the file will be skipped. - Returns the number of archived files, or -1 if the archive could not be created. - desc_ru: |- - создаёт zip архив с содержимым `inputPath` и сохраняет в `outputFile`. - `mapper` используется для задания имени конечного файла внутри архива, а также для фильтрации. Если в mapper вернуть пустую строку, то файл будет пропущен. - Возвращает количество заархивированных файлов, либо -1, если создать архив не удалось. - example: |- - use zip - // Zip all files in directory - zip("/tmp/dir", "/tmp/1.zip") - // Zip .txt files - zip("/tmp/dir", "/tmp/2.zip", def(p) = p.endsWith(".txt") ? p : "") - example_ru: |- - use zip - // Архивировать все файлы в директории - zip("/tmp/dir", "/tmp/1.zip") - // Архивировать .txt файлы - zip("/tmp/dir", "/tmp/2.zip", def(p) = p.endsWith(".txt") ? p : "") - - - name: zipFiles - args: "input, outputFile" - desc: |- - creates a zip archive with the contents of `inputPath` and saves to `outputFile`. - If `input` is a string, then a single file or the contents of a folder is archived. - If `input` is an array, then the files and folders listed in it are archived. - If `input` is an associative array, then the files and folders listed in the keys are archived and the names inside the archive will be the values of an array. - Returns the number of archived files, or -1 if the archive could not be created. - desc_ru: |- - создаёт zip архив с содержимым `input` и сохраняет в `outputFile`. - Если `input` — строка, то архивируется один файл или содержимое папки. - Если `input` — массив, то архивируются файлы и папки, перечисленные в нём. - Если `input` — ассоциативный массив, то архивируются файлы и папки перечисленные в ключах, а именами внутри архива будут служить значения. - Возвращает количество заархивированных файлов, либо -1, если создать архив не удалось. - example: |- - use zip - zipFiles("/tmp/dir/file.txt", "/tmp/1.zip") - zipFiles(["/tmp/dir/file.txt", "/tmp/dir/readme.md"], "/tmp/2.zip") - zipFiles({"/tmp/dir/file.txt" : "docs/1.md", "/tmp/dir/readme.md" : "docs/2.md"}, "/tmp/3.zip") - - - name: unzip - args: "input, output, mapper = def(entryName) = entryPath" - desc: |- - unpacks a zip archive to `output` directory. - `mapper` is used to set the name of the final file and for filtering. If the mapper returns an empty string, the file will be skipped. - Returns the number of unzipped files, or -1 if unzipping the archive was failed. - desc_ru: |- - распаковывает zip архив `input` в папку `output`. - `mapper` используется для задания имени конечного файла, а также для фильтрации. Если в mapper вернуть пустую строку, то файл будет пропущен. - Возвращает количество разархивированных файлов, либо -1, если разархивировать архив не удалось. - example: |- - use zip - // Unzip all files in directory - unzip("/tmp/1.zip", "/tmp/dir") - // Unzip .txt files - unzip("/tmp/2.zip", "/tmp/dir", def(p) = p.endsWith(".txt") ? p : "") - example_ru: |- - use zip - // Распаковать все файлы в директории - unzip("/tmp/1.zip", "/tmp/dir") - // Распаковать .txt файлы - unzip("/tmp/2.zip", "/tmp/dir", def(p) = p.endsWith(".txt") ? p : "") - - - name: unzipFiles - args: "input, output" - desc: |- - unpacks a `output` files from zip archive . - If `output` is a string, then a single file is unzipped. - If `output` is an array, then the files listed in it are unzipped. - If `output` is an associative array, the files listed in the keys are unzipped and the values will be file names. - Returns the number of unzipped files, or -1 if unzipping the archive was failed. - desc_ru: |- - распаковывает `output` файлы из zip архива. - Если `output` — строка, то разархивируется один файл. - Если `output` — массив, то разархивируются файлы, перечисленные в нём. - Если `output` — ассоциативный массив, то разархивируются файлы перечисленные в ключах, а именами файлов будут служить значения. - Возвращает количество разархивированных файлов, либо -1, если разархивировать архив не удалось. - example: |- - use zip - unzipFiles("/tmp/1.zip", "file.txt") - unzipFiles("/tmp/2.zip", ["file.txt", "readme.md"]) - unzipFiles("/tmp/3.zip", {"docs/1.md" : "/tmp/dir/file.txt", "docs/2.md" : "/tmp/dir/readme.md"}) - - - name: listZipEntries - args: "input" - desc: returns an array of zip archive filenames - desc_ru: возвращает массив с именами файлов zip архива \ No newline at end of file diff --git a/editors/README.md b/editors/README.md deleted file mode 100644 index d58f6aa6..00000000 --- a/editors/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# Syntax for Editors - -## Intellij IDEA - -1. Open an `idea` folder -2. Add all files and folders to zip archive, e.g. `settings.zip` -3. File -> Manage IDE Settings -> Import. Select your zip file. - -## Prism.js - -```javascript -import Prism from 'prismjs'; -import definePrismOwnLang from './prismjs/own-language.js' -definePrismOwnLang(Prism) -``` - -## GTKSourceView - -Place `ownlang.lang` in `/usr/share/gtksourceview-3.0/language-specs/ownlang.lang` \ No newline at end of file diff --git a/editors/gtksourceview/ownlang.lang b/editors/gtksourceview/ownlang.lang deleted file mode 100644 index 7d852cfa..00000000 --- a/editors/gtksourceview/ownlang.lang +++ /dev/null @@ -1,89 +0,0 @@ - - - - text/x-own - *.own - // - /* - */ - - - -