forked from tidev/titanium-sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: webpack template for classic apps (tidev#11894)
Fixes TIMOB-27716
- Loading branch information
Showing
53 changed files
with
969 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
13 changes: 13 additions & 0 deletions
13
android/templates/app/webpack-default/template/platform/android/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# Android Platform Folder | ||
|
||
This folder contains various files used for the native Android build. | ||
|
||
## Launch Icons | ||
|
||
The `res/drawable*` folders contain various files named `ic_launcher*` which are used as the launch icon of your app. They cover all screen densities and different icon formats like rounded and [adaptive icons](https://developer.android.com/guide/practices/ui_guidelines/icon_design_adaptive). | ||
|
||
To replace these with your own icon we recommend generating all required files using the [Image Asset Studio](https://developer.android.com/studio/write/image-asset-studio) that comes with Android Studio or via the [Android Asset Studio](https://romannurik.github.io/AndroidAssetStudio/index.html) website. | ||
|
||
> 💡 **NOTE** | ||
> | ||
> The above tools generate launch icons into `mipmap*` sub-folders. This folder layout is not supported by Titanium and you need to put them in the corresponding `drawable` folders. For example, `mipmap-hdpi/ic_launcher.png` needs to be moved to `drawable-hdpi/ic_launcher.png`. |
5 changes: 5 additions & 0 deletions
5
...tes/app/webpack-default/template/platform/android/res/drawable-anydpi-v26/ic_launcher.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> | ||
<background android:drawable="@color/ic_launcher_background"/> | ||
<foreground android:drawable="@drawable/ic_launcher_foreground"/> | ||
</adaptive-icon> |
5 changes: 5 additions & 0 deletions
5
...p/webpack-default/template/platform/android/res/drawable-anydpi-v26/ic_launcher_round.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> | ||
<background android:drawable="@color/ic_launcher_background"/> | ||
<foreground android:drawable="@drawable/ic_launcher_foreground"/> | ||
</adaptive-icon> |
Binary file added
BIN
+2.3 KB
...app/webpack-default/template/platform/android/res/drawable-hdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+2.52 KB
...-default/template/platform/android/res/drawable-hdpi/ic_launcher_foreground.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+4.35 KB
...bpack-default/template/platform/android/res/drawable-hdpi/ic_launcher_round.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+1.53 KB
...app/webpack-default/template/platform/android/res/drawable-mdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+1.54 KB
...-default/template/platform/android/res/drawable-mdpi/ic_launcher_foreground.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+2.73 KB
...bpack-default/template/platform/android/res/drawable-mdpi/ic_launcher_round.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 30 additions & 0 deletions
30
...app/webpack-default/template/platform/android/res/drawable-v24/ic_launcher_foreground.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
<vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
xmlns:aapt="http://schemas.android.com/aapt" | ||
android:width="108dp" | ||
android:height="108dp" | ||
android:viewportWidth="108" | ||
android:viewportHeight="108"> | ||
<path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z"> | ||
<aapt:attr name="android:fillColor"> | ||
<gradient | ||
android:endX="85.84757" | ||
android:endY="92.4963" | ||
android:startX="42.9492" | ||
android:startY="49.59793" | ||
android:type="linear"> | ||
<item | ||
android:color="#44000000" | ||
android:offset="0.0" /> | ||
<item | ||
android:color="#00000000" | ||
android:offset="1.0" /> | ||
</gradient> | ||
</aapt:attr> | ||
</path> | ||
<path | ||
android:fillColor="#FFFFFF" | ||
android:fillType="nonZero" | ||
android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z" | ||
android:strokeWidth="1" | ||
android:strokeColor="#00000000" /> | ||
</vector> |
Binary file added
BIN
+3.22 KB
...pp/webpack-default/template/platform/android/res/drawable-xhdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+3.65 KB
...default/template/platform/android/res/drawable-xhdpi/ic_launcher_foreground.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+6.26 KB
...pack-default/template/platform/android/res/drawable-xhdpi/ic_launcher_round.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+5.29 KB
...p/webpack-default/template/platform/android/res/drawable-xxhdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+6.1 KB
...efault/template/platform/android/res/drawable-xxhdpi/ic_launcher_foreground.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+10.1 KB
...ack-default/template/platform/android/res/drawable-xxhdpi/ic_launcher_round.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+7.58 KB
.../webpack-default/template/platform/android/res/drawable-xxxhdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+8.62 KB
...fault/template/platform/android/res/drawable-xxxhdpi/ic_launcher_foreground.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+14.3 KB
...ck-default/template/platform/android/res/drawable-xxxhdpi/ic_launcher_round.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
170 changes: 170 additions & 0 deletions
170
...tes/app/webpack-default/template/platform/android/res/drawable/ic_launcher_background.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,170 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
android:width="108dp" | ||
android:height="108dp" | ||
android:viewportWidth="108" | ||
android:viewportHeight="108"> | ||
<path | ||
android:fillColor="#3DDC84" | ||
android:pathData="M0,0h108v108h-108z" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M9,0L9,108" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M19,0L19,108" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M29,0L29,108" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M39,0L39,108" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M49,0L49,108" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M59,0L59,108" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M69,0L69,108" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M79,0L79,108" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M89,0L89,108" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M99,0L99,108" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M0,9L108,9" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M0,19L108,19" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M0,29L108,29" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M0,39L108,39" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M0,49L108,49" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M0,59L108,59" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M0,69L108,69" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M0,79L108,79" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M0,89L108,89" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M0,99L108,99" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M19,29L89,29" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M19,39L89,39" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M19,49L89,49" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M19,59L89,59" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M19,69L89,69" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M19,79L89,79" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M29,19L29,89" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M39,19L39,89" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M49,19L49,89" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M59,19L59,89" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M69,19L69,89" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
<path | ||
android:fillColor="#00000000" | ||
android:pathData="M79,19L79,89" | ||
android:strokeWidth="0.8" | ||
android:strokeColor="#33FFFFFF" /> | ||
</vector> |
6 changes: 6 additions & 0 deletions
6
android/templates/app/webpack-default/template/platform/android/res/values/colors.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<resources> | ||
<color name="colorPrimary">#E82C2A</color> | ||
<color name="colorPrimaryDark">#C20604</color> | ||
<color name="colorAccent">#fff</color> | ||
</resources> |
4 changes: 4 additions & 0 deletions
4
...lates/app/webpack-default/template/platform/android/res/values/ic_launcher_background.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<resources> | ||
<color name="ic_launcher_background">#E82C2A</color> | ||
</resources> |
9 changes: 9 additions & 0 deletions
9
android/templates/app/webpack-default/template/platform/android/res/values/styles.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<resources> | ||
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> | ||
<!-- Customize your theme here. --> | ||
<item name="colorPrimary">@color/colorPrimary</item> | ||
<item name="colorPrimaryDark">@color/colorPrimaryDark</item> | ||
<item name="colorAccent">@color/colorAccent</item> | ||
</style> | ||
</resources> |
Binary file added
BIN
+32.8 KB
android/templates/app/webpack-default/template/src/assets/android/default.9.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
'use strict'; | ||
|
||
const ejs = require('ejs'); | ||
const fs = require('fs-extra'); | ||
const path = require('path'); | ||
const spawn = require('child_process').spawn; // eslint-disable-line security/detect-child-process | ||
|
||
module.exports = templateHookDir => (logger, config, cli) => { | ||
const templatePath = path.resolve(templateHookDir, '..', 'template'); | ||
cli.on('create.post.app', async (creator, next) => { | ||
const projectName = cli.argv.name; | ||
const projectPath = path.join(cli.argv['workspace-dir'], projectName); | ||
try { | ||
await Promise.all([ | ||
copyGitIgnore(templatePath, projectPath), | ||
updatePackageJson(projectPath, { name: projectName }), | ||
renderReadme(projectPath, { name: projectName }), | ||
installDependencies(projectPath, logger) | ||
]); | ||
} catch (e) { | ||
logger.error(e); | ||
next(e); | ||
} | ||
next(); | ||
}); | ||
}; | ||
|
||
async function copyGitIgnore(templatePath, projectPath) { | ||
const sourcePath = path.resolve(templatePath, '.gitignore'); | ||
const destPath = path.join(projectPath, '.gitignore'); | ||
return fs.copyFile(sourcePath, destPath); | ||
} | ||
|
||
async function updatePackageJson(projectPath, data) { | ||
const packageJsonPath = path.join(projectPath, 'package.json'); | ||
if (await fs.exists(packageJsonPath)) { | ||
let pkg = await fs.readJson(packageJsonPath); | ||
Object.assign(pkg, data); | ||
return fs.writeJson(packageJsonPath, pkg); | ||
} | ||
} | ||
|
||
async function renderReadme(projectPath, data) { | ||
const isAppcCli = !!process.env.APPC_ENV; | ||
const buildCmd = isAppcCli ? 'appc run' : 'ti build'; | ||
const readmePath = path.join(projectPath, 'README.md'); | ||
const readmeTemplate = await fs.readFile(readmePath, 'utf-8'); | ||
const readmeContent = ejs.render(readmeTemplate, { buildCmd, ...data }); | ||
return fs.writeFile(readmePath, readmeContent); | ||
} | ||
|
||
async function installDependencies(projectPath, logger) { | ||
logger.info('Installing project dependencies'); | ||
let npmExecutable = 'npm'; | ||
const spawnOptions = { | ||
cwd: projectPath, | ||
stdio: 'inherit' | ||
}; | ||
if (process.platform === 'win32') { | ||
spawnOptions.shell = true; | ||
npmExecutable += '.cmd'; | ||
} | ||
return new Promise((resolve, reject) => { | ||
const child = spawn(npmExecutable, [ 'i' ], spawnOptions); | ||
child.on('close', code => { | ||
if (code !== 0) { | ||
return reject(new Error('Failed to install project dependencies.')); | ||
} | ||
|
||
resolve(); | ||
}); | ||
}); | ||
} |
Binary file added
BIN
+21.9 KB
iphone/templates/app/webpack-default/template/src/assets/ios/LaunchLogo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
'use strict' | ||
|
||
const postAppCreate = require('../../../../cli/lib/webpack-post-create'); | ||
|
||
exports.id = 'template.webpack.post-create'; | ||
exports.init = postAppCreate(__dirname); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
root = true | ||
|
||
[*] | ||
end_of_line = lf | ||
insert_final_newline = true | ||
trim_trailing_whitespace = true | ||
charset = utf-8 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
module.exports = { | ||
extends: [ | ||
'axway/env-titanium', | ||
'axway/+babel' | ||
], | ||
globals: { | ||
global: 'readonly' | ||
} | ||
} |
Oops, something went wrong.