bg2e-js 2.0.0 → 2.0.2
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/bg2e-js.js +11001 -0
- package/dist/bg2e-js.js.map +1 -0
- package/package.json +17 -6
- package/app/AppController.js +0 -32
- package/app/Canvas.js +0 -98
- package/app/EventBase.js +0 -8
- package/app/KeyboardEvent.js +0 -51
- package/app/MainLoop.js +0 -251
- package/app/MouseEvent.js +0 -77
- package/app/TouchEvent.js +0 -15
- package/base/Color.js +0 -131
- package/base/Environment.js +0 -78
- package/base/Light.js +0 -176
- package/base/Material.js +0 -619
- package/base/PolyList.js +0 -336
- package/base/Texture.js +0 -545
- package/db/Bg2LoaderPlugin.js +0 -113
- package/db/DBPluginApi.js +0 -40
- package/db/Loader.js +0 -91
- package/db/LoaderPlugin.js +0 -26
- package/db/MtlParser.js +0 -7
- package/db/ObjLoaderPlugin.js +0 -51
- package/db/ObjParser.js +0 -233
- package/db/ObjWriterPlugin.js +0 -18
- package/db/VitscnjLoaderPlugin.js +0 -87
- package/db/Writer.js +0 -49
- package/db/WriterPlugin.js +0 -20
- package/debug/DebugRenderer.js +0 -138
- package/debug/WebGLTextureViewer.js +0 -67
- package/manipulation/SelectionBuffer.js +0 -65
- package/manipulation/SelectionHighlight.js +0 -69
- package/manipulation/SelectionIdAssignVisitor.js +0 -86
- package/manipulation/SelectionManager.js +0 -134
- package/manipulation/SelectionMode.js +0 -6
- package/math/Mat3.js +0 -248
- package/math/Mat4.js +0 -694
- package/math/MatrixStrategy.js +0 -23
- package/math/Quat.js +0 -60
- package/math/Vec.js +0 -728
- package/math/constants.js +0 -44
- package/math/functions.js +0 -104
- package/math/index.js +0 -74
- package/phsics/joint.js +0 -124
- package/primitives/arrow.js +0 -58
- package/primitives/cone.js +0 -137
- package/primitives/cube.js +0 -59
- package/primitives/cylinder.js +0 -215
- package/primitives/index.js +0 -13
- package/primitives/plane.js +0 -31
- package/primitives/sphere.js +0 -808
- package/render/BRDFIntegrationMap.js +0 -4
- package/render/Environment.js +0 -105
- package/render/EnvironmentRenderer.js +0 -12
- package/render/FrameBuffer.js +0 -26
- package/render/MaterialRenderer.js +0 -28
- package/render/Pipeline.js +0 -83
- package/render/PolyListRenderer.js +0 -42
- package/render/RenderBuffer.js +0 -189
- package/render/RenderQueue.js +0 -162
- package/render/RenderState.js +0 -82
- package/render/Renderer.js +0 -202
- package/render/SceneAppController.js +0 -208
- package/render/SceneRenderer.js +0 -310
- package/render/Shader.js +0 -21
- package/render/ShadowRenderer.js +0 -159
- package/render/SkyCube.js +0 -77
- package/render/SkySphere.js +0 -94
- package/render/TextureMergerRenderer.js +0 -58
- package/render/TextureRenderer.js +0 -29
- package/render/webgl/FrameBuffer.js +0 -9
- package/render/webgl/MaterialRenderer.js +0 -99
- package/render/webgl/Pipeline.js +0 -82
- package/render/webgl/PolyListRenderer.js +0 -224
- package/render/webgl/RenderBuffer.js +0 -244
- package/render/webgl/Renderer.js +0 -239
- package/render/webgl/SceneRenderer.js +0 -43
- package/render/webgl/ShaderProgram.js +0 -348
- package/render/webgl/ShadowRenderer.js +0 -6
- package/render/webgl/SkyCube.js +0 -15
- package/render/webgl/SkySphere.js +0 -14
- package/render/webgl/State.js +0 -149
- package/render/webgl/TextureRenderer.js +0 -167
- package/render/webgl/VertexBuffer.js +0 -128
- package/scene/Camera.js +0 -378
- package/scene/Chain.js +0 -43
- package/scene/ChainJoint.js +0 -55
- package/scene/Component.js +0 -146
- package/scene/ComponentMap.js +0 -99
- package/scene/Drawable.js +0 -130
- package/scene/EnvironmentComponent.js +0 -123
- package/scene/FindNodeVisitor.js +0 -55
- package/scene/LightComponent.js +0 -146
- package/scene/MatrixState.js +0 -39
- package/scene/Node.js +0 -300
- package/scene/NodeVisitor.js +0 -12
- package/scene/OrbitCameraController.js +0 -407
- package/scene/SmoothOrbitCameraController.js +0 -92
- package/scene/Transform.js +0 -74
- package/scene/index.js +0 -24
- package/shaders/BasicDiffuseColorShader.js +0 -91
- package/shaders/BasicPBRLightShader.js +0 -238
- package/shaders/DebugRenderShader.js +0 -79
- package/shaders/DepthRenderShader.js +0 -69
- package/shaders/IrradianceMapCubeShader.js +0 -99
- package/shaders/PBRLightIBLShader.js +0 -380
- package/shaders/PickSelectionShader.js +0 -75
- package/shaders/PresentDebugFramebufferShader.js +0 -90
- package/shaders/PresentTextureShader.js +0 -73
- package/shaders/SelectionHighlightShader.js +0 -98
- package/shaders/ShaderFunction.js +0 -72
- package/shaders/SkyCubeShader.js +0 -78
- package/shaders/SkySphereShader.js +0 -77
- package/shaders/SpecularMapCubeShader.js +0 -145
- package/shaders/TextureMergerShader.js +0 -127
- package/shaders/webgl_shader_lib.js +0 -187
- package/tools/BinaryResourceProvider.js +0 -15
- package/tools/ImageResourceProvider.js +0 -65
- package/tools/MaterialModifier.js +0 -228
- package/tools/Resource.js +0 -177
- package/tools/ResourceProvider.js +0 -56
- package/tools/TextResourceProvider.js +0 -24
- package/tools/TextureCache.js +0 -44
- package/tools/TextureResourceDatabase.js +0 -87
- package/tools/UserAgent.js +0 -294
- package/tools/VideoResourceProvider.js +0 -51
- package/tools/WriteStrategy.js +0 -22
- package/tools/base64.js +0 -15
- package/tools/crypto.js +0 -15
- package/tools/endiantess.js +0 -15
- package/tools/image.js +0 -15
- package/tools/index.js +0 -33
- package/tools/processType.js +0 -56
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { isBrowserOrElectronRenderer } from './processType';
|
|
2
|
-
import { base64ToArrayBuffer } from './base64';
|
|
3
|
-
|
|
4
|
-
export const DataFormat = {
|
|
5
|
-
BYTES: 0, // Uint8Array
|
|
6
|
-
IMAGE: 1, // DOM img
|
|
7
|
-
BASE64: 2, // Base64 string. It can include or not the Base64 image prefix
|
|
8
|
-
TEXT: 3, // Text string
|
|
9
|
-
JSON_STRING: 4, // JSON text
|
|
10
|
-
JSON_OBJECT: 5, // JSON serializable object
|
|
11
|
-
FILE_PATH: 6 // File path (used to implement file copy)
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export default class ResourceProvider {
|
|
15
|
-
set writeStrategy(ws) {
|
|
16
|
-
this._writeStrategy = ws;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
get writeStrategy() {
|
|
20
|
-
if (!this._writeStrategy) {
|
|
21
|
-
throw new Error("ResourceProvider.write(): no write strategy configured.");
|
|
22
|
-
}
|
|
23
|
-
return this._writeStrategy;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
async load(url) {
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
async write(url,data,format = DataFormat.TEXT) {
|
|
31
|
-
switch (format) {
|
|
32
|
-
case BYTES:
|
|
33
|
-
return this.writeStrategy.writeBytes(url,data);
|
|
34
|
-
case IMAGE:
|
|
35
|
-
if (isBrowserOrElectronRenderer()) {
|
|
36
|
-
return this.writeStrategy.writeImage(url, data);
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
throw new Error("ResourceProvider.write() unsupported data format: Image data format is supported only on browsers or electron renderer process.");
|
|
40
|
-
}
|
|
41
|
-
case BASE64:
|
|
42
|
-
const bytes = base64ToArrayBuffer(data);
|
|
43
|
-
return this.writeStrategy.writeBytes(url,bytes);
|
|
44
|
-
case TEXT:
|
|
45
|
-
return this.writeStrategy.writeText(url,data);
|
|
46
|
-
case JSON_STRING:
|
|
47
|
-
return this.writeStrategy.writeText(url,data);
|
|
48
|
-
case JSON_OBJECT:
|
|
49
|
-
return this.writeStrategy.writeJson(url,data);
|
|
50
|
-
case FILE_PATH:
|
|
51
|
-
return this.copyFile(url,data);
|
|
52
|
-
default:
|
|
53
|
-
throw new Error("ResourceProvider.write() invalid format");
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import ResourceProvider from './ResourceProvider.js';
|
|
2
|
-
|
|
3
|
-
export default class TextResourceProvider extends ResourceProvider {
|
|
4
|
-
async load(url) {
|
|
5
|
-
const response = await fetch(url);
|
|
6
|
-
if (response.ok) {
|
|
7
|
-
const textData = await response.text();
|
|
8
|
-
try {
|
|
9
|
-
const objectData = JSON.parse(textData);
|
|
10
|
-
return objectData;
|
|
11
|
-
}
|
|
12
|
-
catch (e) {
|
|
13
|
-
return textData;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
throw new Error(`Resource not found at '${ url }'`);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
async write(url,data) {
|
|
22
|
-
return await this.writeStrategy.writeData(url,data,{encoding: 'utf-8'});
|
|
23
|
-
}
|
|
24
|
-
}
|
package/tools/TextureCache.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import Canvas from '../app/Canvas';
|
|
3
|
-
|
|
4
|
-
const g_canvasCache = {};
|
|
5
|
-
|
|
6
|
-
export default class TextureCache {
|
|
7
|
-
static Get(canvas = null) {
|
|
8
|
-
canvas = canvas || Canvas.FirstCanvas();
|
|
9
|
-
if (!canvas) {
|
|
10
|
-
throw new Error("No canvas created. Create a canvas before using TextureCache.");
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
if (!g_canvasCache[canvas.id]) {
|
|
14
|
-
g_canvasCache[canvas.id] = new TextureCache(canvas);
|
|
15
|
-
}
|
|
16
|
-
return g_canvasCache[canvas.id];
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
constructor(canvas) {
|
|
20
|
-
this._canvas = canvas;
|
|
21
|
-
this._cache = {};
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
get canvas() { return this._canvas; }
|
|
25
|
-
|
|
26
|
-
registerTexture(texture) {
|
|
27
|
-
if (!texture.fileName) {
|
|
28
|
-
throw new Error("TextureCache.registerTexture() texture path is empty");
|
|
29
|
-
}
|
|
30
|
-
this._cache[texture.fileName] = texture;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
getTexture(texturePath) {
|
|
34
|
-
return this._cache[texturePath];
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
findTexture(texturePath) {
|
|
38
|
-
return this._cache[texturePath] != null;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
clear() {
|
|
42
|
-
this._cache = {};
|
|
43
|
-
}
|
|
44
|
-
}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import Color from "../base/Color"
|
|
2
|
-
import Texture, { ProceduralTextureFunction, TextureFilter, TextureTarget, TextureWrap } from "../base/Texture"
|
|
3
|
-
import BRDFIntegrationMap from "../render/BRDFIntegrationMap";
|
|
4
|
-
|
|
5
|
-
const g_textureDatabase = {
|
|
6
|
-
whiteTexture: {},
|
|
7
|
-
blackTexture: {},
|
|
8
|
-
normalTexture: {},
|
|
9
|
-
brdfIntegrationTexture: {}
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const createColorTexture = async (color, name = "") => {
|
|
13
|
-
const result = new Texture();
|
|
14
|
-
result.magFilter = TextureFilter.NEAREST;
|
|
15
|
-
result.minFilter = TextureFilter.NEAREST;
|
|
16
|
-
result.wrapModeXY = TextureWrap.REPEAT;
|
|
17
|
-
result.proceduralFunction = ProceduralTextureFunction.PLAIN_COLOR;
|
|
18
|
-
result.proceduralParameters = color;
|
|
19
|
-
result.size = [2, 2];
|
|
20
|
-
name = name || `ColorTexture_${color.r}_${color.g}_${color.b}_${color.a}`;
|
|
21
|
-
result.name = `${ name }_${result.size.width}_${result.size.height}`;
|
|
22
|
-
await result.loadImageData();
|
|
23
|
-
return result;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export const createWhiteTexture = async (renderer) => {
|
|
27
|
-
if (!g_textureDatabase.whiteTexture[renderer.uniqueId]) {
|
|
28
|
-
g_textureDatabase.whiteTexture[renderer.uniqueId] = await createColorTexture(Color.White(), "WhiteTexture");
|
|
29
|
-
}
|
|
30
|
-
return g_textureDatabase.whiteTexture[renderer.uniqueId];
|
|
31
|
-
}
|
|
32
|
-
export const whiteTexture = (renderer) => {
|
|
33
|
-
if (!g_textureDatabase.whiteTexture[renderer.uniqueId]) {
|
|
34
|
-
throw new Error(`TextureResourceDatabase: whiteTexture is not initialize. Call 'createWhiteTexture' before use 'whiteTexture' function`);
|
|
35
|
-
}
|
|
36
|
-
return g_textureDatabase.whiteTexture[renderer.uniqueId];
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export const createBlackTexture = async (renderer) => {
|
|
40
|
-
if (!g_textureDatabase.blackTexture[renderer.uniqueId]) {
|
|
41
|
-
g_textureDatabase.blackTexture[renderer.uniqueId] = await createColorTexture(Color.Black(), "BlackTexture");
|
|
42
|
-
}
|
|
43
|
-
return g_textureDatabase.blackTexture[renderer.uniqueId];
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export const blackTexture = (renderer) => {
|
|
47
|
-
if (!g_textureDatabase.blackTexture[renderer.uniqueId]) {
|
|
48
|
-
throw new Error(`TextureResourceDatabase: blackTexture is not initialize. Call 'createBlackTexture' before use 'blackTexture' function`);
|
|
49
|
-
}
|
|
50
|
-
return g_textureDatabase.blackTexture[renderer.uniqueId];
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export const createNormalTexture = async (renderer) => {
|
|
54
|
-
if (!g_textureDatabase.normalTexture[renderer.uniqueId]) {
|
|
55
|
-
g_textureDatabase.normalTexture[renderer.uniqueId] = await createColorTexture(new Color([0.5, 0.5, 1, 1]), "NormalMapTexture");
|
|
56
|
-
}
|
|
57
|
-
return g_textureDatabase.normalTexture[renderer.uniqueId];
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export const normalTexture = (renderer) => {
|
|
61
|
-
if (!g_textureDatabase.normalTexture[renderer.uniqueId]) {
|
|
62
|
-
throw new Error(`TextureResourceDatabase: normalTexture is not initialized. Call 'createNormalTexture' before use 'normalTexture' function`);
|
|
63
|
-
}
|
|
64
|
-
return g_textureDatabase.normalTexture[renderer.uniqueId];
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
export const createBRDFIntegrationTexture = async (renderer) => {
|
|
68
|
-
if (!g_textureDatabase.brdfIntegrationTexture[renderer.uniqueId]) {
|
|
69
|
-
const tex = new Texture();
|
|
70
|
-
tex.name = "BRDFIntegrationMapTexture";
|
|
71
|
-
tex.target = TextureTarget.TEXTURE_2D;
|
|
72
|
-
tex.proceduralFunction = ProceduralTextureFunction.FROM_BASE64;
|
|
73
|
-
tex.proceduralParameters = {
|
|
74
|
-
imageData: BRDFIntegrationMap
|
|
75
|
-
};
|
|
76
|
-
await tex.loadImageData();
|
|
77
|
-
g_textureDatabase.brdfIntegrationTexture[renderer.uniqueId] = tex;
|
|
78
|
-
}
|
|
79
|
-
return g_textureDatabase.brdfIntegrationTexture[renderer.uniqueId];
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
export const BRDFIntegrationTexture = (renderer) => {
|
|
83
|
-
if (!g_textureDatabase.brdfIntegrationTexture[renderer.uniqueId]) {
|
|
84
|
-
throw new Error(`TextureResourceDatabase: BRDFIntegrationTexture is not initialized. Call 'createBRDFIntegrationTexture' before use 'BRDFIntegrationTexture' function`);
|
|
85
|
-
}
|
|
86
|
-
return g_textureDatabase.brdfIntegrationTexture[renderer.uniqueId];
|
|
87
|
-
}
|
package/tools/UserAgent.js
DELETED
|
@@ -1,294 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export default class UserAgent {
|
|
4
|
-
constructor(userAgentString) {
|
|
5
|
-
this.system = {};
|
|
6
|
-
this.browser = {};
|
|
7
|
-
|
|
8
|
-
if (!userAgentString) {
|
|
9
|
-
userAgentString = navigator.userAgent;
|
|
10
|
-
}
|
|
11
|
-
this.parseOperatingSystem(userAgentString);
|
|
12
|
-
this.parseBrowser(userAgentString);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
parseOperatingSystem(userAgentString) {
|
|
16
|
-
this.system.OSX = /Macintosh/.test(userAgentString);
|
|
17
|
-
this.system.Windows = /Windows/.test(userAgentString);
|
|
18
|
-
this.system.iPhone = /iPhone/.test(userAgentString);
|
|
19
|
-
this.system.iPodTouch = /iPod/.test(userAgentString);
|
|
20
|
-
this.system.iPad = /iPad/.test(userAgentString);
|
|
21
|
-
this.system.iOS = this.system.iPhone || this.system.iPad || this.system.iPodTouch;
|
|
22
|
-
this.system.Android = /Android/.test(userAgentString);
|
|
23
|
-
this.system.Linux = (this.system.Android) ? false:/Linux/.test(userAgentString);
|
|
24
|
-
|
|
25
|
-
if (this.system.OSX) {
|
|
26
|
-
this.system.OSName = "OS X";
|
|
27
|
-
this.parseOSXVersion(userAgentString);
|
|
28
|
-
}
|
|
29
|
-
else if (this.system.Windows) {
|
|
30
|
-
this.system.OSName = "Windows";
|
|
31
|
-
this.parseWindowsVersion(userAgentString);
|
|
32
|
-
}
|
|
33
|
-
else if (this.system.Linux) {
|
|
34
|
-
this.system.OSName = "Linux";
|
|
35
|
-
this.parseLinuxVersion(userAgentString);
|
|
36
|
-
}
|
|
37
|
-
else if (this.system.iOS) {
|
|
38
|
-
this.system.OSName = "iOS";
|
|
39
|
-
this.parseIOSVersion(userAgentString);
|
|
40
|
-
}
|
|
41
|
-
else if (this.system.Android) {
|
|
42
|
-
this.system.OSName = "Android";
|
|
43
|
-
this.parseAndroidVersion(userAgentString);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
parseBrowser(userAgentString) {
|
|
48
|
-
// Safari: Version/X.X.X Safari/XXX
|
|
49
|
-
// Chrome: Chrome/XX.X.XX.XX Safari/XXX
|
|
50
|
-
// Opera: Opera/X.XX
|
|
51
|
-
// Firefox: Gecko/XXXXXX Firefox/XX.XX.XX
|
|
52
|
-
// Explorer: MSIE X.X
|
|
53
|
-
this.browser.Version = {};
|
|
54
|
-
this.browser.Safari = /Version\/([\d\.]+) Safari\//.test(userAgentString);
|
|
55
|
-
if (this.browser.Safari) {
|
|
56
|
-
this.browser.Name = "Safari";
|
|
57
|
-
this.browser.Vendor = "Apple";
|
|
58
|
-
this.browser.Version.versionString = RegExp.$1;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
this.browser.Chrome = /Chrome\/([\d\.]+) Safari\//.test(userAgentString);
|
|
62
|
-
if (this.browser.Chrome) {
|
|
63
|
-
this.browser.Name = "Chrome";
|
|
64
|
-
this.browser.Vendor = "Google";
|
|
65
|
-
this.browser.Version.versionString = RegExp.$1;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
this.browser.Opera = /Opera\/[\d\.]+/.test(userAgentString);
|
|
69
|
-
if (this.browser.Opera) {
|
|
70
|
-
this.browser.Name = "Opera";
|
|
71
|
-
this.browser.Vendor = "Opera Software";
|
|
72
|
-
var versionString = /Version\/([\d\.]+)/.test(userAgentString);
|
|
73
|
-
this.browser.Version.versionString = RegExp.$1;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
this.browser.Firefox = /Gecko\/[\d\.]+ Firefox\/([\d\.]+)/.test(userAgentString);
|
|
77
|
-
if (this.browser.Firefox) {
|
|
78
|
-
this.browser.Name = "Firefox";
|
|
79
|
-
this.browser.Vendor = "Mozilla Foundation";
|
|
80
|
-
this.browser.Version.versionString = RegExp.$1;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
this.browser.Edge = /Edge\/(.*)/.test(userAgentString);
|
|
84
|
-
if (this.browser.Edge) {
|
|
85
|
-
var result = /Edge\/(.*)/.exec(userAgentString);
|
|
86
|
-
this.browser.Name = "Edge";
|
|
87
|
-
this.browser.Chrome = false;
|
|
88
|
-
this.browser.Vendor = "Microsoft";
|
|
89
|
-
this.browser.Version.versionString = result[1];
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
this.browser.Explorer = /MSIE ([\d\.]+)/.test(userAgentString);
|
|
93
|
-
if (!this.browser.Explorer) {
|
|
94
|
-
var re = /\Mozilla\/5.0 \(([^)]+)\) like Gecko/
|
|
95
|
-
var matches = re.exec(userAgentString);
|
|
96
|
-
if (matches) {
|
|
97
|
-
re = /rv:(.*)/
|
|
98
|
-
var version = re.exec(matches[1]);
|
|
99
|
-
this.browser.Explorer = true;
|
|
100
|
-
this.browser.Name = "Internet Explorer";
|
|
101
|
-
this.browser.Vendor = "Microsoft";
|
|
102
|
-
if (version) {
|
|
103
|
-
this.browser.Version.versionString = version[1];
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
this.browser.Version.versionString = "unknown";
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
this.browser.Name = "Internet Explorer";
|
|
112
|
-
this.browser.Vendor = "Microsoft";
|
|
113
|
-
this.browser.Version.versionString = RegExp.$1;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
if (this.system.iOS) {
|
|
117
|
-
this.browser.IsMobileVersion = true;
|
|
118
|
-
this.browser.MobileSafari = /Version\/([\d\.]+) Mobile/.test(userAgentString);
|
|
119
|
-
if (this.browser.MobileSafari) {
|
|
120
|
-
this.browser.Name = "Mobile Safari";
|
|
121
|
-
this.browser.Vendor = "Apple";
|
|
122
|
-
this.browser.Version.versionString = RegExp.$1;
|
|
123
|
-
}
|
|
124
|
-
this.browser.Android = false;
|
|
125
|
-
}
|
|
126
|
-
else if (this.system.Android) {
|
|
127
|
-
this.browser.IsMobileVersion = true;
|
|
128
|
-
this.browser.Android = /Version\/([\d\.]+) Mobile/.test(userAgentString);
|
|
129
|
-
if (this.browser.MobileSafari) {
|
|
130
|
-
this.browser.Name = "Android Browser";
|
|
131
|
-
this.browser.Vendor = "Google";
|
|
132
|
-
this.browser.Version.versionString = RegExp.$1;
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
this.browser.Chrome = /Chrome\/([\d\.]+)/.test(userAgentString);
|
|
136
|
-
this.browser.Name = "Chrome";
|
|
137
|
-
this.browser.Vendor = "Google";
|
|
138
|
-
this.browser.Version.versionString = RegExp.$1;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
this.browser.Safari = false;
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
this.browser.IsMobileVersion = false;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
this.parseBrowserVersion(userAgentString);
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
parseBrowserVersion(userAgentString) {
|
|
151
|
-
if (/([\d]+)\.([\d]+)\.*([\d]*)/.test(this.browser.Version.versionString)) {
|
|
152
|
-
this.browser.Version.major = Number(RegExp.$1);
|
|
153
|
-
this.browser.Version.minor = Number(RegExp.$2);
|
|
154
|
-
this.browser.Version.revision = (RegExp.$3) ? Number(RegExp.$3):0;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
parseOSXVersion(userAgentString) {
|
|
159
|
-
var versionString = (/Mac OS X (\d+_\d+_*\d*)/.test(userAgentString)) ? RegExp.$1:'';
|
|
160
|
-
this.system.Version = {};
|
|
161
|
-
// Safari/Chrome
|
|
162
|
-
if (versionString!='') {
|
|
163
|
-
if (/(\d+)_(\d+)_*(\d*)/.test(versionString)) {
|
|
164
|
-
this.system.Version.major = Number(RegExp.$1);
|
|
165
|
-
this.system.Version.minor = Number(RegExp.$2);
|
|
166
|
-
this.system.Version.revision = (RegExp.$3) ? Number(RegExp.$3):0;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
// Firefox/Opera
|
|
170
|
-
else {
|
|
171
|
-
versionString = (/Mac OS X (\d+\.\d+\.*\d*)/.test(userAgentString)) ? RegExp.$1:'Unknown';
|
|
172
|
-
if (/(\d+)\.(\d+)\.*(\d*)/.test(versionString)) {
|
|
173
|
-
this.system.Version.major = Number(RegExp.$1);
|
|
174
|
-
this.system.Version.minor = Number(RegExp.$2);
|
|
175
|
-
this.system.Version.revision = (RegExp.$3) ? Number(RegExp.$3):0;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
if (!this.system.Version.major) {
|
|
179
|
-
this.system.Version.major = 0;
|
|
180
|
-
this.system.Version.minor = 0;
|
|
181
|
-
this.system.Version.revision = 0;
|
|
182
|
-
}
|
|
183
|
-
this.system.Version.stringValue = this.system.Version.major + '.' + this.system.Version.minor + '.' + this.system.Version.revision;
|
|
184
|
-
switch (this.system.Version.minor) {
|
|
185
|
-
case 0:
|
|
186
|
-
this.system.Version.name = "Cheetah";
|
|
187
|
-
break;
|
|
188
|
-
case 1:
|
|
189
|
-
this.system.Version.name = "Puma";
|
|
190
|
-
break;
|
|
191
|
-
case 2:
|
|
192
|
-
this.system.Version.name = "Jaguar";
|
|
193
|
-
break;
|
|
194
|
-
case 3:
|
|
195
|
-
this.system.Version.name = "Panther";
|
|
196
|
-
break;
|
|
197
|
-
case 4:
|
|
198
|
-
this.system.Version.name = "Tiger";
|
|
199
|
-
break;
|
|
200
|
-
case 5:
|
|
201
|
-
this.system.Version.name = "Leopard";
|
|
202
|
-
break;
|
|
203
|
-
case 6:
|
|
204
|
-
this.system.Version.name = "Snow Leopard";
|
|
205
|
-
break;
|
|
206
|
-
case 7:
|
|
207
|
-
this.system.Version.name = "Lion";
|
|
208
|
-
break;
|
|
209
|
-
case 8:
|
|
210
|
-
this.system.Version.name = "Mountain Lion";
|
|
211
|
-
break;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
parseWindowsVersion(userAgentString) {
|
|
216
|
-
this.system.Version = {};
|
|
217
|
-
if (/NT (\d+)\.(\d*)/.test(userAgentString)) {
|
|
218
|
-
this.system.Version.major = Number(RegExp.$1);
|
|
219
|
-
this.system.Version.minor = Number(RegExp.$2);
|
|
220
|
-
this.system.Version.revision = 0; // Solo por compatibilidad
|
|
221
|
-
this.system.Version.stringValue = "NT " + this.system.Version.major + "." + this.system.Version.minor;
|
|
222
|
-
var major = this.system.Version.major;
|
|
223
|
-
var minor = this.system.Version.minor;
|
|
224
|
-
var name = 'undefined';
|
|
225
|
-
if (major==5) {
|
|
226
|
-
if (minor==0) this.system.Version.name = '2000';
|
|
227
|
-
else this.system.Version.name = 'XP';
|
|
228
|
-
}
|
|
229
|
-
else if (major==6) {
|
|
230
|
-
if (minor==0) this.system.Version.name = 'Vista';
|
|
231
|
-
else if (minor==1) this.system.Version.name = '7';
|
|
232
|
-
else if (minor==2) this.system.Version.name = '8';
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
else {
|
|
236
|
-
this.system.Version.major = 0;
|
|
237
|
-
this.system.Version.minor = 0;
|
|
238
|
-
this.system.Version.name = "Unknown";
|
|
239
|
-
this.system.Version.stringValue = "Unknown";
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
parseLinuxVersion(userAgentString) {
|
|
244
|
-
this.system.Version = {};
|
|
245
|
-
this.system.Version.major = 0;
|
|
246
|
-
this.system.Version.minor = 0;
|
|
247
|
-
this.system.Version.revision = 0;
|
|
248
|
-
this.system.Version.name = "";
|
|
249
|
-
this.system.Version.stringValue = "Unknown distribution";
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
parseIOSVersion(userAgentString) {
|
|
253
|
-
this.system.Version = {};
|
|
254
|
-
if (/iPhone OS (\d+)_(\d+)_*(\d*)/i.test(userAgentString)) {
|
|
255
|
-
this.system.Version.major = Number(RegExp.$1);
|
|
256
|
-
this.system.Version.minor = Number(RegExp.$2);
|
|
257
|
-
this.system.Version.revision = (RegExp.$3) ? Number(RegExp.$3):0;
|
|
258
|
-
this.system.Version.stringValue = this.system.Version.major + "." + this.system.Version.minor + '.' + this.system.Version.revision;
|
|
259
|
-
this.system.Version.name = "iOS";
|
|
260
|
-
}
|
|
261
|
-
else {
|
|
262
|
-
this.system.Version.major = 0;
|
|
263
|
-
this.system.Version.minor = 0;
|
|
264
|
-
this.system.Version.name = "Unknown";
|
|
265
|
-
this.system.Version.stringValue = "Unknown";
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
parseAndroidVersion(userAgentString) {
|
|
270
|
-
this.system.Version = {};
|
|
271
|
-
if (/Android (\d+)\.(\d+)\.*(\d*)/.test(userAgentString)) {
|
|
272
|
-
this.system.Version.major = Number(RegExp.$1);
|
|
273
|
-
this.system.Version.minor = Number(RegExp.$2);
|
|
274
|
-
this.system.Version.revision = (RegExp.$3) ? Number(RegExp.$3):0;
|
|
275
|
-
this.system.Version.stringValue = this.system.Version.major + "." + this.system.Version.minor + '.' + this.system.Version.revision;
|
|
276
|
-
}
|
|
277
|
-
else {
|
|
278
|
-
this.system.Version.major = 0;
|
|
279
|
-
this.system.Version.minor = 0;
|
|
280
|
-
this.system.Version.revision = 0;
|
|
281
|
-
}
|
|
282
|
-
if (/Build\/([a-zA-Z]+)/.test(userAgentString)) {
|
|
283
|
-
this.system.Version.name = RegExp.$1;
|
|
284
|
-
}
|
|
285
|
-
else {
|
|
286
|
-
this.system.Version.name = "Unknown version";
|
|
287
|
-
}
|
|
288
|
-
this.system.Version.stringValue = this.system.Version.major + "." + this.system.Version.minor + '.' + this.system.Version.revision;
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
getInfoString() {
|
|
292
|
-
return navigator.userAgent;
|
|
293
|
-
}
|
|
294
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import ResourceProvider from "./ResourceProvider.js";
|
|
3
|
-
|
|
4
|
-
const g_preventVideoDump = [];
|
|
5
|
-
|
|
6
|
-
const beginLoadVideo = (video) => {
|
|
7
|
-
if (g_preventVideoDump.indexOf(video) === -1) {
|
|
8
|
-
g_preventVideoDump.push(video);
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
const endLoadVideo = (video) => {
|
|
13
|
-
const i = g_preventVideoDump.indexOf(video);
|
|
14
|
-
if (i !== -1) {
|
|
15
|
-
g_preventVideoDump.splice(i, 1);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
const loadVideo = (url) => {
|
|
20
|
-
return new Promise((resolve,reject) => {
|
|
21
|
-
const video = document.createElement("video");
|
|
22
|
-
beginLoadVideo(video);
|
|
23
|
-
video.crossOrigin = "";
|
|
24
|
-
video.autoplay = true;
|
|
25
|
-
video.setAttribute("playsinline", null);
|
|
26
|
-
video.addEventListener("canplay", evt => {
|
|
27
|
-
endLoadVideo(evt.target);
|
|
28
|
-
resolve(evt.target);
|
|
29
|
-
});
|
|
30
|
-
video.addEventListener("error", evt => {
|
|
31
|
-
endLoadVideo(evt.target);
|
|
32
|
-
reject(new Error(`Error loading video ${ url }`));
|
|
33
|
-
});
|
|
34
|
-
video.addEventListener("abort", evt => {
|
|
35
|
-
endLoadVideo(evt.target);
|
|
36
|
-
reject(new Error(`Video load aborted '${ url }'`));
|
|
37
|
-
});
|
|
38
|
-
video.src = url;
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export default class VideoResourceProvider extends ResourceProvider {
|
|
43
|
-
async load(url) {
|
|
44
|
-
const video = await loadVideo(url);
|
|
45
|
-
return video;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
async write(url,data) {
|
|
49
|
-
throw new Error("VideoResourceProvider.write(): not supported");
|
|
50
|
-
}
|
|
51
|
-
}
|
package/tools/WriteStrategy.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
export default class WriteStrategy {
|
|
3
|
-
async writeBytes(path, data) {
|
|
4
|
-
throw new Error("WriteStrategy: writeBytes() not implemented");
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
async writeImage(path, img) {
|
|
8
|
-
throw new Error("WriteStrategy: writeImage() not implemented");
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
async writeText(path, data) {
|
|
12
|
-
throw new Error("WriteStrategy: writeText() not implemented");
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
async writeJson(path, object) {
|
|
16
|
-
throw new Error("WriteStrategy: writeJson() not implemented");
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
async copyFile(srcPath, dstPath) {
|
|
20
|
-
throw new Error("WriteStrategy: copyFile() not implemented");
|
|
21
|
-
}
|
|
22
|
-
}
|
package/tools/base64.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { isNode, isBrowserOrElectronRenderer } from "./processType";
|
|
2
|
-
|
|
3
|
-
export const base64ToArrayBuffer = async (base64) => {
|
|
4
|
-
if (isBrowserOrElectronRenderer()) {
|
|
5
|
-
return new Uint8Array(atob(base64).split('').map(c => c.charCodeAt(0)));
|
|
6
|
-
}
|
|
7
|
-
else if (isNode()) {
|
|
8
|
-
const Buffer = await import('buffer');
|
|
9
|
-
return Buffer.atob(base64).split('').map(c => c.charCodeAt(0));
|
|
10
|
-
}
|
|
11
|
-
else {
|
|
12
|
-
throw new Error("base64ToArrayBuffer: Unsupported platform. Valid platforms are NodeJS, Browser or ElectronRenderer");
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
|
package/tools/crypto.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
!function(r){function n(r){for(var n="",t="",o=0,e=0,a=0,i=r.length;i>a;a++){var f=r.charCodeAt(a);128>f?e++:(t=2048>f?String.fromCharCode(f>>6|192,63&f|128):String.fromCharCode(f>>12|224,f>>6&63|128,63&f|128),e>o&&(n+=r.slice(o,e)),n+=t,o=e=a+1)}return e>o&&(n+=r.slice(o,i)),n}function t(r){var n,t;if(r+="",s=!1,v=w=r.length,w>63){for(o(r.substring(0,64)),i(A),s=!0,n=128;w>=n;n+=64)o(r.substring(n-64,n)),f(A);r=r.substring(n-64),w=r.length}for(d[0]=d[1]=d[2]=d[3]=d[4]=d[5]=d[6]=d[7]=d[8]=d[9]=d[10]=d[11]=d[12]=d[13]=d[14]=d[15]=0,n=0;w>n;n++)t=3&n,0===t?d[n>>2]=r.charCodeAt(n):d[n>>2]|=r.charCodeAt(n)<<C[t];return d[n>>2]|=h[3&n],n>55?(s?f(d):(i(d),s=!0),f([0,0,0,0,0,0,0,0,0,0,0,0,0,0,v<<3,0])):(d[14]=v<<3,void(s?f(d):i(d)))}function o(r){for(var n=16;n--;){var t=n<<2;A[n]=r.charCodeAt(t)+(r.charCodeAt(t+1)<<8)+(r.charCodeAt(t+2)<<16)+(r.charCodeAt(t+3)<<24)}}function e(r,o,e){t(o?r:n(r));var a=g[0];return u[1]=l[15&a],u[0]=l[15&(a>>=4)],u[3]=l[15&(a>>=4)],u[2]=l[15&(a>>=4)],u[5]=l[15&(a>>=4)],u[4]=l[15&(a>>=4)],u[7]=l[15&(a>>=4)],u[6]=l[15&(a>>=4)],a=g[1],u[9]=l[15&a],u[8]=l[15&(a>>=4)],u[11]=l[15&(a>>=4)],u[10]=l[15&(a>>=4)],u[13]=l[15&(a>>=4)],u[12]=l[15&(a>>=4)],u[15]=l[15&(a>>=4)],u[14]=l[15&(a>>=4)],a=g[2],u[17]=l[15&a],u[16]=l[15&(a>>=4)],u[19]=l[15&(a>>=4)],u[18]=l[15&(a>>=4)],u[21]=l[15&(a>>=4)],u[20]=l[15&(a>>=4)],u[23]=l[15&(a>>=4)],u[22]=l[15&(a>>=4)],a=g[3],u[25]=l[15&a],u[24]=l[15&(a>>=4)],u[27]=l[15&(a>>=4)],u[26]=l[15&(a>>=4)],u[29]=l[15&(a>>=4)],u[28]=l[15&(a>>=4)],u[31]=l[15&(a>>=4)],u[30]=l[15&(a>>=4)],e?u:u.join("")}function a(r,n,t,o,e,a,i){return n+=r+o+i,(n<<e|n>>>a)+t<<0}function i(r){c(0,0,0,0,r),g[0]=y[0]+1732584193<<0,g[1]=y[1]-271733879<<0,g[2]=y[2]-1732584194<<0,g[3]=y[3]+271733878<<0}function f(r){c(g[0],g[1],g[2],g[3],r),g[0]=y[0]+g[0]<<0,g[1]=y[1]+g[1]<<0,g[2]=y[2]+g[2]<<0,g[3]=y[3]+g[3]<<0}function c(r,n,t,o,e){var i,f;s?(r=a((t^o)&n^o,r,n,e[0],7,25,-680876936),o=a((n^t)&r^t,o,r,e[1],12,20,-389564586),t=a((r^n)&o^n,t,o,e[2],17,15,606105819),n=a((o^r)&t^r,n,t,e[3],22,10,-1044525330)):(r=e[0]-680876937,r=(r<<7|r>>>25)-271733879<<0,o=e[1]-117830708+(2004318071&r^-1732584194),o=(o<<12|o>>>20)+r<<0,t=e[2]-1126478375+((-271733879^r)&o^-271733879),t=(t<<17|t>>>15)+o<<0,n=e[3]-1316259209+((o^r)&t^r),n=(n<<22|n>>>10)+t<<0),r=a((t^o)&n^o,r,n,e[4],7,25,-176418897),o=a((n^t)&r^t,o,r,e[5],12,20,1200080426),t=a((r^n)&o^n,t,o,e[6],17,15,-1473231341),n=a((o^r)&t^r,n,t,e[7],22,10,-45705983),r=a((t^o)&n^o,r,n,e[8],7,25,1770035416),o=a((n^t)&r^t,o,r,e[9],12,20,-1958414417),t=a((r^n)&o^n,t,o,e[10],17,15,-42063),n=a((o^r)&t^r,n,t,e[11],22,10,-1990404162),r=a((t^o)&n^o,r,n,e[12],7,25,1804603682),o=a((n^t)&r^t,o,r,e[13],12,20,-40341101),t=a((r^n)&o^n,t,o,e[14],17,15,-1502002290),n=a((o^r)&t^r,n,t,e[15],22,10,1236535329),r=a((n^t)&o^t,r,n,e[1],5,27,-165796510),o=a((r^n)&t^n,o,r,e[6],9,23,-1069501632),t=a((o^r)&n^r,t,o,e[11],14,18,643717713),n=a((t^o)&r^o,n,t,e[0],20,12,-373897302),r=a((n^t)&o^t,r,n,e[5],5,27,-701558691),o=a((r^n)&t^n,o,r,e[10],9,23,38016083),t=a((o^r)&n^r,t,o,e[15],14,18,-660478335),n=a((t^o)&r^o,n,t,e[4],20,12,-405537848),r=a((n^t)&o^t,r,n,e[9],5,27,568446438),o=a((r^n)&t^n,o,r,e[14],9,23,-1019803690),t=a((o^r)&n^r,t,o,e[3],14,18,-187363961),n=a((t^o)&r^o,n,t,e[8],20,12,1163531501),r=a((n^t)&o^t,r,n,e[13],5,27,-1444681467),o=a((r^n)&t^n,o,r,e[2],9,23,-51403784),t=a((o^r)&n^r,t,o,e[7],14,18,1735328473),n=a((t^o)&r^o,n,t,e[12],20,12,-1926607734),i=n^t,r=a(i^o,r,n,e[5],4,28,-378558),o=a(i^r,o,r,e[8],11,21,-2022574463),f=o^r,t=a(f^n,t,o,e[11],16,16,1839030562),n=a(f^t,n,t,e[14],23,9,-35309556),i=n^t,r=a(i^o,r,n,e[1],4,28,-1530992060),o=a(i^r,o,r,e[4],11,21,1272893353),f=o^r,t=a(f^n,t,o,e[7],16,16,-155497632),n=a(f^t,n,t,e[10],23,9,-1094730640),i=n^t,r=a(i^o,r,n,e[13],4,28,681279174),o=a(i^r,o,r,e[0],11,21,-358537222),f=o^r,t=a(f^n,t,o,e[3],16,16,-722521979),n=a(f^t,n,t,e[6],23,9,76029189),i=n^t,r=a(i^o,r,n,e[9],4,28,-640364487),o=a(i^r,o,r,e[12],11,21,-421815835),f=o^r,t=a(f^n,t,o,e[15],16,16,530742520),n=a(f^t,n,t,e[2],23,9,-995338651),r=a(t^(n|~o),r,n,e[0],6,26,-198630844),o=a(n^(r|~t),o,r,e[7],10,22,1126891415),t=a(r^(o|~n),t,o,e[14],15,17,-1416354905),n=a(o^(t|~r),n,t,e[5],21,11,-57434055),r=a(t^(n|~o),r,n,e[12],6,26,1700485571),o=a(n^(r|~t),o,r,e[3],10,22,-1894986606),t=a(r^(o|~n),t,o,e[10],15,17,-1051523),n=a(o^(t|~r),n,t,e[1],21,11,-2054922799),r=a(t^(n|~o),r,n,e[8],6,26,1873313359),o=a(n^(r|~t),o,r,e[15],10,22,-30611744),t=a(r^(o|~n),t,o,e[6],15,17,-1560198380),n=a(o^(t|~r),n,t,e[13],21,11,1309151649),r=a(t^(n|~o),r,n,e[4],6,26,-145523070),o=a(n^(r|~t),o,r,e[11],10,22,-1120210379),t=a(r^(o|~n),t,o,e[2],15,17,718787259),n=a(o^(t|~r),n,t,e[9],21,11,-343485551),y[0]=r,y[1]=n,y[2]=t,y[3]=o}var u=[],d=[],A=[],h=[],l="0123456789abcdef".split(""),C=[],g=[],s=!1,v=0,w=0,y=[];if(r.Int32Array)d=new Int32Array(16),A=new Int32Array(16),h=new Int32Array(4),C=new Int32Array(4),g=new Int32Array(4),y=new Int32Array(4);else{var I;for(I=0;16>I;I++)d[I]=A[I]=0;for(I=0;4>I;I++)h[I]=C[I]=g[I]=y[I]=0}h[0]=128,h[1]=32768,h[2]=8388608,h[3]=-2147483648,C[0]=0,C[1]=8,C[2]=16,C[3]=24,r.md5=r.md5||e}("undefined"==typeof global?window:global);
|
|
2
|
-
|
|
3
|
-
export const generateMD5 = (data) => md5(data);
|
|
4
|
-
|
|
5
|
-
export const generateUUID = () => {
|
|
6
|
-
let d = new Date().getTime();
|
|
7
|
-
if (typeof performance !== 'undefined' && typeof performance.now === 'function'){
|
|
8
|
-
d += performance.now(); //use high-precision timer if available
|
|
9
|
-
}
|
|
10
|
-
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
|
11
|
-
var r = (d + Math.random() * 16) % 16 | 0;
|
|
12
|
-
d = Math.floor(d / 16);
|
|
13
|
-
return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
|
|
14
|
-
});
|
|
15
|
-
}
|
package/tools/endiantess.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
export const isBigEndian = () => {
|
|
3
|
-
let arr32 = new Uint32Array(1);
|
|
4
|
-
let arr8 = new Uint8Array(arr32.buffer);
|
|
5
|
-
arr32[0] = 255;
|
|
6
|
-
return arr32[3]==255;
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
export const isLittleEndian = () => {
|
|
10
|
-
let arr32 = new Uint32Array(1);
|
|
11
|
-
let arr8 = new Uint8Array(arr32.buffer);
|
|
12
|
-
arr32[0] = 255;
|
|
13
|
-
return arr32[0]==255;
|
|
14
|
-
};
|
|
15
|
-
|
package/tools/image.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { generateMD5 } from '../tools/crypto';
|
|
2
|
-
|
|
3
|
-
export const imageToBase64 = (image, format = 'image/jpeg') => {
|
|
4
|
-
const canvas = document.createElement('canvas');
|
|
5
|
-
const ctx = canvas.getContext('2d');
|
|
6
|
-
canvas.height = image.naturalHeight;
|
|
7
|
-
canvas.width = image.naturalWidth;
|
|
8
|
-
ctx.drawImage(image, 0, 0);
|
|
9
|
-
return canvas.toDataURL(format);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export const generateImageHash = (image) => {
|
|
13
|
-
const base64 = imageToBase64(image);
|
|
14
|
-
return generateMD5(base64);
|
|
15
|
-
}
|