bg2e-js 2.3.1 → 2.3.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 +326 -326
- package/dist/bg2e-js.js.map +1 -1
- package/package.json +56 -56
- package/src/app/AppController.ts +39 -39
- package/src/app/Bg2KeyboardEvent.ts +54 -54
- package/src/app/Bg2MouseEvent.ts +82 -82
- package/src/app/Bg2TouchEvent.ts +18 -18
- package/src/app/Canvas.ts +108 -108
- package/src/app/EventBase.ts +10 -10
- package/src/app/MainLoop.ts +273 -273
- package/src/app/index.ts +24 -24
- package/src/base/Color.ts +134 -134
- package/src/base/Environment.ts +183 -183
- package/src/base/Light.ts +192 -192
- package/src/base/Material.ts +620 -620
- package/src/base/PolyList.ts +365 -365
- package/src/base/Texture.ts +620 -620
- package/src/base/index.ts +81 -81
- package/src/db/Bg2LoaderPlugin.ts +143 -143
- package/src/db/DBPluginApi.ts +48 -48
- package/src/db/Loader.ts +116 -116
- package/src/db/LoaderPlugin.ts +34 -34
- package/src/db/MtlParser.ts +7 -7
- package/src/db/ObjLoaderPlugin.ts +54 -54
- package/src/db/ObjParser.ts +252 -252
- package/src/db/ObjWriterPlugin.ts +18 -18
- package/src/db/VitscnjLoaderPlugin.ts +112 -112
- package/src/db/Writer.ts +52 -52
- package/src/db/WriterPlugin.ts +22 -22
- package/src/db/index.ts +44 -44
- package/src/debug/DebugRenderer.ts +173 -173
- package/src/debug/WebGLTextureViewer.ts +75 -75
- package/src/debug/index.ts +6 -6
- package/src/index.html +11 -11
- package/src/index.ts +33 -33
- package/src/manipulation/SelectionBuffer.ts +82 -82
- package/src/manipulation/SelectionHighlight.ts +85 -85
- package/src/manipulation/SelectionIdAssignVisitor.ts +96 -96
- package/src/manipulation/SelectionManager.ts +166 -166
- package/src/manipulation/SelectionMode.ts +6 -6
- package/src/math/Mat3.ts +259 -259
- package/src/math/Mat4.ts +710 -710
- package/src/math/MatrixStrategy.ts +25 -25
- package/src/math/Quat.ts +65 -65
- package/src/math/Vec.ts +753 -753
- package/src/math/constants.ts +46 -46
- package/src/math/functions.ts +103 -103
- package/src/math/index.ts +74 -74
- package/src/phsics/joint.ts +137 -137
- package/src/primitives/arrow.ts +57 -57
- package/src/primitives/cone.ts +138 -138
- package/src/primitives/cube.ts +60 -60
- package/src/primitives/cylinder.ts +216 -216
- package/src/primitives/index.ts +13 -13
- package/src/primitives/plane.ts +31 -31
- package/src/primitives/sphere.ts +809 -809
- package/src/react/useBg2e.ts +75 -70
- package/src/render/BRDFIntegrationMap.ts +4 -4
- package/src/render/Environment.ts +135 -135
- package/src/render/FrameBuffer.ts +35 -35
- package/src/render/MaterialRenderer.ts +34 -34
- package/src/render/Pipeline.ts +108 -108
- package/src/render/PolyListRenderer.ts +47 -47
- package/src/render/RenderBuffer.ts +197 -197
- package/src/render/RenderQueue.ts +198 -198
- package/src/render/RenderState.ts +116 -116
- package/src/render/Renderer.ts +248 -248
- package/src/render/SceneAppController.ts +247 -247
- package/src/render/SceneRenderer.ts +372 -372
- package/src/render/Shader.ts +32 -32
- package/src/render/ShadowRenderer.ts +176 -176
- package/src/render/SkyCube.ts +105 -105
- package/src/render/SkySphere.ts +117 -117
- package/src/render/TextureMergerRenderer.ts +70 -70
- package/src/render/TextureRenderer.ts +34 -34
- package/src/render/index.ts +67 -67
- package/src/render/webgl/FrameBuffer.ts +9 -9
- package/src/render/webgl/MaterialRenderer.ts +112 -112
- package/src/render/webgl/Pipeline.ts +88 -88
- package/src/render/webgl/PolyListRenderer.ts +260 -260
- package/src/render/webgl/RenderBuffer.ts +226 -226
- package/src/render/webgl/Renderer.ts +262 -262
- package/src/render/webgl/SceneRenderer.ts +67 -67
- package/src/render/webgl/ShaderProgram.ts +424 -424
- package/src/render/webgl/ShadowRenderer.ts +6 -6
- package/src/render/webgl/SkyCube.ts +15 -15
- package/src/render/webgl/SkySphere.ts +15 -15
- package/src/render/webgl/State.ts +152 -152
- package/src/render/webgl/TextureRenderer.ts +167 -167
- package/src/render/webgl/VertexBuffer.ts +137 -137
- package/src/render/webgl/index.ts +35 -35
- package/src/scene/Camera.ts +458 -458
- package/src/scene/Chain.ts +44 -44
- package/src/scene/ChainJoint.ts +58 -58
- package/src/scene/Component.ts +173 -173
- package/src/scene/ComponentMap.ts +106 -106
- package/src/scene/Drawable.ts +154 -154
- package/src/scene/EnvironmentComponent.ts +141 -141
- package/src/scene/FindNodeVisitor.ts +59 -59
- package/src/scene/LightComponent.ts +154 -154
- package/src/scene/MatrixState.ts +46 -46
- package/src/scene/Node.ts +314 -314
- package/src/scene/NodeVisitor.ts +15 -15
- package/src/scene/OrbitCameraController.ts +450 -450
- package/src/scene/SmoothOrbitCameraController.ts +99 -99
- package/src/scene/Transform.ts +73 -73
- package/src/scene/index.ts +60 -60
- package/src/shaders/BasicDiffuseColorShader.ts +111 -111
- package/src/shaders/BasicPBRLightShader.ts +276 -276
- package/src/shaders/DebugRenderShader.ts +97 -97
- package/src/shaders/DepthRenderShader.ts +127 -127
- package/src/shaders/IrradianceMapCubeShader.ts +115 -115
- package/src/shaders/PBRLightIBLShader.ts +486 -486
- package/src/shaders/PickSelectionShader.ts +101 -101
- package/src/shaders/PresentDebugFramebufferShader.ts +118 -118
- package/src/shaders/PresentTextureShader.ts +99 -99
- package/src/shaders/SelectionHighlightShader.ts +127 -127
- package/src/shaders/ShaderFunction.ts +318 -318
- package/src/shaders/SkyCubeShader.ts +93 -93
- package/src/shaders/SkySphereShader.ts +102 -102
- package/src/shaders/SpecularMapCubeShader.ts +164 -164
- package/src/shaders/TextureMergerShader.ts +171 -171
- package/src/shaders/index.ts +36 -36
- package/src/shaders/webgl/color_correction.glsl +47 -47
- package/src/shaders/webgl/constants.glsl +6 -6
- package/src/shaders/webgl/index.ts +70 -70
- package/src/shaders/webgl/normal_map.glsl +9 -9
- package/src/shaders/webgl/pbr.glsl +173 -173
- package/src/shaders/webgl/uniforms.glsl +91 -91
- package/src/shaders/webgl_shader_lib.ts +213 -213
- package/src/tools/BinaryResourceProvider.ts +14 -14
- package/src/tools/ImageResourceProvider.ts +66 -66
- package/src/tools/MaterialModifier.ts +446 -446
- package/src/tools/Resource.ts +203 -203
- package/src/tools/ResourceProvider.ts +69 -69
- package/src/tools/TextResourceProvider.ts +24 -24
- package/src/tools/TextureCache.ts +51 -51
- package/src/tools/TextureResourceDatabase.ts +100 -100
- package/src/tools/UserAgent.ts +362 -362
- package/src/tools/VideoResourceProvider.ts +50 -50
- package/src/tools/WriteStrategy.ts +22 -22
- package/src/tools/base64.ts +11 -11
- package/src/tools/crypto.ts +19 -19
- package/src/tools/endiantess.ts +13 -13
- package/src/tools/image.ts +18 -18
- package/src/tools/index.ts +41 -41
- package/src/tools/processType.ts +39 -39
- package/src/vite-env.d.ts +12 -12
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
import ResourceProvider from "./ResourceProvider";
|
|
2
|
-
|
|
3
|
-
const g_preventVideoDump: HTMLVideoElement[] = [];
|
|
4
|
-
|
|
5
|
-
const beginLoadVideo = (video: HTMLVideoElement): void => {
|
|
6
|
-
if (g_preventVideoDump.indexOf(video) === -1) {
|
|
7
|
-
g_preventVideoDump.push(video);
|
|
8
|
-
}
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
const endLoadVideo = (video: HTMLVideoElement): void => {
|
|
12
|
-
const i = g_preventVideoDump.indexOf(video);
|
|
13
|
-
if (i !== -1) {
|
|
14
|
-
g_preventVideoDump.splice(i, 1);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const loadVideo = (url: string): Promise<HTMLVideoElement> => {
|
|
19
|
-
return new Promise((resolve, reject) => {
|
|
20
|
-
const video = document.createElement("video");
|
|
21
|
-
beginLoadVideo(video);
|
|
22
|
-
video.crossOrigin = "";
|
|
23
|
-
video.autoplay = true;
|
|
24
|
-
video.setAttribute("playsinline", "");
|
|
25
|
-
video.addEventListener("canplay", evt => {
|
|
26
|
-
endLoadVideo(evt.target as HTMLVideoElement);
|
|
27
|
-
resolve(evt.target as HTMLVideoElement);
|
|
28
|
-
});
|
|
29
|
-
video.addEventListener("error", evt => {
|
|
30
|
-
endLoadVideo(evt.target as HTMLVideoElement);
|
|
31
|
-
reject(new Error(`Error loading video ${ url }`));
|
|
32
|
-
});
|
|
33
|
-
video.addEventListener("abort", evt => {
|
|
34
|
-
endLoadVideo(evt.target as HTMLVideoElement);
|
|
35
|
-
reject(new Error(`Video load aborted '${ url }'`));
|
|
36
|
-
});
|
|
37
|
-
video.src = url;
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export default class VideoResourceProvider extends ResourceProvider {
|
|
42
|
-
async load(url: string): Promise<HTMLVideoElement> {
|
|
43
|
-
const video = await loadVideo(url);
|
|
44
|
-
return video;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
async write(url: string, data: any): Promise<void> {
|
|
48
|
-
throw new Error("VideoResourceProvider.write(): not supported");
|
|
49
|
-
}
|
|
50
|
-
}
|
|
1
|
+
import ResourceProvider from "./ResourceProvider";
|
|
2
|
+
|
|
3
|
+
const g_preventVideoDump: HTMLVideoElement[] = [];
|
|
4
|
+
|
|
5
|
+
const beginLoadVideo = (video: HTMLVideoElement): void => {
|
|
6
|
+
if (g_preventVideoDump.indexOf(video) === -1) {
|
|
7
|
+
g_preventVideoDump.push(video);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const endLoadVideo = (video: HTMLVideoElement): void => {
|
|
12
|
+
const i = g_preventVideoDump.indexOf(video);
|
|
13
|
+
if (i !== -1) {
|
|
14
|
+
g_preventVideoDump.splice(i, 1);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const loadVideo = (url: string): Promise<HTMLVideoElement> => {
|
|
19
|
+
return new Promise((resolve, reject) => {
|
|
20
|
+
const video = document.createElement("video");
|
|
21
|
+
beginLoadVideo(video);
|
|
22
|
+
video.crossOrigin = "";
|
|
23
|
+
video.autoplay = true;
|
|
24
|
+
video.setAttribute("playsinline", "");
|
|
25
|
+
video.addEventListener("canplay", evt => {
|
|
26
|
+
endLoadVideo(evt.target as HTMLVideoElement);
|
|
27
|
+
resolve(evt.target as HTMLVideoElement);
|
|
28
|
+
});
|
|
29
|
+
video.addEventListener("error", evt => {
|
|
30
|
+
endLoadVideo(evt.target as HTMLVideoElement);
|
|
31
|
+
reject(new Error(`Error loading video ${ url }`));
|
|
32
|
+
});
|
|
33
|
+
video.addEventListener("abort", evt => {
|
|
34
|
+
endLoadVideo(evt.target as HTMLVideoElement);
|
|
35
|
+
reject(new Error(`Video load aborted '${ url }'`));
|
|
36
|
+
});
|
|
37
|
+
video.src = url;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export default class VideoResourceProvider extends ResourceProvider {
|
|
42
|
+
async load(url: string): Promise<HTMLVideoElement> {
|
|
43
|
+
const video = await loadVideo(url);
|
|
44
|
+
return video;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
async write(url: string, data: any): Promise<void> {
|
|
48
|
+
throw new Error("VideoResourceProvider.write(): not supported");
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
export default class WriteStrategy {
|
|
3
|
-
async writeBytes(path: string, data: ArrayBuffer): Promise<void> {
|
|
4
|
-
throw new Error("WriteStrategy: writeBytes() not implemented");
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
async writeImage(path: string, img: HTMLImageElement | ImageData): Promise<void> {
|
|
8
|
-
throw new Error("WriteStrategy: writeImage() not implemented");
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
async writeText(path: string, data: string): Promise<void> {
|
|
12
|
-
throw new Error("WriteStrategy: writeText() not implemented");
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
async writeJson(path: string, object: any): Promise<void> {
|
|
16
|
-
throw new Error("WriteStrategy: writeJson() not implemented");
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
async copyFile(srcPath: string, dstPath: string): Promise<void> {
|
|
20
|
-
throw new Error("WriteStrategy: copyFile() not implemented");
|
|
21
|
-
}
|
|
22
|
-
}
|
|
1
|
+
|
|
2
|
+
export default class WriteStrategy {
|
|
3
|
+
async writeBytes(path: string, data: ArrayBuffer): Promise<void> {
|
|
4
|
+
throw new Error("WriteStrategy: writeBytes() not implemented");
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
async writeImage(path: string, img: HTMLImageElement | ImageData): Promise<void> {
|
|
8
|
+
throw new Error("WriteStrategy: writeImage() not implemented");
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
async writeText(path: string, data: string): Promise<void> {
|
|
12
|
+
throw new Error("WriteStrategy: writeText() not implemented");
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
async writeJson(path: string, object: any): Promise<void> {
|
|
16
|
+
throw new Error("WriteStrategy: writeJson() not implemented");
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async copyFile(srcPath: string, dstPath: string): Promise<void> {
|
|
20
|
+
throw new Error("WriteStrategy: copyFile() not implemented");
|
|
21
|
+
}
|
|
22
|
+
}
|
package/src/tools/base64.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { isNode, isBrowser } from "./processType";
|
|
2
|
-
|
|
3
|
-
export const base64ToArrayBuffer = async (base64: string) : Promise<Uint8Array> => {
|
|
4
|
-
if (isBrowser() || isNode()) {
|
|
5
|
-
return new Uint8Array(atob(base64).split('').map(c => c.charCodeAt(0)));
|
|
6
|
-
}
|
|
7
|
-
else {
|
|
8
|
-
throw new Error("base64ToArrayBuffer: Unsupported platform. Valid platforms are NodeJS or Browser");
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
|
|
1
|
+
import { isNode, isBrowser } from "./processType";
|
|
2
|
+
|
|
3
|
+
export const base64ToArrayBuffer = async (base64: string) : Promise<Uint8Array> => {
|
|
4
|
+
if (isBrowser() || isNode()) {
|
|
5
|
+
return new Uint8Array(atob(base64).split('').map(c => c.charCodeAt(0)));
|
|
6
|
+
}
|
|
7
|
+
else {
|
|
8
|
+
throw new Error("base64ToArrayBuffer: Unsupported platform. Valid platforms are NodeJS or Browser");
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
package/src/tools/crypto.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
// @ts-ignore
|
|
2
|
-
!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);
|
|
3
|
-
|
|
4
|
-
export const generateMD5 = (data: string) => {
|
|
5
|
-
// @ts-ignore
|
|
6
|
-
return md5(data);
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export const generateUUID = () => {
|
|
10
|
-
let d = new Date().getTime();
|
|
11
|
-
if (typeof performance !== 'undefined' && typeof performance.now === 'function'){
|
|
12
|
-
d += performance.now(); //use high-precision timer if available
|
|
13
|
-
}
|
|
14
|
-
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
|
15
|
-
var r = (d + Math.random() * 16) % 16 | 0;
|
|
16
|
-
d = Math.floor(d / 16);
|
|
17
|
-
return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
|
|
18
|
-
});
|
|
19
|
-
}
|
|
1
|
+
// @ts-ignore
|
|
2
|
+
!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);
|
|
3
|
+
|
|
4
|
+
export const generateMD5 = (data: string) => {
|
|
5
|
+
// @ts-ignore
|
|
6
|
+
return md5(data);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const generateUUID = () => {
|
|
10
|
+
let d = new Date().getTime();
|
|
11
|
+
if (typeof performance !== 'undefined' && typeof performance.now === 'function'){
|
|
12
|
+
d += performance.now(); //use high-precision timer if available
|
|
13
|
+
}
|
|
14
|
+
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
|
15
|
+
var r = (d + Math.random() * 16) % 16 | 0;
|
|
16
|
+
d = Math.floor(d / 16);
|
|
17
|
+
return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
|
|
18
|
+
});
|
|
19
|
+
}
|
package/src/tools/endiantess.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
export const isBigEndian = (): boolean => {
|
|
3
|
-
const arr32 = new Uint32Array(1);
|
|
4
|
-
arr32[0] = 255;
|
|
5
|
-
return arr32[3] === 255;
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
export const isLittleEndian = (): boolean => {
|
|
9
|
-
const arr32 = new Uint32Array(1);
|
|
10
|
-
arr32[0] = 255;
|
|
11
|
-
return arr32[0] === 255;
|
|
12
|
-
};
|
|
13
|
-
|
|
1
|
+
|
|
2
|
+
export const isBigEndian = (): boolean => {
|
|
3
|
+
const arr32 = new Uint32Array(1);
|
|
4
|
+
arr32[0] = 255;
|
|
5
|
+
return arr32[3] === 255;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export const isLittleEndian = (): boolean => {
|
|
9
|
+
const arr32 = new Uint32Array(1);
|
|
10
|
+
arr32[0] = 255;
|
|
11
|
+
return arr32[0] === 255;
|
|
12
|
+
};
|
|
13
|
+
|
package/src/tools/image.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { generateMD5 } from '../tools/crypto';
|
|
2
|
-
|
|
3
|
-
export const imageToBase64 = (image: HTMLImageElement, 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
|
-
if (ctx === null) {
|
|
9
|
-
throw new Error('Could not get canvas 2D context');
|
|
10
|
-
}
|
|
11
|
-
ctx.drawImage(image, 0, 0);
|
|
12
|
-
return canvas.toDataURL(format);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export const generateImageHash = (image: HTMLImageElement) => {
|
|
16
|
-
const base64 = imageToBase64(image);
|
|
17
|
-
return generateMD5(base64);
|
|
18
|
-
}
|
|
1
|
+
import { generateMD5 } from '../tools/crypto';
|
|
2
|
+
|
|
3
|
+
export const imageToBase64 = (image: HTMLImageElement, 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
|
+
if (ctx === null) {
|
|
9
|
+
throw new Error('Could not get canvas 2D context');
|
|
10
|
+
}
|
|
11
|
+
ctx.drawImage(image, 0, 0);
|
|
12
|
+
return canvas.toDataURL(format);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const generateImageHash = (image: HTMLImageElement) => {
|
|
16
|
+
const base64 = imageToBase64(image);
|
|
17
|
+
return generateMD5(base64);
|
|
18
|
+
}
|
package/src/tools/index.ts
CHANGED
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
import { generateUUID, generateMD5 } from './crypto';
|
|
2
|
-
import { isBigEndian, isLittleEndian } from './endiantess';
|
|
3
|
-
import UserAgent from './UserAgent';
|
|
4
|
-
import Resource, {
|
|
5
|
-
isFormat,
|
|
6
|
-
addFormats,
|
|
7
|
-
isValidImage,
|
|
8
|
-
addImageFormats,
|
|
9
|
-
getValidImageFormats,
|
|
10
|
-
isValidVideo,
|
|
11
|
-
addVideoFormats,
|
|
12
|
-
getValidVideoFormats,
|
|
13
|
-
isValidBinary,
|
|
14
|
-
addBinaryFormats,
|
|
15
|
-
getValidBinaryFormats
|
|
16
|
-
} from './Resource';
|
|
17
|
-
import ResourceProvider from './ResourceProvider';
|
|
18
|
-
import ImageResourceProvider from './ImageResourceProvider';
|
|
19
|
-
import VideoResourceProvider from './VideoResourceProvider';
|
|
20
|
-
import BinaryResourceProvider from './BinaryResourceProvider';
|
|
21
|
-
import TextResourceProvider from './TextResourceProvider';
|
|
22
|
-
import {
|
|
23
|
-
ProcessType,
|
|
24
|
-
ProcessTypeName,
|
|
25
|
-
getProcessType,
|
|
26
|
-
getProcessTypeName,
|
|
27
|
-
isBrowser, isNode
|
|
28
|
-
} from './processType';
|
|
29
|
-
|
|
30
|
-
export default {
|
|
31
|
-
generateUUID, generateMD5,
|
|
32
|
-
isBigEndian, isLittleEndian,
|
|
33
|
-
UserAgent,
|
|
34
|
-
Resource, isFormat, addFormats, isValidImage, addImageFormats, getValidImageFormats, isValidVideo, addVideoFormats, getValidVideoFormats, isValidBinary, addBinaryFormats, getValidBinaryFormats,
|
|
35
|
-
ResourceProvider,
|
|
36
|
-
ImageResourceProvider,
|
|
37
|
-
VideoResourceProvider,
|
|
38
|
-
BinaryResourceProvider,
|
|
39
|
-
TextResourceProvider,
|
|
40
|
-
ProcessType, ProcessTypeName, getProcessType, getProcessTypeName, isBrowser, isNode
|
|
41
|
-
};
|
|
1
|
+
import { generateUUID, generateMD5 } from './crypto';
|
|
2
|
+
import { isBigEndian, isLittleEndian } from './endiantess';
|
|
3
|
+
import UserAgent from './UserAgent';
|
|
4
|
+
import Resource, {
|
|
5
|
+
isFormat,
|
|
6
|
+
addFormats,
|
|
7
|
+
isValidImage,
|
|
8
|
+
addImageFormats,
|
|
9
|
+
getValidImageFormats,
|
|
10
|
+
isValidVideo,
|
|
11
|
+
addVideoFormats,
|
|
12
|
+
getValidVideoFormats,
|
|
13
|
+
isValidBinary,
|
|
14
|
+
addBinaryFormats,
|
|
15
|
+
getValidBinaryFormats
|
|
16
|
+
} from './Resource';
|
|
17
|
+
import ResourceProvider from './ResourceProvider';
|
|
18
|
+
import ImageResourceProvider from './ImageResourceProvider';
|
|
19
|
+
import VideoResourceProvider from './VideoResourceProvider';
|
|
20
|
+
import BinaryResourceProvider from './BinaryResourceProvider';
|
|
21
|
+
import TextResourceProvider from './TextResourceProvider';
|
|
22
|
+
import {
|
|
23
|
+
ProcessType,
|
|
24
|
+
ProcessTypeName,
|
|
25
|
+
getProcessType,
|
|
26
|
+
getProcessTypeName,
|
|
27
|
+
isBrowser, isNode
|
|
28
|
+
} from './processType';
|
|
29
|
+
|
|
30
|
+
export default {
|
|
31
|
+
generateUUID, generateMD5,
|
|
32
|
+
isBigEndian, isLittleEndian,
|
|
33
|
+
UserAgent,
|
|
34
|
+
Resource, isFormat, addFormats, isValidImage, addImageFormats, getValidImageFormats, isValidVideo, addVideoFormats, getValidVideoFormats, isValidBinary, addBinaryFormats, getValidBinaryFormats,
|
|
35
|
+
ResourceProvider,
|
|
36
|
+
ImageResourceProvider,
|
|
37
|
+
VideoResourceProvider,
|
|
38
|
+
BinaryResourceProvider,
|
|
39
|
+
TextResourceProvider,
|
|
40
|
+
ProcessType, ProcessTypeName, getProcessType, getProcessTypeName, isBrowser, isNode
|
|
41
|
+
};
|
package/src/tools/processType.ts
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
export enum ProcessType {
|
|
3
|
-
BROWSER = 0,
|
|
4
|
-
NODE = 1
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
export enum ProcessTypeName {
|
|
8
|
-
BROWSER = "Browser",
|
|
9
|
-
NODE = "Node"
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export const getProcessTypeName = (type: ProcessType): string => {
|
|
13
|
-
switch (type) {
|
|
14
|
-
case ProcessType.BROWSER:
|
|
15
|
-
return ProcessTypeName.BROWSER;
|
|
16
|
-
case ProcessType.NODE:
|
|
17
|
-
return ProcessTypeName.NODE;
|
|
18
|
-
default:
|
|
19
|
-
return ProcessTypeName.BROWSER;
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export const getProcessType = (): ProcessType => {
|
|
24
|
-
// TODO: Node process detection disabled for now
|
|
25
|
-
//if (typeof process !== 'undefined' && process.release.name === 'node') {
|
|
26
|
-
// return ProcessType.NODE;
|
|
27
|
-
//}
|
|
28
|
-
//else {
|
|
29
|
-
return ProcessType.BROWSER;
|
|
30
|
-
//}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export const isBrowser = (): boolean => {
|
|
34
|
-
return getProcessType() === ProcessType.BROWSER;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export const isNode = (): boolean => {
|
|
38
|
-
return getProcessType() === ProcessType.NODE;
|
|
39
|
-
}
|
|
1
|
+
|
|
2
|
+
export enum ProcessType {
|
|
3
|
+
BROWSER = 0,
|
|
4
|
+
NODE = 1
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export enum ProcessTypeName {
|
|
8
|
+
BROWSER = "Browser",
|
|
9
|
+
NODE = "Node"
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const getProcessTypeName = (type: ProcessType): string => {
|
|
13
|
+
switch (type) {
|
|
14
|
+
case ProcessType.BROWSER:
|
|
15
|
+
return ProcessTypeName.BROWSER;
|
|
16
|
+
case ProcessType.NODE:
|
|
17
|
+
return ProcessTypeName.NODE;
|
|
18
|
+
default:
|
|
19
|
+
return ProcessTypeName.BROWSER;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export const getProcessType = (): ProcessType => {
|
|
24
|
+
// TODO: Node process detection disabled for now
|
|
25
|
+
//if (typeof process !== 'undefined' && process.release.name === 'node') {
|
|
26
|
+
// return ProcessType.NODE;
|
|
27
|
+
//}
|
|
28
|
+
//else {
|
|
29
|
+
return ProcessType.BROWSER;
|
|
30
|
+
//}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export const isBrowser = (): boolean => {
|
|
34
|
+
return getProcessType() === ProcessType.BROWSER;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export const isNode = (): boolean => {
|
|
38
|
+
return getProcessType() === ProcessType.NODE;
|
|
39
|
+
}
|
package/src/vite-env.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
declare module '*.glsl?raw' {
|
|
2
|
-
const src: string;
|
|
3
|
-
export default src;
|
|
4
|
-
}
|
|
5
|
-
declare module '*.vert?raw' {
|
|
6
|
-
const src: string;
|
|
7
|
-
export default src;
|
|
8
|
-
}
|
|
9
|
-
declare module '*.frag?raw' {
|
|
10
|
-
const src: string;
|
|
11
|
-
export default src;
|
|
12
|
-
}
|
|
1
|
+
declare module '*.glsl?raw' {
|
|
2
|
+
const src: string;
|
|
3
|
+
export default src;
|
|
4
|
+
}
|
|
5
|
+
declare module '*.vert?raw' {
|
|
6
|
+
const src: string;
|
|
7
|
+
export default src;
|
|
8
|
+
}
|
|
9
|
+
declare module '*.frag?raw' {
|
|
10
|
+
const src: string;
|
|
11
|
+
export default src;
|
|
12
|
+
}
|