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.
Files changed (38) hide show
  1. package/README.md +105 -128
  2. package/bin/dtunnel-sdk.mjs +482 -0
  3. package/docs/README.md +39 -0
  4. package/docs/api-reference.md +206 -0
  5. package/docs/bridge-sem-sdk.md +133 -0
  6. package/docs/events.md +89 -0
  7. package/docs/getting-started.md +108 -0
  8. package/package.json +83 -62
  9. package/react/index.d.ts +64 -64
  10. package/react/index.js +86 -86
  11. package/react/index.mjs +80 -80
  12. package/sdk/README.md +82 -43
  13. package/sdk/dtunnel-sdk.d.ts +554 -554
  14. package/sdk/dtunnel-sdk.js +716 -716
  15. package/sdk/dtunnel-sdk.mjs +12 -12
  16. package/sdk/dtunnel-sdk.simulator.d.ts +171 -0
  17. package/sdk/dtunnel-sdk.simulator.js +910 -0
  18. package/sdk/dtunnel-sdk.simulator.mjs +19 -0
  19. package/templates/cdn/README.md +16 -0
  20. package/templates/cdn/index.html +693 -0
  21. package/templates/cdn/package.json +10 -0
  22. package/templates/cdn/scripts/copy-webview.mjs +13 -0
  23. package/templates/react-typescript/README.md +14 -0
  24. package/templates/react-typescript/index.html +12 -0
  25. package/templates/react-typescript/package.json +25 -0
  26. package/templates/react-typescript/scripts/build-webview-html.mjs +147 -0
  27. package/templates/react-typescript/src/App.tsx +522 -0
  28. package/templates/react-typescript/src/main.tsx +18 -0
  29. package/templates/react-typescript/src/style.css +272 -0
  30. package/templates/react-typescript/tsconfig.json +14 -0
  31. package/templates/react-typescript/vite.config.ts +6 -0
  32. package/templates/typescript/README.md +14 -0
  33. package/templates/typescript/index.html +115 -0
  34. package/templates/typescript/package.json +20 -0
  35. package/templates/typescript/scripts/build-webview-html.mjs +147 -0
  36. package/templates/typescript/src/main.ts +354 -0
  37. package/templates/typescript/src/style.css +262 -0
  38. 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...`) usada no WebView do DTunnel.
4
-
5
- Inclui:
6
- - wrappers dos objetos nativos (`sdk.config`, `sdk.main`, `sdk.text`, `sdk.app`, `sdk.android`)
7
- - eventos nativos com API semantica (`sdk.on('vpnState', ...)`)
8
- - tipagem completa para TypeScript
9
- - helper para React em `dtunnel-sdk/react`
10
-
11
- ## Instalacao (npm)
12
-
13
- ```bash
14
- npm install dtunnel-sdk
15
- ```
16
-
17
- ## Uso com TypeScript
18
-
19
- ```ts
20
- import DTunnelSDK from 'dtunnel-sdk';
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
- ## Uso com React + TypeScript
48
+ ## Simulador rapido (sem Android)
33
49
 
34
- ```tsx
35
- import { DTunnelSDKProvider, useDTunnelEvent } from 'dtunnel-sdk/react';
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
- return <span>Escutando eventos...</span>;
43
- }
54
+ const simulator = installDTunnelSDKSimulator();
55
+ const sdk = new DTunnelSDK({ strict: false, autoRegisterNativeEvents: true });
44
56
 
45
- export function App() {
46
- return (
47
- <DTunnelSDKProvider options={{ strict: false }}>
48
- <VpnStateLabel />
49
- </DTunnelSDKProvider>
50
- );
51
- }
57
+ simulator.emit('vpnState', 'CONNECTED');
52
58
  ```
53
59
 
54
- ## Uso via script (CDN)
60
+ Browser puro (sem bundler):
55
61
 
56
62
  ```html
57
- <script src="https://cdn.jsdelivr.net/gh/DTunnel0/DTunnelSDK@main/sdk/dtunnel-sdk.js"></script>
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
- ## Eventos semanticos
64
-
65
- - `vpnState`
66
- - `vpnStartedSuccess`
67
- - `vpnStoppedSuccess`
68
- - `newLog`
69
- - `newDefaultConfig`
70
- - `checkUserStarted`
71
- - `checkUserResult`
72
- - `checkUserError`
73
- - `messageError`
74
- - `showSuccessToast`
75
- - `showErrorToast`
76
- - `notification`
77
-
78
- ## Estrutura principal
79
-
80
- - runtime CJS/global: `sdk/dtunnel-sdk.js`
81
- - runtime ESM: `sdk/dtunnel-sdk.mjs`
82
- - tipos TS: `sdk/dtunnel-sdk.d.ts`
83
- - helpers React: `react/index.js`, `react/index.mjs`, `react/index.d.ts`
84
- - exemplos completos: `examples/`
85
-
86
- ## Exemplos completos
87
-
88
- - CDN (JavaScript puro): `examples/cdn/index.html`
89
- - TypeScript (Vite): `examples/typescript`
90
- - React + TypeScript (Vite): `examples/react-typescript`
91
- - Guia geral: `examples/README.md`
92
-
93
- ### Regra para WebView
94
-
95
- Sempre gere/entregue **um unico `index.html`** com todo CSS/JS embutido para carregar no WebView.
96
-
97
- - CDN: `examples/cdn/index.html` ja atende esse formato.
98
- - TypeScript e React + TypeScript: rode `npm run build:webview` no exemplo para gerar `webview/index.html`.
99
- - Atalho na raiz para gerar ambos: `npm run examples:webview`.
100
-
101
- Guia rapido:
102
-
103
- ```bash
104
- # TypeScript
105
- cd examples/typescript
106
- npm install
107
- npm run dev
108
- ```
109
-
110
- ```bash
111
- # React + TypeScript
112
- cd examples/react-typescript
113
- npm install
114
- npm run dev
115
- ```
116
-
117
- ## Publicacao de release
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
+ ```