Compare commits

..

4 Commits

Author SHA1 Message Date
9fa13f49cd v0.16.0 2021-07-10 18:28:43 +08:00
64a698089b chore: update depends 2021-07-10 18:28:22 +08:00
53843b65d2 feat: backup plugins
Signed-off-by: MiaoWoo <admin@yumc.pw>
2021-07-10 18:15:54 +08:00
5f00431e8b feat: 优化XHR相关功能
Signed-off-by: MiaoWoo <admin@yumc.pw>
2021-07-10 18:14:55 +08:00
30 changed files with 319 additions and 113 deletions

View File

@@ -1,5 +1,5 @@
{
"version": "0.15.0",
"version": "0.16.0",
"useWorkspaces": true,
"npmClient": "yarn",
"packages": [

View File

@@ -1,6 +1,6 @@
{
"name": "@ccms/amqp",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript amqp package",
"keywords": [
"miaoscript",
@@ -19,17 +19,17 @@
"test": "echo \"Error: run tests from root\" && exit 1"
},
"dependencies": {
"@ccms/api": "^0.15.0",
"@ccms/common": "^0.15.0",
"@ccms/container": "^0.15.0"
"@ccms/api": "^0.16.0",
"@ccms/common": "^0.16.0",
"@ccms/container": "^0.16.0"
},
"devDependencies": {
"@ccms/nashorn": "^0.15.0",
"@ccms/nashorn": "^0.16.0",
"@javatypes/amqp-client": "^0.0.3",
"@javatypes/spring-amqp": "^0.0.3",
"@javatypes/spring-rabbit": "^0.0.3",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@ccms/api",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript api package",
"keywords": [
"miaoscript",
@@ -19,9 +19,9 @@
"test": "echo \"Error: run tests from root\" && exit 1"
},
"dependencies": {
"@ccms/common": "^0.15.0",
"@ccms/container": "^0.15.0",
"@ccms/polyfill": "^0.15.0",
"@ccms/common": "^0.16.0",
"@ccms/container": "^0.16.0",
"@ccms/polyfill": "^0.16.0",
"base64-js": "^1.5.1",
"source-map-builder": "^0.0.7"
},
@@ -29,6 +29,6 @@
"@types/base64-js": "^1.3.0",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
}
}

View File

@@ -5,7 +5,7 @@ import * as base64 from 'base64-js'
const Arrays = Java.type('java.util.Arrays')
const Level = Java.type('java.util.logging.Level')
const Paths = Java.type('java.nio.file.Paths')
const ignoreLogPrefix = ['java.', 'javax.', 'sun.', 'net.minecraft.', 'org.bukkit.', 'jdk.nashorn.', 'io.netty.', 'org.spongepowered.', 'org.apache', 'org.springframework']
const ignoreLogPrefix = ['java.', 'javax.', 'sun.', 'net.minecraft.', 'org.bukkit.', 'jdk.nashorn.', 'org.openjdk.nashorn', 'io.netty.', 'org.spongepowered.', 'org.apache', 'org.springframework']
enum LogLevel {
ALL,
@@ -156,7 +156,7 @@ export class MiaoScriptConsole implements Console {
let className = trace.className
var fileName = trace.fileName as string
var lineNumber = trace.lineNumber
if (className.startsWith('jdk.nashorn.internal.scripts')) {
if (className.startsWith('jdk.nashorn.internal.scripts') || className.startsWith('org.openjdk.nashorn.internal.scripts')) {
className = className.substr(className.lastIndexOf('$') + 1)
var { fileName, lineNumber } = this.readSourceMap(fileName, lineNumber)
if (fileName.startsWith(root)) { fileName = fileName.split(root)[1] }

View File

@@ -1,6 +1,6 @@
{
"name": "@ccms/bukkit",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript bukkit package",
"keywords": [
"miaoscript",
@@ -22,11 +22,11 @@
"@javatypes/spigot-api": "^0.0.3",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
},
"dependencies": {
"@ccms/api": "^0.15.0",
"@ccms/common": "^0.15.0",
"@ccms/container": "^0.15.0"
"@ccms/api": "^0.16.0",
"@ccms/common": "^0.16.0",
"@ccms/container": "^0.16.0"
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@ccms/bungee",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript bungee package",
"keywords": [
"miaoscript",
@@ -22,11 +22,11 @@
"@javatypes/bungee-api": "^0.0.3",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
},
"dependencies": {
"@ccms/api": "^0.15.0",
"@ccms/common": "^0.15.0",
"@ccms/container": "^0.15.0"
"@ccms/api": "^0.16.0",
"@ccms/common": "^0.16.0",
"@ccms/container": "^0.16.0"
}
}

View File

@@ -1,7 +1,7 @@
{
"private": true,
"name": "@ccms/client",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript client package",
"keywords": [
"miaoscript",
@@ -25,8 +25,8 @@
"minecraft-protocol": "^1.25.0"
},
"devDependencies": {
"@types/node": "^15.12.4",
"@types/node": "^16.3.1",
"rimraf": "^3.0.2",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@ccms/common",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript api package",
"keywords": [
"miaoscript",
@@ -19,11 +19,11 @@
"test": "echo \"Error: run tests from root\" && exit 1"
},
"devDependencies": {
"@ccms/nashorn": "^0.15.0",
"@ccms/nashorn": "^0.16.0",
"@javatypes/jdk": "^0.0.3",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
},
"gitHead": "562e2d00175c9d3a99c8b672aa07e6d92706a027"
}

View File

@@ -1,6 +1,6 @@
{
"name": "@ccms/compile",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript compile package",
"keywords": [
"miaoscript",
@@ -21,6 +21,6 @@
"devDependencies": {
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@ccms/container",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript container package",
"keywords": [
"miaoscript",
@@ -19,10 +19,10 @@
"test": "echo \"Error: run tests from root\" && exit 1"
},
"devDependencies": {
"@ccms/nashorn": "^0.15.0",
"@ccms/nashorn": "^0.16.0",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
},
"dependencies": {
"inversify": "^5.1.1",

View File

@@ -1,6 +1,6 @@
{
"name": "@ccms/core",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript api package",
"keywords": [
"miaoscript",
@@ -21,11 +21,11 @@
"devDependencies": {
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
},
"dependencies": {
"@ccms/api": "^0.15.0",
"@ccms/container": "^0.15.0"
"@ccms/api": "^0.16.0",
"@ccms/container": "^0.16.0"
},
"gitHead": "781524f83e52cad26d7c480513e3c525df867121"
}

View File

@@ -1,7 +1,7 @@
let containerStartTime = Date.now()
console.i18n("ms.core.ioc.initialize", { scope: global.scope })
import { plugin, server, task, constants } from '@ccms/api'
import { DefaultContainer as container, inject, provideSingleton, ContainerInstance, buildProviderModule, Autowired } from '@ccms/container'
import { DefaultContainer as container, provideSingleton, ContainerInstance, buildProviderModule, Autowired } from '@ccms/container'
console.i18n("ms.core.ioc.completed", { scope: global.scope, time: (Date.now() - containerStartTime) / 1000 })
import http from '@ccms/common/dist/http'

View File

@@ -1,6 +1,6 @@
{
"name": "@ccms/database",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript database package",
"keywords": [
"miaoscript",
@@ -22,10 +22,10 @@
"@javatypes/spring-jdbc": "^0.0.3",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
},
"dependencies": {
"@ccms/api": "^0.15.0",
"@ccms/container": "^0.15.0"
"@ccms/api": "^0.16.0",
"@ccms/container": "^0.16.0"
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@ccms/i18n",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript i18n package",
"keywords": [
"miaoscript",
@@ -19,11 +19,11 @@
"test": "echo \"Error: run tests from root\" && exit 1"
},
"devDependencies": {
"@ccms/nashorn": "^0.15.0",
"@types/js-yaml": "^4.0.1",
"@ccms/nashorn": "^0.16.0",
"@types/js-yaml": "^4.0.2",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
},
"dependencies": {
"js-yaml": "^4.1.0"

View File

@@ -1,6 +1,6 @@
{
"name": "@ccms/keyvalue",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript keyvalue package",
"keywords": [
"miaoscript",
@@ -19,18 +19,18 @@
"test": "echo \"Error: run tests from root\" && exit 1"
},
"dependencies": {
"@ccms/api": "^0.15.0",
"@ccms/common": "^0.15.0",
"@ccms/container": "^0.15.0"
"@ccms/api": "^0.16.0",
"@ccms/common": "^0.16.0",
"@ccms/container": "^0.16.0"
},
"devDependencies": {
"@ccms/nashorn": "^0.15.0",
"@ccms/nashorn": "^0.16.0",
"@javatypes/amqp-client": "^0.0.3",
"@javatypes/spring-amqp": "^0.0.3",
"@javatypes/spring-rabbit": "^0.0.3",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
},
"gitHead": "2589633069d24f646ac09261b1b2304c21d4ea75"
}

View File

@@ -1,6 +1,6 @@
{
"name": "@ccms/nashorn",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript api package",
"keywords": [
"miaoscript",
@@ -22,6 +22,6 @@
"devDependencies": {
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@ccms/nodejs",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript nodejs package",
"keywords": [
"miaoscript",
@@ -19,11 +19,11 @@
"test": "echo \"Error: run tests from root\" && exit 1"
},
"devDependencies": {
"@ccms/nashorn": "^0.15.0",
"@ccms/nashorn": "^0.16.0",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"tslib": "^2.3.0",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
},
"gitHead": "781524f83e52cad26d7c480513e3c525df867121"
}

View File

@@ -1,6 +1,6 @@
{
"name": "@ccms/nukkit",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript nukkit package",
"keywords": [
"miaoscript",
@@ -22,11 +22,11 @@
"@javatypes/nukkit-api": "^0.0.3",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
},
"dependencies": {
"@ccms/api": "^0.15.0",
"@ccms/common": "^0.15.0",
"@ccms/container": "^0.15.0"
"@ccms/api": "^0.16.0",
"@ccms/common": "^0.16.0",
"@ccms/container": "^0.16.0"
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@ccms/plugin",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript api package",
"keywords": [
"miaoscript",
@@ -19,16 +19,16 @@
"test": "echo \"Error: run tests from root\" && exit 1"
},
"devDependencies": {
"@types/js-yaml": "^4.0.1",
"@types/js-yaml": "^4.0.2",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
},
"dependencies": {
"@ccms/api": "^0.15.0",
"@ccms/common": "^0.15.0",
"@ccms/container": "^0.15.0",
"@ccms/i18n": "^0.15.0",
"@ccms/api": "^0.16.0",
"@ccms/common": "^0.16.0",
"@ccms/container": "^0.16.0",
"@ccms/i18n": "^0.16.0",
"js-yaml": "^4.1.0",
"yaml": "^1.10.2"
}

View File

@@ -0,0 +1,37 @@
[综合|信息]MiaoRGBSupport —— 喵式RGB 支持任意插件的RGB展示[1.16+]
# MiaoRGBSupport
## 插件简介
- 支持1.16+彩色字体展示
- 兼容原版聊天以及任意聊天插件
- 兼容任意记分板插件
- 仅需安装插件配置权限即可生效
## 插件权限
- `MiaoRGBSupport.color` 默认玩家没权限 需要手动添加
## 安装方式
- 本插件基于 MiaoScript 开发
- 请先安装 MiaoScript [坛内地址](https://www.mcbbs.net/thread-774401-1-1.html)
- 然后安装 ProtocolLib 自己解决
- 执行 `/mspm install MiaoChatRGBSupport`
## 使用方式
- 颜色格式 `#FFFFFF` 标准 HTML 的色彩格式
### 聊天插件配置
- 例如 配置 `MiaoChat``format.yml`
- ![image.png](https://i.loli.net/2021/06/24/1DiupnoPjaI7tZr.png)
- 配置完成后 重载插件
### 聊天时使用
- 聊天时 直接输入颜色代码即可
- ![image.png](https://i.loli.net/2021/06/24/2dnTlyv6oZrcBzg.png)
## 星球特供版本
- ![image.png](https://i.loli.net/2021/06/24/DOmhJRflxS3qwju.png)
- 此版本为知识星球特供
- 支持 聊天和记分板
- 支持 彩虹字
- 详情加群 650545561

View File

@@ -1,7 +1,7 @@
{
"private": true,
"name": "@ccms/plugins",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript plugins package",
"keywords": [
"miaoscript",
@@ -26,16 +26,16 @@
"@javatypes/spring-data-redis": "^0.0.3",
"@javatypes/spring-web": "^0.0.3",
"@javatypes/tomcat": "^0.0.3",
"@types/crypto-js": "^4.0.1",
"@types/crypto-js": "^4.0.2",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
},
"dependencies": {
"@babel/standalone": "^7.14.7",
"@ccms/api": "^0.15.0",
"@ccms/container": "^0.15.0",
"@ccms/plugin": "^0.15.0",
"@ccms/api": "^0.16.0",
"@ccms/container": "^0.16.0",
"@ccms/plugin": "^0.16.0",
"crypto-js": "^4.0.0"
}
}

View File

@@ -0,0 +1,157 @@
import { constants } from "@ccms/api"
import { JSClass } from "@ccms/container"
import { interfaces, JSPlugin } from "@ccms/plugin"
let createPacketAdapterFunction = eval(`
function(cls, plugin, type, onPacketSending){
return new cls(plugin, type) {
onPacketSending: onPacketSending
}
}
`)
const Color = Java.type('java.awt.Color')
const Pattern = Java.type('java.util.regex.Pattern')
const ChatColor = Java.type('net.md_5.bungee.api.ChatColor')
@JSPlugin({ prefix: 'MRS', version: '1.0.0', author: 'MiaoWoo', servers: [constants.ServerType.Bukkit], nativeDepends: ['ProtocolLib'], source: __filename })
export class MiaoRGBSupport extends interfaces.Plugin {
private supportRGB: boolean = false
// 用于匹配 '#FFFFFF' 颜色格式
private RGBCOLOR_PATTERN = Pattern.compile("(#[a-fA-F0-9]{6}?)([^#?]*)")
// 用于匹配彩虹格式
private RAINBOW_PATTERN = Pattern.compile("#RAINBOW([0-9]{1,3})([^#?]*)")
@JSClass('com.comphenix.protocol.events.PacketAdapter')
private PacketAdapter: any
@JSClass('com.comphenix.protocol.PacketType')
private PacketType: any
@JSClass('com.comphenix.protocol.ProtocolLibrary')
private ProtocolLibrary: any
private adapter: any
load() {
try {
ChatColor.of('#FFFFFF').toString()
this.supportRGB = true
this.logger.console('§a检测到兼容RGB的服务端 已启动相关支持...')
} catch (error) {
this.logger.console('§c当前服务端不支持RGB色彩 Error: ' + error)
}
}
enable() {
if (this.supportRGB) {
this.initPacketAdapter()
}
}
disable() {
if (this.supportRGB) {
this.ProtocolLibrary.getProtocolManager().removePacketListener(this.adapter)
}
}
createPacketAdapter(onPacketSending: (event) => void) {
return createPacketAdapterFunction(this.PacketAdapter, base.getInstance(), [
this.PacketType.Play.Server.CHAT,
this.PacketType.Play.Server.SCOREBOARD_OBJECTIVE,
this.PacketType.Play.Server.SCOREBOARD_SCORE,
this.PacketType.Play.Server.SCOREBOARD_TEAM
], onPacketSending)
}
colorJson(jsonObj) {
return this.processJson(jsonObj, this.RGBCOLOR_PATTERN, (extras, colors) => {
return (value, index) => {
extras.push({
text: value,
color: colors[index]
})
}
})
}
rainbowJson(jsonObj) {
return this.processJson(jsonObj, this.RAINBOW_PATTERN, (extras, colors) => {
return (value: string, index) => {
let textArr = value.split("")
let rainbowColors = this.createRainbow(textArr.length, colors[index])
textArr.forEach((value, index) => {
extras.push({
text: value,
color: rainbowColors[index]
})
})
}
})
}
private processJson(jsonObj, PATTERN, process: (extras, colors) => (value, index) => void) {
let text: string = jsonObj.text
if (jsonObj.extra && jsonObj.extra.length) {
for (const extra of jsonObj.extra) {
this.processJson(extra, PATTERN, process)
}
}
if (!text) { return jsonObj }
var matcher = PATTERN.matcher(text)
let colors = []
let texts = []
let lastStart = 0
while (matcher.find()) {
if (lastStart == 0) {
texts.push(text.substr(lastStart, matcher.start()))
lastStart = matcher.end()
}
colors.push(matcher.group(1))
texts.push(matcher.group(2))
}
if (colors.length) {
jsonObj.text = ''
let extras = []
let firstText = texts.shift()
if (firstText) { extras.push({ text: firstText }) }
texts.forEach(process(extras, colors))
if (jsonObj.extra) {
jsonObj.extra = extras.concat(jsonObj.extra)
} else {
jsonObj.extra = extras
}
}
return jsonObj
}
private createRainbow(step, saturation) {
var colors = []
var colorStep = (1.00 / step)
for (var i = 0; i < step; i++) {
colors.push("#" + java.lang.String.format("%08x", Color.getHSBColor((colorStep * i), saturation, saturation).getRGB()).substring(2))
}
return colors
}
initPacketAdapter() {
this.adapter = this.createPacketAdapter((event) => {
try {
if (!event.getPlayer().hasPermission('MiaoRGBSupport.color')) { return }
let ccs = event.getPacket().getChatComponents()
let size = ccs.size()
for (let i = 0; i < size; i++) {
let wcc = ccs.read(i)
if (wcc == null) { continue }
let json = JSON.parse(wcc.getJson())
json = this.colorJson(json)
if (event.getPlayer().hasPermission('MiaoRGBSupport.rainbow')) {
json = this.rainbowJson(json)
}
wcc.setJson(JSON.stringify(json))
ccs.write(i, wcc)
}
} catch (error) {
console.ex(error)
}
})
this.ProtocolLibrary.getProtocolManager().addPacketListener(this.adapter)
}
}

View File

@@ -109,7 +109,7 @@ class SpongeFakeSender extends FakeSender {
}
}
@JSPlugin({ prefix: 'PM', version: '1.5.0', author: 'MiaoWoo', source: __filename })
@JSPlugin({ prefix: 'PM', version: '1.5.1', author: 'MiaoWoo', source: __filename })
export class MiaoScriptPackageManager extends interfaces.Plugin {
@Autowired()
private pluginManager: pluginApi.PluginManager
@@ -468,7 +468,7 @@ return eval(${JSON.stringify(code)});`)
return tfunc.apply(_this, params)
}
cmddeploy(sender: any, name: any) {
cmddeploy(sender: string, name: string, changelog: string) {
if (!process.env.AccessToken) { return this.i18n(sender, 'deploy.token.not.exists') }
this.taskManager.create(() => {
if (this.checkPlugin(sender, name)) {
@@ -477,7 +477,8 @@ return eval(${JSON.stringify(code)});`)
name,
author: plugin.description.author,
version: plugin.description.version,
source: base.read((plugin.description.source || plugin.description.loadMetadata.file).toString())
source: base.read((plugin.description.source || plugin.description.loadMetadata.file).toString()),
changelog: changelog.replace('&', '§')
})
this.i18n(sender, result.code == 200 ? 'deploy.success' : 'deploy.fail', { name, version: plugin.description.version, msg: result.msg })
}

View File

@@ -1,6 +1,6 @@
{
"name": "@ccms/polyfill",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript polyfill package",
"author": "MiaoWoo <admin@yumc.pw>",
"homepage": "https://github.com/circlecloud/ms.git",
@@ -14,14 +14,14 @@
"test": "echo \"Error: run tests from root\" && exit 1"
},
"dependencies": {
"@ccms/i18n": "^0.15.0",
"@ccms/nodejs": "^0.15.0",
"core-js": "^3.15.0"
"@ccms/i18n": "^0.16.0",
"@ccms/nodejs": "^0.16.0",
"core-js": "^3.15.2"
},
"devDependencies": {
"@ccms/nashorn": "^0.15.0",
"@ccms/nashorn": "^0.16.0",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
}
}

View File

@@ -1,8 +1,6 @@
import '@ccms/nashorn'
const URL = Java.type("java.net.URL")
const Files = Java.type("java.nio.file.Files")
const StandardCopyOption = Java.type("java.nio.file.StandardCopyOption")
const JavaString = Java.type("java.lang.String")
const SecureRandom = Java.type("java.security.SecureRandom")
const SSLContext = Java.type("javax.net.ssl.SSLContext")
@@ -13,8 +11,12 @@ const X509TrustManager = Java.type("javax.net.ssl.X509TrustManager")
const SocketTimeoutException = Java.type('java.net.SocketTimeoutException')
const Callable = Java.type('java.util.concurrent.Callable')
const TimeUnit = Java.type('java.util.concurrent.TimeUnit')
const Executors = Java.type('java.util.concurrent.Executors')
const ByteArrayOutputStream = Java.type("java.io.ByteArrayOutputStream")
const ByteArray = Java.type("byte[]")
const UTF_8 = "UTF-8"
const TrustAnyHostnameVerifier = new HostnameVerifier({ verify: () => true })
@@ -72,7 +74,7 @@ type HttpHeader = { [key: string]: string }
const executor = Executors.newCachedThreadPool()
export class XMLHttpRequest {
private _timeout: number
private _timeout: number = 5000;
private _responseType: ResponseType = 'text';
private _withCredentials: boolean
@@ -170,6 +172,7 @@ export class XMLHttpRequest {
this._connection.setConnectTimeout(this._timeout)
this._connection.setReadTimeout(this._timeout)
this.setRequestHeader('X-Requested-With', 'XMLHttpRequest')
this.setReadyState(ReadyState.OPENED)
}
send(body?: string | object): Future<string> {
@@ -178,7 +181,7 @@ export class XMLHttpRequest {
}
if (this._readyState !== ReadyState.OPENED) { throw new Error(`Error Status ${this._readyState}!`) }
let future = executor.submit(new Callable({ call: () => this._send(body) }))
if (!this._async) { future.get() }
if (!this._async) { future.get(this._timeout, TimeUnit.MILLISECONDS) }
return future
}
get() {
@@ -248,8 +251,16 @@ export class XMLHttpRequest {
}
private readOutput(input: any) {
var tempFile = Files.createTempFile('xhr', '.response')
Files.copy(input, tempFile, StandardCopyOption['REPLACE_EXISTING']); tempFile.toFile().deleteOnExit()
return new JavaString(Files.readAllBytes(tempFile), 'UTF-8')
let output = new ByteArrayOutputStream()
let buffer = new ByteArray(1024)
try {
let n: number
while ((n = input.read(buffer)) != -1) {
output.write(buffer, 0, n)
}
return output.toString(UTF_8)
} finally {
output.close()
}
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@ccms/protocol",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript protocol package",
"keywords": [
"miaoscript",
@@ -22,6 +22,6 @@
"devDependencies": {
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@ccms/sponge",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript api package",
"keywords": [
"miaoscript",
@@ -22,11 +22,11 @@
"@javatypes/sponge-api": "^0.0.3",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
},
"dependencies": {
"@ccms/api": "^0.15.0",
"@ccms/common": "^0.15.0",
"@ccms/container": "^0.15.0"
"@ccms/api": "^0.16.0",
"@ccms/common": "^0.16.0",
"@ccms/container": "^0.16.0"
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@ccms/spring",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript spring package",
"keywords": [
"miaoscript",
@@ -21,12 +21,12 @@
"devDependencies": {
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
},
"dependencies": {
"@ccms/api": "^0.15.0",
"@ccms/common": "^0.15.0",
"@ccms/container": "^0.15.0",
"@ccms/database": "^0.15.0"
"@ccms/api": "^0.16.0",
"@ccms/common": "^0.16.0",
"@ccms/container": "^0.16.0",
"@ccms/database": "^0.16.0"
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@ccms/web",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript web package",
"keywords": [
"miaoscript",
@@ -26,10 +26,10 @@
"@javatypes/tomcat": "^0.0.3",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
},
"dependencies": {
"@ccms/api": "^0.15.0",
"@ccms/container": "^0.15.0"
"@ccms/api": "^0.16.0",
"@ccms/container": "^0.16.0"
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@ccms/websocket",
"version": "0.15.0",
"version": "0.16.0",
"description": "MiaoScript websocket package",
"keywords": [
"miaoscript",
@@ -19,10 +19,10 @@
"test": "echo \"Error: run tests from root\" && exit 1"
},
"devDependencies": {
"@ccms/nashorn": "^0.15.0",
"@ccms/nashorn": "^0.16.0",
"@javatypes/tomcat-websocket-api": "^0.0.3",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"typescript": "^4.3.4"
"typescript": "^4.3.5"
}
}