@use-voltra/android-server 1.3.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/README.md +30 -0
- package/build/cjs/index.js +106 -0
- package/build/cjs/index.js.map +1 -0
- package/build/cjs/package.json +3 -0
- package/build/esm/index.js +96 -0
- package/build/esm/index.js.map +1 -0
- package/build/esm/package.json +3 -0
- package/build/types/index.d.ts +41 -0
- package/build/types/index.d.ts.map +1 -0
- package/package.json +51 -0
package/README.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+

|
|
2
|
+
|
|
3
|
+
### Voltra for Android Server Rendering
|
|
4
|
+
|
|
5
|
+
[![mit licence][license-badge]][license] [![npm downloads][npm-downloads-badge]][npm-downloads] [![PRs Welcome][prs-welcome-badge]][prs-welcome]
|
|
6
|
+
|
|
7
|
+
`@use-voltra/android-server` contains the Android server rendering package for Voltra, including Android widget rendering, Android live update rendering, and Android widget update handlers.
|
|
8
|
+
|
|
9
|
+
> [!WARNING]
|
|
10
|
+
> This package is not intended to be installed directly in your app. Most apps should install `voltra` instead.
|
|
11
|
+
|
|
12
|
+
For installation and setup instructions, see the Voltra documentation: [use-voltra.dev](https://use-voltra.dev).
|
|
13
|
+
|
|
14
|
+
## Authors
|
|
15
|
+
|
|
16
|
+
`voltra` is an open source collaboration between [Saúl Sharma](https://github.com/saulsharma) and [Szymon Chmal](https://github.com/szymonchmal) at [Callstack][callstack-readme-with-love].
|
|
17
|
+
|
|
18
|
+
If you think it's cool, please star it 🌟. This project will always remain free to use.
|
|
19
|
+
|
|
20
|
+
[Callstack][callstack-readme-with-love] is a group of React and React Native geeks, contact us at [hello@callstack.com](mailto:hello@callstack.com) if you need any help with these or just want to say hi!
|
|
21
|
+
|
|
22
|
+
Like the project? ⚛️ [Join the Callstack team](https://callstack.com/careers/?utm_campaign=Senior_RN&utm_source=github&utm_medium=readme) who does amazing stuff for clients and drives React Native Open Source! 🔥
|
|
23
|
+
|
|
24
|
+
[callstack-readme-with-love]: https://callstack.com/?utm_source=github.com&utm_medium=referral&utm_campaign=voltra&utm_term=readme-with-love
|
|
25
|
+
[license-badge]: https://img.shields.io/npm/l/voltra?style=for-the-badge
|
|
26
|
+
[license]: https://github.com/callstackincubator/voltra/blob/main/LICENSE.txt
|
|
27
|
+
[npm-downloads-badge]: https://img.shields.io/npm/dm/voltra?style=for-the-badge
|
|
28
|
+
[npm-downloads]: https://www.npmjs.com/package/voltra
|
|
29
|
+
[prs-welcome-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge
|
|
30
|
+
[prs-welcome]: ./CONTRIBUTING.md
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.renderAndroidWidgetToString = exports.renderAndroidWidgetToJson = exports.renderAndroidLiveUpdateToString = exports.renderAndroidLiveUpdateToJson = void 0;
|
|
5
|
+
exports.createAndroidWidgetUpdateHandler = createAndroidWidgetUpdateHandler;
|
|
6
|
+
exports.createAndroidWidgetUpdateNodeHandler = createAndroidWidgetUpdateNodeHandler;
|
|
7
|
+
exports.createAndroidWidgetUpdateExpressHandler = createAndroidWidgetUpdateExpressHandler;
|
|
8
|
+
const core_1 = require("@use-voltra/core");
|
|
9
|
+
const server_1 = require("@use-voltra/server");
|
|
10
|
+
const ANDROID_COMPONENT_NAME_TO_ID = {
|
|
11
|
+
AndroidFilledButton: 0,
|
|
12
|
+
AndroidImage: 1,
|
|
13
|
+
AndroidSwitch: 2,
|
|
14
|
+
AndroidCheckBox: 3,
|
|
15
|
+
AndroidRadioButton: 4,
|
|
16
|
+
AndroidBox: 5,
|
|
17
|
+
AndroidButton: 6,
|
|
18
|
+
AndroidCircleIconButton: 7,
|
|
19
|
+
AndroidCircularProgressIndicator: 8,
|
|
20
|
+
AndroidColumn: 9,
|
|
21
|
+
AndroidLazyColumn: 10,
|
|
22
|
+
AndroidLazyVerticalGrid: 11,
|
|
23
|
+
AndroidLinearProgressIndicator: 12,
|
|
24
|
+
AndroidOutlineButton: 13,
|
|
25
|
+
AndroidRow: 14,
|
|
26
|
+
AndroidScaffold: 15,
|
|
27
|
+
AndroidSpacer: 16,
|
|
28
|
+
AndroidSquareIconButton: 17,
|
|
29
|
+
AndroidText: 18,
|
|
30
|
+
AndroidTitleBar: 19,
|
|
31
|
+
AndroidChart: 20,
|
|
32
|
+
};
|
|
33
|
+
const getAndroidComponentId = (name) => {
|
|
34
|
+
const id = ANDROID_COMPONENT_NAME_TO_ID[name];
|
|
35
|
+
if (id === undefined) {
|
|
36
|
+
throw new Error(`Unknown Android component name: "${name}". Available components: ${Object.keys(ANDROID_COMPONENT_NAME_TO_ID).join(', ')}`);
|
|
37
|
+
}
|
|
38
|
+
return id;
|
|
39
|
+
};
|
|
40
|
+
const androidComponentRegistry = {
|
|
41
|
+
getComponentId: (name) => getAndroidComponentId(name),
|
|
42
|
+
};
|
|
43
|
+
const renderAndroidLiveUpdateToJson = (variants) => {
|
|
44
|
+
const renderer = (0, core_1.createVoltraRenderer)(androidComponentRegistry);
|
|
45
|
+
if (variants.collapsed) {
|
|
46
|
+
renderer.addRootNode('collapsed', variants.collapsed);
|
|
47
|
+
}
|
|
48
|
+
if (variants.expanded) {
|
|
49
|
+
renderer.addRootNode('expanded', variants.expanded);
|
|
50
|
+
}
|
|
51
|
+
const result = renderer.render();
|
|
52
|
+
if (variants.smallIcon) {
|
|
53
|
+
result.smallIcon = variants.smallIcon;
|
|
54
|
+
}
|
|
55
|
+
if (variants.channelId) {
|
|
56
|
+
result.channelId = variants.channelId;
|
|
57
|
+
}
|
|
58
|
+
return result;
|
|
59
|
+
};
|
|
60
|
+
exports.renderAndroidLiveUpdateToJson = renderAndroidLiveUpdateToJson;
|
|
61
|
+
const renderAndroidLiveUpdateToString = (variants) => {
|
|
62
|
+
return JSON.stringify((0, exports.renderAndroidLiveUpdateToJson)(variants));
|
|
63
|
+
};
|
|
64
|
+
exports.renderAndroidLiveUpdateToString = renderAndroidLiveUpdateToString;
|
|
65
|
+
const renderAndroidWidgetToJson = (variants) => {
|
|
66
|
+
const renderer = (0, core_1.createVoltraRenderer)(androidComponentRegistry);
|
|
67
|
+
for (const { size, content } of variants) {
|
|
68
|
+
const key = `${size.width}x${size.height}`;
|
|
69
|
+
renderer.addRootNode(key, content);
|
|
70
|
+
}
|
|
71
|
+
const rendered = renderer.render();
|
|
72
|
+
const variantsMap = {};
|
|
73
|
+
const metadataKeys = ['v', 's', 'e'];
|
|
74
|
+
for (const key of Object.keys(rendered)) {
|
|
75
|
+
if (!metadataKeys.includes(key)) {
|
|
76
|
+
variantsMap[key] = rendered[key];
|
|
77
|
+
delete rendered[key];
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
rendered.variants = variantsMap;
|
|
81
|
+
return rendered;
|
|
82
|
+
};
|
|
83
|
+
exports.renderAndroidWidgetToJson = renderAndroidWidgetToJson;
|
|
84
|
+
const renderAndroidWidgetToString = (variants) => {
|
|
85
|
+
return JSON.stringify((0, exports.renderAndroidWidgetToJson)(variants));
|
|
86
|
+
};
|
|
87
|
+
exports.renderAndroidWidgetToString = renderAndroidWidgetToString;
|
|
88
|
+
function toSharedOptions(options) {
|
|
89
|
+
return {
|
|
90
|
+
validateToken: options.validateToken,
|
|
91
|
+
renderAndroid: async (request) => {
|
|
92
|
+
const variants = await options.render(request);
|
|
93
|
+
return variants ? (0, exports.renderAndroidWidgetToString)(variants) : null;
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function createAndroidWidgetUpdateHandler(options) {
|
|
98
|
+
return (0, server_1.createWidgetUpdateHandler)(toSharedOptions(options));
|
|
99
|
+
}
|
|
100
|
+
function createAndroidWidgetUpdateNodeHandler(options) {
|
|
101
|
+
return (0, server_1.createWidgetUpdateNodeHandler)(toSharedOptions(options));
|
|
102
|
+
}
|
|
103
|
+
function createAndroidWidgetUpdateExpressHandler(options) {
|
|
104
|
+
return (0, server_1.createWidgetUpdateExpressHandler)(toSharedOptions(options));
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { createVoltraRenderer } from '@use-voltra/core';
|
|
3
|
+
import { createWidgetUpdateExpressHandler, createWidgetUpdateHandler, createWidgetUpdateNodeHandler, } from '@use-voltra/server';
|
|
4
|
+
const ANDROID_COMPONENT_NAME_TO_ID = {
|
|
5
|
+
AndroidFilledButton: 0,
|
|
6
|
+
AndroidImage: 1,
|
|
7
|
+
AndroidSwitch: 2,
|
|
8
|
+
AndroidCheckBox: 3,
|
|
9
|
+
AndroidRadioButton: 4,
|
|
10
|
+
AndroidBox: 5,
|
|
11
|
+
AndroidButton: 6,
|
|
12
|
+
AndroidCircleIconButton: 7,
|
|
13
|
+
AndroidCircularProgressIndicator: 8,
|
|
14
|
+
AndroidColumn: 9,
|
|
15
|
+
AndroidLazyColumn: 10,
|
|
16
|
+
AndroidLazyVerticalGrid: 11,
|
|
17
|
+
AndroidLinearProgressIndicator: 12,
|
|
18
|
+
AndroidOutlineButton: 13,
|
|
19
|
+
AndroidRow: 14,
|
|
20
|
+
AndroidScaffold: 15,
|
|
21
|
+
AndroidSpacer: 16,
|
|
22
|
+
AndroidSquareIconButton: 17,
|
|
23
|
+
AndroidText: 18,
|
|
24
|
+
AndroidTitleBar: 19,
|
|
25
|
+
AndroidChart: 20,
|
|
26
|
+
};
|
|
27
|
+
const getAndroidComponentId = (name) => {
|
|
28
|
+
const id = ANDROID_COMPONENT_NAME_TO_ID[name];
|
|
29
|
+
if (id === undefined) {
|
|
30
|
+
throw new Error(`Unknown Android component name: "${name}". Available components: ${Object.keys(ANDROID_COMPONENT_NAME_TO_ID).join(', ')}`);
|
|
31
|
+
}
|
|
32
|
+
return id;
|
|
33
|
+
};
|
|
34
|
+
const androidComponentRegistry = {
|
|
35
|
+
getComponentId: (name) => getAndroidComponentId(name),
|
|
36
|
+
};
|
|
37
|
+
export const renderAndroidLiveUpdateToJson = (variants) => {
|
|
38
|
+
const renderer = createVoltraRenderer(androidComponentRegistry);
|
|
39
|
+
if (variants.collapsed) {
|
|
40
|
+
renderer.addRootNode('collapsed', variants.collapsed);
|
|
41
|
+
}
|
|
42
|
+
if (variants.expanded) {
|
|
43
|
+
renderer.addRootNode('expanded', variants.expanded);
|
|
44
|
+
}
|
|
45
|
+
const result = renderer.render();
|
|
46
|
+
if (variants.smallIcon) {
|
|
47
|
+
result.smallIcon = variants.smallIcon;
|
|
48
|
+
}
|
|
49
|
+
if (variants.channelId) {
|
|
50
|
+
result.channelId = variants.channelId;
|
|
51
|
+
}
|
|
52
|
+
return result;
|
|
53
|
+
};
|
|
54
|
+
export const renderAndroidLiveUpdateToString = (variants) => {
|
|
55
|
+
return JSON.stringify(renderAndroidLiveUpdateToJson(variants));
|
|
56
|
+
};
|
|
57
|
+
export const renderAndroidWidgetToJson = (variants) => {
|
|
58
|
+
const renderer = createVoltraRenderer(androidComponentRegistry);
|
|
59
|
+
for (const { size, content } of variants) {
|
|
60
|
+
const key = `${size.width}x${size.height}`;
|
|
61
|
+
renderer.addRootNode(key, content);
|
|
62
|
+
}
|
|
63
|
+
const rendered = renderer.render();
|
|
64
|
+
const variantsMap = {};
|
|
65
|
+
const metadataKeys = ['v', 's', 'e'];
|
|
66
|
+
for (const key of Object.keys(rendered)) {
|
|
67
|
+
if (!metadataKeys.includes(key)) {
|
|
68
|
+
variantsMap[key] = rendered[key];
|
|
69
|
+
delete rendered[key];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
rendered.variants = variantsMap;
|
|
73
|
+
return rendered;
|
|
74
|
+
};
|
|
75
|
+
export const renderAndroidWidgetToString = (variants) => {
|
|
76
|
+
return JSON.stringify(renderAndroidWidgetToJson(variants));
|
|
77
|
+
};
|
|
78
|
+
function toSharedOptions(options) {
|
|
79
|
+
return {
|
|
80
|
+
validateToken: options.validateToken,
|
|
81
|
+
renderAndroid: async (request) => {
|
|
82
|
+
const variants = await options.render(request);
|
|
83
|
+
return variants ? renderAndroidWidgetToString(variants) : null;
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
export function createAndroidWidgetUpdateHandler(options) {
|
|
88
|
+
return createWidgetUpdateHandler(toSharedOptions(options));
|
|
89
|
+
}
|
|
90
|
+
export function createAndroidWidgetUpdateNodeHandler(options) {
|
|
91
|
+
return createWidgetUpdateNodeHandler(toSharedOptions(options));
|
|
92
|
+
}
|
|
93
|
+
export function createAndroidWidgetUpdateExpressHandler(options) {
|
|
94
|
+
return createWidgetUpdateExpressHandler(toSharedOptions(options));
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { WidgetRenderRequest, WidgetUpdateExpressHandler, WidgetUpdateHandler, WidgetUpdateNodeHandler } from '@use-voltra/server';
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
export type { WidgetRenderRequest, WidgetUpdateExpressHandler, WidgetUpdateHandler, WidgetUpdateNodeHandler, } from '@use-voltra/server';
|
|
4
|
+
export type { WidgetPlatform, WidgetTheme } from '@use-voltra/server';
|
|
5
|
+
export type AndroidWidgetSize = {
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
|
+
};
|
|
9
|
+
export type AndroidWidgetSizeVariant = {
|
|
10
|
+
size: AndroidWidgetSize;
|
|
11
|
+
content: ReactNode;
|
|
12
|
+
};
|
|
13
|
+
export type AndroidWidgetVariants = AndroidWidgetSizeVariant[];
|
|
14
|
+
export type AndroidLiveUpdateVariants = {
|
|
15
|
+
collapsed?: ReactNode;
|
|
16
|
+
expanded?: ReactNode;
|
|
17
|
+
smallIcon?: string;
|
|
18
|
+
channelId?: string;
|
|
19
|
+
};
|
|
20
|
+
export type AndroidLiveUpdateVariantsJson = {
|
|
21
|
+
v: number;
|
|
22
|
+
s?: Record<string, unknown>[];
|
|
23
|
+
e?: unknown[];
|
|
24
|
+
collapsed?: unknown;
|
|
25
|
+
expanded?: unknown;
|
|
26
|
+
smallIcon?: string;
|
|
27
|
+
channelId?: string;
|
|
28
|
+
};
|
|
29
|
+
export type AndroidLiveUpdateJson = AndroidLiveUpdateVariantsJson;
|
|
30
|
+
export declare const renderAndroidLiveUpdateToJson: (variants: AndroidLiveUpdateVariants) => AndroidLiveUpdateJson;
|
|
31
|
+
export declare const renderAndroidLiveUpdateToString: (variants: AndroidLiveUpdateVariants) => string;
|
|
32
|
+
export declare const renderAndroidWidgetToJson: (variants: AndroidWidgetVariants) => Record<string, any>;
|
|
33
|
+
export declare const renderAndroidWidgetToString: (variants: AndroidWidgetVariants) => string;
|
|
34
|
+
export interface AndroidWidgetUpdateHandlerOptions {
|
|
35
|
+
render: (request: WidgetRenderRequest) => Promise<AndroidWidgetVariants | null> | AndroidWidgetVariants | null;
|
|
36
|
+
validateToken?: (token: string) => Promise<boolean> | boolean;
|
|
37
|
+
}
|
|
38
|
+
export declare function createAndroidWidgetUpdateHandler(options: AndroidWidgetUpdateHandlerOptions): WidgetUpdateHandler;
|
|
39
|
+
export declare function createAndroidWidgetUpdateNodeHandler(options: AndroidWidgetUpdateHandlerOptions): WidgetUpdateNodeHandler;
|
|
40
|
+
export declare function createAndroidWidgetUpdateExpressHandler(options: AndroidWidgetUpdateHandlerOptions): WidgetUpdateExpressHandler;
|
|
41
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,mBAAmB,EACnB,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,oBAAoB,CAAA;AAM3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,YAAY,EACV,mBAAmB,EACnB,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAErE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,iBAAiB,CAAA;IACvB,OAAO,EAAE,SAAS,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,wBAAwB,EAAE,CAAA;AAE9D,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAC7B,CAAC,CAAC,EAAE,OAAO,EAAE,CAAA;IACb,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,6BAA6B,CAAA;AA2CjE,eAAO,MAAM,6BAA6B,GAAI,UAAU,yBAAyB,KAAG,qBAsBnF,CAAA;AAED,eAAO,MAAM,+BAA+B,GAAI,UAAU,yBAAyB,KAAG,MAErF,CAAA;AAED,eAAO,MAAM,yBAAyB,GAAI,UAAU,qBAAqB,KAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAsB7F,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAI,UAAU,qBAAqB,KAAG,MAE7E,CAAA;AAED,MAAM,WAAW,iCAAiC;IAChD,MAAM,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAAG,qBAAqB,GAAG,IAAI,CAAA;IAC9G,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;CAC9D;AAYD,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,iCAAiC,GAAG,mBAAmB,CAEhH;AAED,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,iCAAiC,GACzC,uBAAuB,CAEzB;AAED,wBAAgB,uCAAuC,CACrD,OAAO,EAAE,iCAAiC,GACzC,0BAA0B,CAE5B"}
|
package/package.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@use-voltra/android-server",
|
|
3
|
+
"version": "1.3.0",
|
|
4
|
+
"description": "Voltra server rendering for Android",
|
|
5
|
+
"main": "build/cjs/index.js",
|
|
6
|
+
"module": "build/esm/index.js",
|
|
7
|
+
"types": "build/types/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./build/types/index.d.ts",
|
|
11
|
+
"require": "./build/cjs/index.js",
|
|
12
|
+
"import": "./build/esm/index.js",
|
|
13
|
+
"default": "./build/esm/index.js"
|
|
14
|
+
},
|
|
15
|
+
"./package.json": "./package.json"
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"build",
|
|
19
|
+
"README.md"
|
|
20
|
+
],
|
|
21
|
+
"scripts": {
|
|
22
|
+
"build": "node ../../scripts/build-package.mjs packages/android-server",
|
|
23
|
+
"clean": "rm -rf build",
|
|
24
|
+
"lint": "oxlint src",
|
|
25
|
+
"typecheck": "tsc -p tsconfig.typecheck.json --noEmit"
|
|
26
|
+
},
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@use-voltra/core": "1.3.0-rc.1",
|
|
29
|
+
"@use-voltra/server": "1.3.0"
|
|
30
|
+
},
|
|
31
|
+
"keywords": [
|
|
32
|
+
"voltra",
|
|
33
|
+
"android",
|
|
34
|
+
"server",
|
|
35
|
+
"widget"
|
|
36
|
+
],
|
|
37
|
+
"author": "Saúl Sharma (https://x.com/saul_sharma), Szymon Chmal (https://x.com/chmalszymon)",
|
|
38
|
+
"repository": {
|
|
39
|
+
"type": "git",
|
|
40
|
+
"url": "git+https://github.com/callstackincubator/voltra.git",
|
|
41
|
+
"directory": "packages/android-server"
|
|
42
|
+
},
|
|
43
|
+
"bugs": {
|
|
44
|
+
"url": "https://github.com/callstackincubator/voltra/issues"
|
|
45
|
+
},
|
|
46
|
+
"license": "MIT",
|
|
47
|
+
"homepage": "https://use-voltra.dev",
|
|
48
|
+
"peerDependencies": {
|
|
49
|
+
"react": "*"
|
|
50
|
+
}
|
|
51
|
+
}
|