speechflow 1.3.2 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/etc/stx.conf +54 -58
- package/package.json +25 -106
- package/speechflow-cli/etc/stx.conf +77 -0
- package/speechflow-cli/package.json +116 -0
- package/speechflow-cli/src/speechflow-node-a2a-meter.ts +217 -0
- package/{src → speechflow-cli/src}/speechflow-node-a2a-vad.ts +14 -21
- package/{src → speechflow-cli/src}/speechflow-node-a2t-deepgram.ts +21 -38
- package/{src → speechflow-cli/src}/speechflow-node-t2a-elevenlabs.ts +10 -16
- package/speechflow-cli/src/speechflow-node-t2t-subtitle.ts +276 -0
- package/{src → speechflow-cli/src}/speechflow-node-x2x-filter.ts +5 -1
- package/{src → speechflow-cli/src}/speechflow-node-x2x-trace.ts +15 -7
- package/{src → speechflow-cli/src}/speechflow-node.ts +7 -0
- package/{src → speechflow-cli/src}/speechflow.ts +81 -25
- package/speechflow-ui-db/etc/eslint.mjs +106 -0
- package/speechflow-ui-db/etc/htmllint.json +55 -0
- package/speechflow-ui-db/etc/stx.conf +79 -0
- package/speechflow-ui-db/etc/stylelint.js +46 -0
- package/speechflow-ui-db/etc/stylelint.yaml +33 -0
- package/speechflow-ui-db/etc/tsc-client.json +30 -0
- package/speechflow-ui-db/etc/tsc.node.json +9 -0
- package/speechflow-ui-db/etc/vite-client.mts +63 -0
- package/speechflow-ui-db/package.d/htmllint-cli+0.0.7.patch +20 -0
- package/speechflow-ui-db/package.json +75 -0
- package/speechflow-ui-db/src/app-icon.ai +1989 -4
- package/speechflow-ui-db/src/app-icon.svg +26 -0
- package/speechflow-ui-db/src/app.styl +64 -0
- package/speechflow-ui-db/src/app.vue +221 -0
- package/speechflow-ui-db/src/index.html +23 -0
- package/speechflow-ui-db/src/index.ts +26 -0
- package/{dst/speechflow.d.ts → speechflow-ui-db/src/lib.d.ts} +5 -3
- package/speechflow-ui-db/src/tsconfig.json +3 -0
- package/speechflow-ui-st/etc/eslint.mjs +106 -0
- package/speechflow-ui-st/etc/htmllint.json +55 -0
- package/speechflow-ui-st/etc/stx.conf +79 -0
- package/speechflow-ui-st/etc/stylelint.js +46 -0
- package/speechflow-ui-st/etc/stylelint.yaml +33 -0
- package/speechflow-ui-st/etc/tsc-client.json +30 -0
- package/speechflow-ui-st/etc/tsc.node.json +9 -0
- package/speechflow-ui-st/etc/vite-client.mts +63 -0
- package/speechflow-ui-st/package.d/htmllint-cli+0.0.7.patch +20 -0
- package/speechflow-ui-st/package.json +79 -0
- package/speechflow-ui-st/src/app-icon.ai +1989 -4
- package/speechflow-ui-st/src/app-icon.svg +26 -0
- package/speechflow-ui-st/src/app.styl +64 -0
- package/speechflow-ui-st/src/app.vue +142 -0
- package/speechflow-ui-st/src/index.html +23 -0
- package/speechflow-ui-st/src/index.ts +26 -0
- package/speechflow-ui-st/src/lib.d.ts +9 -0
- package/speechflow-ui-st/src/tsconfig.json +3 -0
- package/dst/speechflow-node-a2a-ffmpeg.d.ts +0 -13
- package/dst/speechflow-node-a2a-ffmpeg.js +0 -153
- package/dst/speechflow-node-a2a-ffmpeg.js.map +0 -1
- package/dst/speechflow-node-a2a-gender.d.ts +0 -20
- package/dst/speechflow-node-a2a-gender.js +0 -349
- package/dst/speechflow-node-a2a-gender.js.map +0 -1
- package/dst/speechflow-node-a2a-meter.d.ts +0 -14
- package/dst/speechflow-node-a2a-meter.js +0 -196
- package/dst/speechflow-node-a2a-meter.js.map +0 -1
- package/dst/speechflow-node-a2a-mute.d.ts +0 -17
- package/dst/speechflow-node-a2a-mute.js +0 -117
- package/dst/speechflow-node-a2a-mute.js.map +0 -1
- package/dst/speechflow-node-a2a-vad.d.ts +0 -19
- package/dst/speechflow-node-a2a-vad.js +0 -383
- package/dst/speechflow-node-a2a-vad.js.map +0 -1
- package/dst/speechflow-node-a2a-wav.d.ts +0 -11
- package/dst/speechflow-node-a2a-wav.js +0 -211
- package/dst/speechflow-node-a2a-wav.js.map +0 -1
- package/dst/speechflow-node-a2t-deepgram.d.ts +0 -19
- package/dst/speechflow-node-a2t-deepgram.js +0 -345
- package/dst/speechflow-node-a2t-deepgram.js.map +0 -1
- package/dst/speechflow-node-t2a-elevenlabs.d.ts +0 -18
- package/dst/speechflow-node-t2a-elevenlabs.js +0 -244
- package/dst/speechflow-node-t2a-elevenlabs.js.map +0 -1
- package/dst/speechflow-node-t2a-kokoro.d.ts +0 -14
- package/dst/speechflow-node-t2a-kokoro.js +0 -155
- package/dst/speechflow-node-t2a-kokoro.js.map +0 -1
- package/dst/speechflow-node-t2t-deepl.d.ts +0 -15
- package/dst/speechflow-node-t2t-deepl.js +0 -146
- package/dst/speechflow-node-t2t-deepl.js.map +0 -1
- package/dst/speechflow-node-t2t-format.d.ts +0 -11
- package/dst/speechflow-node-t2t-format.js +0 -82
- package/dst/speechflow-node-t2t-format.js.map +0 -1
- package/dst/speechflow-node-t2t-ollama.d.ts +0 -13
- package/dst/speechflow-node-t2t-ollama.js +0 -247
- package/dst/speechflow-node-t2t-ollama.js.map +0 -1
- package/dst/speechflow-node-t2t-openai.d.ts +0 -13
- package/dst/speechflow-node-t2t-openai.js +0 -227
- package/dst/speechflow-node-t2t-openai.js.map +0 -1
- package/dst/speechflow-node-t2t-sentence.d.ts +0 -17
- package/dst/speechflow-node-t2t-sentence.js +0 -250
- package/dst/speechflow-node-t2t-sentence.js.map +0 -1
- package/dst/speechflow-node-t2t-subtitle.d.ts +0 -12
- package/dst/speechflow-node-t2t-subtitle.js +0 -166
- package/dst/speechflow-node-t2t-subtitle.js.map +0 -1
- package/dst/speechflow-node-t2t-transformers.d.ts +0 -14
- package/dst/speechflow-node-t2t-transformers.js +0 -265
- package/dst/speechflow-node-t2t-transformers.js.map +0 -1
- package/dst/speechflow-node-x2x-filter.d.ts +0 -11
- package/dst/speechflow-node-x2x-filter.js +0 -117
- package/dst/speechflow-node-x2x-filter.js.map +0 -1
- package/dst/speechflow-node-x2x-trace.d.ts +0 -11
- package/dst/speechflow-node-x2x-trace.js +0 -104
- package/dst/speechflow-node-x2x-trace.js.map +0 -1
- package/dst/speechflow-node-xio-device.d.ts +0 -13
- package/dst/speechflow-node-xio-device.js +0 -230
- package/dst/speechflow-node-xio-device.js.map +0 -1
- package/dst/speechflow-node-xio-file.d.ts +0 -11
- package/dst/speechflow-node-xio-file.js +0 -216
- package/dst/speechflow-node-xio-file.js.map +0 -1
- package/dst/speechflow-node-xio-mqtt.d.ts +0 -13
- package/dst/speechflow-node-xio-mqtt.js +0 -188
- package/dst/speechflow-node-xio-mqtt.js.map +0 -1
- package/dst/speechflow-node-xio-websocket.d.ts +0 -13
- package/dst/speechflow-node-xio-websocket.js +0 -278
- package/dst/speechflow-node-xio-websocket.js.map +0 -1
- package/dst/speechflow-node.d.ts +0 -63
- package/dst/speechflow-node.js +0 -177
- package/dst/speechflow-node.js.map +0 -1
- package/dst/speechflow-utils.d.ts +0 -74
- package/dst/speechflow-utils.js +0 -519
- package/dst/speechflow-utils.js.map +0 -1
- package/dst/speechflow.js +0 -787
- package/dst/speechflow.js.map +0 -1
- package/src/speechflow-node-a2a-meter.ts +0 -177
- package/src/speechflow-node-t2t-subtitle.ts +0 -149
- /package/{etc → speechflow-cli/etc}/biome.jsonc +0 -0
- /package/{etc → speechflow-cli/etc}/eslint.mjs +0 -0
- /package/{etc → speechflow-cli/etc}/oxlint.jsonc +0 -0
- /package/{etc → speechflow-cli/etc}/speechflow.bat +0 -0
- /package/{etc → speechflow-cli/etc}/speechflow.sh +0 -0
- /package/{etc → speechflow-cli/etc}/speechflow.yaml +0 -0
- /package/{etc → speechflow-cli/etc}/tsconfig.json +0 -0
- /package/{package.d → speechflow-cli/package.d}/@ericedouard+vad-node-realtime+0.2.0.patch +0 -0
- /package/{src → speechflow-cli/src}/lib.d.ts +0 -0
- /package/{src → speechflow-cli/src}/speechflow-logo.ai +0 -0
- /package/{src → speechflow-cli/src}/speechflow-logo.svg +0 -0
- /package/{src → speechflow-cli/src}/speechflow-node-a2a-ffmpeg.ts +0 -0
- /package/{src → speechflow-cli/src}/speechflow-node-a2a-gender.ts +0 -0
- /package/{src → speechflow-cli/src}/speechflow-node-a2a-mute.ts +0 -0
- /package/{src → speechflow-cli/src}/speechflow-node-a2a-wav.ts +0 -0
- /package/{src → speechflow-cli/src}/speechflow-node-t2a-kokoro.ts +0 -0
- /package/{src → speechflow-cli/src}/speechflow-node-t2t-deepl.ts +0 -0
- /package/{src → speechflow-cli/src}/speechflow-node-t2t-format.ts +0 -0
- /package/{src → speechflow-cli/src}/speechflow-node-t2t-ollama.ts +0 -0
- /package/{src → speechflow-cli/src}/speechflow-node-t2t-openai.ts +0 -0
- /package/{src → speechflow-cli/src}/speechflow-node-t2t-sentence.ts +0 -0
- /package/{src → speechflow-cli/src}/speechflow-node-t2t-transformers.ts +0 -0
- /package/{src → speechflow-cli/src}/speechflow-node-xio-device.ts +0 -0
- /package/{src → speechflow-cli/src}/speechflow-node-xio-file.ts +0 -0
- /package/{src → speechflow-cli/src}/speechflow-node-xio-mqtt.ts +0 -0
- /package/{src → speechflow-cli/src}/speechflow-node-xio-websocket.ts +0 -0
- /package/{src → speechflow-cli/src}/speechflow-utils.ts +0 -0
- /package/{tsconfig.json → speechflow-cli/tsconfig.json} +0 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/*
|
|
2
|
+
** SpeechFlow - Speech Processing Flow Graph
|
|
3
|
+
** Copyright (c) 2024-2025 Dr. Ralf S. Engelschall <rse@engelschall.com>
|
|
4
|
+
** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import pluginJs from "@eslint/js"
|
|
8
|
+
import pluginStd from "neostandard"
|
|
9
|
+
import pluginN from "eslint-plugin-n"
|
|
10
|
+
import pluginImport from "eslint-plugin-import"
|
|
11
|
+
import pluginPromise from "eslint-plugin-promise"
|
|
12
|
+
import pluginVue from "eslint-plugin-vue"
|
|
13
|
+
import pluginTS from "typescript-eslint"
|
|
14
|
+
import globals from "globals"
|
|
15
|
+
import parserTS from "@typescript-eslint/parser"
|
|
16
|
+
import parserVue from "vue-eslint-parser"
|
|
17
|
+
|
|
18
|
+
export default [
|
|
19
|
+
pluginJs.configs.recommended,
|
|
20
|
+
...pluginTS.configs.strict,
|
|
21
|
+
...pluginTS.configs.stylistic,
|
|
22
|
+
...pluginStd({
|
|
23
|
+
ignores: pluginStd.resolveIgnoresFromGitignore()
|
|
24
|
+
}),
|
|
25
|
+
...pluginVue.configs["flat/recommended"],
|
|
26
|
+
{
|
|
27
|
+
plugins: {
|
|
28
|
+
"n": pluginN,
|
|
29
|
+
"import": pluginImport,
|
|
30
|
+
"promise": pluginPromise
|
|
31
|
+
},
|
|
32
|
+
files: [ "**/*.{vue,ts}" ],
|
|
33
|
+
ignores: [ "dst/" ],
|
|
34
|
+
languageOptions: {
|
|
35
|
+
ecmaVersion: 2022,
|
|
36
|
+
sourceType: "module",
|
|
37
|
+
parser: parserVue,
|
|
38
|
+
parserOptions: {
|
|
39
|
+
parser: parserTS,
|
|
40
|
+
extraFileExtensions: [ ".vue" ],
|
|
41
|
+
ecmaFeatures: {
|
|
42
|
+
jsx: false
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
globals: {
|
|
46
|
+
...globals.browser,
|
|
47
|
+
...globals.node,
|
|
48
|
+
...globals.commonjs
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
rules: {
|
|
52
|
+
"curly": "off",
|
|
53
|
+
"require-atomic-updates": "off",
|
|
54
|
+
"dot-notation": "off",
|
|
55
|
+
"no-labels": "off",
|
|
56
|
+
"no-useless-constructor": "off",
|
|
57
|
+
|
|
58
|
+
"@stylistic/indent": [ "error", 4, { SwitchCase: 1 } ],
|
|
59
|
+
"@stylistic/linebreak-style": [ "error", "unix" ],
|
|
60
|
+
"@stylistic/semi": [ "error", "never" ],
|
|
61
|
+
"@stylistic/operator-linebreak": [ "error", "after", { overrides: { "&&": "before", "||": "before", ":": "after" } } ],
|
|
62
|
+
"@stylistic/brace-style": [ "error", "stroustrup", { allowSingleLine: true } ],
|
|
63
|
+
"@stylistic/quotes": [ "error", "double" ],
|
|
64
|
+
|
|
65
|
+
"@stylistic/no-multi-spaces": "off",
|
|
66
|
+
"@stylistic/no-multi-spaces": "off",
|
|
67
|
+
"@stylistic/no-multiple-empty-lines": "off",
|
|
68
|
+
"@stylistic/key-spacing": "off",
|
|
69
|
+
"@stylistic/object-property-newline": "off",
|
|
70
|
+
"@stylistic/space-in-parens": "off",
|
|
71
|
+
"@stylistic/array-bracket-spacing": "off",
|
|
72
|
+
"@stylistic/lines-between-class-members": "off",
|
|
73
|
+
"@stylistic/multiline-ternary": "off",
|
|
74
|
+
"@stylistic/quote-props": "off",
|
|
75
|
+
|
|
76
|
+
"vue/html-indent": "off",
|
|
77
|
+
"vue/v-bind-style": [ "error", "longform" ],
|
|
78
|
+
"vue/max-attributes-per-line": "off",
|
|
79
|
+
"vue/html-self-closing": "off",
|
|
80
|
+
"vue/no-multi-spaces": "off",
|
|
81
|
+
"vue/html-closing-bracket-newline": "off",
|
|
82
|
+
"vue/html-closing-bracket-spacing": "off",
|
|
83
|
+
"vue/singleline-html-element-content-newline": "off",
|
|
84
|
+
"vue/no-v-html": "off",
|
|
85
|
+
"vue/v-on-style": "off",
|
|
86
|
+
"vue/component-tags-order": "off",
|
|
87
|
+
"vue/first-attribute-linebreak": "off",
|
|
88
|
+
"vue/attributes-order": "off",
|
|
89
|
+
"vue/component-definition-name-casing": "off",
|
|
90
|
+
"vue/block-order": "off",
|
|
91
|
+
|
|
92
|
+
"@typescript-eslint/no-empty-function": "off",
|
|
93
|
+
"@typescript-eslint/no-explicit-any": "off",
|
|
94
|
+
"@typescript-eslint/no-unused-vars": "off",
|
|
95
|
+
"@typescript-eslint/ban-ts-comment": "off",
|
|
96
|
+
"@typescript-eslint/no-this-alias": "off",
|
|
97
|
+
"@typescript-eslint/no-non-null-assertion": "off",
|
|
98
|
+
"@typescript-eslint/consistent-type-definitions": "off",
|
|
99
|
+
"@typescript-eslint/array-type": "off",
|
|
100
|
+
"@typescript-eslint/no-extraneous-class": "off",
|
|
101
|
+
"@typescript-eslint/consistent-indexed-object-style": "off",
|
|
102
|
+
"@typescript-eslint/adjacent-overload-signatures": "off"
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
]
|
|
106
|
+
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"plugins": [],
|
|
3
|
+
"maxerr": false,
|
|
4
|
+
"raw-ignore-regex": false,
|
|
5
|
+
"attr-bans": [ "align", "background", "bgcolor", "border", "frameborder", "longdesc", "marginwidth", "marginheight", "scrolling", "style", "width" ],
|
|
6
|
+
"indent-delta": false,
|
|
7
|
+
"indent-style": "nonmixed",
|
|
8
|
+
"indent-width": 4,
|
|
9
|
+
"indent-width-cont": false,
|
|
10
|
+
"spec-char-escape": true,
|
|
11
|
+
"text-ignore-regex": false,
|
|
12
|
+
"tag-bans": [ "b", "i" ],
|
|
13
|
+
"tag-close": true,
|
|
14
|
+
"tag-name-lowercase": true,
|
|
15
|
+
"tag-name-match": true,
|
|
16
|
+
"tag-self-close": false,
|
|
17
|
+
"doctype-first": false,
|
|
18
|
+
"doctype-html5": false,
|
|
19
|
+
"attr-name-style": "dash",
|
|
20
|
+
"attr-name-ignore-regex": false,
|
|
21
|
+
"attr-no-dup": true,
|
|
22
|
+
"attr-no-unsafe-char": true,
|
|
23
|
+
"attr-order": false,
|
|
24
|
+
"attr-quote-style": "double",
|
|
25
|
+
"attr-req-value": true,
|
|
26
|
+
"attr-new-line": false,
|
|
27
|
+
"attr-validate": true,
|
|
28
|
+
"id-no-dup": true,
|
|
29
|
+
"id-class-no-ad": true,
|
|
30
|
+
"id-class-style": "underscore",
|
|
31
|
+
"class-no-dup": true,
|
|
32
|
+
"class-style": false,
|
|
33
|
+
"id-class-ignore-regex": false,
|
|
34
|
+
"img-req-alt": true,
|
|
35
|
+
"img-req-src": true,
|
|
36
|
+
"html-valid-content-model": true,
|
|
37
|
+
"head-valid-content-model": true,
|
|
38
|
+
"href-style": false,
|
|
39
|
+
"label-req-for": true,
|
|
40
|
+
"line-end-style": "lf",
|
|
41
|
+
"line-no-trailing-whitespace": false,
|
|
42
|
+
"line-max-len": false,
|
|
43
|
+
"line-max-len-ignore-regex": false,
|
|
44
|
+
"head-req-title": true,
|
|
45
|
+
"title-no-dup": true,
|
|
46
|
+
"title-max-len": 60,
|
|
47
|
+
"html-req-lang": false,
|
|
48
|
+
"lang-style": "case",
|
|
49
|
+
"fig-req-figcaption": false,
|
|
50
|
+
"focusable-tabindex-style": false,
|
|
51
|
+
"input-radio-req-name": true,
|
|
52
|
+
"input-req-label": false,
|
|
53
|
+
"table-req-caption": false,
|
|
54
|
+
"table-req-header": false
|
|
55
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
##
|
|
2
|
+
## SpeechFlow - Speech Processing Flow Graph
|
|
3
|
+
## Copyright (c) 2024-2025 Dr. Ralf S. Engelschall <rse@engelschall.com>
|
|
4
|
+
## Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
|
|
5
|
+
##
|
|
6
|
+
|
|
7
|
+
# (internal): create patch set for NPM dependencies
|
|
8
|
+
patch-make
|
|
9
|
+
npm shrinkwrap && \
|
|
10
|
+
patch-package --patch-dir package.d \
|
|
11
|
+
"@typescript-eslint/typescript-estree" \
|
|
12
|
+
htmllint-cli && \
|
|
13
|
+
shx rm -f npm-shrinkwrap.json
|
|
14
|
+
|
|
15
|
+
# (internal): apply patch set for NPM dependencies
|
|
16
|
+
patch-apply
|
|
17
|
+
patch-package --patch-dir package.d
|
|
18
|
+
|
|
19
|
+
# static code analysis (continuous file watching)
|
|
20
|
+
lint-watch
|
|
21
|
+
nodemon --exec "npm start lint" --watch src --ext html,styl,js,ts,vue
|
|
22
|
+
|
|
23
|
+
# static code analysis
|
|
24
|
+
lint : lint-vue-tsc lint-eslint lint-stylelint lint-htmllint
|
|
25
|
+
|
|
26
|
+
# static code analysis (Vue language)
|
|
27
|
+
lint-vue-tsc
|
|
28
|
+
vue-tsc --project etc/tsc-client.json --noEmit
|
|
29
|
+
|
|
30
|
+
# static code analysis (TypeScript language)
|
|
31
|
+
lint-eslint
|
|
32
|
+
eslint --config etc/eslint.mjs src/**/*.vue src/**/*.ts
|
|
33
|
+
|
|
34
|
+
# static code analysis (CSS/Stylus languages)
|
|
35
|
+
lint-stylelint
|
|
36
|
+
stylelint --config etc/stylelint.yaml src/**/*.styl src/**/*.vue
|
|
37
|
+
|
|
38
|
+
# static code analysis (HTML language)
|
|
39
|
+
lint-htmllint
|
|
40
|
+
htmllint --rc etc/htmllint.json src/**/*.html
|
|
41
|
+
|
|
42
|
+
# build components for production
|
|
43
|
+
build
|
|
44
|
+
npm start build-client
|
|
45
|
+
|
|
46
|
+
# build components for development
|
|
47
|
+
build-dev
|
|
48
|
+
npm start build-client-dev
|
|
49
|
+
|
|
50
|
+
# build client components for production
|
|
51
|
+
build-client
|
|
52
|
+
vite --config etc/vite-client.mts build --mode production
|
|
53
|
+
|
|
54
|
+
# build client components for development
|
|
55
|
+
build-client-dev
|
|
56
|
+
vite --config etc/vite-client.mts build --mode development
|
|
57
|
+
|
|
58
|
+
# build client components for development (continuous file watching)
|
|
59
|
+
build-client-dev-watch
|
|
60
|
+
cross-env NODE_OPTIONS="--max-old-space-size=4096" \
|
|
61
|
+
vite --config etc/vite-client.mts build --mode development --watch
|
|
62
|
+
|
|
63
|
+
# run server
|
|
64
|
+
server
|
|
65
|
+
serve -d --listen 12345 --single dst
|
|
66
|
+
|
|
67
|
+
# remove all development-only NPM dependencies
|
|
68
|
+
prune
|
|
69
|
+
npm prune --omit=dev
|
|
70
|
+
|
|
71
|
+
# remove all generated artifacts (reverse of "npm start build")
|
|
72
|
+
clean
|
|
73
|
+
shx rm -rf dst-stage1 dst-stage2
|
|
74
|
+
|
|
75
|
+
# remove all generated artifacts (reverse of "npm install" and "npm start build")
|
|
76
|
+
clean:dist : clean
|
|
77
|
+
shx rm -f package-lock.json && \
|
|
78
|
+
shx rm -rf node_modules
|
|
79
|
+
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/*
|
|
2
|
+
** SpeechFlow - Speech Processing Flow Graph
|
|
3
|
+
** Copyright (c) 2024-2025 Dr. Ralf S. Engelschall <rse@engelschall.com>
|
|
4
|
+
** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* read original rules */
|
|
8
|
+
const recommended = require("stylelint-stylus/recommended")
|
|
9
|
+
const standard = require("stylelint-stylus/standard")
|
|
10
|
+
|
|
11
|
+
/* mix standard over recommended manually */
|
|
12
|
+
const mixed = {}
|
|
13
|
+
Object.assign(mixed, recommended)
|
|
14
|
+
Object.assign(mixed.rules, standard.rules)
|
|
15
|
+
|
|
16
|
+
/* remove deprecated rules */
|
|
17
|
+
const deprecated = [
|
|
18
|
+
"at-rule-name-newline-after",
|
|
19
|
+
"at-rule-name-space-after",
|
|
20
|
+
"block-closing-brace-empty-line-before",
|
|
21
|
+
"block-closing-brace-newline-after",
|
|
22
|
+
"block-closing-brace-newline-before",
|
|
23
|
+
"block-closing-brace-space-after",
|
|
24
|
+
"block-closing-brace-space-before",
|
|
25
|
+
"block-opening-brace-newline-after",
|
|
26
|
+
"block-opening-brace-newline-before",
|
|
27
|
+
"block-opening-brace-space-after",
|
|
28
|
+
"block-opening-brace-space-before",
|
|
29
|
+
"color-hex-case",
|
|
30
|
+
"declaration-block-trailing-semicolon",
|
|
31
|
+
"no-eol-whitespace",
|
|
32
|
+
"number-leading-zero",
|
|
33
|
+
"number-no-trailing-zeros",
|
|
34
|
+
"selector-list-comma-newline-after",
|
|
35
|
+
"selector-list-comma-newline-before",
|
|
36
|
+
"selector-list-comma-space-after",
|
|
37
|
+
"selector-list-comma-space-before",
|
|
38
|
+
"selector-pseudo-class-case",
|
|
39
|
+
"indentation"
|
|
40
|
+
]
|
|
41
|
+
for (const d of deprecated)
|
|
42
|
+
delete mixed.rules[d]
|
|
43
|
+
|
|
44
|
+
/* export as replacement configuration */
|
|
45
|
+
module.exports = mixed
|
|
46
|
+
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
##
|
|
2
|
+
## SpeechFlow - Speech Processing Flow Graph
|
|
3
|
+
## Copyright (c) 2024-2025 Dr. Ralf S. Engelschall <rse@engelschall.com>
|
|
4
|
+
## Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
|
|
5
|
+
##
|
|
6
|
+
|
|
7
|
+
extends:
|
|
8
|
+
- "./stylelint.js"
|
|
9
|
+
- "stylelint-config-standard-vue"
|
|
10
|
+
|
|
11
|
+
rules:
|
|
12
|
+
stylus/indentation: 4
|
|
13
|
+
shorthand-property-no-redundant-values: null
|
|
14
|
+
declaration-block-no-redundant-longhand-properties: null
|
|
15
|
+
unit-allowed-list: [ "px", "pt", "%", "vh", "vw", "fr", "rem", "ms", "deg" ]
|
|
16
|
+
rule-empty-line-before: null
|
|
17
|
+
no-descending-specificity: null
|
|
18
|
+
custom-property-empty-line-before: null
|
|
19
|
+
media-feature-range-notation: null
|
|
20
|
+
length-zero-no-unit: null
|
|
21
|
+
stylus/declaration-colon: null
|
|
22
|
+
stylus/media-feature-colon: null
|
|
23
|
+
stylus/single-line-comment: null
|
|
24
|
+
stylus/selector-list-comma: "always"
|
|
25
|
+
color-hex-length: null
|
|
26
|
+
|
|
27
|
+
# to get rid of deprecation warnings in "stylelint-stylus"
|
|
28
|
+
stylus/at-rule-name-space-after: null
|
|
29
|
+
stylus/selector-pseudo-class-case: null
|
|
30
|
+
stylus/no-eol-whitespace: null
|
|
31
|
+
stylus/number-no-trailing-zeros: null
|
|
32
|
+
stylus/at-rule-empty-line-before: null
|
|
33
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"outDir": "../dst",
|
|
4
|
+
"target": "ESNext",
|
|
5
|
+
"module": "ESNext",
|
|
6
|
+
"moduleResolution": "Bundler",
|
|
7
|
+
"useDefineForClassFields": true,
|
|
8
|
+
"composite": false,
|
|
9
|
+
"strict": true,
|
|
10
|
+
"jsx": "preserve",
|
|
11
|
+
"resolveJsonModule": true,
|
|
12
|
+
"isolatedModules": true,
|
|
13
|
+
"verbatimModuleSyntax": true,
|
|
14
|
+
"noImplicitThis": true,
|
|
15
|
+
"esModuleInterop": true,
|
|
16
|
+
"lib": [ "ESNext", "DOM" ],
|
|
17
|
+
"skipLibCheck": true,
|
|
18
|
+
"noEmit": true,
|
|
19
|
+
"types": [ "vite/client" ],
|
|
20
|
+
"rootDir": "../src"
|
|
21
|
+
},
|
|
22
|
+
"include": [
|
|
23
|
+
"../src/**/*.d.ts",
|
|
24
|
+
"../src/**/*.ts",
|
|
25
|
+
"../src/**/*.vue"
|
|
26
|
+
],
|
|
27
|
+
"references": [
|
|
28
|
+
{ "path": "./tsc.node.json" }
|
|
29
|
+
]
|
|
30
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/*
|
|
2
|
+
** SpeechFlow - Speech Processing Flow Graph
|
|
3
|
+
** Copyright (c) 2024-2025 Dr. Ralf S. Engelschall <rse@engelschall.com>
|
|
4
|
+
** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import path from "node:path"
|
|
8
|
+
import * as Vite from "vite"
|
|
9
|
+
import VuePlugin from "@vitejs/plugin-vue"
|
|
10
|
+
import YAMLPlugin from "@rollup/plugin-yaml"
|
|
11
|
+
import { nodePolyfills } from "vite-plugin-node-polyfills"
|
|
12
|
+
import SvgLoader from "vite-svg-loader"
|
|
13
|
+
import { mkdirp } from "mkdirp"
|
|
14
|
+
|
|
15
|
+
export default Vite.defineConfig(({ command, mode }) => ({
|
|
16
|
+
logLevel: "info",
|
|
17
|
+
base: "",
|
|
18
|
+
root: "src",
|
|
19
|
+
assetsInclude: [ "index.yaml" ],
|
|
20
|
+
plugins: [
|
|
21
|
+
VuePlugin(),
|
|
22
|
+
YAMLPlugin(),
|
|
23
|
+
SvgLoader(),
|
|
24
|
+
nodePolyfills({
|
|
25
|
+
include: [ "events", "stream", "path", "fs", "os" ],
|
|
26
|
+
globals: { Buffer: true }
|
|
27
|
+
})
|
|
28
|
+
],
|
|
29
|
+
css: {
|
|
30
|
+
devSourcemap: mode === "development"
|
|
31
|
+
},
|
|
32
|
+
build: {
|
|
33
|
+
target: "es2022",
|
|
34
|
+
outDir: "../dst",
|
|
35
|
+
assetsDir: "",
|
|
36
|
+
emptyOutDir: (mode === "production"),
|
|
37
|
+
chunkSizeWarningLimit: 8000,
|
|
38
|
+
assetsInlineLimit: 0,
|
|
39
|
+
sourcemap: (mode === "development"),
|
|
40
|
+
minify: (mode === "production"),
|
|
41
|
+
reportCompressedSize: false,
|
|
42
|
+
rollupOptions: {
|
|
43
|
+
input: "src/index.html",
|
|
44
|
+
output: {
|
|
45
|
+
entryFileNames: "[name].js",
|
|
46
|
+
chunkFileNames: "[name].js",
|
|
47
|
+
assetFileNames: (assetInfo) => {
|
|
48
|
+
let spec = "[name].[ext]"
|
|
49
|
+
if (assetInfo.names[0].match(/\.(?:ttf|woff2?|eot)$/))
|
|
50
|
+
spec = `app-font-${assetInfo.names[0]}`
|
|
51
|
+
return spec
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
onwarn: (entry, next) => {
|
|
55
|
+
if (entry.message.match(/node_modules.+Use of eval in/))
|
|
56
|
+
return
|
|
57
|
+
else
|
|
58
|
+
return next(entry)
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}))
|
|
63
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
diff --git a/node_modules/htmllint-cli/bin/cli.js b/node_modules/htmllint-cli/bin/cli.js
|
|
2
|
+
index 69b1f34..d28644e 100755
|
|
3
|
+
--- a/node_modules/htmllint-cli/bin/cli.js
|
|
4
|
+
+++ b/node_modules/htmllint-cli/bin/cli.js
|
|
5
|
+
@@ -52,15 +52,7 @@ app.launch({
|
|
6
|
+
var acceptedRange = cliPackage.dependencies.htmllint,
|
|
7
|
+
localVersion = env.modulePackage.version;
|
|
8
|
+
|
|
9
|
+
- if (semver.satisfies(localVersion, acceptedRange)) {
|
|
10
|
+
htmllintPath = env.modulePath;
|
|
11
|
+
- } else {
|
|
12
|
+
- console.log(
|
|
13
|
+
- chalk.red('local htmllint version is not supported:'),
|
|
14
|
+
- chalk.magenta(localVersion, '!=', acceptedRange)
|
|
15
|
+
- );
|
|
16
|
+
- console.log('using builtin version of htmllint');
|
|
17
|
+
- }
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
var htmllint = require(htmllintPath);
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"private": "true",
|
|
3
|
+
"name": "speechflow-ui-db",
|
|
4
|
+
"description": "SpeechFlow User Interface (Dashboard)",
|
|
5
|
+
"keywords": [ "speechflow" ],
|
|
6
|
+
"homepage": "https://github.com/rse/speechflow",
|
|
7
|
+
"repository": { "url": "git+https://github.com/rse/speechflow.git", "type": "git" },
|
|
8
|
+
"bugs": { "url": "http://github.com/rse/speechflow/issues" },
|
|
9
|
+
"version": "0.0.0",
|
|
10
|
+
"license": "GPL-3.0-only",
|
|
11
|
+
"author": {
|
|
12
|
+
"name": "Dr. Ralf S. Engelschall",
|
|
13
|
+
"email": "rse@engelschall.com",
|
|
14
|
+
"url": "http://engelschall.com"
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"vue": "3.5.18",
|
|
18
|
+
"moment": "2.30.1",
|
|
19
|
+
"@opensumi/reconnecting-websocket": "4.4.0",
|
|
20
|
+
"axios": "1.11.0",
|
|
21
|
+
"typopro-web": "4.2.7",
|
|
22
|
+
"@fortawesome/fontawesome-free": "7.0.0",
|
|
23
|
+
"patch-package": "8.0.0"
|
|
24
|
+
},
|
|
25
|
+
"devDependencies": {
|
|
26
|
+
"vite": "7.0.6",
|
|
27
|
+
"@typescript-eslint/eslint-plugin": "8.39.0",
|
|
28
|
+
"@typescript-eslint/parser": "8.39.0",
|
|
29
|
+
"@vitejs/plugin-vue": "6.0.1",
|
|
30
|
+
"@rollup/plugin-yaml": "4.1.2",
|
|
31
|
+
"vite-plugin-node-polyfills": "0.24.0",
|
|
32
|
+
"vite-svg-loader": "5.1.0",
|
|
33
|
+
"@liuli-util/vite-plugin-node": "0.10.0",
|
|
34
|
+
"mkdirp": "3.0.1",
|
|
35
|
+
|
|
36
|
+
"@vue/eslint-config-typescript": "14.6.0",
|
|
37
|
+
"vue-eslint-parser": "10.2.0",
|
|
38
|
+
"eslint": "9.32.0",
|
|
39
|
+
"@eslint/js": "9.32.0",
|
|
40
|
+
"neostandard": "0.12.2",
|
|
41
|
+
"eslint-plugin-import": "2.32.0",
|
|
42
|
+
"eslint-plugin-vue": "10.4.0",
|
|
43
|
+
|
|
44
|
+
"htmllint": "0.8.0",
|
|
45
|
+
"htmllint-cli": "0.0.7",
|
|
46
|
+
|
|
47
|
+
"nodemon": "3.1.10",
|
|
48
|
+
"shx": "0.4.0",
|
|
49
|
+
"stylelint": "16.23.0",
|
|
50
|
+
"stylelint-config-html": "1.1.0",
|
|
51
|
+
"stylelint-config-recommended-vue": "1.6.1",
|
|
52
|
+
"stylelint-config-standard": "39.0.0",
|
|
53
|
+
"stylelint-config-standard-vue": "1.0.0",
|
|
54
|
+
"stylelint-stylus": "1.0.0",
|
|
55
|
+
"postcss-html": "1.8.0",
|
|
56
|
+
"stylus": "0.64.0",
|
|
57
|
+
"typescript": "5.9.2",
|
|
58
|
+
"vue-tsc": "3.0.5",
|
|
59
|
+
"delay-cli": "2.0.0",
|
|
60
|
+
"@rse/stx": "1.0.7",
|
|
61
|
+
"cross-env": "10.0.0",
|
|
62
|
+
"serve": "14.2.4"
|
|
63
|
+
},
|
|
64
|
+
"overrides": {
|
|
65
|
+
"@liuli-util/vite-plugin-node": { "vite": ">=6.0.0" }
|
|
66
|
+
},
|
|
67
|
+
"engines" : {
|
|
68
|
+
"npm": ">=10.0.0",
|
|
69
|
+
"node": ">=22.0.0"
|
|
70
|
+
},
|
|
71
|
+
"scripts": {
|
|
72
|
+
"postinstall": "npm start patch-apply",
|
|
73
|
+
"start": "stx -v4 -c etc/stx.conf"
|
|
74
|
+
}
|
|
75
|
+
}
|