dtunnel-sdk 1.1.1 → 1.1.4
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/README.md +105 -128
- package/bin/dtunnel-sdk.mjs +482 -0
- package/docs/README.md +39 -0
- package/docs/api-reference.md +206 -0
- package/docs/bridge-sem-sdk.md +133 -0
- package/docs/events.md +89 -0
- package/docs/getting-started.md +108 -0
- package/package.json +83 -62
- package/react/index.d.ts +64 -64
- package/react/index.js +86 -86
- package/react/index.mjs +80 -80
- package/sdk/README.md +82 -43
- package/sdk/dtunnel-sdk.d.ts +554 -554
- package/sdk/dtunnel-sdk.js +716 -716
- package/sdk/dtunnel-sdk.mjs +12 -12
- package/sdk/dtunnel-sdk.simulator.d.ts +171 -0
- package/sdk/dtunnel-sdk.simulator.js +910 -0
- package/sdk/dtunnel-sdk.simulator.mjs +19 -0
- package/templates/cdn/README.md +16 -0
- package/templates/cdn/index.html +693 -0
- package/templates/cdn/package.json +10 -0
- package/templates/cdn/scripts/copy-webview.mjs +13 -0
- package/templates/react-typescript/README.md +14 -0
- package/templates/react-typescript/index.html +12 -0
- package/templates/react-typescript/package.json +25 -0
- package/templates/react-typescript/scripts/build-webview-html.mjs +147 -0
- package/templates/react-typescript/src/App.tsx +522 -0
- package/templates/react-typescript/src/main.tsx +18 -0
- package/templates/react-typescript/src/style.css +272 -0
- package/templates/react-typescript/tsconfig.json +14 -0
- package/templates/react-typescript/vite.config.ts +6 -0
- package/templates/typescript/README.md +14 -0
- package/templates/typescript/index.html +115 -0
- package/templates/typescript/package.json +20 -0
- package/templates/typescript/scripts/build-webview-html.mjs +147 -0
- package/templates/typescript/src/main.ts +354 -0
- package/templates/typescript/src/style.css +262 -0
- package/templates/typescript/tsconfig.json +13 -0
package/README.md
CHANGED
|
@@ -1,144 +1,121 @@
|
|
|
1
|
-
# DTunnel SDK
|
|
2
|
-
|
|
3
|
-
SDK JavaScript/TypeScript para consumir a bridge Android (`window.Dt...`)
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
##
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
1
|
+
# DTunnel SDK
|
|
2
|
+
|
|
3
|
+
SDK JavaScript/TypeScript para consumir a bridge Android (`window.Dt...`) no WebView.
|
|
4
|
+
|
|
5
|
+
## Instalacao
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install dtunnel-sdk
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Inicializar projeto pronto
|
|
12
|
+
|
|
13
|
+
Crie um projeto novo com template e `build:webview` ja configurado:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npx dtunnel-sdk init
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Ou direto com flags:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npx dtunnel-sdk init meu-app --template react-typescript
|
|
23
|
+
npx dtunnel-sdk init meu-app --template typescript --no-install
|
|
24
|
+
npx dtunnel-sdk init meu-app --template cdn
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Tambem funciona com `npm exec`:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm exec dtunnel-sdk init meu-app --template react-typescript
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Uso rapido
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
import DTunnelSDK from 'dtunnel-sdk';
|
|
37
|
+
|
|
22
38
|
const sdk = new DTunnelSDK({
|
|
23
39
|
strict: false,
|
|
24
40
|
autoRegisterNativeEvents: true,
|
|
25
41
|
});
|
|
26
|
-
|
|
27
|
-
sdk.on('vpnState', (event) => {
|
|
28
|
-
console.log(event.payload);
|
|
42
|
+
|
|
43
|
+
sdk.on('vpnState', (event) => {
|
|
44
|
+
console.log('VPN:', event.payload);
|
|
29
45
|
});
|
|
30
46
|
```
|
|
31
47
|
|
|
32
|
-
##
|
|
48
|
+
## Simulador rapido (sem Android)
|
|
33
49
|
|
|
34
|
-
```
|
|
35
|
-
import
|
|
36
|
-
|
|
37
|
-
function VpnStateLabel() {
|
|
38
|
-
useDTunnelEvent('vpnState', (event) => {
|
|
39
|
-
console.log('VPN:', event.payload);
|
|
40
|
-
});
|
|
50
|
+
```ts
|
|
51
|
+
import DTunnelSDK from 'dtunnel-sdk';
|
|
52
|
+
import { installDTunnelSDKSimulator } from 'dtunnel-sdk/simulator';
|
|
41
53
|
|
|
42
|
-
|
|
43
|
-
}
|
|
54
|
+
const simulator = installDTunnelSDKSimulator();
|
|
55
|
+
const sdk = new DTunnelSDK({ strict: false, autoRegisterNativeEvents: true });
|
|
44
56
|
|
|
45
|
-
|
|
46
|
-
return (
|
|
47
|
-
<DTunnelSDKProvider options={{ strict: false }}>
|
|
48
|
-
<VpnStateLabel />
|
|
49
|
-
</DTunnelSDKProvider>
|
|
50
|
-
);
|
|
51
|
-
}
|
|
57
|
+
simulator.emit('vpnState', 'CONNECTED');
|
|
52
58
|
```
|
|
53
59
|
|
|
54
|
-
|
|
60
|
+
Browser puro (sem bundler):
|
|
55
61
|
|
|
56
62
|
```html
|
|
57
|
-
<script src="https://cdn.jsdelivr.net/
|
|
58
|
-
<script>
|
|
59
|
-
const sdk = new DTunnelSDK({ strict: false, autoRegisterNativeEvents: true });
|
|
60
|
-
</script>
|
|
63
|
+
<script src="https://cdn.jsdelivr.net/npm/dtunnel-sdk@latest/sdk/dtunnel-sdk.js"></script>
|
|
64
|
+
<script src="https://cdn.jsdelivr.net/npm/dtunnel-sdk@latest/sdk/dtunnel-sdk.simulator.js"></script>
|
|
61
65
|
```
|
|
62
66
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
Com o repositorio limpo e commitado:
|
|
120
|
-
|
|
121
|
-
```bash
|
|
122
|
-
npm run release:sdk -- --version 1.1.1
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## Publicacao no npm
|
|
126
|
-
|
|
127
|
-
Scripts de release/publicacao sao cross-platform (Linux, macOS e Windows) via Node.js.
|
|
128
|
-
|
|
129
|
-
```bash
|
|
130
|
-
npm login
|
|
131
|
-
npm run publish:npm
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
Opcional (tag diferente de `latest`):
|
|
135
|
-
|
|
136
|
-
```bash
|
|
137
|
-
npm run publish:npm -- --tag next
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
Dry-run:
|
|
141
|
-
|
|
142
|
-
```bash
|
|
143
|
-
npm run publish:npm:dry
|
|
144
|
-
```
|
|
67
|
+
Nota:
|
|
68
|
+
- No WebView real, o simulador nao instala por padrao se detectar bridge nativa.
|
|
69
|
+
|
|
70
|
+
CDN:
|
|
71
|
+
|
|
72
|
+
```html
|
|
73
|
+
<script src="https://cdn.jsdelivr.net/npm/dtunnel-sdk@latest/sdk/dtunnel-sdk.js"></script>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Documentacao completa
|
|
77
|
+
|
|
78
|
+
Toda a documentacao foi movida para `docs/`:
|
|
79
|
+
|
|
80
|
+
- [Indice geral](./docs/README.md)
|
|
81
|
+
- [Guia rapido](./docs/getting-started.md)
|
|
82
|
+
- [Referencia da API](./docs/api-reference.md)
|
|
83
|
+
- [Eventos e callbacks](./docs/events.md)
|
|
84
|
+
- [Chamadas diretas sem SDK](./docs/bridge-sem-sdk.md)
|
|
85
|
+
|
|
86
|
+
## Fluxo oficial (limpo)
|
|
87
|
+
|
|
88
|
+
Use apenas `init` para gerar projeto pronto:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
npx dtunnel-sdk init meu-app --template react-typescript
|
|
92
|
+
cd meu-app
|
|
93
|
+
npm run build:webview
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
O resultado final para o WebView sempre sera:
|
|
97
|
+
- `webview/index.html`
|
|
98
|
+
|
|
99
|
+
## Demos prontas
|
|
100
|
+
|
|
101
|
+
Tambem deixei demos geradas no repositorio:
|
|
102
|
+
|
|
103
|
+
- `demos/cdn`
|
|
104
|
+
- `demos/typescript`
|
|
105
|
+
- `demos/react-typescript`
|
|
106
|
+
|
|
107
|
+
Guia rapido: `demos/README.md`
|
|
108
|
+
|
|
109
|
+
## Testes
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
npm test
|
|
113
|
+
npm run test:typecheck
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Release e publicacao
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
npm run release:sdk -- --version X.Y.Z
|
|
120
|
+
npm run publish:npm
|
|
121
|
+
```
|