@storybook/react-native-web-vite 0.0.0-pr-30077-sha-3cded02f → 0.0.0-pr-30534-sha-e6f5d6b7
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/dist/index.d.ts +9 -0
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/node/index.d.ts +10 -0
- package/dist/node/index.js +1 -0
- package/dist/node/index.mjs +3 -0
- package/dist/preset.d.ts +2 -0
- package/dist/preset.js +1 -1
- package/dist/vite-plugin.js +1 -1
- package/dist/vite-plugin.mjs +2 -0
- package/package.json +19 -8
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,20 @@
|
|
|
1
1
|
import { CompatibleString } from 'storybook/internal/types';
|
|
2
2
|
import { FrameworkOptions as FrameworkOptions$1, StorybookConfig as StorybookConfig$1 } from '@storybook/react-vite';
|
|
3
3
|
import { Options, BabelOptions } from '@vitejs/plugin-react';
|
|
4
|
+
import { BabelPluginOptions } from 'vite-plugin-babel';
|
|
5
|
+
export { definePreview } from '@storybook/react';
|
|
4
6
|
|
|
5
7
|
type FrameworkOptions = FrameworkOptions$1 & {
|
|
6
8
|
pluginReactOptions?: Omit<Options, 'babel'> & {
|
|
7
9
|
babel?: BabelOptions;
|
|
8
10
|
};
|
|
11
|
+
pluginBabelOptions?: BabelPluginOptions & {
|
|
12
|
+
presetReact?: {
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
runtime?: 'automatic' | 'classic';
|
|
15
|
+
importSource?: string;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
9
18
|
};
|
|
10
19
|
type FrameworkName = CompatibleString<'@storybook/react-native-web-vite'>;
|
|
11
20
|
/** The interface for Storybook configuration in `main.ts` files. */
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var src_exports={};module.exports=__toCommonJS(src_exports);
|
|
1
|
+
"use strict";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var src_exports={};__export(src_exports,{definePreview:()=>import_react.definePreview});module.exports=__toCommonJS(src_exports);var import_react=require("@storybook/react");0&&(module.exports={definePreview});
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
export { definePreview } from '@storybook/react';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { StorybookConfig } from '../index.js';
|
|
2
|
+
import 'storybook/internal/types';
|
|
3
|
+
import '@storybook/react-vite';
|
|
4
|
+
import '@vitejs/plugin-react';
|
|
5
|
+
import 'vite-plugin-babel';
|
|
6
|
+
import '@storybook/react';
|
|
7
|
+
|
|
8
|
+
declare function defineMain(config: StorybookConfig): StorybookConfig;
|
|
9
|
+
|
|
10
|
+
export { defineMain };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var node_exports={};__export(node_exports,{defineMain:()=>defineMain});module.exports=__toCommonJS(node_exports);function defineMain(config){return config}0&&(module.exports={defineMain});
|
package/dist/preset.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ import { StorybookConfig } from './index.js';
|
|
|
3
3
|
import 'storybook/internal/types';
|
|
4
4
|
import '@storybook/react-vite';
|
|
5
5
|
import '@vitejs/plugin-react';
|
|
6
|
+
import 'vite-plugin-babel';
|
|
7
|
+
import '@storybook/react';
|
|
6
8
|
|
|
7
9
|
declare function reactNativeWeb(): PluginOption;
|
|
8
10
|
declare const viteFinal: StorybookConfig['viteFinal'];
|
package/dist/preset.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var preset_exports={};__export(preset_exports,{core:()=>core,reactNativeWeb:()=>reactNativeWeb,viteFinal:()=>viteFinal});module.exports=__toCommonJS(preset_exports);var import_preset=require("@storybook/react-vite/preset"),import_vite_plugin_flow=require("@bunchtogether/vite-plugin-flow"),import_plugin_react=__toESM(require("@vitejs/plugin-react")),import_vite_tsconfig_paths=__toESM(require("vite-tsconfig-paths"));function reactNativeWeb(){return{name:"vite:react-native-web",config(_userConfig,env){return{define:{"global.__x":{},_frameTimestamp:void 0,_WORKLET:!1,__DEV__:`${env.mode==="development"}`,"process.env.NODE_ENV":JSON.stringify(process.env.NODE_ENV||env.mode)},optimizeDeps:{include:[],esbuildOptions:{jsx:"transform",resolveExtensions:[".web.js",".web.ts",".web.tsx",".js",".jsx",".json",".ts",".tsx",".mjs"],loader:{".js":"jsx"}}},resolve:{extensions:[".web.js",".web.ts",".web.tsx",".js",".jsx",".json",".ts",".tsx",".mjs"],alias:{"react-native":"react-native-web"}}}}}}var viteFinal=async(config,options)=>{let{mergeConfig}=await import("vite"),{pluginReactOptions={}}=await options.presets.apply("frameworkOptions"),
|
|
1
|
+
"use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var preset_exports={};__export(preset_exports,{core:()=>core,reactNativeWeb:()=>reactNativeWeb,viteFinal:()=>viteFinal});module.exports=__toCommonJS(preset_exports);var import_preset=require("@storybook/react-vite/preset"),import_vite_plugin_flow=require("@bunchtogether/vite-plugin-flow"),import_plugin_react=__toESM(require("@vitejs/plugin-react")),import_vite_plugin_babel=__toESM(require("vite-plugin-babel")),import_vite_plugin_commonjs=__toESM(require("vite-plugin-commonjs")),import_vite_tsconfig_paths=__toESM(require("vite-tsconfig-paths"));function reactNativeWeb(){return{name:"vite:react-native-web",config(_userConfig,env){return{define:{"global.__x":{},_frameTimestamp:void 0,_WORKLET:!1,__DEV__:`${env.mode==="development"}`,"process.env.NODE_ENV":JSON.stringify(process.env.NODE_ENV||env.mode)},optimizeDeps:{include:[],esbuildOptions:{jsx:"transform",resolveExtensions:[".web.js",".web.ts",".web.tsx",".js",".jsx",".json",".ts",".tsx",".mjs"],loader:{".js":"jsx"}}},resolve:{extensions:[".web.js",".web.ts",".web.tsx",".js",".jsx",".json",".ts",".tsx",".mjs"],alias:{"react-native":"react-native-web"}}}}}}var viteFinal=async(config,options)=>{let{mergeConfig}=await import("vite"),{pluginReactOptions={},pluginBabelOptions={}}=await options.presets.apply("frameworkOptions"),isDevelopment=options.configType!=="PRODUCTION",{plugins=[],...reactConfigWithoutPlugins}=await(0,import_preset.viteFinal)(config,options);return mergeConfig(reactConfigWithoutPlugins,{plugins:[(0,import_vite_tsconfig_paths.default)(),(0,import_vite_plugin_flow.flowPlugin)({exclude:[/node_modules\/(?!react-native|@react-native)/]}),(0,import_plugin_react.default)({...pluginReactOptions,jsxRuntime:pluginReactOptions.jsxRuntime||"automatic",babel:{babelrc:!1,configFile:!1,...pluginReactOptions.babel}}),(0,import_vite_plugin_babel.default)({...pluginBabelOptions,include:pluginBabelOptions.include||[/node_modules\/(react-native|@react-native)/],exclude:pluginBabelOptions.exclude,babelConfig:{...pluginBabelOptions.babelConfig,babelrc:!1,configFile:!1,presets:[["@babel/preset-react",{development:isDevelopment,runtime:"automatic",...pluginBabelOptions.presetReact||{}}],...pluginBabelOptions.babelConfig?.presets||[]],plugins:[["@babel/plugin-transform-modules-commonjs",{strict:!1,strictMode:!1,allowTopLevelThis:!0}],...pluginBabelOptions.babelConfig?.plugins||[]]}}),...plugins,reactNativeWeb(),(0,import_vite_plugin_commonjs.default)()],optimizeDeps:{esbuildOptions:{plugins:[(0,import_vite_plugin_flow.esbuildFlowPlugin)(new RegExp(/\.(flow|jsx?)$/),_path=>"jsx")]}}})},core={builder:"@storybook/builder-vite",renderer:"@storybook/react"};0&&(module.exports={core,reactNativeWeb,viteFinal});
|
package/dist/vite-plugin.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var vite_plugin_exports={};__export(vite_plugin_exports,{storybookReactNativeWeb:()=>storybookReactNativeWeb});module.exports=__toCommonJS(vite_plugin_exports);var import_plugin_react2=__toESM(require("@vitejs/plugin-react")),import_vite_tsconfig_paths2=__toESM(require("vite-tsconfig-paths"));var import_preset=require("@storybook/react-vite/preset"),import_vite_plugin_flow=require("@bunchtogether/vite-plugin-flow"),import_plugin_react=__toESM(require("@vitejs/plugin-react")),import_vite_tsconfig_paths=__toESM(require("vite-tsconfig-paths"));function reactNativeWeb(){return{name:"vite:react-native-web",config(_userConfig,env){return{define:{"global.__x":{},_frameTimestamp:void 0,_WORKLET:!1,__DEV__:`${env.mode==="development"}`,"process.env.NODE_ENV":JSON.stringify(process.env.NODE_ENV||env.mode)},optimizeDeps:{include:[],esbuildOptions:{jsx:"transform",resolveExtensions:[".web.js",".web.ts",".web.tsx",".js",".jsx",".json",".ts",".tsx",".mjs"],loader:{".js":"jsx"}}},resolve:{extensions:[".web.js",".web.ts",".web.tsx",".js",".jsx",".json",".ts",".tsx",".mjs"],alias:{"react-native":"react-native-web"}}}}}}var storybookReactNativeWeb=()=>[(0,import_vite_tsconfig_paths2.default)(),(0,import_plugin_react2.default)({babel:{babelrc:!1,configFile:!1},jsxRuntime:"automatic"}),reactNativeWeb()];0&&(module.exports={storybookReactNativeWeb});
|
|
1
|
+
"use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var vite_plugin_exports={};__export(vite_plugin_exports,{storybookReactNativeWeb:()=>storybookReactNativeWeb});module.exports=__toCommonJS(vite_plugin_exports);var import_plugin_react2=__toESM(require("@vitejs/plugin-react")),import_vite_tsconfig_paths2=__toESM(require("vite-tsconfig-paths"));var import_preset=require("@storybook/react-vite/preset"),import_vite_plugin_flow=require("@bunchtogether/vite-plugin-flow"),import_plugin_react=__toESM(require("@vitejs/plugin-react")),import_vite_plugin_babel=__toESM(require("vite-plugin-babel")),import_vite_plugin_commonjs=__toESM(require("vite-plugin-commonjs")),import_vite_tsconfig_paths=__toESM(require("vite-tsconfig-paths"));function reactNativeWeb(){return{name:"vite:react-native-web",config(_userConfig,env){return{define:{"global.__x":{},_frameTimestamp:void 0,_WORKLET:!1,__DEV__:`${env.mode==="development"}`,"process.env.NODE_ENV":JSON.stringify(process.env.NODE_ENV||env.mode)},optimizeDeps:{include:[],esbuildOptions:{jsx:"transform",resolveExtensions:[".web.js",".web.ts",".web.tsx",".js",".jsx",".json",".ts",".tsx",".mjs"],loader:{".js":"jsx"}}},resolve:{extensions:[".web.js",".web.ts",".web.tsx",".js",".jsx",".json",".ts",".tsx",".mjs"],alias:{"react-native":"react-native-web"}}}}}}var storybookReactNativeWeb=()=>[(0,import_vite_tsconfig_paths2.default)(),(0,import_plugin_react2.default)({babel:{babelrc:!1,configFile:!1},jsxRuntime:"automatic"}),reactNativeWeb()];0&&(module.exports={storybookReactNativeWeb});
|
package/dist/vite-plugin.mjs
CHANGED
|
@@ -2,6 +2,8 @@ import react2 from '@vitejs/plugin-react';
|
|
|
2
2
|
import tsconfigPaths2 from 'vite-tsconfig-paths';
|
|
3
3
|
import '@storybook/react-vite/preset';
|
|
4
4
|
import '@bunchtogether/vite-plugin-flow';
|
|
5
|
+
import 'vite-plugin-babel';
|
|
6
|
+
import 'vite-plugin-commonjs';
|
|
5
7
|
|
|
6
8
|
function reactNativeWeb(){return {name:"vite:react-native-web",config(_userConfig,env){return {define:{"global.__x":{},_frameTimestamp:void 0,_WORKLET:!1,__DEV__:`${env.mode==="development"}`,"process.env.NODE_ENV":JSON.stringify(process.env.NODE_ENV||env.mode)},optimizeDeps:{include:[],esbuildOptions:{jsx:"transform",resolveExtensions:[".web.js",".web.ts",".web.tsx",".js",".jsx",".json",".ts",".tsx",".mjs"],loader:{".js":"jsx"}}},resolve:{extensions:[".web.js",".web.ts",".web.tsx",".js",".jsx",".json",".ts",".tsx",".mjs"],alias:{"react-native":"react-native-web"}}}}}}var storybookReactNativeWeb=()=>[tsconfigPaths2(),react2({babel:{babelrc:!1,configFile:!1},jsxRuntime:"automatic"}),reactNativeWeb()];
|
|
7
9
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storybook/react-native-web-vite",
|
|
3
|
-
"version": "0.0.0-pr-
|
|
3
|
+
"version": "0.0.0-pr-30534-sha-e6f5d6b7",
|
|
4
4
|
"description": "Develop react-native components an isolated web environment with hot reloading.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"storybook"
|
|
@@ -35,6 +35,12 @@
|
|
|
35
35
|
"import": "./dist/vite-plugin.mjs",
|
|
36
36
|
"require": "./dist/vite-plugin.js"
|
|
37
37
|
},
|
|
38
|
+
"./node": {
|
|
39
|
+
"types": "./dist/node/index.d.ts",
|
|
40
|
+
"node": "./dist/node/index.js",
|
|
41
|
+
"import": "./dist/node/index.mjs",
|
|
42
|
+
"require": "./dist/node/index.js"
|
|
43
|
+
},
|
|
38
44
|
"./package.json": "./package.json"
|
|
39
45
|
},
|
|
40
46
|
"main": "dist/index.js",
|
|
@@ -53,24 +59,28 @@
|
|
|
53
59
|
"prep": "jiti ../../../scripts/prepare/bundle.ts"
|
|
54
60
|
},
|
|
55
61
|
"dependencies": {
|
|
62
|
+
"@babel/plugin-transform-modules-commonjs": "^7.26.3",
|
|
63
|
+
"@babel/preset-react": "^7.26.3",
|
|
56
64
|
"@bunchtogether/vite-plugin-flow": "^1.0.2",
|
|
57
|
-
"@joshwooding/vite-plugin-react-docgen-typescript": "0.
|
|
58
|
-
"@storybook/builder-vite": "0.0.0-pr-
|
|
59
|
-
"@storybook/react": "0.0.0-pr-
|
|
60
|
-
"@storybook/react-vite": "0.0.0-pr-
|
|
65
|
+
"@joshwooding/vite-plugin-react-docgen-typescript": "0.5.0",
|
|
66
|
+
"@storybook/builder-vite": "0.0.0-pr-30534-sha-e6f5d6b7",
|
|
67
|
+
"@storybook/react": "0.0.0-pr-30534-sha-e6f5d6b7",
|
|
68
|
+
"@storybook/react-vite": "0.0.0-pr-30534-sha-e6f5d6b7",
|
|
61
69
|
"@vitejs/plugin-react": "^4.3.2",
|
|
70
|
+
"vite-plugin-babel": "^1.3.0",
|
|
71
|
+
"vite-plugin-commonjs": "^0.10.4",
|
|
62
72
|
"vite-tsconfig-paths": "^5.1.4"
|
|
63
73
|
},
|
|
64
74
|
"devDependencies": {
|
|
65
75
|
"@types/node": "^22.0.0",
|
|
66
|
-
"typescript": "^5.3
|
|
76
|
+
"typescript": "^5.7.3"
|
|
67
77
|
},
|
|
68
78
|
"peerDependencies": {
|
|
69
79
|
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
|
|
70
80
|
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
|
|
71
81
|
"react-native": ">=0.74.5",
|
|
72
82
|
"react-native-web": "^0.19.12",
|
|
73
|
-
"storybook": "^0.0.0-pr-
|
|
83
|
+
"storybook": "^0.0.0-pr-30534-sha-e6f5d6b7",
|
|
74
84
|
"vite": "^5.0.0 || ^6.0.0"
|
|
75
85
|
},
|
|
76
86
|
"engines": {
|
|
@@ -83,7 +93,8 @@
|
|
|
83
93
|
"entries": [
|
|
84
94
|
"./src/index.ts",
|
|
85
95
|
"./src/preset.ts",
|
|
86
|
-
"./src/vite-plugin.ts"
|
|
96
|
+
"./src/vite-plugin.ts",
|
|
97
|
+
"./src/node/index.ts"
|
|
87
98
|
],
|
|
88
99
|
"platform": "node"
|
|
89
100
|
},
|