videomail-client 9.4.2 → 9.5.3
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/.storybook/main.ts +25 -0
- package/.storybook/manager.ts +5 -0
- package/.storybook/preview.ts +16 -0
- package/.storybook/theme.ts +8 -0
- package/.vscode/settings.json +1 -1
- package/README.md +1 -6
- package/chromatic.config.json +5 -0
- package/etc/rsbuild/config.ts +31 -0
- package/etc/rsbuild/paths.ts +11 -0
- package/package.json +1 -1
- package/prototype/js/videomail-client.js +107 -87
- package/prototype/js/videomail-client.min.js +4 -4
- package/prototype/js/videomail-client.min.js.map +1 -1
- package/tsconfig.json +34 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { StorybookConfig } from "storybook-html-rsbuild";
|
|
2
|
+
|
|
3
|
+
const config: StorybookConfig = {
|
|
4
|
+
stories: ["../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"],
|
|
5
|
+
addons: [
|
|
6
|
+
"@storybook/addon-links",
|
|
7
|
+
"@storybook/addon-essentials",
|
|
8
|
+
"@storybook/addon-a11y",
|
|
9
|
+
"@chromatic-com/storybook",
|
|
10
|
+
"@storybook/addon-interactions",
|
|
11
|
+
],
|
|
12
|
+
framework: {
|
|
13
|
+
name: "storybook-html-rsbuild",
|
|
14
|
+
options: {
|
|
15
|
+
builder: {
|
|
16
|
+
rsbuildConfigPath: "etc/rsbuild/config.ts",
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
core: {
|
|
21
|
+
disableTelemetry: true,
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export default config;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import "@storybook/addon-console";
|
|
2
|
+
|
|
3
|
+
import type { Preview } from "@storybook/html";
|
|
4
|
+
|
|
5
|
+
const preview: Preview = {
|
|
6
|
+
parameters: {
|
|
7
|
+
options: {
|
|
8
|
+
storySort: {
|
|
9
|
+
// See https://storybook.js.org/docs/writing-stories/naming-components-and-hierarchy
|
|
10
|
+
order: ["Record", "*", "Error Handling"],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export default preview;
|
package/.vscode/settings.json
CHANGED
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
"cSpell.words": [
|
|
14
14
|
"animitter",
|
|
15
15
|
"autobuffer",
|
|
16
|
-
"browserstack",
|
|
17
16
|
"bytediff",
|
|
18
17
|
"classlist",
|
|
19
18
|
"crossorigin",
|
|
@@ -32,6 +31,7 @@
|
|
|
32
31
|
"playsinline",
|
|
33
32
|
"plusplus",
|
|
34
33
|
"preend",
|
|
34
|
+
"rsbuild",
|
|
35
35
|
"rubberband",
|
|
36
36
|
"Seeflow's",
|
|
37
37
|
"styl",
|
package/README.md
CHANGED
|
@@ -4,15 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
[![npm][npm-image]][npm-url]
|
|
6
6
|
[![downloads][downloads-image]][downloads-url]
|
|
7
|
-
[![browserstack][browserstack-image]][browserstack-url]
|
|
8
7
|
[](https://app.netlify.com/sites/videomail-client/deploys)
|
|
9
8
|
|
|
10
9
|
[npm-image]: https://img.shields.io/npm/v/videomail-client.svg?style=flat
|
|
11
10
|
[npm-url]: https://npmjs.org/package/videomail-client
|
|
12
11
|
[downloads-image]: https://img.shields.io/npm/dm/videomail-client.svg?style=flat
|
|
13
12
|
[downloads-url]: https://npmjs.org/package/videomail-client
|
|
14
|
-
[browserstack-url]: https://www.browserstack.com
|
|
15
|
-
[browserstack-image]: https://raw.githubusercontent.com/binarykitchen/videomail-client/develop/browserstack.png
|
|
16
13
|
|
|
17
14
|
Record videos in contact forms!
|
|
18
15
|
|
|
@@ -34,7 +31,7 @@ Finally you can encode any webcam recordings from modern browsers and mobiles in
|
|
|
34
31
|
|
|
35
32
|
## Prototype (examples)
|
|
36
33
|
|
|
37
|
-
To run the prototype full of examples in your browser
|
|
34
|
+
To run the prototype full of examples in your browser, just do:
|
|
38
35
|
|
|
39
36
|
1. `npm install`
|
|
40
37
|
2. `npm run watch` to ignite a static server and
|
|
@@ -417,8 +414,6 @@ These guys helped and/or inspired me for this mad project:
|
|
|
417
414
|
|
|
418
415
|
They all deserve lots of beer and love. That order is irrelevant.
|
|
419
416
|
|
|
420
|
-
And yes, one more thing: because it is very crucial to make videomail-client work on all browsers, I cannot emphasize enough how important it is to have [Browserstack](https://www.browserstack.com/) - for instant, live end-to-end tests on any browser or mobile device. Thanks guys!
|
|
421
|
-
|
|
422
417
|
### Code quality
|
|
423
418
|
|
|
424
419
|
I admit, code isn't top notch and needs lots of rewrites. Believe me or not, I already rewrote about three times in the last four years. Good example that software hardly can be perfect. And since I am already honest here, I think stability and bug fixes come first before perfection otherwise you'll loose users. Reality you know.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { defineConfig } from "@rsbuild/core";
|
|
2
|
+
import { pluginNodePolyfill } from "@rsbuild/plugin-node-polyfill";
|
|
3
|
+
import { pluginStylus } from "@rsbuild/plugin-stylus";
|
|
4
|
+
|
|
5
|
+
import { tsEntry } from "./paths";
|
|
6
|
+
import { NodeEnvType } from "../../src/types/env";
|
|
7
|
+
import isProductionMode from "../../src/util/isProductionMode";
|
|
8
|
+
|
|
9
|
+
export default defineConfig({
|
|
10
|
+
mode: isProductionMode() ? NodeEnvType.PRODUCTION : NodeEnvType.DEVELOPMENT,
|
|
11
|
+
output: {
|
|
12
|
+
target: "web",
|
|
13
|
+
filenameHash: false,
|
|
14
|
+
injectStyles: true,
|
|
15
|
+
legalComments: "none",
|
|
16
|
+
},
|
|
17
|
+
source: {
|
|
18
|
+
entry: {
|
|
19
|
+
index: tsEntry,
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
plugins: [pluginStylus(), pluginNodePolyfill()],
|
|
23
|
+
tools: {
|
|
24
|
+
htmlPlugin: false,
|
|
25
|
+
},
|
|
26
|
+
performance: {
|
|
27
|
+
chunkSplit: {
|
|
28
|
+
strategy: "all-in-one",
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
|
|
4
|
+
const rootDir = fs.realpathSync(process.cwd());
|
|
5
|
+
|
|
6
|
+
const resolvePath = (relativePath: string) => path.resolve(rootDir, relativePath);
|
|
7
|
+
|
|
8
|
+
const srcDir = resolvePath("src");
|
|
9
|
+
const tsEntry = resolvePath(path.join(srcDir, "index.ts"));
|
|
10
|
+
|
|
11
|
+
export { tsEntry };
|