├── .vscode
└── extensions.json
├── src
├── vite-env.d.ts
├── coms
│ ├── pages
│ │ └── ViewPage.vue
│ └── DBML
│ │ ├── DbGroup.vue
│ │ ├── CustomConnectionLine.vue
│ │ ├── libs
│ │ ├── example.dbml
│ │ ├── ace-config.ts
│ │ ├── state.ts
│ │ ├── css
│ │ │ └── styles.css
│ │ └── convertor.ts
│ │ ├── DbTable.vue
│ │ ├── CustomEdge.vue
│ │ ├── DbEditor.vue
│ │ └── DbChart.vue
├── libs
│ ├── type
│ │ └── global.ts
│ └── utils.ts
├── assets
│ └── vue.svg
├── main.ts
└── App.vue
├── dist
├── demo.png
├── screenshot-img.png
├── index.html
├── vite.svg
└── assets
│ ├── theme-dracula-2432079e.js
│ ├── mode-sql-7d302412.js
│ ├── ViewPage-f805070e.css
│ ├── mode-yaml-202fbe23.js
│ ├── mode-sqlserver-88765fda.js
│ └── worker-base-78504947.js
├── public
├── crud.png
├── demo.png
├── crud-dbml.png
├── crud-form.png
├── crud-gallery.png
├── crud-setting.png
├── screenshot-img.png
└── vite.svg
├── .prettierrc.json
├── components.d.ts
├── .gitignore
├── index.html
├── tsconfig.json
├── vite.config.ts
├── package.json
├── README.md
└── yarn.lock
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | }
3 |
--------------------------------------------------------------------------------
/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/dist/demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rxzcode/vue-dbml/HEAD/dist/demo.png
--------------------------------------------------------------------------------
/public/crud.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rxzcode/vue-dbml/HEAD/public/crud.png
--------------------------------------------------------------------------------
/public/demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rxzcode/vue-dbml/HEAD/public/demo.png
--------------------------------------------------------------------------------
/public/crud-dbml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rxzcode/vue-dbml/HEAD/public/crud-dbml.png
--------------------------------------------------------------------------------
/public/crud-form.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rxzcode/vue-dbml/HEAD/public/crud-form.png
--------------------------------------------------------------------------------
/dist/screenshot-img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rxzcode/vue-dbml/HEAD/dist/screenshot-img.png
--------------------------------------------------------------------------------
/public/crud-gallery.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rxzcode/vue-dbml/HEAD/public/crud-gallery.png
--------------------------------------------------------------------------------
/public/crud-setting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rxzcode/vue-dbml/HEAD/public/crud-setting.png
--------------------------------------------------------------------------------
/public/screenshot-img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rxzcode/vue-dbml/HEAD/public/screenshot-img.png
--------------------------------------------------------------------------------
/src/coms/pages/ViewPage.vue:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/libs/type/global.ts:
--------------------------------------------------------------------------------
1 | declare module '@dbml/core/lib/parse/dbmlParser' {
2 | const parseDBMLToJSON: any;
3 | export default parseDBMLToJSON;
4 | }
5 |
6 | declare module 'dagre' {
7 | const dagre: any;
8 | export default dagre;
9 | }
10 |
--------------------------------------------------------------------------------
/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "useTabs": false,
3 | "tabWidth": 4,
4 | "trailingComma": "none",
5 | "semi": true,
6 | "singleQuote": true,
7 | "printWidth": 150,
8 | "_vueIndentScriptAndStyle": false,
9 | "_bracketSameLine": false
10 | }
--------------------------------------------------------------------------------
/components.d.ts:
--------------------------------------------------------------------------------
1 | export {};
2 |
3 | declare module 'vue' {
4 | export interface GlobalComponents {
5 | RouterLink: typeof import('vue-router')['RouterLink'];
6 | RouterView: typeof import('vue-router')['RouterView'];
7 | ViewPage: typeof import('./src/components/page/ViewPage.vue')['default'];
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | # dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
26 | Makefile
--------------------------------------------------------------------------------
/src/assets/vue.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | DBML
8 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/coms/DBML/DbGroup.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ group.label }}
4 |
5 |
6 |
7 |
15 |
16 |
32 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ESNext",
4 | "useDefineForClassFields": true,
5 | "module": "ESNext",
6 | "moduleResolution": "Node",
7 | "strict": true,
8 | "jsx": "preserve",
9 | "resolveJsonModule": true,
10 | "isolatedModules": true,
11 | "esModuleInterop": true,
12 | "types": [],
13 | "lib": ["ESNext", "DOM"],
14 | "skipLibCheck": true,
15 | "noEmit": true,
16 | "paths": {
17 | "@/*": ["./src/*"]
18 | }
19 | },
20 | "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
21 | }
22 |
--------------------------------------------------------------------------------
/dist/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | DBML
8 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite'
2 | import vue from '@vitejs/plugin-vue'
3 | import { fileURLToPath, URL } from 'node:url'
4 |
5 | process.env.NODE_ENV = process.env.NODE_ENV || 'development'
6 | export default defineConfig({
7 | plugins: [vue()],
8 | build: {
9 | sourcemap: true,
10 | },
11 | css: {
12 | preprocessorOptions: {
13 | scss: {
14 | api: 'modern-compiler',
15 | },
16 | },
17 | },
18 | resolve: {
19 | alias: {
20 | '@': fileURLToPath(new URL('./src', import.meta.url)),
21 | },
22 | },
23 | })
24 |
--------------------------------------------------------------------------------
/src/main.ts:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 | import { createPinia } from 'pinia';
3 | import { createRouter, createWebHistory } from 'vue-router';
4 |
5 | const pinia = createPinia();
6 | import App from './App.vue';
7 |
8 | const router = createRouter({
9 | history: createWebHistory(),
10 | strict: true,
11 | routes: [
12 | {
13 | name: 'view-page',
14 | path: '/',
15 | component: () => import('@/coms/pages/ViewPage.vue')
16 | },
17 | {
18 | name: 'otherwise',
19 | path: '/(.*)?',
20 | redirect: { name: 'view-page' }
21 | },
22 | {
23 | name: 'otherwise',
24 | path: '/',
25 | redirect: { name: 'view-page' }
26 | }
27 | ]
28 | });
29 | createApp(App).use(pinia).use(router).mount('#app');
30 |
--------------------------------------------------------------------------------
/src/coms/DBML/CustomConnectionLine.vue:
--------------------------------------------------------------------------------
1 |
27 |
28 |
29 |
30 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "erd",
3 | "private": true,
4 | "version": "0.0.1",
5 | "type": "module",
6 | "scripts": {
7 | "dev": "vite",
8 | "build": "vite build",
9 | "preview": "vite preview",
10 | "git": "git add . && git commit -m 'chore: polish code' && git push origin"
11 | },
12 | "dependencies": {
13 | "@vue-flow/background": "1.3.2",
14 | "@vue-flow/controls": "1.1.2",
15 | "@vue-flow/core": "1.21.0",
16 | "@vue-flow/minimap": "1.5.2",
17 | "@dbml/core": "2.5.3",
18 | "@popperjs/core": "^2.11",
19 | "ace-builds": "^1.23",
20 | "dagre": "^0.8.5",
21 | "lodash-es": "4.17.21",
22 | "pinia": "^2.1",
23 | "typescript": "^4.9",
24 | "vue": "^3.3",
25 | "vue-router": "^4.2",
26 | "vue-tsc": "^1.8",
27 | "vue3-ace-editor": "^2.2.2"
28 | },
29 | "_dep": {
30 | "@vue-flow/background": "1.2.0",
31 | "@vue-flow/controls": "1.1.0",
32 | "@vue-flow/core": "1.21.1",
33 | "@vue-flow/minimap": "1.1.1"
34 | },
35 | "devDependencies": {
36 | "js-yaml": "^4.1.0",
37 | "@types/js-yaml": "^4.0.9",
38 | "@types/lodash-es": "^4.17.7",
39 | "@types/node": "^20.2",
40 | "@vitejs/plugin-vue": "^4.2",
41 | "unplugin-vue-components": "^0.25",
42 | "vite": "^4.4",
43 | "vite-plugin-compression": "0.5.1",
44 | "vite-plugin-singlefile": "0.13.5"
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/src/coms/DBML/libs/example.dbml:
--------------------------------------------------------------------------------
1 | // This is demo database not use in real project
2 | Table follow {
3 | following_user_id integer
4 | followed_user_id integer
5 | created_at timestamp
6 | updated_at timestamp
7 | }
8 |
9 | Table role {
10 | id integer [primary key]
11 | title varchar
12 | created_at timestamp
13 | updated_at timestamp
14 | }
15 |
16 | Table user {
17 | id integer [primary key]
18 | username varchar
19 | role_id varchar
20 | created_at timestamp
21 | updated_at timestamp
22 | }
23 |
24 | Table post {
25 | id integer [primary key]
26 | title varchar
27 | body text [note: 'Content of the post']
28 | user_id integer
29 | cate_id integer
30 | tag_id integer
31 | status varchar
32 | created_at timestamp
33 | updated_at timestamp
34 | }
35 |
36 | Table tag {
37 | id integer [primary key]
38 | title varchar
39 | status varchar
40 | created_at timestamp
41 | updated_at timestamp
42 | }
43 |
44 | Table cate {
45 | id integer [primary key]
46 | title varchar
47 | body text [note: 'Content of the cate']
48 | status varchar
49 | created_at timestamp
50 | updated_at timestamp
51 | }
52 |
53 | Ref: post.user_id > user.id
54 | Ref: user.id < follow.following_user_id
55 | Ref: user.id < follow.followed_user_id
56 | Ref: role.id < user.role_id
57 | Ref: cate.id < post.cate_id
58 | Ref: tag.id < post.tag_id
--------------------------------------------------------------------------------
/dist/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/coms/DBML/libs/ace-config.ts:
--------------------------------------------------------------------------------
1 | import ace from 'ace-builds';
2 |
3 | // Themes
4 | import themeMonokaiUrl from 'ace-builds/src-noconflict/theme-monokai?url';
5 | ace.config.setModuleUrl('ace/theme/monokai', themeMonokaiUrl);
6 |
7 | import themeDraculaUrl from 'ace-builds/src-noconflict/theme-dracula?url';
8 | ace.config.setModuleUrl('ace/theme/dracula', themeDraculaUrl);
9 |
10 | // Langs
11 | import langSqlServerUrl from 'ace-builds/src-noconflict/mode-sqlserver?url';
12 | ace.config.setModuleUrl('ace/mode/sqlserver', langSqlServerUrl);
13 |
14 | import langSqlUrl from 'ace-builds/src-noconflict/mode-sql?url';
15 | ace.config.setModuleUrl('ace/mode/sql', langSqlUrl);
16 |
17 | import langYaml from 'ace-builds/src-noconflict/mode-yaml?url';
18 | ace.config.setModuleUrl('ace/mode/yaml', langYaml);
19 |
20 | import themeUrl from 'ace-builds/src-noconflict/theme-clouds?url';
21 | ace.config.setModuleUrl('ace/theme/clouds', themeUrl);
22 |
23 | import themeChromeUrl from 'ace-builds/src-noconflict/theme-chrome?url';
24 | ace.config.setModuleUrl('ace/theme/chrome', themeChromeUrl);
25 |
26 | import workerBaseUrl from 'ace-builds/src-noconflict/worker-base?url';
27 | ace.config.setModuleUrl('ace/mode/base', workerBaseUrl);
28 |
29 | import workerYamlUrl from 'ace-builds/src-noconflict/worker-yaml?url';
30 | ace.config.setModuleUrl('ace/mode/yaml_worker', workerYamlUrl);
31 |
32 | import 'ace-builds/src-noconflict/ext-language_tools';
33 | (ace as any).require('ace/ext/language_tools');
34 |
--------------------------------------------------------------------------------
/src/libs/utils.ts:
--------------------------------------------------------------------------------
1 | export const zCopy = (dest: any, src: any) => {
2 | if (Array.isArray(dest) && Array.isArray(src)) {
3 | dest.length = src.length;
4 | for (let i = 0; i < src.length; i++) {
5 | dest[i] = src[i];
6 | }
7 | return dest;
8 | }
9 | if (typeof dest === 'object' && typeof src === 'object' && dest && src) {
10 | Object.keys(dest).forEach((key) => delete dest[key]);
11 | Object.keys(src).forEach((key) => {
12 | dest[key] = src[key];
13 | });
14 | return dest;
15 | }
16 | return dest;
17 | };
18 |
19 | export function throttle(fn: Function, timeoutMs: number, immediate: boolean = true) {
20 | let timer = 0;
21 | return function perform(...args: any[]) {
22 | if (timer) return;
23 | timer = setTimeout(() => {
24 | clearTimeout(timer);
25 | timer = 0;
26 | !immediate && fn(...args);
27 | }, timeoutMs);
28 | immediate && fn(...args);
29 | };
30 | }
31 |
32 | export function debounce(fn: Function, timeoutMs: number, immediate: boolean = true, timeoutFn: undefined | Function = undefined) {
33 | let timer = 0;
34 | return function perform(...args: any[]) {
35 | const later = function () {
36 | clearTimeout(timer);
37 | timer = 0;
38 | if (!immediate) {
39 | fn(...args);
40 | }
41 | timeoutFn && timeoutFn();
42 | };
43 | !timer && immediate && fn(...args);
44 | clearTimeout(timer);
45 | timer = setTimeout(later, timeoutMs);
46 | };
47 | }
48 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
32 |
33 |
34 |
35 | DBML
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # DBML VueJS Vue-Flow
2 | This repo is a part of project that use DBML to auto generate model, api for mikro-orm, expressjs
3 | - [Live Demo](https://vue-dbml.devseason.com)
4 |
5 | 
6 |
7 | A simplified and open-source alternative to **dbdiagram.io**, offering powerful features for database modeling:
8 |
9 | - **DBML Editing and Saving**: Easily edit and save your database schema.
10 | - **DBML Rendering**: Visualize schemas with Vue Flow integration.
11 | - **Auto-layout**: Generate layouts automatically using Dagre with LR indexing.
12 |
13 | ---
14 |
15 | ## Todo
16 | - [x] Download: DBML, sqlite, sql
17 | - [x] Save to localstorage
18 | - [x] Load from localstorage
19 | - [ ] Multiple dbml
20 | - [ ] Publish vue-dbml component package
21 |
22 | ---
23 |
24 | ## Tools
25 | - ⚡ **Fast Development**: Built with [Vite](https://vitejs.dev/) for blazing-fast builds and optimized production workflows.
26 | - 🛠️ **Component-Based Architecture**: Modular and reusable Vue components ensure
27 | - 🚀 **State Management**: Seamless state handling using [Pinia](https://pinia.vuejs.org/).
28 | - 📦 **Modern Tooling**: Includes ESLint and Prettier to maintain clean, consistent, and error-free code.
29 |
30 | ---
31 |
32 | ## Installation
33 |
34 | 1. **Clone the Repository**
35 | Run the following commands to clone and set up the project:
36 | ```bash
37 | git clone https://github.com/rxzcode/vue-dbml.git
38 | cd vue-dbml
39 | yarn
40 | ```
41 |
42 | 2. **Dev, Build and Preview Commands**:
43 | - `yarn dev` for local develop.
44 | - `yarn build` for building the app.
45 | - `yarn preview` for previewing the production build locally.
46 |
47 | 3. **License**:
48 | - This project is licensed under the MIT License. Please provide attribution to @rxzcode.
49 |
50 | # Extra - this repo is a module of project
51 | - ZCODE - DBML - Crud generate and sync code - low code
52 | - This use DBML, AI gen DBML, gen CODE for front end, back end (expressjs, vuejs)
53 |
54 | 
55 | 
56 | 
57 | 
58 | 
--------------------------------------------------------------------------------
/src/coms/DBML/libs/state.ts:
--------------------------------------------------------------------------------
1 | import { defineStore } from 'pinia';
2 | import { Edge, Node, GraphNode, GraphEdge } from '@vue-flow/core/dist/types';
3 | import { mergeWith } from 'lodash-es';
4 | import { exporter } from '@dbml/core';
5 | import { Sql2Sqlite } from './convertor';
6 | import dbml from './example.dbml?raw';
7 | interface ErdState {
8 | tables: GraphNode[];
9 | edges: GraphEdge[];
10 | dbmlRaw: string;
11 | extraData: any;
12 | settings: {
13 | editMode: boolean;
14 | vueFlow: {
15 | panOnDrag: boolean;
16 | panOnScroll: boolean;
17 | panOnScrollSpeed: number;
18 | };
19 | };
20 | }
21 |
22 | const DBML_STORAGE_KEY = 'erd-dbml-raw';
23 | export const useErdStore = defineStore('ERD', {
24 | state: (): ErdState => ({
25 | dbmlRaw: localStorage.getItem(DBML_STORAGE_KEY) || dbml,
26 | extraData: {
27 | nodes: {},
28 | edges: {}
29 | },
30 | tables: [],
31 | edges: [],
32 | settings: {
33 | editMode: false,
34 | vueFlow: {
35 | panOnDrag: false,
36 | panOnScroll: true,
37 | panOnScrollSpeed: 1.2
38 | }
39 | }
40 | }),
41 | getters: {
42 | DbmlSql(): string {
43 | const mysql = exporter.export(this.dbmlRaw, 'mysql');
44 | return mysql;
45 | },
46 | DbmlSqlite(): string {
47 | const mysql = exporter.export(this.dbmlRaw, 'mysql');
48 | return Sql2Sqlite(mysql);
49 | }
50 | },
51 | actions: {
52 | saveDbmlRaw(newDbmlRaw: string): void {
53 | this.dbmlRaw = newDbmlRaw;
54 | localStorage.setItem(DBML_STORAGE_KEY, newDbmlRaw);
55 | },
56 | applyExtraData(nodes: Node[], edges: Edge[]): void {
57 | nodes.forEach((node: Node) => {
58 | mergeWith(node, this.extraData.nodes?.[node.id], (destValue, sourceValue, key: String, dest, source, stack: Number) => {
59 | if (Array.isArray(destValue) && Array.isArray(sourceValue)) {
60 | return destValue.concat(sourceValue);
61 | }
62 | });
63 | });
64 | }
65 | }
66 | });
67 |
--------------------------------------------------------------------------------
/src/coms/DBML/DbTable.vue:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 | {{ table.label || table.id }}
15 |
16 |
17 |
18 |
19 |
{{ field.name }}
20 |
21 | {{ field?.type?.type_name }}
22 |
23 |
24 |
25 |
26 |
27 |
28 |
93 |
--------------------------------------------------------------------------------
/src/coms/DBML/CustomEdge.vue:
--------------------------------------------------------------------------------
1 |
6 |
7 |
87 |
88 | {{ state.sourceRelation }}
90 |
91 | {{ state.targetRelation }}
93 |
94 |
95 |
96 |
--------------------------------------------------------------------------------
/src/coms/DBML/DbEditor.vue:
--------------------------------------------------------------------------------
1 |
66 |
67 |
68 |
69 |
70 |
81 |
82 |
83 |
84 |
85 |
86 |
91 |
92 |
93 |
94 |
127 |
--------------------------------------------------------------------------------
/src/coms/DBML/libs/css/styles.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --left-panel-width: 500px;
3 | }
4 |
5 | .f-col {
6 | display: flex;
7 | flex-direction: column;
8 | }
9 |
10 | .comp-layer {
11 | will-change: transform;
12 | }
13 |
14 | * {
15 | box-sizing: border-box;
16 | }
17 |
18 | html,
19 | body,
20 | #app {
21 | overflow: hidden;
22 | margin: 0px;
23 | }
24 |
25 | #app {
26 | font-family: 'Open Sans', sans-serif;
27 | width: 100vw;
28 | height: 100vh;
29 | display: flex;
30 | flex-direction: column;
31 | }
32 | #app header {
33 | padding: 5px;
34 | background: #3f51b5;
35 | color: #ffffff;
36 | display: flex;
37 | justify-content: start;
38 | font-size: 14px;
39 | font-weight: 100;
40 | gap: 15px;
41 | }
42 | #app header .logo {
43 | color: #fff;
44 | }
45 | #app header a {
46 | color: inherit;
47 | text-decoration: none;
48 | margin: 0 12px;
49 | border-bottom: 2px solid transparent;
50 | }
51 | #app header a:hover {
52 | color: #fff;
53 | border-bottom: 2px solid #fff;
54 | }
55 | #app header .menu {
56 | cursor: pointer;
57 | font-size: 12px;
58 | display: flex;
59 | justify-content: center;
60 | align-items: center;
61 | }
62 | #app header i {
63 | font-size: x-small;
64 | margin-left: 3px;
65 | }
66 | #app .middle {
67 | position: relative;
68 | flex-grow: 1;
69 | display: flex;
70 | flex-direction: row;
71 | }
72 | #app .middle .aside-panel {
73 | width: var(--left-panel-width);
74 | background: #f7f7f7;
75 | border-right: 1px solid #ddd;
76 | color: #999;
77 | position: absolute;
78 | top: 0;
79 | bottom: 0;
80 | left: 0;
81 | overflow: hidden;
82 | }
83 | #app .middle .content {
84 | flex-grow: 1;
85 | left: var(--left-panel-width);
86 | right: 0;
87 | top: 0;
88 | bottom: 0;
89 | overflow-y: scroll;
90 | position: absolute;
91 | }
92 |
93 | button {
94 | background-color: #ffffff;
95 | padding: 10px 15px;
96 | border: none;
97 | border-radius: 5px;
98 | color: #000;
99 | letter-spacing: 1px;
100 | }
101 | .primary {
102 | background-color: #3f51b5;
103 | color: #fff;
104 | }
105 |
106 | .secondary {
107 | background-color: #2196f3;
108 | color: #fff;
109 | }
110 |
111 | body {
112 | display: block;
113 | }
114 |
115 | /* Icons */
116 | .icon-arrow-down-circle {
117 | --un-icon: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M12 15.248q-.161 0-.298-.053t-.267-.184l-2.62-2.619q-.146-.146-.152-.344t.152-.363q.166-.166.357-.169q.192-.003.357.163L11.5 13.65V5.5q0-.213.143-.357T12 5t.357.143t.143.357v8.15l1.971-1.971q.146-.146.347-.153t.366.159q.16.165.163.354t-.162.353l-2.62 2.62q-.13.13-.267.183q-.136.053-.298.053M6.616 19q-.691 0-1.153-.462T5 17.384v-1.923q0-.213.143-.356t.357-.144t.357.144t.143.356v1.923q0 .231.192.424t.423.192h10.77q.23 0 .423-.192t.192-.424v-1.923q0-.213.143-.356t.357-.144t.357.144t.143.356v1.923q0 .691-.462 1.153T17.384 19z'/%3E%3C/svg%3E");
118 | -webkit-mask: var(--un-icon) no-repeat;
119 | mask: var(--un-icon) no-repeat;
120 | -webkit-mask-size: 100% 100%;
121 | mask-size: 100% 100%;
122 | background-color: currentColor;
123 | color: inherit;
124 | width: 1.4em;
125 | height: 1.4em;
126 | display: inline-block;
127 | }
128 | .icon-size-fullscreen {
129 | height: 16px;
130 | width: 16px;
131 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 21 21'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='M18.5 7.5V2.522l-5.5.014m5.5-.014l-6 5.907m.5 10.092l5.5.002l-.013-5.5m.013 5.406l-6-5.907M2.5 7.5v-5H8m.5 5.929l-6-5.907M8 18.516l-5.5.007V13.5m6-1l-6 6'/%3E%3C/svg%3E");
132 | }
133 |
--------------------------------------------------------------------------------
/dist/assets/theme-dracula-2432079e.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/theme/dracula-css",["require","exports","module"], function(require, exports, module){module.exports = "/*\n * Copyright \u00A9 2017 Zeno Rocha \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \u201CSoftware\u201D), 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:\n *\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \u201CAS IS\u201D, 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.\n */\n\n.ace-dracula .ace_gutter {\n background: #282a36;\n color: rgb(144,145,148)\n}\n\n.ace-dracula .ace_print-margin {\n width: 1px;\n background: #44475a\n}\n\n.ace-dracula {\n background-color: #282a36;\n color: #f8f8f2\n}\n\n.ace-dracula .ace_cursor {\n color: #f8f8f0\n}\n\n.ace-dracula .ace_marker-layer .ace_selection {\n background: #44475a\n}\n\n.ace-dracula.ace_multiselect .ace_selection.ace_start {\n box-shadow: 0 0 3px 0px #282a36;\n border-radius: 2px\n}\n\n.ace-dracula .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174)\n}\n\n.ace-dracula .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #a29709\n}\n\n.ace-dracula .ace_marker-layer .ace_active-line {\n background: #44475a\n}\n\n.ace-dracula .ace_gutter-active-line {\n background-color: #44475a\n}\n\n.ace-dracula .ace_marker-layer .ace_selected-word {\n box-shadow: 0px 0px 0px 1px #a29709;\n border-radius: 3px;\n}\n\n.ace-dracula .ace_fold {\n background-color: #50fa7b;\n border-color: #f8f8f2\n}\n\n.ace-dracula .ace_keyword {\n color: #ff79c6\n}\n\n.ace-dracula .ace_constant.ace_language {\n color: #bd93f9\n}\n\n.ace-dracula .ace_constant.ace_numeric {\n color: #bd93f9\n}\n\n.ace-dracula .ace_constant.ace_character {\n color: #bd93f9\n}\n\n.ace-dracula .ace_constant.ace_character.ace_escape {\n color: #ff79c6\n}\n\n.ace-dracula .ace_constant.ace_other {\n color: #bd93f9\n}\n\n.ace-dracula .ace_support.ace_function {\n color: #8be9fd\n}\n\n.ace-dracula .ace_support.ace_constant {\n color: #6be5fd\n}\n\n.ace-dracula .ace_support.ace_class {\n font-style: italic;\n color: #66d9ef\n}\n\n.ace-dracula .ace_support.ace_type {\n font-style: italic;\n color: #66d9ef\n}\n\n.ace-dracula .ace_storage {\n color: #ff79c6\n}\n\n.ace-dracula .ace_storage.ace_type {\n font-style: italic;\n color: #8be9fd\n}\n\n.ace-dracula .ace_invalid {\n color: #F8F8F0;\n background-color: #ff79c6\n}\n\n.ace-dracula .ace_invalid.ace_deprecated {\n color: #F8F8F0;\n background-color: #bd93f9\n}\n\n.ace-dracula .ace_string {\n color: #f1fa8c\n}\n\n.ace-dracula .ace_comment {\n color: #6272a4\n}\n\n.ace-dracula .ace_variable {\n color: #50fa7b\n}\n\n.ace-dracula .ace_variable.ace_parameter {\n font-style: italic;\n color: #ffb86c\n}\n\n.ace-dracula .ace_entity.ace_other.ace_attribute-name {\n color: #50fa7b\n}\n\n.ace-dracula .ace_entity.ace_name.ace_function {\n color: #50fa7b\n}\n\n.ace-dracula .ace_entity.ace_name.ace_tag {\n color: #ff79c6\n}\n.ace-dracula .ace_invisible {\n color: #626680;\n}\n\n.ace-dracula .ace_indent-guide {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y\n}\n\n.ace-dracula .ace_indent-guide-active {\n background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACAQMAAACjTyRkAAAABlBMVEUAAADCwsK76u2xAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjYGBoAAAAhACBGFbxzQAAAABJRU5ErkJggg==\") right repeat-y;\n}\n";
2 |
3 | });
4 |
5 | ace.define("ace/theme/dracula",["require","exports","module","ace/theme/dracula-css","ace/lib/dom"], function(require, exports, module){exports.isDark = true;
6 | exports.cssClass = "ace-dracula";
7 | exports.cssText = require("./dracula-css");
8 | exports.$selectionColorConflict = true;
9 | var dom = require("../lib/dom");
10 | dom.importCssString(exports.cssText, exports.cssClass, false);
11 |
12 | }); (function() {
13 | ace.require(["ace/theme/dracula"], function(m) {
14 | if (typeof module == "object" && typeof exports == "object" && module) {
15 | module.exports = m;
16 | }
17 | });
18 | })();
19 |
--------------------------------------------------------------------------------
/src/coms/DBML/DbChart.vue:
--------------------------------------------------------------------------------
1 |
98 |
99 |
100 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
156 |
--------------------------------------------------------------------------------
/src/coms/DBML/libs/convertor.ts:
--------------------------------------------------------------------------------
1 | import { Edge, Node } from '@vue-flow/core/dist/types';
2 | import Table from '@dbml/core/types/model_structure/table';
3 | import Ref from '@dbml/core/types/model_structure/ref';
4 | import Endpoint from '@dbml/core/types/model_structure/endpoint';
5 | import { RawDatabase } from '@dbml/core/types/model_structure/database';
6 | export { default as parseDBMLToJSON } from '@dbml/core/lib/parse/dbmlParser';
7 | class ConvertorToVueFlow {
8 | private convertTable(dbmlTable: Table): Node {
9 | const fields = Object.fromEntries(
10 | dbmlTable.fields.map((dbmlField) => {
11 | const field = { ...dbmlField, tags: [] } as any;
12 | field.note = dbmlField.note ? dbmlField.note : '';
13 | delete field.token;
14 | return [field.name, field];
15 | })
16 | );
17 |
18 | return {
19 | id: this.getFullTableName((dbmlTable as any).schemaName, dbmlTable.name),
20 | label: dbmlTable.name,
21 | type: 'table',
22 | position: { x: 0, y: 0 },
23 | draggable: true,
24 | expandParent: true,
25 | connectable: true,
26 | data: {
27 | tags: [],
28 | fields: fields,
29 | note: dbmlTable.note || ''
30 | }
31 | };
32 | }
33 |
34 | private getFullTableName(schema: string, name: string): string {
35 | schema = schema || 'public';
36 | return schema + '.' + name;
37 | }
38 |
39 | public convertDbmlStructToVueFlow(db: RawDatabase): [Node[], Edge[]] {
40 | this.replaceTableNameFromAlias(db);
41 | const nodes = [];
42 | const edges = [];
43 | for (const table of db.tables) {
44 | nodes.push(this.convertTable(table));
45 | }
46 | for (let i = 0; i < db.refs.length; i++) {
47 | edges.push(this.convertRefs(db.refs[i], i));
48 | }
49 | return [nodes, edges];
50 | }
51 |
52 | public convertDbmlStructToVueFlowObj(db: RawDatabase): { nodes: Node[]; edges: Edge[] } {
53 | this.replaceTableNameFromAlias(db);
54 | const nodes = [];
55 | const edges = [];
56 | try {
57 | for (const table of db.tables) {
58 | nodes.push(this.convertTable(table));
59 | }
60 | for (let i = 0; i < db.refs.length; i++) {
61 | edges.push(this.convertRefs(db.refs[i], i));
62 | }
63 | } catch (e) {
64 | }
65 | return { nodes, edges };
66 | }
67 |
68 | private convertRefs(ref: Ref, index: number): Edge {
69 | const [e0, e1] = ref.endpoints;
70 | return {
71 | id: `ref-${index}`,
72 | source: this.getFullTableName(e0.schemaName, e0.tableName),
73 | sourceHandle: e0.fieldNames[0],
74 | target: this.getFullTableName(e1.schemaName, e1.tableName),
75 | targetHandle: e1.fieldNames[0],
76 | label: `${e0.tableName}.${e0.fieldNames[0]} [${e0.relation}] :: ${e1.tableName}.${e1.fieldNames[0]} [${e1.relation}]`,
77 | data: {
78 | sourceRelation: e0.relation,
79 | targetRelation: e1.relation
80 | }
81 | };
82 | }
83 |
84 | private replaceTableNameFromAlias(db: RawDatabase): void {
85 | try {
86 | db.refs.map((ref) => {
87 | ref.endpoints.map((endpoint: Endpoint) => {
88 | const name = endpoint.tableName;
89 | const alias = (db as any).aliases.find((item: any) => item.kind === 'table' && item.name === name);
90 | if (alias) {
91 | endpoint.tableName = alias.value.tableName;
92 | }
93 | });
94 | });
95 | } catch (e) {
96 | }
97 | }
98 | }
99 |
100 | export default new ConvertorToVueFlow();
101 | export { ConvertorToVueFlow };
102 |
103 | export function Sql2Sqlite(mysqlSchema: string): string {
104 | let sqliteSchema = mysqlSchema;
105 | // Replace MySQL-specific data types with SQLite-compatible types
106 | sqliteSchema = sqliteSchema.replace(/`?varchar\(\d+\)`?/gi, 'TEXT');
107 | sqliteSchema = sqliteSchema.replace(/`?int\(\d+\)`?/gi, 'INTEGER');
108 | sqliteSchema = sqliteSchema.replace(/`?integer`?/gi, 'INTEGER');
109 | sqliteSchema = sqliteSchema.replace(/`?text`?/gi, 'TEXT');
110 | sqliteSchema = sqliteSchema.replace(/`?timestamp`?/gi, 'TIMESTAMP');
111 | // Remove MySQL-specific comments (e.g., COMMENT '...')
112 | sqliteSchema = sqliteSchema.replace(/COMMENT\s*'[^']*'/gi, '');
113 | // Remove MySQL-specific column options (e.g., AUTO_INCREMENT, UNSIGNED)
114 | sqliteSchema = sqliteSchema.replace(/AUTO_INCREMENT|UNSIGNED/gi, '');
115 | // Replace MySQL-specific PRIMARY KEY syntax
116 | sqliteSchema = sqliteSchema.replace(/`?PRIMARY KEY`?\s*\(([^)]+)\)/gi, 'PRIMARY KEY ($1)');
117 | // Move FOREIGN KEY definitions into CREATE TABLE statements
118 | const foreignKeys: Record = {};
119 | sqliteSchema = sqliteSchema.replace(
120 | /ALTER TABLE `?([\w_]+)`? ADD FOREIGN KEY \(([^)]+)\) REFERENCES `?([\w_]+)`? \(([^)]+)\);/gi,
121 | (_, table, columns, referencedTable, referencedColumns) => {
122 | if (!foreignKeys[table]) {
123 | foreignKeys[table] = [];
124 | }
125 | foreignKeys[table].push(`FOREIGN KEY (${columns}) REFERENCES ${referencedTable} (${referencedColumns})`);
126 | return '';
127 | }
128 | );
129 | // Insert foreign keys into their respective tables
130 | sqliteSchema = sqliteSchema.replace(/CREATE TABLE `?([\w_]+)`? \(([^)]+)\)/gi, (_, table, columns) => {
131 | const fkDefs = foreignKeys[table] ? `, ${foreignKeys[table].join(', ')}` : '';
132 | return `CREATE TABLE ${table} (${columns}${fkDefs})`;
133 | });
134 | // Remove any trailing commas from column definitions
135 | sqliteSchema = sqliteSchema.replace(/,\s*\)/g, ')');
136 | // Normalize table creation syntax
137 | sqliteSchema = sqliteSchema.replace(/`/g, '');
138 | return sqliteSchema;
139 | }
140 |
--------------------------------------------------------------------------------
/dist/assets/mode-sql-7d302412.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/mode/sql_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module){"use strict";
2 | var oop = require("../lib/oop");
3 | var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
4 | var SqlHighlightRules = function () {
5 | var keywords = ("select|insert|update|delete|from|where|and|or|group|by|order|limit|offset|having|as|case|" +
6 | "when|then|else|end|type|left|right|join|on|outer|desc|asc|union|create|table|primary|key|if|" +
7 | "foreign|not|references|default|null|inner|cross|natural|database|drop|grant|distinct|is|in|" +
8 | "all|alter|any|array|at|authorization|between|both|cast|check|collate|column|commit|constraint|" +
9 | "cube|current|current_date|current_time|current_timestamp|current_user|describe|escape|except|" +
10 | "exists|external|extract|fetch|filter|for|full|function|global|grouping|intersect|interval|" +
11 | "into|leading|like|local|no|of|only|out|overlaps|partition|position|range|revoke|rollback|rollup|" +
12 | "row|rows|session_user|set|some|start|tablesample|time|to|trailing|truncate|unique|unknown|" +
13 | "user|using|values|window|with");
14 | var builtinConstants = ("true|false");
15 | var builtinFunctions = ("avg|count|first|last|max|min|sum|ucase|lcase|mid|len|round|rank|now|format|" +
16 | "coalesce|ifnull|isnull|nvl");
17 | var dataTypes = ("int|numeric|decimal|date|varchar|char|bigint|float|double|bit|binary|text|set|timestamp|" +
18 | "money|real|number|integer|string");
19 | var keywordMapper = this.createKeywordMapper({
20 | "support.function": builtinFunctions,
21 | "keyword": keywords,
22 | "constant.language": builtinConstants,
23 | "storage.type": dataTypes
24 | }, "identifier", true);
25 | this.$rules = {
26 | "start": [{
27 | token: "comment",
28 | regex: "--.*$"
29 | }, {
30 | token: "comment",
31 | start: "/\\*",
32 | end: "\\*/"
33 | }, {
34 | token: "string", // " string
35 | regex: '".*?"'
36 | }, {
37 | token: "string", // ' string
38 | regex: "'.*?'"
39 | }, {
40 | token: "string", // ` string (apache drill)
41 | regex: "`.*?`"
42 | }, {
43 | token: "constant.numeric", // float
44 | regex: "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
45 | }, {
46 | token: keywordMapper,
47 | regex: "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
48 | }, {
49 | token: "keyword.operator",
50 | regex: "\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|="
51 | }, {
52 | token: "paren.lparen",
53 | regex: "[\\(]"
54 | }, {
55 | token: "paren.rparen",
56 | regex: "[\\)]"
57 | }, {
58 | token: "text",
59 | regex: "\\s+"
60 | }]
61 | };
62 | this.normalizeRules();
63 | };
64 | oop.inherits(SqlHighlightRules, TextHighlightRules);
65 | exports.SqlHighlightRules = SqlHighlightRules;
66 |
67 | });
68 |
69 | ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module){"use strict";
70 | var oop = require("../../lib/oop");
71 | var Range = require("../../range").Range;
72 | var BaseFoldMode = require("./fold_mode").FoldMode;
73 | var FoldMode = exports.FoldMode = function (commentRegex) {
74 | if (commentRegex) {
75 | this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start));
76 | this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end));
77 | }
78 | };
79 | oop.inherits(FoldMode, BaseFoldMode);
80 | (function () {
81 | this.foldingStartMarker = /([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/;
82 | this.foldingStopMarker = /^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/;
83 | this.singleLineBlockCommentRe = /^\s*(\/\*).*\*\/\s*$/;
84 | this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/;
85 | this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/;
86 | this._getFoldWidgetBase = this.getFoldWidget;
87 | this.getFoldWidget = function (session, foldStyle, row) {
88 | var line = session.getLine(row);
89 | if (this.singleLineBlockCommentRe.test(line)) {
90 | if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))
91 | return "";
92 | }
93 | var fw = this._getFoldWidgetBase(session, foldStyle, row);
94 | if (!fw && this.startRegionRe.test(line))
95 | return "start"; // lineCommentRegionStart
96 | return fw;
97 | };
98 | this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {
99 | var line = session.getLine(row);
100 | if (this.startRegionRe.test(line))
101 | return this.getCommentRegionBlock(session, line, row);
102 | var match = line.match(this.foldingStartMarker);
103 | if (match) {
104 | var i = match.index;
105 | if (match[1])
106 | return this.openingBracketBlock(session, match[1], row, i);
107 | var range = session.getCommentFoldRange(row, i + match[0].length, 1);
108 | if (range && !range.isMultiLine()) {
109 | if (forceMultiline) {
110 | range = this.getSectionRange(session, row);
111 | }
112 | else if (foldStyle != "all")
113 | range = null;
114 | }
115 | return range;
116 | }
117 | if (foldStyle === "markbegin")
118 | return;
119 | var match = line.match(this.foldingStopMarker);
120 | if (match) {
121 | var i = match.index + match[0].length;
122 | if (match[1])
123 | return this.closingBracketBlock(session, match[1], row, i);
124 | return session.getCommentFoldRange(row, i, -1);
125 | }
126 | };
127 | this.getSectionRange = function (session, row) {
128 | var line = session.getLine(row);
129 | var startIndent = line.search(/\S/);
130 | var startRow = row;
131 | var startColumn = line.length;
132 | row = row + 1;
133 | var endRow = row;
134 | var maxRow = session.getLength();
135 | while (++row < maxRow) {
136 | line = session.getLine(row);
137 | var indent = line.search(/\S/);
138 | if (indent === -1)
139 | continue;
140 | if (startIndent > indent)
141 | break;
142 | var subRange = this.getFoldWidgetRange(session, "all", row);
143 | if (subRange) {
144 | if (subRange.start.row <= startRow) {
145 | break;
146 | }
147 | else if (subRange.isMultiLine()) {
148 | row = subRange.end.row;
149 | }
150 | else if (startIndent == indent) {
151 | break;
152 | }
153 | }
154 | endRow = row;
155 | }
156 | return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);
157 | };
158 | this.getCommentRegionBlock = function (session, line, row) {
159 | var startColumn = line.search(/\s*$/);
160 | var maxRow = session.getLength();
161 | var startRow = row;
162 | var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/;
163 | var depth = 1;
164 | while (++row < maxRow) {
165 | line = session.getLine(row);
166 | var m = re.exec(line);
167 | if (!m)
168 | continue;
169 | if (m[1])
170 | depth--;
171 | else
172 | depth++;
173 | if (!depth)
174 | break;
175 | }
176 | var endRow = row;
177 | if (endRow > startRow) {
178 | return new Range(startRow, startColumn, endRow, line.length);
179 | }
180 | };
181 | }).call(FoldMode.prototype);
182 |
183 | });
184 |
185 | ace.define("ace/mode/folding/sql",["require","exports","module","ace/lib/oop","ace/mode/folding/cstyle"], function(require, exports, module){"use strict";
186 | var oop = require("../../lib/oop");
187 | var BaseFoldMode = require("./cstyle").FoldMode;
188 | var FoldMode = exports.FoldMode = function () { };
189 | oop.inherits(FoldMode, BaseFoldMode);
190 | (function () {
191 | }).call(FoldMode.prototype);
192 |
193 | });
194 |
195 | ace.define("ace/mode/sql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sql_highlight_rules","ace/mode/folding/sql"], function(require, exports, module){"use strict";
196 | var oop = require("../lib/oop");
197 | var TextMode = require("./text").Mode;
198 | var SqlHighlightRules = require("./sql_highlight_rules").SqlHighlightRules;
199 | var SqlFoldMode = require("./folding/sql").FoldMode;
200 | var Mode = function () {
201 | this.HighlightRules = SqlHighlightRules;
202 | this.foldingRules = new SqlFoldMode();
203 | this.$behaviour = this.$defaultBehaviour;
204 | };
205 | oop.inherits(Mode, TextMode);
206 | (function () {
207 | this.lineCommentStart = "--";
208 | this.blockComment = { start: "/*", end: "*/" };
209 | this.$id = "ace/mode/sql";
210 | this.snippetFileId = "ace/snippets/sql";
211 | }).call(Mode.prototype);
212 | exports.Mode = Mode;
213 |
214 | }); (function() {
215 | ace.require(["ace/mode/sql"], function(m) {
216 | if (typeof module == "object" && typeof exports == "object" && module) {
217 | module.exports = m;
218 | }
219 | });
220 | })();
221 |
--------------------------------------------------------------------------------
/dist/assets/ViewPage-f805070e.css:
--------------------------------------------------------------------------------
1 | [data-v-ebd412fc]:root{--vf-handle: #ccc}.vue-flow__handle[data-v-ebd412fc]{opacity:0;width:10px;height:10px;border:4px solid #fff;top:50%;left:50%;transform:translate(-50%,-50%)}.selected>.db-table[data-v-ebd412fc]{outline:1px solid #839fd2}.db-table[data-v-ebd412fc]{color:#6f6f6f;min-width:160px;background:#fcfcfc;font-size:12px;border:1px solid #fff;border-radius:2px}.db-table .title[data-v-ebd412fc]{padding:4px 8px;font-size:14px;background:#3F51B5;color:#f3f3f3;font-weight:700;cursor:move;border-radius:3px 3px 0 0}.db-table:hover .title[data-v-ebd412fc]{color:#fff}.db-table .field[data-v-ebd412fc]{margin:0;padding:4px 8px;position:relative;background:#f2f2f2;border-top:1px solid #fff;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.db-table .field .type[data-v-ebd412fc]{color:#ccc;font-size:10px;padding:0 0 0 8px;margin-left:auto}.db-table .field[data-v-ebd412fc]:hover{color:#555;background:#d8e7f3}.edit-mode .field:hover .vue-flow__handle[data-v-ebd412fc]{opacity:1}vue-flow__node{cursor:default}.vue-flow__node-group{display:flex}.db-group{text-align:center;color:#ccc;background:rgba(98,255,66,.1);flex-grow:1}.vue-flow__controls{box-shadow:0 0 2px 1px #00000014}.vue-flow__controls-button{background:#fefefe;border:none;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:5px}.vue-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.vue-flow__controls-button:hover{background:#f4f4f4}.vue-flow__controls-button:disabled{pointer-events:none}.vue-flow__controls-button:disabled svg{fill-opacity:.4}.control-panel{position:absolute;z-index:1;padding:10px;left:10px;top:10px;border-radius:8px}.control-btn{cursor:pointer;padding:5px 10px;background-color:#fff;box-shadow:0 0 1px 1px #0003;border-radius:5px;font-size:12px;opacity:.8}.vue-flow__edge-path{stroke:#7cadd5}.vue-flow__controls{opacity:.5}.vue-flow__edge-textwrapper{opacity:.3}.isScrollPane .vue-flow__nodes,.isScrollPane .db-table{pointer-events:none!important}.vue-flow{position:relative;width:100%;height:100%;overflow:hidden;z-index:0}.vue-flow__container{position:absolute;height:100%;width:100%;left:0;top:0}.vue-flow__pane{z-index:1}.vue-flow__pane.draggable{cursor:grab}.vue-flow__pane.dragging{cursor:grabbing}.vue-flow__pane.selection{cursor:pointer}.vue-flow__transformationpane{transform-origin:0 0;z-index:2;pointer-events:none}.vue-flow__viewport{z-index:4}.vue-flow__selection{z-index:6}.vue-flow__edge-labels{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible{outline:none}.vue-flow .vue-flow__edges{pointer-events:none;overflow:visible}.vue-flow__edge-path,.vue-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.vue-flow__edge{pointer-events:visibleStroke;cursor:pointer}.vue-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__edge.animated path.vue-flow__edge-interaction{stroke-dasharray:none;animation:none}.vue-flow__edge.inactive{pointer-events:none}.vue-flow__edge.selected,.vue-flow__edge:focus,.vue-flow__edge:focus-visible{outline:none}.vue-flow__edge.selected .vue-flow__edge-path,.vue-flow__edge:focus .vue-flow__edge-path,.vue-flow__edge:focus-visible .vue-flow__edge-path{stroke:#555}.vue-flow__edge-textwrapper{pointer-events:all}.vue-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__connection{pointer-events:none}.vue-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__connectionline{z-index:1001}.vue-flow__nodes{pointer-events:none;transform-origin:0 0}.vue-flow__node-default,.vue-flow__node-input,.vue-flow__node-output{border-width:1px;border-style:solid;border-color:#bbb}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible,.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible,.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{outline:none;border:1px solid #555}.vue-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:grab}.vue-flow__node.dragging{cursor:grabbing}.vue-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.vue-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.vue-flow__nodesselection-rect.dragging{cursor:grabbing}.vue-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px}.vue-flow__handle.connectable{pointer-events:all;cursor:crosshair}.vue-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.vue-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.vue-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.vue-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.vue-flow__edgeupdater{cursor:move;pointer-events:all}.vue-flow__panel{position:absolute;z-index:5;margin:15px}.vue-flow__panel.top{top:0}.vue-flow__panel.bottom{bottom:0}.vue-flow__panel.left{left:0}.vue-flow__panel.right{right:0}.vue-flow__panel.center{left:50%;transform:translate(-50%)}@keyframes dashdraw{0%{stroke-dashoffset:10}}:root{--vf-node-bg: #fff;--vf-node-text: #222;--vf-connection-path: #b1b1b7;--vf-handle: #555}.vue-flow__edge.updating .vue-flow__edge-path{stroke:#777}.vue-flow__edge-text{font-size:10px}.vue-flow__edge-textbg{fill:#fff}.vue-flow__connection-path{stroke:var(--vf-connection-path)}.vue-flow__node{cursor:grab}.vue-flow__node.selectable:focus,.vue-flow__node.selectable:focus-visible{outline:none}.vue-flow__node-default,.vue-flow__node-input,.vue-flow__node-output{padding:10px;border-radius:3px;width:150px;font-size:12px;text-align:center;border-width:1px;border-style:solid;color:var(--vf-node-text);background-color:var(--vf-node-bg);border-color:var(--vf-node-color)}.vue-flow__node-default.selected,.vue-flow__node-default.selected:hover,.vue-flow__node-input.selected,.vue-flow__node-input.selected:hover,.vue-flow__node-output.selected,.vue-flow__node-output.selected:hover{box-shadow:0 0 0 .5px var(--vf-box-shadow)}.vue-flow__node-default .vue-flow__handle,.vue-flow__node-input .vue-flow__handle,.vue-flow__node-output .vue-flow__handle{background:var(--vf-handle)}.vue-flow__node-default.selectable:hover,.vue-flow__node-input.selectable:hover,.vue-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.vue-flow__node-input{--vf-node-color: var(--vf-node-color, #0041d0);--vf-handle: var(--vf-node-color, #0041d0);--vf-box-shadow: var(--vf-node-color, #0041d0);background:var(--vf-node-bg);border-color:var(--vf-node-color, #0041d0)}.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible{outline:none;border:1px solid var(--vf-node-color, #0041d0)}.vue-flow__node-default{--vf-handle: var(--vf-node-color, #1a192b);--vf-box-shadow: var(--vf-node-color, #1a192b);background:var(--vf-node-bg);border-color:var(--vf-node-color, #1a192b)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible{outline:none;border:1px solid var(--vf-node-color, #1a192b)}.vue-flow__node-output{--vf-handle: var(--vf-node-color, #ff0072);--vf-box-shadow: var(--vf-node-color, #ff0072);background:var(--vf-node-bg);border-color:var(--vf-node-color, #ff0072)}.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{outline:none;border:1px solid var(--vf-node-color, #ff0072)}.vue-flow__nodesselection-rect,.vue-flow__selection{background:rgba(0,89,220,.08);border:1px dotted rgba(0,89,220,.8)}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible,.vue-flow__selection:focus,.vue-flow__selection:focus-visible{outline:none}.vue-flow__handle{width:6px;height:6px;background:var(--vf-handle);border:1px solid #fff;border-radius:100%}:root{--left-panel-width: 500px}.f-col{display:flex;flex-direction:column}.comp-layer{will-change:transform}*{box-sizing:border-box}html,body,#app{overflow:hidden;margin:0}#app{font-family:Open Sans,sans-serif;width:100vw;height:100vh;display:flex;flex-direction:column}#app header{padding:5px;background:#3f51b5;color:#fff;display:flex;justify-content:start;font-size:14px;font-weight:100;gap:15px}#app header .logo{color:#fff}#app header a{color:inherit;text-decoration:none;margin:0 12px;border-bottom:2px solid transparent}#app header a:hover{color:#fff;border-bottom:2px solid #fff}#app header .menu{cursor:pointer;font-size:12px;display:flex;justify-content:center;align-items:center}#app header i{font-size:x-small;margin-left:3px}#app .middle{position:relative;flex-grow:1;display:flex;flex-direction:row}#app .middle .aside-panel{width:var(--left-panel-width);background:#f7f7f7;border-right:1px solid #ddd;color:#999;position:absolute;top:0;bottom:0;left:0;overflow:hidden}#app .middle .content{flex-grow:1;left:var(--left-panel-width);right:0;top:0;bottom:0;overflow-y:scroll;position:absolute}button{background-color:#fff;padding:10px 15px;border:none;border-radius:5px;color:#000;letter-spacing:1px}.primary{background-color:#3f51b5;color:#fff}.secondary{background-color:#2196f3;color:#fff}body{display:block}.icon-arrow-down-circle{--un-icon: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M12 15.248q-.161 0-.298-.053t-.267-.184l-2.62-2.619q-.146-.146-.152-.344t.152-.363q.166-.166.357-.169q.192-.003.357.163L11.5 13.65V5.5q0-.213.143-.357T12 5t.357.143t.143.357v8.15l1.971-1.971q.146-.146.347-.153t.366.159q.16.165.163.354t-.162.353l-2.62 2.62q-.13.13-.267.183q-.136.053-.298.053M6.616 19q-.691 0-1.153-.462T5 17.384v-1.923q0-.213.143-.356t.357-.144t.357.144t.143.356v1.923q0 .231.192.424t.423.192h10.77q.23 0 .423-.192t.192-.424v-1.923q0-.213.143-.356t.357-.144t.357.144t.143.356v1.923q0 .691-.462 1.153T17.384 19z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1.4em;height:1.4em;display:inline-block}.icon-size-fullscreen{height:16px;width:16px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 21 21'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='M18.5 7.5V2.522l-5.5.014m5.5-.014l-6 5.907m.5 10.092l5.5.002l-.013-5.5m.013 5.406l-6-5.907M2.5 7.5v-5H8m.5 5.929l-6-5.907M8 18.516l-5.5.007V13.5m6-1l-6 6'/%3E%3C/svg%3E")}.aside-panel{overflow-y:auto}.aside-panel .widget{border-bottom:1px solid #eee;padding:4px}.aside-panel .widget .w-title{cursor:pointer;padding:8px;margin:0;font-size:14px}.panel-btns{display:flex;flex-direction:row;padding:5px;gap:5px;width:100%;background-color:#202020}.dbml-editor,.yaml-editor{width:100%;height:100%}#erd-container{flex-grow:1}
2 |
--------------------------------------------------------------------------------
/dist/assets/mode-yaml-202fbe23.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/mode/yaml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module){"use strict";
2 | var oop = require("../lib/oop");
3 | var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
4 | var YamlHighlightRules = function () {
5 | this.$rules = {
6 | "start": [
7 | {
8 | token: "comment",
9 | regex: "#.*$"
10 | }, {
11 | token: "list.markup",
12 | regex: /^(?:-{3}|\.{3})\s*(?=#|$)/
13 | }, {
14 | token: "list.markup",
15 | regex: /^\s*[\-?](?:$|\s)/
16 | }, {
17 | token: "constant",
18 | regex: "!![\\w//]+"
19 | }, {
20 | token: "constant.language",
21 | regex: "[&\\*][a-zA-Z0-9-_]+"
22 | }, {
23 | token: ["meta.tag", "keyword"],
24 | regex: /^(\s*\w[^\s:]*?)(:(?=\s|$))/
25 | }, {
26 | token: ["meta.tag", "keyword"],
27 | regex: /(\w[^\s:]*?)(\s*:(?=\s|$))/
28 | }, {
29 | token: "keyword.operator",
30 | regex: "<<\\w*:\\w*"
31 | }, {
32 | token: "keyword.operator",
33 | regex: "-\\s*(?=[{])"
34 | }, {
35 | token: "string", // single line
36 | regex: '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
37 | }, {
38 | token: "string", // multi line string start
39 | regex: /[|>][-+\d]*(?:$|\s+(?:$|#))/,
40 | onMatch: function (val, state, stack, line) {
41 | line = line.replace(/ #.*/, "");
42 | var indent = /^ *((:\s*)?-(\s*[^|>])?)?/.exec(line)[0]
43 | .replace(/\S\s*$/, "").length;
44 | var indentationIndicator = parseInt(/\d+[\s+-]*$/.exec(line));
45 | if (indentationIndicator) {
46 | indent += indentationIndicator - 1;
47 | this.next = "mlString";
48 | }
49 | else {
50 | this.next = "mlStringPre";
51 | }
52 | if (!stack.length) {
53 | stack.push(this.next);
54 | stack.push(indent);
55 | }
56 | else {
57 | stack[0] = this.next;
58 | stack[1] = indent;
59 | }
60 | return this.token;
61 | },
62 | next: "mlString"
63 | }, {
64 | token: "string", // single quoted string
65 | regex: "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
66 | }, {
67 | token: "constant.numeric", // float
68 | regex: /(\b|[+\-\.])[\d_]+(?:(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)(?=[^\d-\w]|$)$/
69 | }, {
70 | token: "constant.numeric", // other number
71 | regex: /[+\-]?\.inf\b|NaN\b|0x[\dA-Fa-f_]+|0b[10_]+/
72 | }, {
73 | token: "constant.language.boolean",
74 | regex: "\\b(?:true|false|TRUE|FALSE|True|False|yes|no)\\b"
75 | }, {
76 | token: "paren.lparen",
77 | regex: "[[({]"
78 | }, {
79 | token: "paren.rparen",
80 | regex: "[\\])}]"
81 | }, {
82 | token: "text",
83 | regex: /[^\s,:\[\]\{\}]+/
84 | }
85 | ],
86 | "mlStringPre": [
87 | {
88 | token: "indent",
89 | regex: /^ *$/
90 | }, {
91 | token: "indent",
92 | regex: /^ */,
93 | onMatch: function (val, state, stack) {
94 | var curIndent = stack[1];
95 | if (curIndent >= val.length) {
96 | this.next = "start";
97 | stack.shift();
98 | stack.shift();
99 | }
100 | else {
101 | stack[1] = val.length - 1;
102 | this.next = stack[0] = "mlString";
103 | }
104 | return this.token;
105 | },
106 | next: "mlString"
107 | }, {
108 | defaultToken: "string"
109 | }
110 | ],
111 | "mlString": [
112 | {
113 | token: "indent",
114 | regex: /^ *$/
115 | }, {
116 | token: "indent",
117 | regex: /^ */,
118 | onMatch: function (val, state, stack) {
119 | var curIndent = stack[1];
120 | if (curIndent >= val.length) {
121 | this.next = "start";
122 | stack.splice(0);
123 | }
124 | else {
125 | this.next = "mlString";
126 | }
127 | return this.token;
128 | },
129 | next: "mlString"
130 | }, {
131 | token: "string",
132 | regex: '.+'
133 | }
134 | ]
135 | };
136 | this.normalizeRules();
137 | };
138 | oop.inherits(YamlHighlightRules, TextHighlightRules);
139 | exports.YamlHighlightRules = YamlHighlightRules;
140 |
141 | });
142 |
143 | ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module){"use strict";
144 | var Range = require("../range").Range;
145 | var MatchingBraceOutdent = function () { };
146 | (function () {
147 | this.checkOutdent = function (line, input) {
148 | if (!/^\s+$/.test(line))
149 | return false;
150 | return /^\s*\}/.test(input);
151 | };
152 | this.autoOutdent = function (doc, row) {
153 | var line = doc.getLine(row);
154 | var match = line.match(/^(\s*\})/);
155 | if (!match)
156 | return 0;
157 | var column = match[1].length;
158 | var openBracePos = doc.findMatchingBracket({ row: row, column: column });
159 | if (!openBracePos || openBracePos.row == row)
160 | return 0;
161 | var indent = this.$getIndent(doc.getLine(openBracePos.row));
162 | doc.replace(new Range(row, 0, row, column - 1), indent);
163 | };
164 | this.$getIndent = function (line) {
165 | return line.match(/^\s*/)[0];
166 | };
167 | }).call(MatchingBraceOutdent.prototype);
168 | exports.MatchingBraceOutdent = MatchingBraceOutdent;
169 |
170 | });
171 |
172 | ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module){"use strict";
173 | var oop = require("../../lib/oop");
174 | var BaseFoldMode = require("./fold_mode").FoldMode;
175 | var Range = require("../../range").Range;
176 | var FoldMode = exports.FoldMode = function () { };
177 | oop.inherits(FoldMode, BaseFoldMode);
178 | (function () {
179 | this.commentBlock = function (session, row) {
180 | var re = /\S/;
181 | var line = session.getLine(row);
182 | var startLevel = line.search(re);
183 | if (startLevel == -1 || line[startLevel] != "#")
184 | return;
185 | var startColumn = line.length;
186 | var maxRow = session.getLength();
187 | var startRow = row;
188 | var endRow = row;
189 | while (++row < maxRow) {
190 | line = session.getLine(row);
191 | var level = line.search(re);
192 | if (level == -1)
193 | continue;
194 | if (line[level] != "#")
195 | break;
196 | endRow = row;
197 | }
198 | if (endRow > startRow) {
199 | var endColumn = session.getLine(endRow).length;
200 | return new Range(startRow, startColumn, endRow, endColumn);
201 | }
202 | };
203 | this.getFoldWidgetRange = function (session, foldStyle, row) {
204 | var range = this.indentationBlock(session, row);
205 | if (range)
206 | return range;
207 | range = this.commentBlock(session, row);
208 | if (range)
209 | return range;
210 | };
211 | this.getFoldWidget = function (session, foldStyle, row) {
212 | var line = session.getLine(row);
213 | var indent = line.search(/\S/);
214 | var next = session.getLine(row + 1);
215 | var prev = session.getLine(row - 1);
216 | var prevIndent = prev.search(/\S/);
217 | var nextIndent = next.search(/\S/);
218 | if (indent == -1) {
219 | session.foldWidgets[row - 1] = prevIndent != -1 && prevIndent < nextIndent ? "start" : "";
220 | return "";
221 | }
222 | if (prevIndent == -1) {
223 | if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") {
224 | session.foldWidgets[row - 1] = "";
225 | session.foldWidgets[row + 1] = "";
226 | return "start";
227 | }
228 | }
229 | else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") {
230 | if (session.getLine(row - 2).search(/\S/) == -1) {
231 | session.foldWidgets[row - 1] = "start";
232 | session.foldWidgets[row + 1] = "";
233 | return "";
234 | }
235 | }
236 | if (prevIndent != -1 && prevIndent < indent)
237 | session.foldWidgets[row - 1] = "start";
238 | else
239 | session.foldWidgets[row - 1] = "";
240 | if (indent < nextIndent)
241 | return "start";
242 | else
243 | return "";
244 | };
245 | }).call(FoldMode.prototype);
246 |
247 | });
248 |
249 | ace.define("ace/mode/folding/yaml",["require","exports","module","ace/lib/oop","ace/mode/folding/coffee","ace/range"], function(require, exports, module){"use strict";
250 | var oop = require("../../lib/oop");
251 | var CoffeeFoldMode = require("./coffee").FoldMode;
252 | var Range = require("../../range").Range;
253 | var FoldMode = exports.FoldMode = function () { };
254 | oop.inherits(FoldMode, CoffeeFoldMode);
255 | (function () {
256 | this.getFoldWidgetRange = function (session, foldStyle, row) {
257 | var re = /\S/;
258 | var line = session.getLine(row);
259 | var startLevel = line.search(re);
260 | var isCommentFold = line[startLevel] === "#";
261 | var isDashFold = line[startLevel] === "-";
262 | if (startLevel == -1)
263 | return;
264 | var startColumn = line.length;
265 | var maxRow = session.getLength();
266 | var startRow = row;
267 | var endRow = row;
268 | if (isCommentFold) {
269 | var range = this.commentBlock(session, row);
270 | if (range)
271 | return range;
272 | }
273 | else if (isDashFold) {
274 | var range = this.indentationBlock(session, row);
275 | if (range)
276 | return range;
277 | }
278 | else {
279 | while (++row < maxRow) {
280 | var line = session.getLine(row);
281 | var level = line.search(re);
282 | if (level == -1)
283 | continue;
284 | if (level <= startLevel && line[startLevel] !== '-') {
285 | var token = session.getTokenAt(row, 0);
286 | if (!token || token.type !== "string")
287 | break;
288 | }
289 | endRow = row;
290 | }
291 | }
292 | if (endRow > startRow) {
293 | var endColumn = session.getLine(endRow).length;
294 | return new Range(startRow, startColumn, endRow, endColumn);
295 | }
296 | };
297 | this.getFoldWidget = function (session, foldStyle, row) {
298 | var line = session.getLine(row);
299 | var indent = line.search(/\S/);
300 | var next = session.getLine(row + 1);
301 | var prev = session.getLine(row - 1);
302 | var prevIndent = prev.search(/\S/);
303 | var nextIndent = next.search(/\S/);
304 | var lineStartsWithDash = line[indent] === '-';
305 | if (indent == -1) {
306 | session.foldWidgets[row - 1] = prevIndent != -1 && prevIndent < nextIndent ? "start" : "";
307 | return "";
308 | }
309 | if (prevIndent == -1) {
310 | if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") {
311 | session.foldWidgets[row - 1] = "";
312 | session.foldWidgets[row + 1] = "";
313 | return "start";
314 | }
315 | }
316 | else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") {
317 | if (session.getLine(row - 2).search(/\S/) == -1) {
318 | session.foldWidgets[row - 1] = "start";
319 | session.foldWidgets[row + 1] = "";
320 | return "";
321 | }
322 | }
323 | if (prevIndent != -1 && prevIndent < indent) {
324 | session.foldWidgets[row - 1] = "start";
325 | }
326 | else if (prevIndent != -1 && (prevIndent == indent && lineStartsWithDash)) {
327 | session.foldWidgets[row - 1] = "start";
328 | }
329 | else {
330 | session.foldWidgets[row - 1] = "";
331 | }
332 | if (indent < nextIndent)
333 | return "start";
334 | else
335 | return "";
336 | };
337 | }).call(FoldMode.prototype);
338 |
339 | });
340 |
341 | ace.define("ace/mode/yaml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/yaml_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/yaml","ace/worker/worker_client"], function(require, exports, module){"use strict";
342 | var oop = require("../lib/oop");
343 | var TextMode = require("./text").Mode;
344 | var YamlHighlightRules = require("./yaml_highlight_rules").YamlHighlightRules;
345 | var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
346 | var FoldMode = require("./folding/yaml").FoldMode;
347 | var WorkerClient = require("../worker/worker_client").WorkerClient;
348 | var Mode = function () {
349 | this.HighlightRules = YamlHighlightRules;
350 | this.$outdent = new MatchingBraceOutdent();
351 | this.foldingRules = new FoldMode();
352 | this.$behaviour = this.$defaultBehaviour;
353 | };
354 | oop.inherits(Mode, TextMode);
355 | (function () {
356 | this.lineCommentStart = ["#"];
357 | this.getNextLineIndent = function (state, line, tab) {
358 | var indent = this.$getIndent(line);
359 | if (state == "start") {
360 | var match = line.match(/^.*[\{\(\[]\s*$/);
361 | if (match) {
362 | indent += tab;
363 | }
364 | }
365 | return indent;
366 | };
367 | this.checkOutdent = function (state, line, input) {
368 | return this.$outdent.checkOutdent(line, input);
369 | };
370 | this.autoOutdent = function (state, doc, row) {
371 | this.$outdent.autoOutdent(doc, row);
372 | };
373 | this.createWorker = function (session) {
374 | var worker = new WorkerClient(["ace"], "ace/mode/yaml_worker", "YamlWorker");
375 | worker.attachToDocument(session.getDocument());
376 | worker.on("annotate", function (results) {
377 | session.setAnnotations(results.data);
378 | });
379 | worker.on("terminate", function () {
380 | session.clearAnnotations();
381 | });
382 | return worker;
383 | };
384 | this.$id = "ace/mode/yaml";
385 | }).call(Mode.prototype);
386 | exports.Mode = Mode;
387 |
388 | }); (function() {
389 | ace.require(["ace/mode/yaml"], function(m) {
390 | if (typeof module == "object" && typeof exports == "object" && module) {
391 | module.exports = m;
392 | }
393 | });
394 | })();
395 |
--------------------------------------------------------------------------------
/dist/assets/mode-sqlserver-88765fda.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module){"use strict";
2 | var oop = require("../lib/oop");
3 | var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
4 | var DocCommentHighlightRules = function () {
5 | this.$rules = {
6 | "start": [
7 | {
8 | token: "comment.doc.tag",
9 | regex: "@\\w+(?=\\s|$)"
10 | }, DocCommentHighlightRules.getTagRule(), {
11 | defaultToken: "comment.doc.body",
12 | caseInsensitive: true
13 | }
14 | ]
15 | };
16 | };
17 | oop.inherits(DocCommentHighlightRules, TextHighlightRules);
18 | DocCommentHighlightRules.getTagRule = function (start) {
19 | return {
20 | token: "comment.doc.tag.storage.type",
21 | regex: "\\b(?:TODO|FIXME|XXX|HACK)\\b"
22 | };
23 | };
24 | DocCommentHighlightRules.getStartRule = function (start) {
25 | return {
26 | token: "comment.doc", // doc comment
27 | regex: /\/\*\*(?!\/)/,
28 | next: start
29 | };
30 | };
31 | DocCommentHighlightRules.getEndRule = function (start) {
32 | return {
33 | token: "comment.doc", // closing comment
34 | regex: "\\*\\/",
35 | next: start
36 | };
37 | };
38 | exports.DocCommentHighlightRules = DocCommentHighlightRules;
39 |
40 | });
41 |
42 | ace.define("ace/mode/sqlserver_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module){"use strict";
43 | var oop = require("../lib/oop");
44 | var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules;
45 | var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
46 | var SqlServerHighlightRules = function () {
47 | var logicalOperators = "ALL|AND|ANY|BETWEEN|EXISTS|IN|LIKE|NOT|OR|SOME";
48 | logicalOperators += "|NULL|IS|APPLY|INNER|OUTER|LEFT|RIGHT|JOIN|CROSS"; //SSMS colors these gray too
49 | var builtinFunctions = (
50 | "OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|" +
51 | "AVG|CHECKSUM_AGG|COUNT|COUNT_BIG|GROUPING|GROUPING_ID|MAX|MIN|STDEV|STDEVP|SUM|VAR|VARP|" +
52 | "DENSE_RANK|NTILE|RANK|ROW_NUMBER" +
53 | "@@DATEFIRST|@@DBTS|@@LANGID|@@LANGUAGE|@@LOCK_TIMEOUT|@@MAX_CONNECTIONS|@@MAX_PRECISION|@@NESTLEVEL|@@OPTIONS|@@REMSERVER|@@SERVERNAME|@@SERVICENAME|@@SPID|@@TEXTSIZE|@@VERSION|" +
54 | "CAST|CONVERT|PARSE|TRY_CAST|TRY_CONVERT|TRY_PARSE" +
55 | "@@CURSOR_ROWS|@@FETCH_STATUS|CURSOR_STATUS|" +
56 | "@@DATEFIRST|@@LANGUAGE|CURRENT_TIMESTAMP|DATEADD|DATEDIFF|DATEFROMPARTS|DATENAME|DATEPART|DATETIME2FROMPARTS|DATETIMEFROMPARTS|DATETIMEOFFSETFROMPARTS|DAY|EOMONTH|GETDATE|GETUTCDATE|ISDATE|MONTH|SET DATEFIRST|SET DATEFORMAT|SET LANGUAGE|SMALLDATETIMEFROMPARTS|SP_HELPLANGUAGE|SWITCHOFFSET|SYSDATETIME|SYSDATETIMEOFFSET|SYSUTCDATETIME|TIMEFROMPARTS|TODATETIMEOFFSET|YEAR|DATETRUNC|" +
57 | "CHOOSE|IIF|" +
58 | "ABS|ACOS|ASIN|ATAN|ATN2|CEILING|COS|COT|DEGREES|EXP|FLOOR|LOG|LOG10|PI|POWER|RADIANS|RAND|ROUND|SIGN|SIN|SQRT|SQUARE|TAN|" +
59 | "@@PROCID|APPLOCK_MODE|APPLOCK_TEST|APP_NAME|ASSEMBLYPROPERTY|COLUMNPROPERTY|COL_LENGTH|COL_NAME|DATABASEPROPERTYEX|DATABASE_PRINCIPAL_ID|DB_ID|DB_NAME|FILEGROUPPROPERTY|FILEGROUP_ID|FILEGROUP_NAME|FILEPROPERTY|FILE_ID|FILE_IDEX|FILE_NAME|FULLTEXTCATALOGPROPERTY|FULLTEXTSERVICEPROPERTY|INDEXKEY_PROPERTY|INDEXPROPERTY|INDEX_COL|OBJECTPROPERTY|OBJECTPROPERTYEX|OBJECT_DEFINITION|OBJECT_ID|OBJECT_NAME|OBJECT_SCHEMA_NAME|ORIGINAL_DB_NAME|PARSENAME|SCHEMA_ID|SCHEMA_NAME|SCOPE_IDENTITY|SERVERPROPERTY|STATS_DATE|TYPEPROPERTY|TYPE_ID|TYPE_NAME|" +
60 | "CERTENCODED|CERTPRIVATEKEY|CURRENT_USER|DATABASE_PRINCIPAL_ID|HAS_PERMS_BY_NAME|IS_MEMBER|IS_ROLEMEMBER|IS_SRVROLEMEMBER|ORIGINAL_LOGIN|PERMISSIONS|PWDCOMPARE|PWDENCRYPT|SCHEMA_ID|SCHEMA_NAME|SESSION_USER|SUSER_ID|SUSER_NAME|SUSER_SID|SUSER_SNAME|SYS.FN_BUILTIN_PERMISSIONS|SYS.FN_GET_AUDIT_FILE|SYS.FN_MY_PERMISSIONS|SYSTEM_USER|USER_ID|USER_NAME|" +
61 | "ASCII|CHAR|CHARINDEX|CONCAT|DIFFERENCE|FORMAT|LEN|LOWER|LTRIM|NCHAR|PATINDEX|QUOTENAME|REPLACE|REPLICATE|REVERSE|RTRIM|SOUNDEX|SPACE|STR|STUFF|SUBSTRING|UNICODE|UPPER|" +
62 | "$PARTITION|@@ERROR|@@IDENTITY|@@PACK_RECEIVED|@@ROWCOUNT|@@TRANCOUNT|BINARY_CHECKSUM|CHECKSUM|CONNECTIONPROPERTY|CONTEXT_INFO|CURRENT_REQUEST_ID|ERROR_LINE|ERROR_MESSAGE|ERROR_NUMBER|ERROR_PROCEDURE|ERROR_SEVERITY|ERROR_STATE|FORMATMESSAGE|GETANSINULL|GET_FILESTREAM_TRANSACTION_CONTEXT|HOST_ID|HOST_NAME|ISNULL|ISNUMERIC|MIN_ACTIVE_ROWVERSION|NEWID|NEWSEQUENTIALID|ROWCOUNT_BIG|XACT_STATE|" +
63 | "@@CONNECTIONS|@@CPU_BUSY|@@IDLE|@@IO_BUSY|@@PACKET_ERRORS|@@PACK_RECEIVED|@@PACK_SENT|@@TIMETICKS|@@TOTAL_ERRORS|@@TOTAL_READ|@@TOTAL_WRITE|FN_VIRTUALFILESTATS|" +
64 | "PATINDEX|TEXTPTR|TEXTVALID|" +
65 | "GREATEST|LEAST|" +
66 | "GENERATE_SERIES|DATE_BUCKET|" +
67 | "JSON_ARRAY|JSON_OBJECT|JSON_PATH_EXISTS|ISJSON|" +
68 | "FIRST_VALUE|LAST_VALUE|" +
69 | "COALESCE|NULLIF");
70 | var dataTypes = ("BIGINT|BINARY|BIT|CHAR|CURSOR|DATE|DATETIME|DATETIME2|DATETIMEOFFSET|DECIMAL|FLOAT|HIERARCHYID|IMAGE|INTEGER|INT|MONEY|NCHAR|NTEXT|NUMERIC|NVARCHAR|REAL|SMALLDATETIME|SMALLINT|SMALLMONEY|SQL_VARIANT|TABLE|TEXT|TIME|TIMESTAMP|TINYINT|UNIQUEIDENTIFIER|VARBINARY|VARCHAR|XML");
71 | var builtInStoredProcedures = "sp_addextendedproc|sp_addextendedproperty|sp_addmessage|sp_addtype|sp_addumpdevice|sp_add_data_file_recover_suspect_db|sp_add_log_file_recover_suspect_db|sp_altermessage|sp_attach_db|sp_attach_single_file_db|sp_autostats|sp_bindefault|sp_bindrule|sp_bindsession|sp_certify_removable|sp_clean_db_file_free_space|sp_clean_db_free_space|sp_configure|sp_control_plan_guide|sp_createstats|sp_create_plan_guide|sp_create_plan_guide_from_handle|sp_create_removable|sp_cycle_errorlog|sp_datatype_info|sp_dbcmptlevel|sp_dbmmonitoraddmonitoring|sp_dbmmonitorchangealert|sp_dbmmonitorchangemonitoring|sp_dbmmonitordropalert|sp_dbmmonitordropmonitoring|sp_dbmmonitorhelpalert|sp_dbmmonitorhelpmonitoring|sp_dbmmonitorresults|sp_db_increased_partitions|sp_delete_backuphistory|sp_depends|sp_describe_first_result_set|sp_describe_undeclared_parameters|sp_detach_db|sp_dropdevice|sp_dropextendedproc|sp_dropextendedproperty|sp_dropmessage|sp_droptype|sp_execute|sp_executesql|sp_getapplock|sp_getbindtoken|sp_help|sp_helpconstraint|sp_helpdb|sp_helpdevice|sp_helpextendedproc|sp_helpfile|sp_helpfilegroup|sp_helpindex|sp_helplanguage|sp_helpserver|sp_helpsort|sp_helpstats|sp_helptext|sp_helptrigger|sp_indexoption|sp_invalidate_textptr|sp_lock|sp_monitor|sp_prepare|sp_prepexec|sp_prepexecrpc|sp_procoption|sp_recompile|sp_refreshview|sp_releaseapplock|sp_rename|sp_renamedb|sp_resetstatus|sp_sequence_get_range|sp_serveroption|sp_setnetname|sp_settriggerorder|sp_spaceused|sp_tableoption|sp_unbindefault|sp_unbindrule|sp_unprepare|sp_updateextendedproperty|sp_updatestats|sp_validname|sp_who|sys.sp_merge_xtp_checkpoint_files|sys.sp_xtp_bind_db_resource_pool|sys.sp_xtp_checkpoint_force_garbage_collection|sys.sp_xtp_control_proc_exec_stats|sys.sp_xtp_control_query_exec_stats|sys.sp_xtp_unbind_db_resource_pool";
72 | var keywords = "ABSOLUTE|ACTION|ADA|ADD|ADMIN|AFTER|AGGREGATE|ALIAS|ALL|ALLOCATE|ALTER|AND|ANY|ARE|ARRAY|AS|ASC|ASENSITIVE|ASSERTION|ASYMMETRIC|AT|ATOMIC|AUTHORIZATION|BACKUP|BEFORE|BEGIN|BETWEEN|BIT_LENGTH|BLOB|BOOLEAN|BOTH|BREADTH|BREAK|BROWSE|BULK|BY|CALL|CALLED|CARDINALITY|CASCADE|CASCADED|CASE|CATALOG|CHARACTER|CHARACTER_LENGTH|CHAR_LENGTH|CHECK|CHECKPOINT|CLASS|CLOB|CLOSE|CLUSTERED|COALESCE|COLLATE|COLLATION|COLLECT|COLUMN|COMMIT|COMPLETION|COMPUTE|CONDITION|CONNECT|CONNECTION|CONSTRAINT|CONSTRAINTS|CONSTRUCTOR|CONTAINS|CONTAINSTABLE|CONTINUE|CORR|CORRESPONDING|COVAR_POP|COVAR_SAMP|CREATE|CROSS|CUBE|CUME_DIST|CURRENT|CURRENT_CATALOG|CURRENT_DATE|CURRENT_DEFAULT_TRANSFORM_GROUP|CURRENT_PATH|CURRENT_ROLE|CURRENT_SCHEMA|CURRENT_TIME|CURRENT_TRANSFORM_GROUP_FOR_TYPE|CYCLE|DATA|DATABASE|DBCC|DEALLOCATE|DEC|DECLARE|DEFAULT|DEFERRABLE|DEFERRED|DELETE|DENY|DEPTH|DEREF|DESC|DESCRIBE|DESCRIPTOR|DESTROY|DESTRUCTOR|DETERMINISTIC|DIAGNOSTICS|DICTIONARY|DISCONNECT|DISK|DISTINCT|DISTRIBUTED|DOMAIN|DOUBLE|DROP|DUMP|DYNAMIC|EACH|ELEMENT|ELSE|END|END-EXEC|EQUALS|ERRLVL|ESCAPE|EVERY|EXCEPT|EXCEPTION|EXEC|EXECUTE|EXISTS|EXIT|EXTERNAL|EXTRACT|FETCH|FILE|FILLFACTOR|FILTER|FIRST|FOR|FOREIGN|FORTRAN|FOUND|FREE|FREETEXT|FREETEXTTABLE|FROM|FULL|FULLTEXTTABLE|FUNCTION|FUSION|GENERAL|GET|GLOBAL|GO|GOTO|GRANT|GROUP|HAVING|HOLD|HOLDLOCK|HOST|HOUR|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IGNORE|IMMEDIATE|IN|INCLUDE|INDEX|INDICATOR|INITIALIZE|INITIALLY|INNER|INOUT|INPUT|INSENSITIVE|INSERT|INTEGER|INTERSECT|INTERSECTION|INTERVAL|INTO|IS|ISOLATION|ITERATE|JOIN|KEY|KILL|LANGUAGE|LARGE|LAST|LATERAL|LEADING|LESS|LEVEL|LIKE|LIKE_REGEX|LIMIT|LINENO|LN|LOAD|LOCAL|LOCALTIME|LOCALTIMESTAMP|LOCATOR|MAP|MATCH|MEMBER|MERGE|METHOD|MINUTE|MOD|MODIFIES|MODIFY|MODULE|MULTISET|NAMES|NATIONAL|NATURAL|NCLOB|NEW|NEXT|NO|NOCHECK|NONCLUSTERED|NONE|NORMALIZE|NOT|NULL|NULLIF|OBJECT|OCCURRENCES_REGEX|OCTET_LENGTH|OF|OFF|OFFSETS|OLD|ON|ONLY|OPEN|OPERATION|OPTION|OR|ORDER|ORDINALITY|OUT|OUTER|OUTPUT|OVER|OVERLAPS|OVERLAY|PAD|PARAMETER|PARAMETERS|PARTIAL|PARTITION|PASCAL|PATH|PERCENT|PERCENTILE_CONT|PERCENTILE_DISC|PERCENT_RANK|PIVOT|PLAN|POSITION|POSITION_REGEX|POSTFIX|PRECISION|PREFIX|PREORDER|PREPARE|PRESERVE|PRIMARY|PRINT|PRIOR|PRIVILEGES|PROC|PROCEDURE|PUBLIC|RAISERROR|RANGE|READ|READS|READTEXT|RECONFIGURE|RECURSIVE|REF|REFERENCES|REFERENCING|REGR_AVGX|REGR_AVGY|REGR_COUNT|REGR_INTERCEPT|REGR_R2|REGR_SLOPE|REGR_SXX|REGR_SXY|REGR_SYY|RELATIVE|RELEASE|REPLICATION|RESTORE|RESTRICT|RESULT|RETURN|RETURNS|REVERT|REVOKE|ROLE|ROLLBACK|ROLLUP|ROUTINE|ROW|ROWCOUNT|ROWGUIDCOL|ROWS|RULE|SAVE|SAVEPOINT|SCHEMA|SCOPE|SCROLL|SEARCH|SECOND|SECTION|SECURITYAUDIT|SELECT|SEMANTICKEYPHRASETABLE|SEMANTICSIMILARITYDETAILSTABLE|SEMANTICSIMILARITYTABLE|SENSITIVE|SEQUENCE|SESSION|SET|SETS|SETUSER|SHUTDOWN|SIMILAR|SIZE|SOME|SPECIFIC|SPECIFICTYPE|SQL|SQLCA|SQLCODE|SQLERROR|SQLEXCEPTION|SQLSTATE|SQLWARNING|START|STATE|STATEMENT|STATIC|STATISTICS|STDDEV_POP|STDDEV_SAMP|STRUCTURE|SUBMULTISET|SUBSTRING_REGEX|STRING_SPLIT|SYMMETRIC|SYSTEM|TABLESAMPLE|TEMPORARY|TERMINATE|TEXTSIZE|THAN|THEN|TIMEZONE_HOUR|TIMEZONE_MINUTE|TO|TOP|TRAILING|TRAN|TRANSACTION|TRANSLATE|TRANSLATE_REGEX|TRANSLATION|TREAT|TRIGGER|TRIM|TRUNCATE|TSEQUAL|UESCAPE|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNPIVOT|UPDATE|UPDATETEXT|USAGE|USE|USER|USING|VALUE|VALUES|VARIABLE|VARYING|VAR_POP|VAR_SAMP|VIEW|WAITFOR|WHEN|WHENEVER|WHERE|WHILE|WIDTH_BUCKET|WINDOW|WITH|WITHIN|WITHIN GROUP|WITHOUT|WORK|WRITE|WRITETEXT|XMLAGG|XMLATTRIBUTES|XMLBINARY|XMLCAST|XMLCOMMENT|XMLCONCAT|XMLDOCUMENT|XMLELEMENT|XMLEXISTS|XMLFOREST|XMLITERATE|XMLNAMESPACES|XMLPARSE|XMLPI|XMLQUERY|XMLSERIALIZE|XMLTABLE|XMLTEXT|XMLVALIDATE|ZONE";
73 | keywords += "|KEEPIDENTITY|KEEPDEFAULTS|IGNORE_CONSTRAINTS|IGNORE_TRIGGERS|XLOCK|FORCESCAN|FORCESEEK|HOLDLOCK|NOLOCK|NOWAIT|PAGLOCK|READCOMMITTED|READCOMMITTEDLOCK|READPAST|READUNCOMMITTED|REPEATABLEREAD|ROWLOCK|SERIALIZABLE|SNAPSHOT|SPATIAL_WINDOW_MAX_CELLS|TABLOCK|TABLOCKX|UPDLOCK|XLOCK|IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX|EXPAND|VIEWS|FAST|FORCE|KEEP|KEEPFIXED|MAXDOP|MAXRECURSION|OPTIMIZE|PARAMETERIZATION|SIMPLE|FORCED|RECOMPILE|ROBUST|PLAN|SPATIAL_WINDOW_MAX_CELLS|NOEXPAND|HINT";
74 | keywords += "|LOOP|HASH|MERGE|REMOTE";
75 | keywords += "|TRY|CATCH|THROW";
76 | keywords += "|TYPE";
77 | keywords = keywords.split('|');
78 | keywords = keywords.filter(function (value, index, self) {
79 | return logicalOperators.split('|').indexOf(value) === -1 && builtinFunctions.split('|').indexOf(value) === -1 && dataTypes.split('|').indexOf(value) === -1;
80 | });
81 | keywords = keywords.sort().join('|');
82 | var keywordMapper = this.createKeywordMapper({
83 | "constant.language": logicalOperators,
84 | "storage.type": dataTypes,
85 | "support.function": builtinFunctions,
86 | "support.storedprocedure": builtInStoredProcedures,
87 | "keyword": keywords
88 | }, "identifier", true);
89 | var setStatements = "SET ANSI_DEFAULTS|SET ANSI_NULLS|SET ANSI_NULL_DFLT_OFF|SET ANSI_NULL_DFLT_ON|SET ANSI_PADDING|SET ANSI_WARNINGS|SET ARITHABORT|SET ARITHIGNORE|SET CONCAT_NULL_YIELDS_NULL|SET CURSOR_CLOSE_ON_COMMIT|SET DATEFIRST|SET DATEFORMAT|SET DEADLOCK_PRIORITY|SET FIPS_FLAGGER|SET FMTONLY|SET FORCEPLAN|SET IDENTITY_INSERT|SET IMPLICIT_TRANSACTIONS|SET LANGUAGE|SET LOCK_TIMEOUT|SET NOCOUNT|SET NOEXEC|SET NUMERIC_ROUNDABORT|SET OFFSETS|SET PARSEONLY|SET QUERY_GOVERNOR_COST_LIMIT|SET QUOTED_IDENTIFIER|SET REMOTE_PROC_TRANSACTIONS|SET ROWCOUNT|SET SHOWPLAN_ALL|SET SHOWPLAN_TEXT|SET SHOWPLAN_XML|SET STATISTICS IO|SET STATISTICS PROFILE|SET STATISTICS TIME|SET STATISTICS XML|SET TEXTSIZE|SET XACT_ABORT".split('|');
90 | var isolationLevels = "READ UNCOMMITTED|READ COMMITTED|REPEATABLE READ|SNAPSHOP|SERIALIZABLE".split('|');
91 | for (var i = 0; i < isolationLevels.length; i++) {
92 | setStatements.push('SET TRANSACTION ISOLATION LEVEL ' + isolationLevels[i]);
93 | }
94 | this.$rules = {
95 | start: [{
96 | token: "string.start",
97 | regex: "'",
98 | next: [{
99 | token: "constant.language.escape",
100 | regex: /''/
101 | }, {
102 | token: "string.end",
103 | next: "start",
104 | regex: "'"
105 | }, {
106 | defaultToken: "string"
107 | }]
108 | },
109 | DocCommentHighlightRules.getStartRule("doc-start"), {
110 | token: "comment",
111 | regex: "--.*$"
112 | }, {
113 | token: "comment",
114 | start: "/\\*",
115 | end: "\\*/"
116 | }, {
117 | token: "constant.numeric", // float
118 | regex: "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
119 | }, {
120 | token: keywordMapper,
121 | regex: "@{0,2}[a-zA-Z_$][a-zA-Z0-9_$]*\\b(?!])" //up to 2 @symbols for some built in functions
122 | }, {
123 | token: "constant.class",
124 | regex: "@@?[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
125 | }, {
126 | token: "keyword.operator",
127 | regex: "\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|=|\\*"
128 | }, {
129 | token: "paren.lparen",
130 | regex: "[\\(]"
131 | }, {
132 | token: "paren.rparen",
133 | regex: "[\\)]"
134 | }, {
135 | token: "punctuation",
136 | regex: ",|;"
137 | }, {
138 | token: "text",
139 | regex: "\\s+"
140 | }],
141 | comment: [
142 | DocCommentHighlightRules.getTagRule(), {
143 | token: "comment",
144 | regex: "\\*\\/",
145 | next: "start"
146 | }, {
147 | defaultToken: "comment",
148 | caseInsensitive: true
149 | }
150 | ]
151 | };
152 | for (var i = 0; i < setStatements.length; i++) {
153 | this.$rules.start.unshift({
154 | token: "set.statement",
155 | regex: setStatements[i]
156 | });
157 | }
158 | this.embedRules(DocCommentHighlightRules, "doc-", [DocCommentHighlightRules.getEndRule("start")]);
159 | this.normalizeRules();
160 | var completions = [];
161 | var addCompletions = function (arr, meta) {
162 | arr.forEach(function (v) {
163 | completions.push({
164 | name: v,
165 | value: v,
166 | score: 0,
167 | meta: meta
168 | });
169 | });
170 | };
171 | addCompletions(builtInStoredProcedures.split('|'), 'procedure');
172 | addCompletions(logicalOperators.split('|'), 'operator');
173 | addCompletions(builtinFunctions.split('|'), 'function');
174 | addCompletions(dataTypes.split('|'), 'type');
175 | addCompletions(setStatements, 'statement');
176 | addCompletions(keywords.split('|'), 'keyword');
177 | this.completions = completions;
178 | };
179 | oop.inherits(SqlServerHighlightRules, TextHighlightRules);
180 | exports.SqlHighlightRules = SqlServerHighlightRules;
181 |
182 | });
183 |
184 | ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module){"use strict";
185 | var oop = require("../../lib/oop");
186 | var Range = require("../../range").Range;
187 | var BaseFoldMode = require("./fold_mode").FoldMode;
188 | var FoldMode = exports.FoldMode = function (commentRegex) {
189 | if (commentRegex) {
190 | this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start));
191 | this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end));
192 | }
193 | };
194 | oop.inherits(FoldMode, BaseFoldMode);
195 | (function () {
196 | this.foldingStartMarker = /([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/;
197 | this.foldingStopMarker = /^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/;
198 | this.singleLineBlockCommentRe = /^\s*(\/\*).*\*\/\s*$/;
199 | this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/;
200 | this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/;
201 | this._getFoldWidgetBase = this.getFoldWidget;
202 | this.getFoldWidget = function (session, foldStyle, row) {
203 | var line = session.getLine(row);
204 | if (this.singleLineBlockCommentRe.test(line)) {
205 | if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))
206 | return "";
207 | }
208 | var fw = this._getFoldWidgetBase(session, foldStyle, row);
209 | if (!fw && this.startRegionRe.test(line))
210 | return "start"; // lineCommentRegionStart
211 | return fw;
212 | };
213 | this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {
214 | var line = session.getLine(row);
215 | if (this.startRegionRe.test(line))
216 | return this.getCommentRegionBlock(session, line, row);
217 | var match = line.match(this.foldingStartMarker);
218 | if (match) {
219 | var i = match.index;
220 | if (match[1])
221 | return this.openingBracketBlock(session, match[1], row, i);
222 | var range = session.getCommentFoldRange(row, i + match[0].length, 1);
223 | if (range && !range.isMultiLine()) {
224 | if (forceMultiline) {
225 | range = this.getSectionRange(session, row);
226 | }
227 | else if (foldStyle != "all")
228 | range = null;
229 | }
230 | return range;
231 | }
232 | if (foldStyle === "markbegin")
233 | return;
234 | var match = line.match(this.foldingStopMarker);
235 | if (match) {
236 | var i = match.index + match[0].length;
237 | if (match[1])
238 | return this.closingBracketBlock(session, match[1], row, i);
239 | return session.getCommentFoldRange(row, i, -1);
240 | }
241 | };
242 | this.getSectionRange = function (session, row) {
243 | var line = session.getLine(row);
244 | var startIndent = line.search(/\S/);
245 | var startRow = row;
246 | var startColumn = line.length;
247 | row = row + 1;
248 | var endRow = row;
249 | var maxRow = session.getLength();
250 | while (++row < maxRow) {
251 | line = session.getLine(row);
252 | var indent = line.search(/\S/);
253 | if (indent === -1)
254 | continue;
255 | if (startIndent > indent)
256 | break;
257 | var subRange = this.getFoldWidgetRange(session, "all", row);
258 | if (subRange) {
259 | if (subRange.start.row <= startRow) {
260 | break;
261 | }
262 | else if (subRange.isMultiLine()) {
263 | row = subRange.end.row;
264 | }
265 | else if (startIndent == indent) {
266 | break;
267 | }
268 | }
269 | endRow = row;
270 | }
271 | return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);
272 | };
273 | this.getCommentRegionBlock = function (session, line, row) {
274 | var startColumn = line.search(/\s*$/);
275 | var maxRow = session.getLength();
276 | var startRow = row;
277 | var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/;
278 | var depth = 1;
279 | while (++row < maxRow) {
280 | line = session.getLine(row);
281 | var m = re.exec(line);
282 | if (!m)
283 | continue;
284 | if (m[1])
285 | depth--;
286 | else
287 | depth++;
288 | if (!depth)
289 | break;
290 | }
291 | var endRow = row;
292 | if (endRow > startRow) {
293 | return new Range(startRow, startColumn, endRow, line.length);
294 | }
295 | };
296 | }).call(FoldMode.prototype);
297 |
298 | });
299 |
300 | ace.define("ace/mode/folding/sqlserver",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/cstyle"], function(require, exports, module){"use strict";
301 | var oop = require("../../lib/oop");
302 | var Range = require("../../range").Range;
303 | var BaseFoldMode = require("./cstyle").FoldMode;
304 | var FoldMode = exports.FoldMode = function () { };
305 | oop.inherits(FoldMode, BaseFoldMode);
306 | (function () {
307 | this.foldingStartMarker = /(\bCASE\b|\bBEGIN\b)|^\s*(\/\*)/i;
308 | this.startRegionRe = /^\s*(\/\*|--)#?region\b/;
309 | this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {
310 | var line = session.getLine(row);
311 | if (this.startRegionRe.test(line))
312 | return this.getCommentRegionBlock(session, line, row);
313 | var match = line.match(this.foldingStartMarker);
314 | if (match) {
315 | var i = match.index;
316 | if (match[1])
317 | return this.getBeginEndBlock(session, row, i, match[1]);
318 | var range = session.getCommentFoldRange(row, i + match[0].length, 1);
319 | if (range && !range.isMultiLine()) {
320 | if (forceMultiline) {
321 | range = this.getSectionRange(session, row);
322 | }
323 | else if (foldStyle != "all")
324 | range = null;
325 | }
326 | return range;
327 | }
328 | if (foldStyle === "markbegin")
329 | return;
330 | return;
331 | };
332 | this.getBeginEndBlock = function (session, row, column, matchSequence) {
333 | var start = {
334 | row: row,
335 | column: column + matchSequence.length
336 | };
337 | var maxRow = session.getLength();
338 | var line;
339 | var depth = 1;
340 | var re = /(\bCASE\b|\bBEGIN\b)|(\bEND\b)/i;
341 | while (++row < maxRow) {
342 | line = session.getLine(row);
343 | var m = re.exec(line);
344 | if (!m)
345 | continue;
346 | if (m[1])
347 | depth++;
348 | else
349 | depth--;
350 | if (!depth)
351 | break;
352 | }
353 | var endRow = row;
354 | if (endRow > start.row) {
355 | return new Range(start.row, start.column, endRow, line.length);
356 | }
357 | };
358 | }).call(FoldMode.prototype);
359 |
360 | });
361 |
362 | ace.define("ace/mode/sqlserver",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sqlserver_highlight_rules","ace/mode/folding/sqlserver"], function(require, exports, module){"use strict";
363 | var oop = require("../lib/oop");
364 | var TextMode = require("./text").Mode;
365 | var SqlServerHighlightRules = require("./sqlserver_highlight_rules").SqlHighlightRules;
366 | var SqlServerFoldMode = require("./folding/sqlserver").FoldMode;
367 | var Mode = function () {
368 | this.HighlightRules = SqlServerHighlightRules;
369 | this.foldingRules = new SqlServerFoldMode();
370 | this.$behaviour = this.$defaultBehaviour;
371 | };
372 | oop.inherits(Mode, TextMode);
373 | (function () {
374 | this.lineCommentStart = "--";
375 | this.blockComment = { start: "/*", end: "*/" };
376 | this.getCompletions = function (state, session, pos, prefix) {
377 | return session.$mode.$highlightRules.completions;
378 | };
379 | this.$id = "ace/mode/sqlserver";
380 | this.snippetFileId = "ace/snippets/sqlserver";
381 | }).call(Mode.prototype);
382 | exports.Mode = Mode;
383 |
384 | }); (function() {
385 | ace.require(["ace/mode/sqlserver"], function(m) {
386 | if (typeof module == "object" && typeof exports == "object" && module) {
387 | module.exports = m;
388 | }
389 | });
390 | })();
391 |
--------------------------------------------------------------------------------
/dist/assets/worker-base-78504947.js:
--------------------------------------------------------------------------------
1 | "no use strict";
2 | !(function(window) {
3 | if (typeof window.window != "undefined" && window.document)
4 | return;
5 | if (window.require && window.define)
6 | return;
7 |
8 | if (!window.console) {
9 | window.console = function() {
10 | var msgs = Array.prototype.slice.call(arguments, 0);
11 | postMessage({type: "log", data: msgs});
12 | };
13 | window.console.error =
14 | window.console.warn =
15 | window.console.log =
16 | window.console.trace = window.console;
17 | }
18 | window.window = window;
19 | window.ace = window;
20 |
21 | window.onerror = function(message, file, line, col, err) {
22 | postMessage({type: "error", data: {
23 | message: message,
24 | data: err && err.data,
25 | file: file,
26 | line: line,
27 | col: col,
28 | stack: err && err.stack
29 | }});
30 | };
31 |
32 | window.normalizeModule = function(parentId, moduleName) {
33 | // normalize plugin requires
34 | if (moduleName.indexOf("!") !== -1) {
35 | var chunks = moduleName.split("!");
36 | return window.normalizeModule(parentId, chunks[0]) + "!" + window.normalizeModule(parentId, chunks[1]);
37 | }
38 | // normalize relative requires
39 | if (moduleName.charAt(0) == ".") {
40 | var base = parentId.split("/").slice(0, -1).join("/");
41 | moduleName = (base ? base + "/" : "") + moduleName;
42 |
43 | while (moduleName.indexOf(".") !== -1 && previous != moduleName) {
44 | var previous = moduleName;
45 | moduleName = moduleName.replace(/^\.\//, "").replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, "");
46 | }
47 | }
48 |
49 | return moduleName;
50 | };
51 |
52 | window.require = function require(parentId, id) {
53 | if (!id) {
54 | id = parentId;
55 | parentId = null;
56 | }
57 | if (!id.charAt)
58 | throw new Error("worker.js require() accepts only (parentId, id) as arguments");
59 |
60 | id = window.normalizeModule(parentId, id);
61 |
62 | var module = window.require.modules[id];
63 | if (module) {
64 | if (!module.initialized) {
65 | module.initialized = true;
66 | module.exports = module.factory().exports;
67 | }
68 | return module.exports;
69 | }
70 |
71 | if (!window.require.tlns)
72 | return console.log("unable to load " + id);
73 |
74 | var path = resolveModuleId(id, window.require.tlns);
75 | if (path.slice(-3) != ".js") path += ".js";
76 |
77 | window.require.id = id;
78 | window.require.modules[id] = {}; // prevent infinite loop on broken modules
79 | importScripts(path);
80 | return window.require(parentId, id);
81 | };
82 | function resolveModuleId(id, paths) {
83 | var testPath = id, tail = "";
84 | while (testPath) {
85 | var alias = paths[testPath];
86 | if (typeof alias == "string") {
87 | return alias + tail;
88 | } else if (alias) {
89 | return alias.location.replace(/\/*$/, "/") + (tail || alias.main || alias.name);
90 | } else if (alias === false) {
91 | return "";
92 | }
93 | var i = testPath.lastIndexOf("/");
94 | if (i === -1) break;
95 | tail = testPath.substr(i) + tail;
96 | testPath = testPath.slice(0, i);
97 | }
98 | return id;
99 | }
100 | window.require.modules = {};
101 | window.require.tlns = {};
102 |
103 | window.define = function(id, deps, factory) {
104 | if (arguments.length == 2) {
105 | factory = deps;
106 | if (typeof id != "string") {
107 | deps = id;
108 | id = window.require.id;
109 | }
110 | } else if (arguments.length == 1) {
111 | factory = id;
112 | deps = [];
113 | id = window.require.id;
114 | }
115 |
116 | if (typeof factory != "function") {
117 | window.require.modules[id] = {
118 | exports: factory,
119 | initialized: true
120 | };
121 | return;
122 | }
123 |
124 | if (!deps.length)
125 | // If there is no dependencies, we inject "require", "exports" and
126 | // "module" as dependencies, to provide CommonJS compatibility.
127 | deps = ["require", "exports", "module"];
128 |
129 | var req = function(childId) {
130 | return window.require(id, childId);
131 | };
132 |
133 | window.require.modules[id] = {
134 | exports: {},
135 | factory: function() {
136 | var module = this;
137 | var returnExports = factory.apply(this, deps.slice(0, factory.length).map(function(dep) {
138 | switch (dep) {
139 | // Because "require", "exports" and "module" aren't actual
140 | // dependencies, we must handle them seperately.
141 | case "require": return req;
142 | case "exports": return module.exports;
143 | case "module": return module;
144 | // But for all other dependencies, we can just go ahead and
145 | // require them.
146 | default: return req(dep);
147 | }
148 | }));
149 | if (returnExports)
150 | module.exports = returnExports;
151 | return module;
152 | }
153 | };
154 | };
155 | window.define.amd = {};
156 | window.require.tlns = {};
157 | window.initBaseUrls = function initBaseUrls(topLevelNamespaces) {
158 | for (var i in topLevelNamespaces)
159 | this.require.tlns[i] = topLevelNamespaces[i];
160 | };
161 |
162 | window.initSender = function initSender() {
163 |
164 | var EventEmitter = window.require("ace/lib/event_emitter").EventEmitter;
165 | var oop = window.require("ace/lib/oop");
166 |
167 | var Sender = function() {};
168 |
169 | (function() {
170 |
171 | oop.implement(this, EventEmitter);
172 |
173 | this.callback = function(data, callbackId) {
174 | postMessage({
175 | type: "call",
176 | id: callbackId,
177 | data: data
178 | });
179 | };
180 |
181 | this.emit = function(name, data) {
182 | postMessage({
183 | type: "event",
184 | name: name,
185 | data: data
186 | });
187 | };
188 |
189 | }).call(Sender.prototype);
190 |
191 | return new Sender();
192 | };
193 |
194 | var main = window.main = null;
195 | var sender = window.sender = null;
196 |
197 | window.onmessage = function(e) {
198 | var msg = e.data;
199 | if (msg.event && sender) {
200 | sender._signal(msg.event, msg.data);
201 | }
202 | else if (msg.command) {
203 | if (main[msg.command])
204 | main[msg.command].apply(main, msg.args);
205 | else if (window[msg.command])
206 | window[msg.command].apply(window, msg.args);
207 | else
208 | throw new Error("Unknown command:" + msg.command);
209 | }
210 | else if (msg.init) {
211 | window.initBaseUrls(msg.tlns);
212 | sender = window.sender = window.initSender();
213 | var clazz = this.require(msg.module)[msg.classname];
214 | main = window.main = new clazz(sender);
215 | }
216 | };
217 | })(this);
218 |
219 | ace.define("ace/lib/oop",[], function(require, exports, module){"use strict";
220 | exports.inherits = function (ctor, superCtor) {
221 | ctor.super_ = superCtor;
222 | ctor.prototype = Object.create(superCtor.prototype, {
223 | constructor: {
224 | value: ctor,
225 | enumerable: false,
226 | writable: true,
227 | configurable: true
228 | }
229 | });
230 | };
231 | exports.mixin = function (obj, mixin) {
232 | for (var key in mixin) {
233 | obj[key] = mixin[key];
234 | }
235 | return obj;
236 | };
237 | exports.implement = function (proto, mixin) {
238 | exports.mixin(proto, mixin);
239 | };
240 |
241 | });
242 |
243 | ace.define("ace/apply_delta",[], function(require, exports, module){"use strict";
244 | function throwDeltaError(delta, errorText) {
245 | console.log("Invalid Delta:", delta);
246 | throw "Invalid Delta: " + errorText;
247 | }
248 | function positionInDocument(docLines, position) {
249 | return position.row >= 0 && position.row < docLines.length &&
250 | position.column >= 0 && position.column <= docLines[position.row].length;
251 | }
252 | function validateDelta(docLines, delta) {
253 | if (delta.action != "insert" && delta.action != "remove")
254 | throwDeltaError(delta, "delta.action must be 'insert' or 'remove'");
255 | if (!(delta.lines instanceof Array))
256 | throwDeltaError(delta, "delta.lines must be an Array");
257 | if (!delta.start || !delta.end)
258 | throwDeltaError(delta, "delta.start/end must be an present");
259 | var start = delta.start;
260 | if (!positionInDocument(docLines, delta.start))
261 | throwDeltaError(delta, "delta.start must be contained in document");
262 | var end = delta.end;
263 | if (delta.action == "remove" && !positionInDocument(docLines, end))
264 | throwDeltaError(delta, "delta.end must contained in document for 'remove' actions");
265 | var numRangeRows = end.row - start.row;
266 | var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));
267 | if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)
268 | throwDeltaError(delta, "delta.range must match delta lines");
269 | }
270 | exports.applyDelta = function (docLines, delta, doNotValidate) {
271 | var row = delta.start.row;
272 | var startColumn = delta.start.column;
273 | var line = docLines[row] || "";
274 | switch (delta.action) {
275 | case "insert":
276 | var lines = delta.lines;
277 | if (lines.length === 1) {
278 | docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);
279 | }
280 | else {
281 | var args = [row, 1].concat(delta.lines);
282 | docLines.splice.apply(docLines, args);
283 | docLines[row] = line.substring(0, startColumn) + docLines[row];
284 | docLines[row + delta.lines.length - 1] += line.substring(startColumn);
285 | }
286 | break;
287 | case "remove":
288 | var endColumn = delta.end.column;
289 | var endRow = delta.end.row;
290 | if (row === endRow) {
291 | docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);
292 | }
293 | else {
294 | docLines.splice(row, endRow - row + 1, line.substring(0, startColumn) + docLines[endRow].substring(endColumn));
295 | }
296 | break;
297 | }
298 | };
299 |
300 | });
301 |
302 | ace.define("ace/lib/event_emitter",[], function(require, exports, module){"use strict";
303 | var EventEmitter = {};
304 | var stopPropagation = function () { this.propagationStopped = true; };
305 | var preventDefault = function () { this.defaultPrevented = true; };
306 | EventEmitter._emit =
307 | EventEmitter._dispatchEvent = function (eventName, e) {
308 | this._eventRegistry || (this._eventRegistry = {});
309 | this._defaultHandlers || (this._defaultHandlers = {});
310 | var listeners = this._eventRegistry[eventName] || [];
311 | var defaultHandler = this._defaultHandlers[eventName];
312 | if (!listeners.length && !defaultHandler)
313 | return;
314 | if (typeof e != "object" || !e)
315 | e = {};
316 | if (!e.type)
317 | e.type = eventName;
318 | if (!e.stopPropagation)
319 | e.stopPropagation = stopPropagation;
320 | if (!e.preventDefault)
321 | e.preventDefault = preventDefault;
322 | listeners = listeners.slice();
323 | for (var i = 0; i < listeners.length; i++) {
324 | listeners[i](e, this);
325 | if (e.propagationStopped)
326 | break;
327 | }
328 | if (defaultHandler && !e.defaultPrevented)
329 | return defaultHandler(e, this);
330 | };
331 | EventEmitter._signal = function (eventName, e) {
332 | var listeners = (this._eventRegistry || {})[eventName];
333 | if (!listeners)
334 | return;
335 | listeners = listeners.slice();
336 | for (var i = 0; i < listeners.length; i++)
337 | listeners[i](e, this);
338 | };
339 | EventEmitter.once = function (eventName, callback) {
340 | var _self = this;
341 | this.on(eventName, function newCallback() {
342 | _self.off(eventName, newCallback);
343 | callback.apply(null, arguments);
344 | });
345 | if (!callback) {
346 | return new Promise(function (resolve) {
347 | callback = resolve;
348 | });
349 | }
350 | };
351 | EventEmitter.setDefaultHandler = function (eventName, callback) {
352 | var handlers = this._defaultHandlers;
353 | if (!handlers)
354 | handlers = this._defaultHandlers = { _disabled_: {} };
355 | if (handlers[eventName]) {
356 | var old = handlers[eventName];
357 | var disabled = handlers._disabled_[eventName];
358 | if (!disabled)
359 | handlers._disabled_[eventName] = disabled = [];
360 | disabled.push(old);
361 | var i = disabled.indexOf(callback);
362 | if (i != -1)
363 | disabled.splice(i, 1);
364 | }
365 | handlers[eventName] = callback;
366 | };
367 | EventEmitter.removeDefaultHandler = function (eventName, callback) {
368 | var handlers = this._defaultHandlers;
369 | if (!handlers)
370 | return;
371 | var disabled = handlers._disabled_[eventName];
372 | if (handlers[eventName] == callback) {
373 | if (disabled)
374 | this.setDefaultHandler(eventName, disabled.pop());
375 | }
376 | else if (disabled) {
377 | var i = disabled.indexOf(callback);
378 | if (i != -1)
379 | disabled.splice(i, 1);
380 | }
381 | };
382 | EventEmitter.on =
383 | EventEmitter.addEventListener = function (eventName, callback, capturing) {
384 | this._eventRegistry = this._eventRegistry || {};
385 | var listeners = this._eventRegistry[eventName];
386 | if (!listeners)
387 | listeners = this._eventRegistry[eventName] = [];
388 | if (listeners.indexOf(callback) == -1)
389 | listeners[capturing ? "unshift" : "push"](callback);
390 | return callback;
391 | };
392 | EventEmitter.off =
393 | EventEmitter.removeListener =
394 | EventEmitter.removeEventListener = function (eventName, callback) {
395 | this._eventRegistry = this._eventRegistry || {};
396 | var listeners = this._eventRegistry[eventName];
397 | if (!listeners)
398 | return;
399 | var index = listeners.indexOf(callback);
400 | if (index !== -1)
401 | listeners.splice(index, 1);
402 | };
403 | EventEmitter.removeAllListeners = function (eventName) {
404 | if (!eventName)
405 | this._eventRegistry = this._defaultHandlers = undefined;
406 | if (this._eventRegistry)
407 | this._eventRegistry[eventName] = undefined;
408 | if (this._defaultHandlers)
409 | this._defaultHandlers[eventName] = undefined;
410 | };
411 | exports.EventEmitter = EventEmitter;
412 |
413 | });
414 |
415 | ace.define("ace/range",[], function(require, exports, module){"use strict";
416 | var Range = /** @class */ (function () {
417 | function Range(startRow, startColumn, endRow, endColumn) {
418 | this.start = {
419 | row: startRow,
420 | column: startColumn
421 | };
422 | this.end = {
423 | row: endRow,
424 | column: endColumn
425 | };
426 | }
427 | Range.prototype.isEqual = function (range) {
428 | return this.start.row === range.start.row &&
429 | this.end.row === range.end.row &&
430 | this.start.column === range.start.column &&
431 | this.end.column === range.end.column;
432 | };
433 | Range.prototype.toString = function () {
434 | return ("Range: [" + this.start.row + "/" + this.start.column +
435 | "] -> [" + this.end.row + "/" + this.end.column + "]");
436 | };
437 | Range.prototype.contains = function (row, column) {
438 | return this.compare(row, column) == 0;
439 | };
440 | Range.prototype.compareRange = function (range) {
441 | var cmp, end = range.end, start = range.start;
442 | cmp = this.compare(end.row, end.column);
443 | if (cmp == 1) {
444 | cmp = this.compare(start.row, start.column);
445 | if (cmp == 1) {
446 | return 2;
447 | }
448 | else if (cmp == 0) {
449 | return 1;
450 | }
451 | else {
452 | return 0;
453 | }
454 | }
455 | else if (cmp == -1) {
456 | return -2;
457 | }
458 | else {
459 | cmp = this.compare(start.row, start.column);
460 | if (cmp == -1) {
461 | return -1;
462 | }
463 | else if (cmp == 1) {
464 | return 42;
465 | }
466 | else {
467 | return 0;
468 | }
469 | }
470 | };
471 | Range.prototype.comparePoint = function (p) {
472 | return this.compare(p.row, p.column);
473 | };
474 | Range.prototype.containsRange = function (range) {
475 | return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;
476 | };
477 | Range.prototype.intersects = function (range) {
478 | var cmp = this.compareRange(range);
479 | return (cmp == -1 || cmp == 0 || cmp == 1);
480 | };
481 | Range.prototype.isEnd = function (row, column) {
482 | return this.end.row == row && this.end.column == column;
483 | };
484 | Range.prototype.isStart = function (row, column) {
485 | return this.start.row == row && this.start.column == column;
486 | };
487 | Range.prototype.setStart = function (row, column) {
488 | if (typeof row == "object") {
489 | this.start.column = row.column;
490 | this.start.row = row.row;
491 | }
492 | else {
493 | this.start.row = row;
494 | this.start.column = column;
495 | }
496 | };
497 | Range.prototype.setEnd = function (row, column) {
498 | if (typeof row == "object") {
499 | this.end.column = row.column;
500 | this.end.row = row.row;
501 | }
502 | else {
503 | this.end.row = row;
504 | this.end.column = column;
505 | }
506 | };
507 | Range.prototype.inside = function (row, column) {
508 | if (this.compare(row, column) == 0) {
509 | if (this.isEnd(row, column) || this.isStart(row, column)) {
510 | return false;
511 | }
512 | else {
513 | return true;
514 | }
515 | }
516 | return false;
517 | };
518 | Range.prototype.insideStart = function (row, column) {
519 | if (this.compare(row, column) == 0) {
520 | if (this.isEnd(row, column)) {
521 | return false;
522 | }
523 | else {
524 | return true;
525 | }
526 | }
527 | return false;
528 | };
529 | Range.prototype.insideEnd = function (row, column) {
530 | if (this.compare(row, column) == 0) {
531 | if (this.isStart(row, column)) {
532 | return false;
533 | }
534 | else {
535 | return true;
536 | }
537 | }
538 | return false;
539 | };
540 | Range.prototype.compare = function (row, column) {
541 | if (!this.isMultiLine()) {
542 | if (row === this.start.row) {
543 | return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);
544 | }
545 | }
546 | if (row < this.start.row)
547 | return -1;
548 | if (row > this.end.row)
549 | return 1;
550 | if (this.start.row === row)
551 | return column >= this.start.column ? 0 : -1;
552 | if (this.end.row === row)
553 | return column <= this.end.column ? 0 : 1;
554 | return 0;
555 | };
556 | Range.prototype.compareStart = function (row, column) {
557 | if (this.start.row == row && this.start.column == column) {
558 | return -1;
559 | }
560 | else {
561 | return this.compare(row, column);
562 | }
563 | };
564 | Range.prototype.compareEnd = function (row, column) {
565 | if (this.end.row == row && this.end.column == column) {
566 | return 1;
567 | }
568 | else {
569 | return this.compare(row, column);
570 | }
571 | };
572 | Range.prototype.compareInside = function (row, column) {
573 | if (this.end.row == row && this.end.column == column) {
574 | return 1;
575 | }
576 | else if (this.start.row == row && this.start.column == column) {
577 | return -1;
578 | }
579 | else {
580 | return this.compare(row, column);
581 | }
582 | };
583 | Range.prototype.clipRows = function (firstRow, lastRow) {
584 | if (this.end.row > lastRow)
585 | var end = { row: lastRow + 1, column: 0 };
586 | else if (this.end.row < firstRow)
587 | var end = { row: firstRow, column: 0 };
588 | if (this.start.row > lastRow)
589 | var start = { row: lastRow + 1, column: 0 };
590 | else if (this.start.row < firstRow)
591 | var start = { row: firstRow, column: 0 };
592 | return Range.fromPoints(start || this.start, end || this.end);
593 | };
594 | Range.prototype.extend = function (row, column) {
595 | var cmp = this.compare(row, column);
596 | if (cmp == 0)
597 | return this;
598 | else if (cmp == -1)
599 | var start = { row: row, column: column };
600 | else
601 | var end = { row: row, column: column };
602 | return Range.fromPoints(start || this.start, end || this.end);
603 | };
604 | Range.prototype.isEmpty = function () {
605 | return (this.start.row === this.end.row && this.start.column === this.end.column);
606 | };
607 | Range.prototype.isMultiLine = function () {
608 | return (this.start.row !== this.end.row);
609 | };
610 | Range.prototype.clone = function () {
611 | return Range.fromPoints(this.start, this.end);
612 | };
613 | Range.prototype.collapseRows = function () {
614 | if (this.end.column == 0)
615 | return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row - 1), 0);
616 | else
617 | return new Range(this.start.row, 0, this.end.row, 0);
618 | };
619 | Range.prototype.toScreenRange = function (session) {
620 | var screenPosStart = session.documentToScreenPosition(this.start);
621 | var screenPosEnd = session.documentToScreenPosition(this.end);
622 | return new Range(screenPosStart.row, screenPosStart.column, screenPosEnd.row, screenPosEnd.column);
623 | };
624 | Range.prototype.moveBy = function (row, column) {
625 | this.start.row += row;
626 | this.start.column += column;
627 | this.end.row += row;
628 | this.end.column += column;
629 | };
630 | return Range;
631 | }());
632 | Range.fromPoints = function (start, end) {
633 | return new Range(start.row, start.column, end.row, end.column);
634 | };
635 | Range.comparePoints = function (p1, p2) {
636 | return p1.row - p2.row || p1.column - p2.column;
637 | };
638 | exports.Range = Range;
639 |
640 | });
641 |
642 | ace.define("ace/anchor",[], function(require, exports, module){"use strict";
643 | var oop = require("./lib/oop");
644 | var EventEmitter = require("./lib/event_emitter").EventEmitter;
645 | var Anchor = /** @class */ (function () {
646 | function Anchor(doc, row, column) {
647 | this.$onChange = this.onChange.bind(this);
648 | this.attach(doc);
649 | if (typeof row != "number")
650 | this.setPosition(row.row, row.column);
651 | else
652 | this.setPosition(row, column);
653 | }
654 | Anchor.prototype.getPosition = function () {
655 | return this.$clipPositionToDocument(this.row, this.column);
656 | };
657 | Anchor.prototype.getDocument = function () {
658 | return this.document;
659 | };
660 | Anchor.prototype.onChange = function (delta) {
661 | if (delta.start.row == delta.end.row && delta.start.row != this.row)
662 | return;
663 | if (delta.start.row > this.row)
664 | return;
665 | var point = $getTransformedPoint(delta, { row: this.row, column: this.column }, this.$insertRight);
666 | this.setPosition(point.row, point.column, true);
667 | };
668 | Anchor.prototype.setPosition = function (row, column, noClip) {
669 | var pos;
670 | if (noClip) {
671 | pos = {
672 | row: row,
673 | column: column
674 | };
675 | }
676 | else {
677 | pos = this.$clipPositionToDocument(row, column);
678 | }
679 | if (this.row == pos.row && this.column == pos.column)
680 | return;
681 | var old = {
682 | row: this.row,
683 | column: this.column
684 | };
685 | this.row = pos.row;
686 | this.column = pos.column;
687 | this._signal("change", {
688 | old: old,
689 | value: pos
690 | });
691 | };
692 | Anchor.prototype.detach = function () {
693 | this.document.off("change", this.$onChange);
694 | };
695 | Anchor.prototype.attach = function (doc) {
696 | this.document = doc || this.document;
697 | this.document.on("change", this.$onChange);
698 | };
699 | Anchor.prototype.$clipPositionToDocument = function (row, column) {
700 | var pos = {};
701 | if (row >= this.document.getLength()) {
702 | pos.row = Math.max(0, this.document.getLength() - 1);
703 | pos.column = this.document.getLine(pos.row).length;
704 | }
705 | else if (row < 0) {
706 | pos.row = 0;
707 | pos.column = 0;
708 | }
709 | else {
710 | pos.row = row;
711 | pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));
712 | }
713 | if (column < 0)
714 | pos.column = 0;
715 | return pos;
716 | };
717 | return Anchor;
718 | }());
719 | Anchor.prototype.$insertRight = false;
720 | oop.implement(Anchor.prototype, EventEmitter);
721 | function $pointsInOrder(point1, point2, equalPointsInOrder) {
722 | var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;
723 | return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);
724 | }
725 | function $getTransformedPoint(delta, point, moveIfEqual) {
726 | var deltaIsInsert = delta.action == "insert";
727 | var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);
728 | var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);
729 | var deltaStart = delta.start;
730 | var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.
731 | if ($pointsInOrder(point, deltaStart, moveIfEqual)) {
732 | return {
733 | row: point.row,
734 | column: point.column
735 | };
736 | }
737 | if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {
738 | return {
739 | row: point.row + deltaRowShift,
740 | column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)
741 | };
742 | }
743 | return {
744 | row: deltaStart.row,
745 | column: deltaStart.column
746 | };
747 | }
748 | exports.Anchor = Anchor;
749 |
750 | });
751 |
752 | ace.define("ace/document",[], function(require, exports, module){"use strict";
753 | var oop = require("./lib/oop");
754 | var applyDelta = require("./apply_delta").applyDelta;
755 | var EventEmitter = require("./lib/event_emitter").EventEmitter;
756 | var Range = require("./range").Range;
757 | var Anchor = require("./anchor").Anchor;
758 | var Document = /** @class */ (function () {
759 | function Document(textOrLines) {
760 | this.$lines = [""];
761 | if (textOrLines.length === 0) {
762 | this.$lines = [""];
763 | }
764 | else if (Array.isArray(textOrLines)) {
765 | this.insertMergedLines({ row: 0, column: 0 }, textOrLines);
766 | }
767 | else {
768 | this.insert({ row: 0, column: 0 }, textOrLines);
769 | }
770 | }
771 | Document.prototype.setValue = function (text) {
772 | var len = this.getLength() - 1;
773 | this.remove(new Range(0, 0, len, this.getLine(len).length));
774 | this.insert({ row: 0, column: 0 }, text || "");
775 | };
776 | Document.prototype.getValue = function () {
777 | return this.getAllLines().join(this.getNewLineCharacter());
778 | };
779 | Document.prototype.createAnchor = function (row, column) {
780 | return new Anchor(this, row, column);
781 | };
782 | Document.prototype.$detectNewLine = function (text) {
783 | var match = text.match(/^.*?(\r\n|\r|\n)/m);
784 | this.$autoNewLine = match ? match[1] : "\n";
785 | this._signal("changeNewLineMode");
786 | };
787 | Document.prototype.getNewLineCharacter = function () {
788 | switch (this.$newLineMode) {
789 | case "windows":
790 | return "\r\n";
791 | case "unix":
792 | return "\n";
793 | default:
794 | return this.$autoNewLine || "\n";
795 | }
796 | };
797 | Document.prototype.setNewLineMode = function (newLineMode) {
798 | if (this.$newLineMode === newLineMode)
799 | return;
800 | this.$newLineMode = newLineMode;
801 | this._signal("changeNewLineMode");
802 | };
803 | Document.prototype.getNewLineMode = function () {
804 | return this.$newLineMode;
805 | };
806 | Document.prototype.isNewLine = function (text) {
807 | return (text == "\r\n" || text == "\r" || text == "\n");
808 | };
809 | Document.prototype.getLine = function (row) {
810 | return this.$lines[row] || "";
811 | };
812 | Document.prototype.getLines = function (firstRow, lastRow) {
813 | return this.$lines.slice(firstRow, lastRow + 1);
814 | };
815 | Document.prototype.getAllLines = function () {
816 | return this.getLines(0, this.getLength());
817 | };
818 | Document.prototype.getLength = function () {
819 | return this.$lines.length;
820 | };
821 | Document.prototype.getTextRange = function (range) {
822 | return this.getLinesForRange(range).join(this.getNewLineCharacter());
823 | };
824 | Document.prototype.getLinesForRange = function (range) {
825 | var lines;
826 | if (range.start.row === range.end.row) {
827 | lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];
828 | }
829 | else {
830 | lines = this.getLines(range.start.row, range.end.row);
831 | lines[0] = (lines[0] || "").substring(range.start.column);
832 | var l = lines.length - 1;
833 | if (range.end.row - range.start.row == l)
834 | lines[l] = lines[l].substring(0, range.end.column);
835 | }
836 | return lines;
837 | };
838 | Document.prototype.insertLines = function (row, lines) {
839 | console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead.");
840 | return this.insertFullLines(row, lines);
841 | };
842 | Document.prototype.removeLines = function (firstRow, lastRow) {
843 | console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead.");
844 | return this.removeFullLines(firstRow, lastRow);
845 | };
846 | Document.prototype.insertNewLine = function (position) {
847 | console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.");
848 | return this.insertMergedLines(position, ["", ""]);
849 | };
850 | Document.prototype.insert = function (position, text) {
851 | if (this.getLength() <= 1)
852 | this.$detectNewLine(text);
853 | return this.insertMergedLines(position, this.$split(text));
854 | };
855 | Document.prototype.insertInLine = function (position, text) {
856 | var start = this.clippedPos(position.row, position.column);
857 | var end = this.pos(position.row, position.column + text.length);
858 | this.applyDelta({
859 | start: start,
860 | end: end,
861 | action: "insert",
862 | lines: [text]
863 | }, true);
864 | return this.clonePos(end);
865 | };
866 | Document.prototype.clippedPos = function (row, column) {
867 | var length = this.getLength();
868 | if (row === undefined) {
869 | row = length;
870 | }
871 | else if (row < 0) {
872 | row = 0;
873 | }
874 | else if (row >= length) {
875 | row = length - 1;
876 | column = undefined;
877 | }
878 | var line = this.getLine(row);
879 | if (column == undefined)
880 | column = line.length;
881 | column = Math.min(Math.max(column, 0), line.length);
882 | return { row: row, column: column };
883 | };
884 | Document.prototype.clonePos = function (pos) {
885 | return { row: pos.row, column: pos.column };
886 | };
887 | Document.prototype.pos = function (row, column) {
888 | return { row: row, column: column };
889 | };
890 | Document.prototype.$clipPosition = function (position) {
891 | var length = this.getLength();
892 | if (position.row >= length) {
893 | position.row = Math.max(0, length - 1);
894 | position.column = this.getLine(length - 1).length;
895 | }
896 | else {
897 | position.row = Math.max(0, position.row);
898 | position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);
899 | }
900 | return position;
901 | };
902 | Document.prototype.insertFullLines = function (row, lines) {
903 | row = Math.min(Math.max(row, 0), this.getLength());
904 | var column = 0;
905 | if (row < this.getLength()) {
906 | lines = lines.concat([""]);
907 | column = 0;
908 | }
909 | else {
910 | lines = [""].concat(lines);
911 | row--;
912 | column = this.$lines[row].length;
913 | }
914 | this.insertMergedLines({ row: row, column: column }, lines);
915 | };
916 | Document.prototype.insertMergedLines = function (position, lines) {
917 | var start = this.clippedPos(position.row, position.column);
918 | var end = {
919 | row: start.row + lines.length - 1,
920 | column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length
921 | };
922 | this.applyDelta({
923 | start: start,
924 | end: end,
925 | action: "insert",
926 | lines: lines
927 | });
928 | return this.clonePos(end);
929 | };
930 | Document.prototype.remove = function (range) {
931 | var start = this.clippedPos(range.start.row, range.start.column);
932 | var end = this.clippedPos(range.end.row, range.end.column);
933 | this.applyDelta({
934 | start: start,
935 | end: end,
936 | action: "remove",
937 | lines: this.getLinesForRange({ start: start, end: end })
938 | });
939 | return this.clonePos(start);
940 | };
941 | Document.prototype.removeInLine = function (row, startColumn, endColumn) {
942 | var start = this.clippedPos(row, startColumn);
943 | var end = this.clippedPos(row, endColumn);
944 | this.applyDelta({
945 | start: start,
946 | end: end,
947 | action: "remove",
948 | lines: this.getLinesForRange({ start: start, end: end })
949 | }, true);
950 | return this.clonePos(start);
951 | };
952 | Document.prototype.removeFullLines = function (firstRow, lastRow) {
953 | firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);
954 | lastRow = Math.min(Math.max(0, lastRow), this.getLength() - 1);
955 | var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;
956 | var deleteLastNewLine = lastRow < this.getLength() - 1;
957 | var startRow = (deleteFirstNewLine ? firstRow - 1 : firstRow);
958 | var startCol = (deleteFirstNewLine ? this.getLine(startRow).length : 0);
959 | var endRow = (deleteLastNewLine ? lastRow + 1 : lastRow);
960 | var endCol = (deleteLastNewLine ? 0 : this.getLine(endRow).length);
961 | var range = new Range(startRow, startCol, endRow, endCol);
962 | var deletedLines = this.$lines.slice(firstRow, lastRow + 1);
963 | this.applyDelta({
964 | start: range.start,
965 | end: range.end,
966 | action: "remove",
967 | lines: this.getLinesForRange(range)
968 | });
969 | return deletedLines;
970 | };
971 | Document.prototype.removeNewLine = function (row) {
972 | if (row < this.getLength() - 1 && row >= 0) {
973 | this.applyDelta({
974 | start: this.pos(row, this.getLine(row).length),
975 | end: this.pos(row + 1, 0),
976 | action: "remove",
977 | lines: ["", ""]
978 | });
979 | }
980 | };
981 | Document.prototype.replace = function (range, text) {
982 | if (!(range instanceof Range))
983 | range = Range.fromPoints(range.start, range.end);
984 | if (text.length === 0 && range.isEmpty())
985 | return range.start;
986 | if (text == this.getTextRange(range))
987 | return range.end;
988 | this.remove(range);
989 | var end;
990 | if (text) {
991 | end = this.insert(range.start, text);
992 | }
993 | else {
994 | end = range.start;
995 | }
996 | return end;
997 | };
998 | Document.prototype.applyDeltas = function (deltas) {
999 | for (var i = 0; i < deltas.length; i++) {
1000 | this.applyDelta(deltas[i]);
1001 | }
1002 | };
1003 | Document.prototype.revertDeltas = function (deltas) {
1004 | for (var i = deltas.length - 1; i >= 0; i--) {
1005 | this.revertDelta(deltas[i]);
1006 | }
1007 | };
1008 | Document.prototype.applyDelta = function (delta, doNotValidate) {
1009 | var isInsert = delta.action == "insert";
1010 | if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]
1011 | : !Range.comparePoints(delta.start, delta.end)) {
1012 | return;
1013 | }
1014 | if (isInsert && delta.lines.length > 20000) {
1015 | this.$splitAndapplyLargeDelta(delta, 20000);
1016 | }
1017 | else {
1018 | applyDelta(this.$lines, delta, doNotValidate);
1019 | this._signal("change", delta);
1020 | }
1021 | };
1022 | Document.prototype.$safeApplyDelta = function (delta) {
1023 | var docLength = this.$lines.length;
1024 | if (delta.action == "remove" && delta.start.row < docLength && delta.end.row < docLength
1025 | || delta.action == "insert" && delta.start.row <= docLength) {
1026 | this.applyDelta(delta);
1027 | }
1028 | };
1029 | Document.prototype.$splitAndapplyLargeDelta = function (delta, MAX) {
1030 | var lines = delta.lines;
1031 | var l = lines.length - MAX + 1;
1032 | var row = delta.start.row;
1033 | var column = delta.start.column;
1034 | for (var from = 0, to = 0; from < l; from = to) {
1035 | to += MAX - 1;
1036 | var chunk = lines.slice(from, to);
1037 | chunk.push("");
1038 | this.applyDelta({
1039 | start: this.pos(row + from, column),
1040 | end: this.pos(row + to, column = 0),
1041 | action: delta.action,
1042 | lines: chunk
1043 | }, true);
1044 | }
1045 | delta.lines = lines.slice(from);
1046 | delta.start.row = row + from;
1047 | delta.start.column = column;
1048 | this.applyDelta(delta, true);
1049 | };
1050 | Document.prototype.revertDelta = function (delta) {
1051 | this.$safeApplyDelta({
1052 | start: this.clonePos(delta.start),
1053 | end: this.clonePos(delta.end),
1054 | action: (delta.action == "insert" ? "remove" : "insert"),
1055 | lines: delta.lines.slice()
1056 | });
1057 | };
1058 | Document.prototype.indexToPosition = function (index, startRow) {
1059 | var lines = this.$lines || this.getAllLines();
1060 | var newlineLength = this.getNewLineCharacter().length;
1061 | for (var i = startRow || 0, l = lines.length; i < l; i++) {
1062 | index -= lines[i].length + newlineLength;
1063 | if (index < 0)
1064 | return { row: i, column: index + lines[i].length + newlineLength };
1065 | }
1066 | return { row: l - 1, column: index + lines[l - 1].length + newlineLength };
1067 | };
1068 | Document.prototype.positionToIndex = function (pos, startRow) {
1069 | var lines = this.$lines || this.getAllLines();
1070 | var newlineLength = this.getNewLineCharacter().length;
1071 | var index = 0;
1072 | var row = Math.min(pos.row, lines.length);
1073 | for (var i = startRow || 0; i < row; ++i)
1074 | index += lines[i].length + newlineLength;
1075 | return index + pos.column;
1076 | };
1077 | Document.prototype.$split = function (text) {
1078 | return text.split(/\r\n|\r|\n/);
1079 | };
1080 | return Document;
1081 | }());
1082 | Document.prototype.$autoNewLine = "";
1083 | Document.prototype.$newLineMode = "auto";
1084 | oop.implement(Document.prototype, EventEmitter);
1085 | exports.Document = Document;
1086 |
1087 | });
1088 |
1089 | ace.define("ace/lib/deep_copy",[], function(require, exports, module){exports.deepCopy = function deepCopy(obj) {
1090 | if (typeof obj !== "object" || !obj)
1091 | return obj;
1092 | var copy;
1093 | if (Array.isArray(obj)) {
1094 | copy = [];
1095 | for (var key = 0; key < obj.length; key++) {
1096 | copy[key] = deepCopy(obj[key]);
1097 | }
1098 | return copy;
1099 | }
1100 | if (Object.prototype.toString.call(obj) !== "[object Object]")
1101 | return obj;
1102 | copy = {};
1103 | for (var key in obj)
1104 | copy[key] = deepCopy(obj[key]);
1105 | return copy;
1106 | };
1107 |
1108 | });
1109 |
1110 | ace.define("ace/lib/lang",[], function(require, exports, module){"use strict";
1111 | exports.last = function (a) {
1112 | return a[a.length - 1];
1113 | };
1114 | exports.stringReverse = function (string) {
1115 | return string.split("").reverse().join("");
1116 | };
1117 | exports.stringRepeat = function (string, count) {
1118 | var result = '';
1119 | while (count > 0) {
1120 | if (count & 1)
1121 | result += string;
1122 | if (count >>= 1)
1123 | string += string;
1124 | }
1125 | return result;
1126 | };
1127 | var trimBeginRegexp = /^\s\s*/;
1128 | var trimEndRegexp = /\s\s*$/;
1129 | exports.stringTrimLeft = function (string) {
1130 | return string.replace(trimBeginRegexp, '');
1131 | };
1132 | exports.stringTrimRight = function (string) {
1133 | return string.replace(trimEndRegexp, '');
1134 | };
1135 | exports.copyObject = function (obj) {
1136 | var copy = {};
1137 | for (var key in obj) {
1138 | copy[key] = obj[key];
1139 | }
1140 | return copy;
1141 | };
1142 | exports.copyArray = function (array) {
1143 | var copy = [];
1144 | for (var i = 0, l = array.length; i < l; i++) {
1145 | if (array[i] && typeof array[i] == "object")
1146 | copy[i] = this.copyObject(array[i]);
1147 | else
1148 | copy[i] = array[i];
1149 | }
1150 | return copy;
1151 | };
1152 | exports.deepCopy = require("./deep_copy").deepCopy;
1153 | exports.arrayToMap = function (arr) {
1154 | var map = {};
1155 | for (var i = 0; i < arr.length; i++) {
1156 | map[arr[i]] = 1;
1157 | }
1158 | return map;
1159 | };
1160 | exports.createMap = function (props) {
1161 | var map = Object.create(null);
1162 | for (var i in props) {
1163 | map[i] = props[i];
1164 | }
1165 | return map;
1166 | };
1167 | exports.arrayRemove = function (array, value) {
1168 | for (var i = 0; i <= array.length; i++) {
1169 | if (value === array[i]) {
1170 | array.splice(i, 1);
1171 | }
1172 | }
1173 | };
1174 | exports.escapeRegExp = function (str) {
1175 | return str.replace(/([.*+?^${}()|[\]\/\\])/g, '\\$1');
1176 | };
1177 | exports.escapeHTML = function (str) {
1178 | return ("" + str).replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(/ 0xffff ? 2 : 1;
1256 | };
1257 |
1258 | });
1259 |
1260 | ace.define("ace/worker/mirror",[], function(require, exports, module) {
1261 | "use strict";
1262 |
1263 | var Document = require("../document").Document;
1264 | var lang = require("../lib/lang");
1265 |
1266 | var Mirror = exports.Mirror = function(sender) {
1267 | this.sender = sender;
1268 | var doc = this.doc = new Document("");
1269 |
1270 | var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this));
1271 |
1272 | var _self = this;
1273 | sender.on("change", function(e) {
1274 | var data = e.data;
1275 | if (data[0].start) {
1276 | doc.applyDeltas(data);
1277 | } else {
1278 | for (var i = 0; i < data.length; i += 2) {
1279 | var d, err;
1280 | if (Array.isArray(data[i+1])) {
1281 | d = {action: "insert", start: data[i], lines: data[i+1]};
1282 | } else {
1283 | d = {action: "remove", start: data[i], end: data[i+1]};
1284 | }
1285 |
1286 | if ((d.action == "insert" ? d.start : d.end).row >= doc.$lines.length) {
1287 | err = new Error("Invalid delta");
1288 | err.data = {
1289 | path: _self.$path,
1290 | linesLength: doc.$lines.length,
1291 | start: d.start,
1292 | end: d.end
1293 | };
1294 | throw err;
1295 | }
1296 |
1297 | doc.applyDelta(d, true);
1298 | }
1299 | }
1300 | if (_self.$timeout)
1301 | return deferredUpdate.schedule(_self.$timeout);
1302 | _self.onUpdate();
1303 | });
1304 | };
1305 |
1306 | (function() {
1307 |
1308 | this.$timeout = 500;
1309 |
1310 | this.setTimeout = function(timeout) {
1311 | this.$timeout = timeout;
1312 | };
1313 |
1314 | this.setValue = function(value) {
1315 | this.doc.setValue(value);
1316 | this.deferredUpdate.schedule(this.$timeout);
1317 | };
1318 |
1319 | this.getValue = function(callbackId) {
1320 | this.sender.callback(this.doc.getValue(), callbackId);
1321 | };
1322 |
1323 | this.onUpdate = function() {
1324 | };
1325 |
1326 | this.isPending = function() {
1327 | return this.deferredUpdate.isPending();
1328 | };
1329 |
1330 | }).call(Mirror.prototype);
1331 |
1332 | });
1333 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@antfu/utils@^0.7.5":
6 | version "0.7.10"
7 | resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.7.10.tgz#ae829f170158e297a9b6a28f161a8e487d00814d"
8 | integrity sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==
9 |
10 | "@babel/helper-string-parser@^7.25.9":
11 | version "7.25.9"
12 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c"
13 | integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==
14 |
15 | "@babel/helper-validator-identifier@^7.25.9":
16 | version "7.25.9"
17 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7"
18 | integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==
19 |
20 | "@babel/parser@^7.25.3":
21 | version "7.26.9"
22 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.9.tgz#d9e78bee6dc80f9efd8f2349dcfbbcdace280fd5"
23 | integrity sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==
24 | dependencies:
25 | "@babel/types" "^7.26.9"
26 |
27 | "@babel/types@^7.26.9":
28 | version "7.26.9"
29 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.9.tgz#08b43dec79ee8e682c2ac631c010bdcac54a21ce"
30 | integrity sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==
31 | dependencies:
32 | "@babel/helper-string-parser" "^7.25.9"
33 | "@babel/helper-validator-identifier" "^7.25.9"
34 |
35 | "@dbml/core@2.5.3":
36 | version "2.5.3"
37 | resolved "https://registry.yarnpkg.com/@dbml/core/-/core-2.5.3.tgz#590b66e6a56b4b129048409afcc5b8b5fbaa2914"
38 | integrity sha512-0Y344Ld1eWRu0ypSj0sIoukzszOQa0lLABsagaYGWv7KT1FpqJGu3rh+EV5J1++PK89P/V8dEue6DtCLAqP+JQ==
39 | dependencies:
40 | lodash "^4.17.15"
41 | parsimmon "^1.13.0"
42 | pluralize "^8.0.0"
43 |
44 | "@esbuild/android-arm64@0.18.20":
45 | version "0.18.20"
46 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622"
47 | integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==
48 |
49 | "@esbuild/android-arm@0.18.20":
50 | version "0.18.20"
51 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682"
52 | integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==
53 |
54 | "@esbuild/android-x64@0.18.20":
55 | version "0.18.20"
56 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2"
57 | integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==
58 |
59 | "@esbuild/darwin-arm64@0.18.20":
60 | version "0.18.20"
61 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1"
62 | integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==
63 |
64 | "@esbuild/darwin-x64@0.18.20":
65 | version "0.18.20"
66 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d"
67 | integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==
68 |
69 | "@esbuild/freebsd-arm64@0.18.20":
70 | version "0.18.20"
71 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54"
72 | integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==
73 |
74 | "@esbuild/freebsd-x64@0.18.20":
75 | version "0.18.20"
76 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e"
77 | integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==
78 |
79 | "@esbuild/linux-arm64@0.18.20":
80 | version "0.18.20"
81 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0"
82 | integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==
83 |
84 | "@esbuild/linux-arm@0.18.20":
85 | version "0.18.20"
86 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0"
87 | integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==
88 |
89 | "@esbuild/linux-ia32@0.18.20":
90 | version "0.18.20"
91 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7"
92 | integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==
93 |
94 | "@esbuild/linux-loong64@0.18.20":
95 | version "0.18.20"
96 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d"
97 | integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==
98 |
99 | "@esbuild/linux-mips64el@0.18.20":
100 | version "0.18.20"
101 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231"
102 | integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==
103 |
104 | "@esbuild/linux-ppc64@0.18.20":
105 | version "0.18.20"
106 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb"
107 | integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==
108 |
109 | "@esbuild/linux-riscv64@0.18.20":
110 | version "0.18.20"
111 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6"
112 | integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==
113 |
114 | "@esbuild/linux-s390x@0.18.20":
115 | version "0.18.20"
116 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071"
117 | integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==
118 |
119 | "@esbuild/linux-x64@0.18.20":
120 | version "0.18.20"
121 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338"
122 | integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==
123 |
124 | "@esbuild/netbsd-x64@0.18.20":
125 | version "0.18.20"
126 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1"
127 | integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==
128 |
129 | "@esbuild/openbsd-x64@0.18.20":
130 | version "0.18.20"
131 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae"
132 | integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==
133 |
134 | "@esbuild/sunos-x64@0.18.20":
135 | version "0.18.20"
136 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d"
137 | integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==
138 |
139 | "@esbuild/win32-arm64@0.18.20":
140 | version "0.18.20"
141 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9"
142 | integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==
143 |
144 | "@esbuild/win32-ia32@0.18.20":
145 | version "0.18.20"
146 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102"
147 | integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==
148 |
149 | "@esbuild/win32-x64@0.18.20":
150 | version "0.18.20"
151 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d"
152 | integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==
153 |
154 | "@jridgewell/sourcemap-codec@^1.5.0":
155 | version "1.5.0"
156 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a"
157 | integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
158 |
159 | "@nodelib/fs.scandir@2.1.5":
160 | version "2.1.5"
161 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
162 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
163 | dependencies:
164 | "@nodelib/fs.stat" "2.0.5"
165 | run-parallel "^1.1.9"
166 |
167 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
168 | version "2.0.5"
169 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
170 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
171 |
172 | "@nodelib/fs.walk@^1.2.3":
173 | version "1.2.8"
174 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
175 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
176 | dependencies:
177 | "@nodelib/fs.scandir" "2.1.5"
178 | fastq "^1.6.0"
179 |
180 | "@popperjs/core@^2.11":
181 | version "2.11.8"
182 | resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f"
183 | integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
184 |
185 | "@rollup/pluginutils@^5.0.2":
186 | version "5.1.4"
187 | resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.4.tgz#bb94f1f9eaaac944da237767cdfee6c5b2262d4a"
188 | integrity sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==
189 | dependencies:
190 | "@types/estree" "^1.0.0"
191 | estree-walker "^2.0.2"
192 | picomatch "^4.0.2"
193 |
194 | "@types/estree@^1.0.0":
195 | version "1.0.6"
196 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50"
197 | integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==
198 |
199 | "@types/js-yaml@^4.0.9":
200 | version "4.0.9"
201 | resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.9.tgz#cd82382c4f902fed9691a2ed79ec68c5898af4c2"
202 | integrity sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==
203 |
204 | "@types/lodash-es@^4.17.7":
205 | version "4.17.12"
206 | resolved "https://registry.yarnpkg.com/@types/lodash-es/-/lodash-es-4.17.12.tgz#65f6d1e5f80539aa7cfbfc962de5def0cf4f341b"
207 | integrity sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==
208 | dependencies:
209 | "@types/lodash" "*"
210 |
211 | "@types/lodash@*":
212 | version "4.17.15"
213 | resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.15.tgz#12d4af0ed17cc7600ce1f9980cec48fc17ad1e89"
214 | integrity sha512-w/P33JFeySuhN6JLkysYUK2gEmy9kHHFN7E8ro0tkfmlDOgxBDzWEZ/J8cWA+fHqFevpswDTFZnDx+R9lbL6xw==
215 |
216 | "@types/node@^20.2":
217 | version "20.17.19"
218 | resolved "https://registry.yarnpkg.com/@types/node/-/node-20.17.19.tgz#0f2869555719bef266ca6e1827fcdca903c1a697"
219 | integrity sha512-LEwC7o1ifqg/6r2gn9Dns0f1rhK+fPFDoMiceTJ6kWmVk6bgXBI/9IOWfVan4WiAavK9pIVWdX0/e3J+eEUh5A==
220 | dependencies:
221 | undici-types "~6.19.2"
222 |
223 | "@types/web-bluetooth@^0.0.20":
224 | version "0.0.20"
225 | resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597"
226 | integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==
227 |
228 | "@vitejs/plugin-vue@^4.2":
229 | version "4.6.2"
230 | resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz#057d2ded94c4e71b94e9814f92dcd9306317aa46"
231 | integrity sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==
232 |
233 | "@volar/language-core@1.11.1", "@volar/language-core@~1.11.1":
234 | version "1.11.1"
235 | resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-1.11.1.tgz#ecdf12ea8dc35fb8549e517991abcbf449a5ad4f"
236 | integrity sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==
237 | dependencies:
238 | "@volar/source-map" "1.11.1"
239 |
240 | "@volar/source-map@1.11.1", "@volar/source-map@~1.11.1":
241 | version "1.11.1"
242 | resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-1.11.1.tgz#535b0328d9e2b7a91dff846cab4058e191f4452f"
243 | integrity sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==
244 | dependencies:
245 | muggle-string "^0.3.1"
246 |
247 | "@volar/typescript@~1.11.1":
248 | version "1.11.1"
249 | resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-1.11.1.tgz#ba86c6f326d88e249c7f5cfe4b765be3946fd627"
250 | integrity sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==
251 | dependencies:
252 | "@volar/language-core" "1.11.1"
253 | path-browserify "^1.0.1"
254 |
255 | "@vue-flow/background@1.3.2":
256 | version "1.3.2"
257 | resolved "https://registry.yarnpkg.com/@vue-flow/background/-/background-1.3.2.tgz#0c90cd05e5d60da017bbaf5a1c3eb6af7ed9b778"
258 | integrity sha512-eJPhDcLj1wEo45bBoqTXw1uhl0yK2RaQGnEINqvvBsAFKh/camHJd5NPmOdS1w+M9lggc9igUewxaEd3iCQX2w==
259 |
260 | "@vue-flow/controls@1.1.2":
261 | version "1.1.2"
262 | resolved "https://registry.yarnpkg.com/@vue-flow/controls/-/controls-1.1.2.tgz#d71899ed793f741400d043efdd49765a3a94c75f"
263 | integrity sha512-6dtl/JnwDBNau5h3pDBdOCK6tdxiVAOL3cyruRL61gItwq5E97Hmjmj2BIIqX2p7gU1ENg3z80Z4zlu58fGlsg==
264 |
265 | "@vue-flow/core@1.21.0":
266 | version "1.21.0"
267 | resolved "https://registry.yarnpkg.com/@vue-flow/core/-/core-1.21.0.tgz#8d68dd174d22ce08bdf26d7dee2f37fe6ec521e9"
268 | integrity sha512-rnt/ga+Krso66uCyo6bW1/8Gvh9BoDW36i1SNPZU6OEn8NCPE8RqPsaXVNP2cO2eDzJTGcojLjLlqMm9y4ItTA==
269 | dependencies:
270 | "@vueuse/core" "^10.1.2"
271 | d3-drag "^3.0.0"
272 | d3-selection "^3.0.0"
273 | d3-zoom "^3.0.0"
274 |
275 | "@vue-flow/minimap@1.5.2":
276 | version "1.5.2"
277 | resolved "https://registry.yarnpkg.com/@vue-flow/minimap/-/minimap-1.5.2.tgz#8d036800c52ec77bfe1586c74d51c66e017f5ef6"
278 | integrity sha512-XNSpWwwXfCWqJilc2eCW+3ry3r9vhF8HmUw5wrAsUTHiss4R9k5uZLABo7c3T3VdcVRJ8pTfUJ9vjpzb8H+FKg==
279 | dependencies:
280 | d3-selection "^3.0.0"
281 | d3-zoom "^3.0.0"
282 |
283 | "@vue/compiler-core@3.5.13":
284 | version "3.5.13"
285 | resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.13.tgz#b0ae6c4347f60c03e849a05d34e5bf747c9bda05"
286 | integrity sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==
287 | dependencies:
288 | "@babel/parser" "^7.25.3"
289 | "@vue/shared" "3.5.13"
290 | entities "^4.5.0"
291 | estree-walker "^2.0.2"
292 | source-map-js "^1.2.0"
293 |
294 | "@vue/compiler-dom@3.5.13", "@vue/compiler-dom@^3.3.0":
295 | version "3.5.13"
296 | resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz#bb1b8758dbc542b3658dda973b98a1c9311a8a58"
297 | integrity sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==
298 | dependencies:
299 | "@vue/compiler-core" "3.5.13"
300 | "@vue/shared" "3.5.13"
301 |
302 | "@vue/compiler-sfc@3.5.13":
303 | version "3.5.13"
304 | resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz#461f8bd343b5c06fac4189c4fef8af32dea82b46"
305 | integrity sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==
306 | dependencies:
307 | "@babel/parser" "^7.25.3"
308 | "@vue/compiler-core" "3.5.13"
309 | "@vue/compiler-dom" "3.5.13"
310 | "@vue/compiler-ssr" "3.5.13"
311 | "@vue/shared" "3.5.13"
312 | estree-walker "^2.0.2"
313 | magic-string "^0.30.11"
314 | postcss "^8.4.48"
315 | source-map-js "^1.2.0"
316 |
317 | "@vue/compiler-ssr@3.5.13":
318 | version "3.5.13"
319 | resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz#e771adcca6d3d000f91a4277c972a996d07f43ba"
320 | integrity sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==
321 | dependencies:
322 | "@vue/compiler-dom" "3.5.13"
323 | "@vue/shared" "3.5.13"
324 |
325 | "@vue/devtools-api@^6.6.3", "@vue/devtools-api@^6.6.4":
326 | version "6.6.4"
327 | resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz#cbe97fe0162b365edc1dba80e173f90492535343"
328 | integrity sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==
329 |
330 | "@vue/language-core@1.8.27":
331 | version "1.8.27"
332 | resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-1.8.27.tgz#2ca6892cb524e024a44e554e4c55d7a23e72263f"
333 | integrity sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==
334 | dependencies:
335 | "@volar/language-core" "~1.11.1"
336 | "@volar/source-map" "~1.11.1"
337 | "@vue/compiler-dom" "^3.3.0"
338 | "@vue/shared" "^3.3.0"
339 | computeds "^0.0.1"
340 | minimatch "^9.0.3"
341 | muggle-string "^0.3.1"
342 | path-browserify "^1.0.1"
343 | vue-template-compiler "^2.7.14"
344 |
345 | "@vue/reactivity@3.5.13":
346 | version "3.5.13"
347 | resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.13.tgz#b41ff2bb865e093899a22219f5b25f97b6fe155f"
348 | integrity sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==
349 | dependencies:
350 | "@vue/shared" "3.5.13"
351 |
352 | "@vue/runtime-core@3.5.13":
353 | version "3.5.13"
354 | resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.13.tgz#1fafa4bf0b97af0ebdd9dbfe98cd630da363a455"
355 | integrity sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==
356 | dependencies:
357 | "@vue/reactivity" "3.5.13"
358 | "@vue/shared" "3.5.13"
359 |
360 | "@vue/runtime-dom@3.5.13":
361 | version "3.5.13"
362 | resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz#610fc795de9246300e8ae8865930d534e1246215"
363 | integrity sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==
364 | dependencies:
365 | "@vue/reactivity" "3.5.13"
366 | "@vue/runtime-core" "3.5.13"
367 | "@vue/shared" "3.5.13"
368 | csstype "^3.1.3"
369 |
370 | "@vue/server-renderer@3.5.13":
371 | version "3.5.13"
372 | resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.13.tgz#429ead62ee51de789646c22efe908e489aad46f7"
373 | integrity sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==
374 | dependencies:
375 | "@vue/compiler-ssr" "3.5.13"
376 | "@vue/shared" "3.5.13"
377 |
378 | "@vue/shared@3.5.13", "@vue/shared@^3.3.0":
379 | version "3.5.13"
380 | resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.13.tgz#87b309a6379c22b926e696893237826f64339b6f"
381 | integrity sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==
382 |
383 | "@vueuse/core@^10.1.2":
384 | version "10.11.1"
385 | resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.11.1.tgz#15d2c0b6448d2212235b23a7ba29c27173e0c2c6"
386 | integrity sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==
387 | dependencies:
388 | "@types/web-bluetooth" "^0.0.20"
389 | "@vueuse/metadata" "10.11.1"
390 | "@vueuse/shared" "10.11.1"
391 | vue-demi ">=0.14.8"
392 |
393 | "@vueuse/metadata@10.11.1":
394 | version "10.11.1"
395 | resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.11.1.tgz#209db7bb5915aa172a87510b6de2ca01cadbd2a7"
396 | integrity sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==
397 |
398 | "@vueuse/shared@10.11.1":
399 | version "10.11.1"
400 | resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.11.1.tgz#62b84e3118ae6e1f3ff38f4fbe71b0c5d0f10938"
401 | integrity sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==
402 | dependencies:
403 | vue-demi ">=0.14.8"
404 |
405 | ace-builds@^1.23:
406 | version "1.38.0"
407 | resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.38.0.tgz#15dd67e3223edfc5ec73c01051ac3d4647e8888a"
408 | integrity sha512-5W3B5/5Rl/dAsp7Fb6xXOc6bCYln+4qOnpQHh4OpxZSoDsp1KFiu5lA3TJBr8/5DQu6+8rlduCGecMSnKuU2MQ==
409 |
410 | acorn@^8.14.0:
411 | version "8.14.0"
412 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0"
413 | integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==
414 |
415 | ansi-styles@^4.1.0:
416 | version "4.3.0"
417 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
418 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
419 | dependencies:
420 | color-convert "^2.0.1"
421 |
422 | anymatch@~3.1.2:
423 | version "3.1.3"
424 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
425 | integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
426 | dependencies:
427 | normalize-path "^3.0.0"
428 | picomatch "^2.0.4"
429 |
430 | argparse@^2.0.1:
431 | version "2.0.1"
432 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
433 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
434 |
435 | balanced-match@^1.0.0:
436 | version "1.0.2"
437 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
438 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
439 |
440 | binary-extensions@^2.0.0:
441 | version "2.3.0"
442 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522"
443 | integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==
444 |
445 | brace-expansion@^2.0.1:
446 | version "2.0.1"
447 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
448 | integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
449 | dependencies:
450 | balanced-match "^1.0.0"
451 |
452 | braces@^3.0.3, braces@~3.0.2:
453 | version "3.0.3"
454 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
455 | integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
456 | dependencies:
457 | fill-range "^7.1.1"
458 |
459 | chalk@^4.1.2:
460 | version "4.1.2"
461 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
462 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
463 | dependencies:
464 | ansi-styles "^4.1.0"
465 | supports-color "^7.1.0"
466 |
467 | chokidar@^3.5.3:
468 | version "3.6.0"
469 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b"
470 | integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
471 | dependencies:
472 | anymatch "~3.1.2"
473 | braces "~3.0.2"
474 | glob-parent "~5.1.2"
475 | is-binary-path "~2.1.0"
476 | is-glob "~4.0.1"
477 | normalize-path "~3.0.0"
478 | readdirp "~3.6.0"
479 | optionalDependencies:
480 | fsevents "~2.3.2"
481 |
482 | color-convert@^2.0.1:
483 | version "2.0.1"
484 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
485 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
486 | dependencies:
487 | color-name "~1.1.4"
488 |
489 | color-name@~1.1.4:
490 | version "1.1.4"
491 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
492 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
493 |
494 | computeds@^0.0.1:
495 | version "0.0.1"
496 | resolved "https://registry.yarnpkg.com/computeds/-/computeds-0.0.1.tgz#215b08a4ba3e08a11ff6eee5d6d8d7166a97ce2e"
497 | integrity sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==
498 |
499 | csstype@^3.1.3:
500 | version "3.1.3"
501 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81"
502 | integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
503 |
504 | "d3-color@1 - 3":
505 | version "3.1.0"
506 | resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2"
507 | integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==
508 |
509 | "d3-dispatch@1 - 3":
510 | version "3.0.1"
511 | resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e"
512 | integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==
513 |
514 | "d3-drag@2 - 3", d3-drag@^3.0.0:
515 | version "3.0.0"
516 | resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba"
517 | integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==
518 | dependencies:
519 | d3-dispatch "1 - 3"
520 | d3-selection "3"
521 |
522 | "d3-ease@1 - 3":
523 | version "3.0.1"
524 | resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4"
525 | integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==
526 |
527 | "d3-interpolate@1 - 3":
528 | version "3.0.1"
529 | resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d"
530 | integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==
531 | dependencies:
532 | d3-color "1 - 3"
533 |
534 | "d3-selection@2 - 3", d3-selection@3, d3-selection@^3.0.0:
535 | version "3.0.0"
536 | resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31"
537 | integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==
538 |
539 | "d3-timer@1 - 3":
540 | version "3.0.1"
541 | resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0"
542 | integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==
543 |
544 | "d3-transition@2 - 3":
545 | version "3.0.1"
546 | resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f"
547 | integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==
548 | dependencies:
549 | d3-color "1 - 3"
550 | d3-dispatch "1 - 3"
551 | d3-ease "1 - 3"
552 | d3-interpolate "1 - 3"
553 | d3-timer "1 - 3"
554 |
555 | d3-zoom@^3.0.0:
556 | version "3.0.0"
557 | resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3"
558 | integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==
559 | dependencies:
560 | d3-dispatch "1 - 3"
561 | d3-drag "2 - 3"
562 | d3-interpolate "1 - 3"
563 | d3-selection "2 - 3"
564 | d3-transition "2 - 3"
565 |
566 | dagre@^0.8.5:
567 | version "0.8.5"
568 | resolved "https://registry.yarnpkg.com/dagre/-/dagre-0.8.5.tgz#ba30b0055dac12b6c1fcc247817442777d06afee"
569 | integrity sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==
570 | dependencies:
571 | graphlib "^2.1.8"
572 | lodash "^4.17.15"
573 |
574 | de-indent@^1.0.2:
575 | version "1.0.2"
576 | resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
577 | integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==
578 |
579 | debug@^4.3.3, debug@^4.3.4:
580 | version "4.4.0"
581 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a"
582 | integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==
583 | dependencies:
584 | ms "^2.1.3"
585 |
586 | entities@^4.5.0:
587 | version "4.5.0"
588 | resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
589 | integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
590 |
591 | esbuild@^0.18.10:
592 | version "0.18.20"
593 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6"
594 | integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==
595 | optionalDependencies:
596 | "@esbuild/android-arm" "0.18.20"
597 | "@esbuild/android-arm64" "0.18.20"
598 | "@esbuild/android-x64" "0.18.20"
599 | "@esbuild/darwin-arm64" "0.18.20"
600 | "@esbuild/darwin-x64" "0.18.20"
601 | "@esbuild/freebsd-arm64" "0.18.20"
602 | "@esbuild/freebsd-x64" "0.18.20"
603 | "@esbuild/linux-arm" "0.18.20"
604 | "@esbuild/linux-arm64" "0.18.20"
605 | "@esbuild/linux-ia32" "0.18.20"
606 | "@esbuild/linux-loong64" "0.18.20"
607 | "@esbuild/linux-mips64el" "0.18.20"
608 | "@esbuild/linux-ppc64" "0.18.20"
609 | "@esbuild/linux-riscv64" "0.18.20"
610 | "@esbuild/linux-s390x" "0.18.20"
611 | "@esbuild/linux-x64" "0.18.20"
612 | "@esbuild/netbsd-x64" "0.18.20"
613 | "@esbuild/openbsd-x64" "0.18.20"
614 | "@esbuild/sunos-x64" "0.18.20"
615 | "@esbuild/win32-arm64" "0.18.20"
616 | "@esbuild/win32-ia32" "0.18.20"
617 | "@esbuild/win32-x64" "0.18.20"
618 |
619 | estree-walker@^2.0.2:
620 | version "2.0.2"
621 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
622 | integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
623 |
624 | fast-glob@^3.3.0:
625 | version "3.3.3"
626 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818"
627 | integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==
628 | dependencies:
629 | "@nodelib/fs.stat" "^2.0.2"
630 | "@nodelib/fs.walk" "^1.2.3"
631 | glob-parent "^5.1.2"
632 | merge2 "^1.3.0"
633 | micromatch "^4.0.8"
634 |
635 | fastq@^1.6.0:
636 | version "1.19.0"
637 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.19.0.tgz#a82c6b7c2bb4e44766d865f07997785fecfdcb89"
638 | integrity sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==
639 | dependencies:
640 | reusify "^1.0.4"
641 |
642 | fill-range@^7.1.1:
643 | version "7.1.1"
644 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
645 | integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
646 | dependencies:
647 | to-regex-range "^5.0.1"
648 |
649 | fs-extra@^10.0.0:
650 | version "10.1.0"
651 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf"
652 | integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==
653 | dependencies:
654 | graceful-fs "^4.2.0"
655 | jsonfile "^6.0.1"
656 | universalify "^2.0.0"
657 |
658 | fsevents@~2.3.2:
659 | version "2.3.3"
660 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
661 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
662 |
663 | function-bind@^1.1.2:
664 | version "1.1.2"
665 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
666 | integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
667 |
668 | glob-parent@^5.1.2, glob-parent@~5.1.2:
669 | version "5.1.2"
670 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
671 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
672 | dependencies:
673 | is-glob "^4.0.1"
674 |
675 | graceful-fs@^4.1.6, graceful-fs@^4.2.0:
676 | version "4.2.11"
677 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
678 | integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
679 |
680 | graphlib@^2.1.8:
681 | version "2.1.8"
682 | resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.8.tgz#5761d414737870084c92ec7b5dbcb0592c9d35da"
683 | integrity sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==
684 | dependencies:
685 | lodash "^4.17.15"
686 |
687 | has-flag@^4.0.0:
688 | version "4.0.0"
689 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
690 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
691 |
692 | hasown@^2.0.2:
693 | version "2.0.2"
694 | resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
695 | integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
696 | dependencies:
697 | function-bind "^1.1.2"
698 |
699 | he@^1.2.0:
700 | version "1.2.0"
701 | resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
702 | integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
703 |
704 | is-binary-path@~2.1.0:
705 | version "2.1.0"
706 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
707 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
708 | dependencies:
709 | binary-extensions "^2.0.0"
710 |
711 | is-core-module@^2.16.0:
712 | version "2.16.1"
713 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4"
714 | integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==
715 | dependencies:
716 | hasown "^2.0.2"
717 |
718 | is-extglob@^2.1.1:
719 | version "2.1.1"
720 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
721 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
722 |
723 | is-glob@^4.0.1, is-glob@~4.0.1:
724 | version "4.0.3"
725 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
726 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
727 | dependencies:
728 | is-extglob "^2.1.1"
729 |
730 | is-number@^7.0.0:
731 | version "7.0.0"
732 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
733 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
734 |
735 | js-yaml@^4.1.0:
736 | version "4.1.0"
737 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
738 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
739 | dependencies:
740 | argparse "^2.0.1"
741 |
742 | jsonfile@^6.0.1:
743 | version "6.1.0"
744 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
745 | integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
746 | dependencies:
747 | universalify "^2.0.0"
748 | optionalDependencies:
749 | graceful-fs "^4.1.6"
750 |
751 | local-pkg@^0.4.3:
752 | version "0.4.3"
753 | resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963"
754 | integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==
755 |
756 | lodash-es@4.17.21:
757 | version "4.17.21"
758 | resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
759 | integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
760 |
761 | lodash@^4.17.15:
762 | version "4.17.21"
763 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
764 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
765 |
766 | magic-string@^0.30.1, magic-string@^0.30.11:
767 | version "0.30.17"
768 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453"
769 | integrity sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==
770 | dependencies:
771 | "@jridgewell/sourcemap-codec" "^1.5.0"
772 |
773 | merge2@^1.3.0:
774 | version "1.4.1"
775 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
776 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
777 |
778 | micromatch@^4.0.5, micromatch@^4.0.8:
779 | version "4.0.8"
780 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
781 | integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
782 | dependencies:
783 | braces "^3.0.3"
784 | picomatch "^2.3.1"
785 |
786 | minimatch@^9.0.3:
787 | version "9.0.5"
788 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
789 | integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
790 | dependencies:
791 | brace-expansion "^2.0.1"
792 |
793 | ms@^2.1.3:
794 | version "2.1.3"
795 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
796 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
797 |
798 | muggle-string@^0.3.1:
799 | version "0.3.1"
800 | resolved "https://registry.yarnpkg.com/muggle-string/-/muggle-string-0.3.1.tgz#e524312eb1728c63dd0b2ac49e3282e6ed85963a"
801 | integrity sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==
802 |
803 | nanoid@^3.3.8:
804 | version "3.3.8"
805 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf"
806 | integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==
807 |
808 | normalize-path@^3.0.0, normalize-path@~3.0.0:
809 | version "3.0.0"
810 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
811 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
812 |
813 | parsimmon@^1.13.0:
814 | version "1.18.1"
815 | resolved "https://registry.yarnpkg.com/parsimmon/-/parsimmon-1.18.1.tgz#d8dd9c28745647d02fc6566f217690897eed7709"
816 | integrity sha512-u7p959wLfGAhJpSDJVYXoyMCXWYwHia78HhRBWqk7AIbxdmlrfdp5wX0l3xv/iTSH5HvhN9K7o26hwwpgS5Nmw==
817 |
818 | path-browserify@^1.0.1:
819 | version "1.0.1"
820 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd"
821 | integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==
822 |
823 | path-parse@^1.0.7:
824 | version "1.0.7"
825 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
826 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
827 |
828 | picocolors@^1.1.1:
829 | version "1.1.1"
830 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
831 | integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
832 |
833 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
834 | version "2.3.1"
835 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
836 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
837 |
838 | picomatch@^4.0.2:
839 | version "4.0.2"
840 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab"
841 | integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==
842 |
843 | pinia@^2.1:
844 | version "2.3.1"
845 | resolved "https://registry.yarnpkg.com/pinia/-/pinia-2.3.1.tgz#54c476675b72f5abcfafa24a7582531ea8c23d94"
846 | integrity sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==
847 | dependencies:
848 | "@vue/devtools-api" "^6.6.3"
849 | vue-demi "^0.14.10"
850 |
851 | pluralize@^8.0.0:
852 | version "8.0.0"
853 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1"
854 | integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==
855 |
856 | postcss@^8.4.27, postcss@^8.4.48:
857 | version "8.5.2"
858 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.2.tgz#e7b99cb9d2ec3e8dd424002e7c16517cb2b846bd"
859 | integrity sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==
860 | dependencies:
861 | nanoid "^3.3.8"
862 | picocolors "^1.1.1"
863 | source-map-js "^1.2.1"
864 |
865 | queue-microtask@^1.2.2:
866 | version "1.2.3"
867 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
868 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
869 |
870 | readdirp@~3.6.0:
871 | version "3.6.0"
872 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
873 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
874 | dependencies:
875 | picomatch "^2.2.1"
876 |
877 | resize-observer-polyfill@^1.5.1:
878 | version "1.5.1"
879 | resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464"
880 | integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==
881 |
882 | resolve@^1.22.2:
883 | version "1.22.10"
884 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39"
885 | integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==
886 | dependencies:
887 | is-core-module "^2.16.0"
888 | path-parse "^1.0.7"
889 | supports-preserve-symlinks-flag "^1.0.0"
890 |
891 | reusify@^1.0.4:
892 | version "1.0.4"
893 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
894 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
895 |
896 | rollup@^3.27.1:
897 | version "3.29.5"
898 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.5.tgz#8a2e477a758b520fb78daf04bca4c522c1da8a54"
899 | integrity sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==
900 | optionalDependencies:
901 | fsevents "~2.3.2"
902 |
903 | run-parallel@^1.1.9:
904 | version "1.2.0"
905 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
906 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
907 | dependencies:
908 | queue-microtask "^1.2.2"
909 |
910 | semver@^7.5.4:
911 | version "7.7.1"
912 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f"
913 | integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==
914 |
915 | source-map-js@^1.2.0, source-map-js@^1.2.1:
916 | version "1.2.1"
917 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46"
918 | integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
919 |
920 | supports-color@^7.1.0:
921 | version "7.2.0"
922 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
923 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
924 | dependencies:
925 | has-flag "^4.0.0"
926 |
927 | supports-preserve-symlinks-flag@^1.0.0:
928 | version "1.0.0"
929 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
930 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
931 |
932 | to-regex-range@^5.0.1:
933 | version "5.0.1"
934 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
935 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
936 | dependencies:
937 | is-number "^7.0.0"
938 |
939 | typescript@^4.9:
940 | version "4.9.5"
941 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
942 | integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==
943 |
944 | undici-types@~6.19.2:
945 | version "6.19.8"
946 | resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02"
947 | integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==
948 |
949 | universalify@^2.0.0:
950 | version "2.0.1"
951 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d"
952 | integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
953 |
954 | unplugin-vue-components@^0.25:
955 | version "0.25.2"
956 | resolved "https://registry.yarnpkg.com/unplugin-vue-components/-/unplugin-vue-components-0.25.2.tgz#99d9d02a4066a24e720edbe74a82a4ee6ff86153"
957 | integrity sha512-OVmLFqILH6w+eM8fyt/d/eoJT9A6WO51NZLf1vC5c1FZ4rmq2bbGxTy8WP2Jm7xwFdukaIdv819+UI7RClPyCA==
958 | dependencies:
959 | "@antfu/utils" "^0.7.5"
960 | "@rollup/pluginutils" "^5.0.2"
961 | chokidar "^3.5.3"
962 | debug "^4.3.4"
963 | fast-glob "^3.3.0"
964 | local-pkg "^0.4.3"
965 | magic-string "^0.30.1"
966 | minimatch "^9.0.3"
967 | resolve "^1.22.2"
968 | unplugin "^1.4.0"
969 |
970 | unplugin@^1.4.0:
971 | version "1.16.1"
972 | resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.16.1.tgz#a844d2e3c3b14a4ac2945c42be80409321b61199"
973 | integrity sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==
974 | dependencies:
975 | acorn "^8.14.0"
976 | webpack-virtual-modules "^0.6.2"
977 |
978 | vite-plugin-compression@0.5.1:
979 | version "0.5.1"
980 | resolved "https://registry.yarnpkg.com/vite-plugin-compression/-/vite-plugin-compression-0.5.1.tgz#a75b0d8f48357ebb377b65016da9f20885ef39b6"
981 | integrity sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==
982 | dependencies:
983 | chalk "^4.1.2"
984 | debug "^4.3.3"
985 | fs-extra "^10.0.0"
986 |
987 | vite-plugin-singlefile@0.13.5:
988 | version "0.13.5"
989 | resolved "https://registry.yarnpkg.com/vite-plugin-singlefile/-/vite-plugin-singlefile-0.13.5.tgz#9465dbb0b06afb2a73600a50fcce4b51c8d10999"
990 | integrity sha512-y/aRGh8qHmw2f1IhaI/C6PJAaov47ESYDvUv1am1YHMhpY+19B5k5Odp8P+tgs+zhfvak6QB1ykrALQErEAo7g==
991 | dependencies:
992 | micromatch "^4.0.5"
993 |
994 | vite@^4.4:
995 | version "4.5.9"
996 | resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.9.tgz#f4dfd4c4295743b50c3e3f90df798d70de699e4f"
997 | integrity sha512-qK9W4xjgD3gXbC0NmdNFFnVFLMWSNiR3swj957yutwzzN16xF/E7nmtAyp1rT9hviDroQANjE4HK3H4WqWdFtw==
998 | dependencies:
999 | esbuild "^0.18.10"
1000 | postcss "^8.4.27"
1001 | rollup "^3.27.1"
1002 | optionalDependencies:
1003 | fsevents "~2.3.2"
1004 |
1005 | vue-demi@>=0.14.8, vue-demi@^0.14.10:
1006 | version "0.14.10"
1007 | resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.10.tgz#afc78de3d6f9e11bf78c55e8510ee12814522f04"
1008 | integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==
1009 |
1010 | vue-router@^4.2:
1011 | version "4.5.0"
1012 | resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.5.0.tgz#58fc5fe374e10b6018f910328f756c3dae081f14"
1013 | integrity sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==
1014 | dependencies:
1015 | "@vue/devtools-api" "^6.6.4"
1016 |
1017 | vue-template-compiler@^2.7.14:
1018 | version "2.7.16"
1019 | resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz#c81b2d47753264c77ac03b9966a46637482bb03b"
1020 | integrity sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==
1021 | dependencies:
1022 | de-indent "^1.0.2"
1023 | he "^1.2.0"
1024 |
1025 | vue-tsc@^1.8:
1026 | version "1.8.27"
1027 | resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-1.8.27.tgz#feb2bb1eef9be28017bb9e95e2bbd1ebdd48481c"
1028 | integrity sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==
1029 | dependencies:
1030 | "@volar/typescript" "~1.11.1"
1031 | "@vue/language-core" "1.8.27"
1032 | semver "^7.5.4"
1033 |
1034 | vue3-ace-editor@^2.2.2:
1035 | version "2.2.4"
1036 | resolved "https://registry.yarnpkg.com/vue3-ace-editor/-/vue3-ace-editor-2.2.4.tgz#1f2a787f91cf7979f27fab29e0e0604bb3ee1c17"
1037 | integrity sha512-FZkEyfpbH068BwjhMyNROxfEI8135Sc+x8ouxkMdCNkuj/Tuw83VP/gStFQqZHqljyX9/VfMTCdTqtOnJZGN8g==
1038 | dependencies:
1039 | resize-observer-polyfill "^1.5.1"
1040 |
1041 | vue@^3.3:
1042 | version "3.5.13"
1043 | resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.13.tgz#9f760a1a982b09c0c04a867903fc339c9f29ec0a"
1044 | integrity sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==
1045 | dependencies:
1046 | "@vue/compiler-dom" "3.5.13"
1047 | "@vue/compiler-sfc" "3.5.13"
1048 | "@vue/runtime-dom" "3.5.13"
1049 | "@vue/server-renderer" "3.5.13"
1050 | "@vue/shared" "3.5.13"
1051 |
1052 | webpack-virtual-modules@^0.6.2:
1053 | version "0.6.2"
1054 | resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz#057faa9065c8acf48f24cb57ac0e77739ab9a7e8"
1055 | integrity sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==
1056 |
--------------------------------------------------------------------------------