speechflow 1.3.2 → 1.4.1

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.
Files changed (155) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +3 -3
  3. package/etc/stx.conf +54 -58
  4. package/package.json +31 -102
  5. package/speechflow-cli/etc/stx.conf +77 -0
  6. package/speechflow-cli/package.json +116 -0
  7. package/speechflow-cli/src/speechflow-node-a2a-meter.ts +217 -0
  8. package/{src → speechflow-cli/src}/speechflow-node-a2a-vad.ts +14 -21
  9. package/{src → speechflow-cli/src}/speechflow-node-a2t-deepgram.ts +21 -38
  10. package/{src → speechflow-cli/src}/speechflow-node-t2a-elevenlabs.ts +10 -16
  11. package/speechflow-cli/src/speechflow-node-t2t-subtitle.ts +276 -0
  12. package/{src → speechflow-cli/src}/speechflow-node-x2x-filter.ts +5 -1
  13. package/{src → speechflow-cli/src}/speechflow-node-x2x-trace.ts +15 -7
  14. package/{src → speechflow-cli/src}/speechflow-node.ts +7 -0
  15. package/{src → speechflow-cli/src}/speechflow.ts +81 -25
  16. package/speechflow-ui-db/etc/eslint.mjs +106 -0
  17. package/speechflow-ui-db/etc/htmllint.json +55 -0
  18. package/speechflow-ui-db/etc/stx.conf +79 -0
  19. package/speechflow-ui-db/etc/stylelint.js +46 -0
  20. package/speechflow-ui-db/etc/stylelint.yaml +33 -0
  21. package/speechflow-ui-db/etc/tsc-client.json +30 -0
  22. package/speechflow-ui-db/etc/tsc.node.json +9 -0
  23. package/speechflow-ui-db/etc/vite-client.mts +63 -0
  24. package/speechflow-ui-db/package.d/htmllint-cli+0.0.7.patch +20 -0
  25. package/speechflow-ui-db/package.json +75 -0
  26. package/speechflow-ui-db/src/app-icon.ai +1989 -4
  27. package/speechflow-ui-db/src/app-icon.svg +26 -0
  28. package/speechflow-ui-db/src/app.styl +64 -0
  29. package/speechflow-ui-db/src/app.vue +221 -0
  30. package/speechflow-ui-db/src/index.html +23 -0
  31. package/speechflow-ui-db/src/index.ts +26 -0
  32. package/{dst/speechflow.d.ts → speechflow-ui-db/src/lib.d.ts} +5 -3
  33. package/speechflow-ui-db/src/tsconfig.json +3 -0
  34. package/speechflow-ui-st/etc/eslint.mjs +106 -0
  35. package/speechflow-ui-st/etc/htmllint.json +55 -0
  36. package/speechflow-ui-st/etc/stx.conf +79 -0
  37. package/speechflow-ui-st/etc/stylelint.js +46 -0
  38. package/speechflow-ui-st/etc/stylelint.yaml +33 -0
  39. package/speechflow-ui-st/etc/tsc-client.json +30 -0
  40. package/speechflow-ui-st/etc/tsc.node.json +9 -0
  41. package/speechflow-ui-st/etc/vite-client.mts +63 -0
  42. package/speechflow-ui-st/package.d/htmllint-cli+0.0.7.patch +20 -0
  43. package/speechflow-ui-st/package.json +79 -0
  44. package/speechflow-ui-st/src/app-icon.ai +1989 -4
  45. package/speechflow-ui-st/src/app-icon.svg +26 -0
  46. package/speechflow-ui-st/src/app.styl +64 -0
  47. package/speechflow-ui-st/src/app.vue +142 -0
  48. package/speechflow-ui-st/src/index.html +23 -0
  49. package/speechflow-ui-st/src/index.ts +26 -0
  50. package/speechflow-ui-st/src/lib.d.ts +9 -0
  51. package/speechflow-ui-st/src/tsconfig.json +3 -0
  52. package/dst/speechflow-node-a2a-ffmpeg.d.ts +0 -13
  53. package/dst/speechflow-node-a2a-ffmpeg.js +0 -153
  54. package/dst/speechflow-node-a2a-ffmpeg.js.map +0 -1
  55. package/dst/speechflow-node-a2a-gender.d.ts +0 -20
  56. package/dst/speechflow-node-a2a-gender.js +0 -349
  57. package/dst/speechflow-node-a2a-gender.js.map +0 -1
  58. package/dst/speechflow-node-a2a-meter.d.ts +0 -14
  59. package/dst/speechflow-node-a2a-meter.js +0 -196
  60. package/dst/speechflow-node-a2a-meter.js.map +0 -1
  61. package/dst/speechflow-node-a2a-mute.d.ts +0 -17
  62. package/dst/speechflow-node-a2a-mute.js +0 -117
  63. package/dst/speechflow-node-a2a-mute.js.map +0 -1
  64. package/dst/speechflow-node-a2a-vad.d.ts +0 -19
  65. package/dst/speechflow-node-a2a-vad.js +0 -383
  66. package/dst/speechflow-node-a2a-vad.js.map +0 -1
  67. package/dst/speechflow-node-a2a-wav.d.ts +0 -11
  68. package/dst/speechflow-node-a2a-wav.js +0 -211
  69. package/dst/speechflow-node-a2a-wav.js.map +0 -1
  70. package/dst/speechflow-node-a2t-deepgram.d.ts +0 -19
  71. package/dst/speechflow-node-a2t-deepgram.js +0 -345
  72. package/dst/speechflow-node-a2t-deepgram.js.map +0 -1
  73. package/dst/speechflow-node-t2a-elevenlabs.d.ts +0 -18
  74. package/dst/speechflow-node-t2a-elevenlabs.js +0 -244
  75. package/dst/speechflow-node-t2a-elevenlabs.js.map +0 -1
  76. package/dst/speechflow-node-t2a-kokoro.d.ts +0 -14
  77. package/dst/speechflow-node-t2a-kokoro.js +0 -155
  78. package/dst/speechflow-node-t2a-kokoro.js.map +0 -1
  79. package/dst/speechflow-node-t2t-deepl.d.ts +0 -15
  80. package/dst/speechflow-node-t2t-deepl.js +0 -146
  81. package/dst/speechflow-node-t2t-deepl.js.map +0 -1
  82. package/dst/speechflow-node-t2t-format.d.ts +0 -11
  83. package/dst/speechflow-node-t2t-format.js +0 -82
  84. package/dst/speechflow-node-t2t-format.js.map +0 -1
  85. package/dst/speechflow-node-t2t-ollama.d.ts +0 -13
  86. package/dst/speechflow-node-t2t-ollama.js +0 -247
  87. package/dst/speechflow-node-t2t-ollama.js.map +0 -1
  88. package/dst/speechflow-node-t2t-openai.d.ts +0 -13
  89. package/dst/speechflow-node-t2t-openai.js +0 -227
  90. package/dst/speechflow-node-t2t-openai.js.map +0 -1
  91. package/dst/speechflow-node-t2t-sentence.d.ts +0 -17
  92. package/dst/speechflow-node-t2t-sentence.js +0 -250
  93. package/dst/speechflow-node-t2t-sentence.js.map +0 -1
  94. package/dst/speechflow-node-t2t-subtitle.d.ts +0 -12
  95. package/dst/speechflow-node-t2t-subtitle.js +0 -166
  96. package/dst/speechflow-node-t2t-subtitle.js.map +0 -1
  97. package/dst/speechflow-node-t2t-transformers.d.ts +0 -14
  98. package/dst/speechflow-node-t2t-transformers.js +0 -265
  99. package/dst/speechflow-node-t2t-transformers.js.map +0 -1
  100. package/dst/speechflow-node-x2x-filter.d.ts +0 -11
  101. package/dst/speechflow-node-x2x-filter.js +0 -117
  102. package/dst/speechflow-node-x2x-filter.js.map +0 -1
  103. package/dst/speechflow-node-x2x-trace.d.ts +0 -11
  104. package/dst/speechflow-node-x2x-trace.js +0 -104
  105. package/dst/speechflow-node-x2x-trace.js.map +0 -1
  106. package/dst/speechflow-node-xio-device.d.ts +0 -13
  107. package/dst/speechflow-node-xio-device.js +0 -230
  108. package/dst/speechflow-node-xio-device.js.map +0 -1
  109. package/dst/speechflow-node-xio-file.d.ts +0 -11
  110. package/dst/speechflow-node-xio-file.js +0 -216
  111. package/dst/speechflow-node-xio-file.js.map +0 -1
  112. package/dst/speechflow-node-xio-mqtt.d.ts +0 -13
  113. package/dst/speechflow-node-xio-mqtt.js +0 -188
  114. package/dst/speechflow-node-xio-mqtt.js.map +0 -1
  115. package/dst/speechflow-node-xio-websocket.d.ts +0 -13
  116. package/dst/speechflow-node-xio-websocket.js +0 -278
  117. package/dst/speechflow-node-xio-websocket.js.map +0 -1
  118. package/dst/speechflow-node.d.ts +0 -63
  119. package/dst/speechflow-node.js +0 -177
  120. package/dst/speechflow-node.js.map +0 -1
  121. package/dst/speechflow-utils.d.ts +0 -74
  122. package/dst/speechflow-utils.js +0 -519
  123. package/dst/speechflow-utils.js.map +0 -1
  124. package/dst/speechflow.js +0 -787
  125. package/dst/speechflow.js.map +0 -1
  126. package/src/speechflow-node-a2a-meter.ts +0 -177
  127. package/src/speechflow-node-t2t-subtitle.ts +0 -149
  128. /package/{etc → speechflow-cli/etc}/biome.jsonc +0 -0
  129. /package/{etc → speechflow-cli/etc}/eslint.mjs +0 -0
  130. /package/{etc → speechflow-cli/etc}/oxlint.jsonc +0 -0
  131. /package/{etc → speechflow-cli/etc}/speechflow.bat +0 -0
  132. /package/{etc → speechflow-cli/etc}/speechflow.sh +0 -0
  133. /package/{etc → speechflow-cli/etc}/speechflow.yaml +0 -0
  134. /package/{etc → speechflow-cli/etc}/tsconfig.json +0 -0
  135. /package/{package.d → speechflow-cli/package.d}/@ericedouard+vad-node-realtime+0.2.0.patch +0 -0
  136. /package/{src → speechflow-cli/src}/lib.d.ts +0 -0
  137. /package/{src → speechflow-cli/src}/speechflow-logo.ai +0 -0
  138. /package/{src → speechflow-cli/src}/speechflow-logo.svg +0 -0
  139. /package/{src → speechflow-cli/src}/speechflow-node-a2a-ffmpeg.ts +0 -0
  140. /package/{src → speechflow-cli/src}/speechflow-node-a2a-gender.ts +0 -0
  141. /package/{src → speechflow-cli/src}/speechflow-node-a2a-mute.ts +0 -0
  142. /package/{src → speechflow-cli/src}/speechflow-node-a2a-wav.ts +0 -0
  143. /package/{src → speechflow-cli/src}/speechflow-node-t2a-kokoro.ts +0 -0
  144. /package/{src → speechflow-cli/src}/speechflow-node-t2t-deepl.ts +0 -0
  145. /package/{src → speechflow-cli/src}/speechflow-node-t2t-format.ts +0 -0
  146. /package/{src → speechflow-cli/src}/speechflow-node-t2t-ollama.ts +0 -0
  147. /package/{src → speechflow-cli/src}/speechflow-node-t2t-openai.ts +0 -0
  148. /package/{src → speechflow-cli/src}/speechflow-node-t2t-sentence.ts +0 -0
  149. /package/{src → speechflow-cli/src}/speechflow-node-t2t-transformers.ts +0 -0
  150. /package/{src → speechflow-cli/src}/speechflow-node-xio-device.ts +0 -0
  151. /package/{src → speechflow-cli/src}/speechflow-node-xio-file.ts +0 -0
  152. /package/{src → speechflow-cli/src}/speechflow-node-xio-mqtt.ts +0 -0
  153. /package/{src → speechflow-cli/src}/speechflow-node-xio-websocket.ts +0 -0
  154. /package/{src → speechflow-cli/src}/speechflow-utils.ts +0 -0
  155. /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,9 @@
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "module": "ESNext",
5
+ "moduleResolution": "Node",
6
+ "allowSyntheticDefaultImports": true
7
+ },
8
+ "include": [ "./vite.ts" ]
9
+ }
@@ -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
+ }