@webex/ladon-ts 4.5.0 → 5.0.1

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.
Files changed (49) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/build/module/config.json.js +26 -0
  3. package/build/module/config.json.js.map +1 -0
  4. package/build/module/index.d.ts +3 -0
  5. package/build/module/index.js +41 -8
  6. package/build/module/index.js.map +1 -0
  7. package/build/module/lib/config-builder.d.ts +180 -0
  8. package/build/module/lib/config-builder.js +336 -0
  9. package/build/module/lib/config-builder.js.map +1 -0
  10. package/build/module/lib/config-types.d.ts +98 -0
  11. package/build/module/lib/config-types.js +6 -0
  12. package/build/module/lib/config-types.js.map +1 -0
  13. package/build/module/lib/config.d.ts +30 -105
  14. package/build/module/lib/config.js +22 -151
  15. package/build/module/lib/config.js.map +1 -0
  16. package/build/module/lib/generator.d.ts +3 -1
  17. package/build/module/lib/generator.js +212 -273
  18. package/build/module/lib/generator.js.map +1 -0
  19. package/build/module/lib/pipeline.d.ts +11 -8
  20. package/build/module/lib/pipeline.js +158 -213
  21. package/build/module/lib/pipeline.js.map +1 -0
  22. package/build/module/lib/preload.d.ts +9 -0
  23. package/build/module/lib/preload.js +8 -0
  24. package/build/module/lib/preload.js.map +1 -0
  25. package/build/module/lib/renderer/blur-renderer.d.ts +6 -5
  26. package/build/module/lib/renderer/blur-renderer.js +102 -126
  27. package/build/module/lib/renderer/blur-renderer.js.map +1 -0
  28. package/build/module/lib/renderer/ladon-renderer.d.ts +3 -2
  29. package/build/module/lib/renderer/passthrough-renderer.d.ts +6 -5
  30. package/build/module/lib/renderer/passthrough-renderer.js +25 -44
  31. package/build/module/lib/renderer/passthrough-renderer.js.map +1 -0
  32. package/build/module/lib/renderer/replacement-renderer.d.ts +9 -6
  33. package/build/module/lib/renderer/replacement-renderer.js +84 -99
  34. package/build/module/lib/renderer/replacement-renderer.js.map +1 -0
  35. package/build/module/lib/renderer/webgl-renderer.d.ts +12 -3
  36. package/build/module/lib/renderer/webgl-renderer.js +168 -115
  37. package/build/module/lib/renderer/webgl-renderer.js.map +1 -0
  38. package/build/module/lib/shared-resource-manager.d.ts +40 -31
  39. package/build/module/lib/shared-resource-manager.js +151 -189
  40. package/build/module/lib/shared-resource-manager.js.map +1 -0
  41. package/build/module/lib/util.d.ts +10 -0
  42. package/build/module/lib/util.js +92 -179
  43. package/build/module/lib/util.js.map +1 -0
  44. package/build/module/lib/version.d.ts +1 -1
  45. package/build/module/lib/version.js +5 -2
  46. package/build/module/lib/version.js.map +1 -0
  47. package/package.json +21 -5
  48. package/build/module/lib/renderer/ladon-renderer.js +0 -2
  49. package/build/module/lib/renderer.js +0 -6
@@ -1,179 +1,92 @@
1
- export var InterpolationMethod;
2
- (function (InterpolationMethod) {
3
- InterpolationMethod["Nearest"] = "nearest";
4
- })(InterpolationMethod || (InterpolationMethod = {}));
5
- /**
6
- * Resizes an image from the source dimensions to target dimensions.
7
- *
8
- * @param {Uint8ClampedArray} imageData The source image data in Uint8ClampedArray format.
9
- * @param {number} srcWidth The width of the source image.
10
- * @param {number} srcHeight The height of the source image.
11
- * @param {number} targetWidth The width of the target image.
12
- * @param {number} targetHeight The height of the target image.
13
- *
14
- * @returns {Uint8ClampedArray} The target image data in Uint8ClampedArray format.
15
- *
16
- * @example
17
- * const targetData = resizeImage(sourceData, 800, 600, 400, 300);
18
- *
19
- * @note The function uses a "nearest neighbor" algorithm for resizing,
20
- * which is fast but might not provide the best quality for all images.
21
- */
22
- export const resizeImage = (imageData, srcWidth, srcHeight, targetWidth, targetHeight) => {
23
- const targetData = new Uint8ClampedArray(targetWidth * targetHeight * 4);
24
- const xRatio = srcWidth / targetWidth;
25
- const yRatio = srcHeight / targetHeight;
26
- const scaledSrcWidth = srcWidth * 4;
27
- let offset = 0;
28
- for (let y = 0; y < targetHeight; y++) {
29
- const srcY = Math.floor(y * yRatio) * scaledSrcWidth;
30
- for (let x = 0; x < targetWidth; x++) {
31
- const srcOffset = srcY + Math.floor(x * xRatio) * 4;
32
- targetData[offset++] = imageData[srcOffset];
33
- targetData[offset++] = imageData[srcOffset + 1];
34
- targetData[offset++] = imageData[srcOffset + 2];
35
- targetData[offset++] = imageData[srcOffset + 3];
36
- }
37
- }
38
- return targetData;
39
- };
40
- /**
41
- * Upsamples an image using the bilinear interpolation method. The input image is expected to be in
42
- * Float32Array format. The output image is in Uint8ClampedArray format. The input image is expected
43
- * to be in the [0, 1] range. The output image is in the [0, 255] range.
44
- *
45
- * @param {Float32Array} input The input image data in Float32Array format.
46
- * @param {number} srcWidth The width of the source image.
47
- * @param {number} srcHeight The height of the source image.
48
- * @param {number} targetWidth The width of the target image.
49
- * @param {number} targetHeight The height of the target image.
50
- *
51
- * @returns {Uint8ClampedArray} The upsampled image data in Uint8ClampedArray format.
52
- *
53
- */
54
- export function bilinearUpsample(input, srcWidth, srcHeight, targetWidth, targetHeight) {
55
- const output = new Uint8ClampedArray(targetWidth * targetHeight);
56
- // If the source and target dimensions are the same, just copy the input to the output.
57
- // The output is expected to be in the [0, 255] range
58
- if (srcWidth === targetWidth && srcHeight === targetHeight) {
59
- for (let i = 0; i < input.length; i++) {
60
- output[i] = Math.min(Math.max(input[i], 0), 255);
61
- }
62
- return output;
63
- }
64
- const xRatio = (srcWidth - 1) / (targetWidth - 1);
65
- const yRatio = (srcHeight - 1) / (targetHeight - 1);
66
- for (let i = 0; i < targetHeight; i++) {
67
- for (let j = 0; j < targetWidth; j++) {
68
- const x = xRatio * j;
69
- const y = yRatio * i;
70
- const xL = Math.floor(x);
71
- const yL = Math.floor(y);
72
- const xH = Math.min(Math.ceil(x), srcWidth - 1);
73
- const yH = Math.min(Math.ceil(y), srcHeight - 1);
74
- const xWeight = x - xL;
75
- const yWeight = y - yL;
76
- const a = input[yL * srcWidth + xL];
77
- const b = input[yL * srcWidth + xH];
78
- const c = input[yH * srcWidth + xL];
79
- const d = input[yH * srcWidth + xH];
80
- const value = a * (1 - xWeight) * (1 - yWeight) +
81
- b * xWeight * (1 - yWeight) +
82
- c * (1 - xWeight) * yWeight +
83
- d * xWeight * yWeight;
84
- output[i * targetWidth + j] = Math.min(Math.max(value, 0), 255);
85
- }
86
- }
87
- return output;
88
- }
89
- /**
90
- * Upsamples an image using the Lanczos3 interpolation method. The input image is expected to be in
91
- * Float32Array format. The output image is in Uint8ClampedArray format. The input image is expected
92
- * to be in the [0, 1] range. The output image is in the [0, 255] range.
93
- *
94
- * @param {Float32Array} input The input image data in Float32Array format.
95
- * @param {number} srcWidth The width of the source image.
96
- * @param {number} srcHeight The height of the source image.
97
- * @param {number} targetWidth The width of the target image.
98
- * @param {number} targetHeight The height of the target image.
99
- *
100
- * @returns {Uint8ClampedArray} The upsampled image data in Uint8ClampedArray format.
101
- */
102
- export function lanczos3Upsample(input, srcWidth, srcHeight, targetWidth, targetHeight) {
103
- const output = new Uint8ClampedArray(targetWidth * targetHeight);
104
- const xRatio = srcWidth / targetWidth;
105
- const yRatio = srcHeight / targetHeight;
106
- const lanczos = (x, a) => {
107
- if (x === 0)
108
- return 1;
109
- if (x < 0)
110
- x = -x;
111
- if (x < a) {
112
- const piX = Math.PI * x;
113
- return (a * Math.sin(piX) * Math.sin(piX / a)) / (piX * piX);
114
- }
115
- return 0;
116
- };
117
- const a = 3; // Lanczos parameter
118
- for (let i = 0; i < targetHeight; i++) {
119
- for (let j = 0; j < targetWidth; j++) {
120
- const x = j * xRatio;
121
- const y = i * yRatio;
122
- const xL = Math.floor(x);
123
- const yL = Math.floor(y);
124
- let value = 0;
125
- let weightSum = 0;
126
- for (let ky = yL - a + 1; ky <= yL + a; ky++) {
127
- for (let kx = xL - a + 1; kx <= xL + a; kx++) {
128
- if (kx >= 0 && kx < srcWidth && ky >= 0 && ky < srcHeight) {
129
- const pixel = input[ky * srcWidth + kx];
130
- const weight = lanczos(x - kx, a) * lanczos(y - ky, a);
131
- value += pixel * weight;
132
- weightSum += weight;
133
- }
134
- }
135
- }
136
- output[i * targetWidth + j] = weightSum !== 0 ? Math.round(value / weightSum) : 0;
137
- }
138
- }
139
- return output;
140
- }
141
- export const toAbsoluteURI = (relativeURL, baseURL) => {
142
- // adapted from - https://github.com/axios/axios/blob/fe7d09bb08fa1c0e414956b7fc760c80459b0a43/lib/helpers/combineURLs.js
143
- if (!baseURL || relativeURL.startsWith('http')) {
144
- return new URL(relativeURL).href;
145
- }
146
- return relativeURL
147
- ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '')
148
- : baseURL;
149
- };
150
- export function compileShader(gl, shader_type, source) {
151
- var _a;
152
- const shader = gl.createShader(shader_type);
153
- if (!shader) {
154
- throw new Error('[ladon-ts] - error creating shader');
155
- }
156
- gl.shaderSource(shader, source);
157
- gl.compileShader(shader);
158
- if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
159
- const error = (_a = gl.getShaderInfoLog(shader)) !== null && _a !== void 0 ? _a : 'unknown error compiling shader.';
160
- throw new Error('[ladon-ts] - ' + error);
161
- }
162
- return shader;
163
- }
164
- export function linkProgram(gl, vertex_shader, fragment_shader) {
165
- var _a;
166
- const program = gl.createProgram();
167
- if (!program) {
168
- throw new Error('[ladon-ts] - error creating GPU program');
169
- }
170
- gl.attachShader(program, vertex_shader);
171
- gl.attachShader(program, fragment_shader);
172
- gl.linkProgram(program);
173
- if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
174
- const error = (_a = gl.getProgramInfoLog(program)) !== null && _a !== void 0 ? _a : 'unknown error linking program.';
175
- throw new Error('[ladon-ts] - ' + error);
176
- }
177
- return program;
178
- }
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxtQkFFWDtBQUZELFdBQVksbUJBQW1CO0lBQzNCLDBDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFGVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBRTlCO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FDdkIsU0FBNEIsRUFDNUIsUUFBZ0IsRUFDaEIsU0FBaUIsRUFDakIsV0FBbUIsRUFDbkIsWUFBb0IsRUFDSCxFQUFFO0lBQ25CLE1BQU0sVUFBVSxHQUFHLElBQUksaUJBQWlCLENBQUMsV0FBVyxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6RSxNQUFNLE1BQU0sR0FBRyxRQUFRLEdBQUcsV0FBVyxDQUFDO0lBQ3RDLE1BQU0sTUFBTSxHQUFHLFNBQVMsR0FBRyxZQUFZLENBQUM7SUFDeEMsTUFBTSxjQUFjLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNwQyxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFFZixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ25DLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLGNBQWMsQ0FBQztRQUNyRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsV0FBVyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2xDLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFcEQsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdB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
1
+ var U = /* @__PURE__ */ ((o) => (o.Nearest = "nearest", o))(U || {});
2
+ const A = (o, n, u, r, e) => {
3
+ const l = new Uint8ClampedArray(r * e * 4), p = n / r, y = u / e, s = n * 4;
4
+ let a = 0;
5
+ for (let t = 0; t < e; t++) {
6
+ const f = Math.floor(t * y) * s;
7
+ for (let c = 0; c < r; c++) {
8
+ const m = f + Math.floor(c * p) * 4;
9
+ l[a++] = o[m], l[a++] = o[m + 1], l[a++] = o[m + 2], l[a++] = o[m + 3];
10
+ }
11
+ }
12
+ return l;
13
+ };
14
+ function d(o, n, u, r, e) {
15
+ const l = new Uint8ClampedArray(r * e);
16
+ if (n === r && u === e) {
17
+ for (let s = 0; s < o.length; s++)
18
+ l[s] = Math.min(Math.max(o[s], 0), 255);
19
+ return l;
20
+ }
21
+ const p = (n - 1) / (r - 1), y = (u - 1) / (e - 1);
22
+ for (let s = 0; s < e; s++)
23
+ for (let a = 0; a < r; a++) {
24
+ const t = p * a, f = y * s, c = Math.floor(t), m = Math.floor(f), S = Math.min(Math.ceil(t), n - 1), x = Math.min(Math.ceil(f), u - 1), w = t - c, i = f - m, M = o[m * n + c], h = o[m * n + S], k = o[x * n + c], P = o[x * n + S], I = M * (1 - w) * (1 - i) + h * w * (1 - i) + k * (1 - w) * i + P * w * i;
25
+ l[s * r + a] = Math.min(Math.max(I, 0), 255);
26
+ }
27
+ return l;
28
+ }
29
+ function E(o, n, u, r, e) {
30
+ const l = new Uint8ClampedArray(r * e), p = n / r, y = u / e, s = (t, f) => {
31
+ if (t === 0) return 1;
32
+ if (t < 0 && (t = -t), t < f) {
33
+ const c = Math.PI * t;
34
+ return f * Math.sin(c) * Math.sin(c / f) / (c * c);
35
+ }
36
+ return 0;
37
+ }, a = 3;
38
+ for (let t = 0; t < e; t++)
39
+ for (let f = 0; f < r; f++) {
40
+ const c = f * p, m = t * y, S = Math.floor(c), x = Math.floor(m);
41
+ let w = 0, i = 0;
42
+ for (let M = x - a + 1; M <= x + a; M++)
43
+ for (let h = S - a + 1; h <= S + a; h++)
44
+ if (h >= 0 && h < n && M >= 0 && M < u) {
45
+ const k = o[M * n + h], P = s(c - h, a) * s(m - M, a);
46
+ w += k * P, i += P;
47
+ }
48
+ l[t * r + f] = i !== 0 ? Math.round(w / i) : 0;
49
+ }
50
+ return l;
51
+ }
52
+ const L = (o, n) => !n || o.startsWith("http") ? new URL(o).href : o ? n.replace(/\/+$/, "") + "/" + o.replace(/^\/+/, "") : n;
53
+ function R(o, n, u) {
54
+ const r = o.createShader(n);
55
+ if (!r)
56
+ throw new Error("[ladon-ts] - error creating shader");
57
+ if (o.shaderSource(r, u), o.compileShader(r), !o.getShaderParameter(r, o.COMPILE_STATUS)) {
58
+ const e = o.getShaderInfoLog(r) ?? "unknown error compiling shader.";
59
+ throw new Error("[ladon-ts] - " + e);
60
+ }
61
+ return r;
62
+ }
63
+ function C(o, n, u) {
64
+ const r = o.createProgram();
65
+ if (!r)
66
+ throw new Error("[ladon-ts] - error creating GPU program");
67
+ if (o.attachShader(r, n), o.attachShader(r, u), o.linkProgram(r), !o.getProgramParameter(r, o.LINK_STATUS)) {
68
+ const e = o.getProgramInfoLog(r) ?? "unknown error linking program.";
69
+ throw new Error("[ladon-ts] - " + e);
70
+ }
71
+ return r;
72
+ }
73
+ function T(o) {
74
+ if (o.startsWith("blob:"))
75
+ return !0;
76
+ try {
77
+ return new URL(o), !0;
78
+ } catch {
79
+ return !1;
80
+ }
81
+ }
82
+ export {
83
+ U as InterpolationMethod,
84
+ d as bilinearUpsample,
85
+ R as compileShader,
86
+ T as isResolvedUri,
87
+ E as lanczos3Upsample,
88
+ C as linkProgram,
89
+ A as resizeImage,
90
+ L as toAbsoluteURI
91
+ };
92
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sources":["../../../src/lib/util.ts"],"sourcesContent":["export enum InterpolationMethod {\n Nearest = 'nearest',\n}\n\n/**\n * Resizes an image from the source dimensions to target dimensions.\n *\n * @param {Uint8ClampedArray} imageData The source image data in Uint8ClampedArray format.\n * @param {number} srcWidth The width of the source image.\n * @param {number} srcHeight The height of the source image.\n * @param {number} targetWidth The width of the target image.\n * @param {number} targetHeight The height of the target image.\n *\n * @returns {Uint8ClampedArray} The target image data in Uint8ClampedArray format.\n *\n * @example\n * const targetData = resizeImage(sourceData, 800, 600, 400, 300);\n *\n * @note The function uses a \"nearest neighbor\" algorithm for resizing,\n * which is fast but might not provide the best quality for all images.\n */\nexport const resizeImage = (\n imageData: Uint8ClampedArray,\n srcWidth: number,\n srcHeight: number,\n targetWidth: number,\n targetHeight: number\n): Uint8ClampedArray => {\n const targetData = new Uint8ClampedArray(targetWidth * targetHeight * 4);\n const xRatio = srcWidth / targetWidth;\n const yRatio = srcHeight / targetHeight;\n const scaledSrcWidth = srcWidth * 4;\n let offset = 0;\n\n for (let y = 0; y < targetHeight; y++) {\n const srcY = Math.floor(y * yRatio) * scaledSrcWidth;\n for (let x = 0; x < targetWidth; x++) {\n const srcOffset = srcY + Math.floor(x * xRatio) * 4;\n\n targetData[offset++] = imageData[srcOffset];\n targetData[offset++] = imageData[srcOffset + 1];\n targetData[offset++] = imageData[srcOffset + 2];\n targetData[offset++] = imageData[srcOffset + 3];\n }\n }\n\n return targetData;\n};\n\n/**\n * Upsamples an image using the bilinear interpolation method. The input image is expected to be in\n * Float32Array format. The output image is in Uint8ClampedArray format. The input image is expected\n * to be in the [0, 1] range. The output image is in the [0, 255] range.\n *\n * @param {Float32Array} input The input image data in Float32Array format.\n * @param {number} srcWidth The width of the source image.\n * @param {number} srcHeight The height of the source image.\n * @param {number} targetWidth The width of the target image.\n * @param {number} targetHeight The height of the target image.\n *\n * @returns {Uint8ClampedArray} The upsampled image data in Uint8ClampedArray format.\n *\n */\nexport function bilinearUpsample(\n input: Float32Array,\n srcWidth: number,\n srcHeight: number,\n targetWidth: number,\n targetHeight: number\n) {\n const output = new Uint8ClampedArray(targetWidth * targetHeight);\n\n // If the source and target dimensions are the same, just copy the input to the output.\n // The output is expected to be in the [0, 255] range\n if (srcWidth === targetWidth && srcHeight === targetHeight) {\n for (let i = 0; i < input.length; i++) {\n output[i] = Math.min(Math.max(input[i], 0), 255);\n }\n return output;\n }\n\n const xRatio = (srcWidth - 1) / (targetWidth - 1);\n const yRatio = (srcHeight - 1) / (targetHeight - 1);\n\n for (let i = 0; i < targetHeight; i++) {\n for (let j = 0; j < targetWidth; j++) {\n const x = xRatio * j;\n const y = yRatio * i;\n\n const xL = Math.floor(x);\n const yL = Math.floor(y);\n const xH = Math.min(Math.ceil(x), srcWidth - 1);\n const yH = Math.min(Math.ceil(y), srcHeight - 1);\n\n const xWeight = x - xL;\n const yWeight = y - yL;\n\n const a = input[yL * srcWidth + xL];\n const b = input[yL * srcWidth + xH];\n const c = input[yH * srcWidth + xL];\n const d = input[yH * srcWidth + xH];\n\n const value =\n a * (1 - xWeight) * (1 - yWeight) +\n b * xWeight * (1 - yWeight) +\n c * (1 - xWeight) * yWeight +\n d * xWeight * yWeight;\n\n output[i * targetWidth + j] = Math.min(Math.max(value, 0), 255);\n }\n }\n\n return output;\n}\n\n/**\n * Upsamples an image using the Lanczos3 interpolation method. The input image is expected to be in\n * Float32Array format. The output image is in Uint8ClampedArray format. The input image is expected\n * to be in the [0, 1] range. The output image is in the [0, 255] range.\n *\n * @param {Float32Array} input The input image data in Float32Array format.\n * @param {number} srcWidth The width of the source image.\n * @param {number} srcHeight The height of the source image.\n * @param {number} targetWidth The width of the target image.\n * @param {number} targetHeight The height of the target image.\n *\n * @returns {Uint8ClampedArray} The upsampled image data in Uint8ClampedArray format.\n */\nexport function lanczos3Upsample(\n input: Float32Array,\n srcWidth: number,\n srcHeight: number,\n targetWidth: number,\n targetHeight: number\n) {\n const output = new Uint8ClampedArray(targetWidth * targetHeight);\n\n const xRatio = srcWidth / targetWidth;\n const yRatio = srcHeight / targetHeight;\n\n const lanczos = (x: number, a: number) => {\n if (x === 0) return 1;\n if (x < 0) x = -x;\n if (x < a) {\n const piX = Math.PI * x;\n return (a * Math.sin(piX) * Math.sin(piX / a)) / (piX * piX);\n }\n return 0;\n };\n\n const a = 3; // Lanczos parameter\n\n for (let i = 0; i < targetHeight; i++) {\n for (let j = 0; j < targetWidth; j++) {\n const x = j * xRatio;\n const y = i * yRatio;\n\n const xL = Math.floor(x);\n const yL = Math.floor(y);\n\n let value = 0;\n let weightSum = 0;\n\n for (let ky = yL - a + 1; ky <= yL + a; ky++) {\n for (let kx = xL - a + 1; kx <= xL + a; kx++) {\n if (kx >= 0 && kx < srcWidth && ky >= 0 && ky < srcHeight) {\n const pixel = input[ky * srcWidth + kx];\n const weight = lanczos(x - kx, a) * lanczos(y - ky, a);\n value += pixel * weight;\n weightSum += weight;\n }\n }\n }\n\n output[i * targetWidth + j] = weightSum !== 0 ? Math.round(value / weightSum) : 0;\n }\n }\n\n return output;\n}\n\nexport const toAbsoluteURI = (relativeURL: string, baseURL?: string) => {\n // adapted from - https://github.com/axios/axios/blob/fe7d09bb08fa1c0e414956b7fc760c80459b0a43/lib/helpers/combineURLs.js\n\n if (!baseURL || relativeURL.startsWith('http')) {\n return new URL(relativeURL).href;\n }\n\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\nexport function compileShader(\n gl: WebGL2RenderingContext,\n shader_type: number,\n source: string\n): WebGLShader {\n const shader = gl.createShader(shader_type);\n\n if (!shader) {\n throw new Error('[ladon-ts] - error creating shader');\n }\n\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n const error = gl.getShaderInfoLog(shader) ?? 'unknown error compiling shader.';\n throw new Error('[ladon-ts] - ' + error);\n }\n\n return shader;\n}\n\nexport function linkProgram(\n gl: WebGL2RenderingContext,\n vertex_shader: WebGLShader,\n fragment_shader: WebGLShader\n): WebGLProgram {\n const program = gl.createProgram();\n\n if (!program) {\n throw new Error('[ladon-ts] - error creating GPU program');\n }\n\n gl.attachShader(program, vertex_shader);\n gl.attachShader(program, fragment_shader);\n\n gl.linkProgram(program);\n\n if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n const error = gl.getProgramInfoLog(program) ?? 'unknown error linking program.';\n throw new Error('[ladon-ts] - ' + error);\n }\n\n return program;\n}\n\n/**\n * Determines if a URI is already resolved.\n * A resolved URI is either:\n * - A blob URL (starts with 'blob:')\n * - A fully qualified URL (e.g., http:// or https://)\n *\n * @param uri - The URI to check.\n * @returns Whether the URI is already resolved.\n */\nexport function isResolvedUri(uri: string): boolean {\n if (uri.startsWith('blob:')) {\n // Blob URIs are resolved\n return true;\n }\n\n try {\n // Throws if the URI is not a valid full URL\n new URL(uri);\n return true;\n } catch {\n // Not a fully qualified URL\n return false;\n }\n}\n"],"names":["InterpolationMethod","resizeImage","imageData","srcWidth","srcHeight","targetWidth","targetHeight","targetData","xRatio","yRatio","scaledSrcWidth","offset","y","srcY","x","srcOffset","bilinearUpsample","input","output","i","j","xL","yL","xH","yH","xWeight","yWeight","a","b","c","d","value","lanczos3Upsample","lanczos","piX","weightSum","ky","kx","pixel","weight","toAbsoluteURI","relativeURL","baseURL","compileShader","gl","shader_type","source","shader","error","linkProgram","vertex_shader","fragment_shader","program","isResolvedUri","uri"],"mappings":"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"}
@@ -1 +1 @@
1
- export declare const LIB_VERSION = "4.5.0";
1
+ export declare const LIB_VERSION = "5.0.1";
@@ -1,2 +1,5 @@
1
- export const LIB_VERSION = '4.5.0';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDIn0=
1
+ const o = "5.0.1";
2
+ export {
3
+ o as LIB_VERSION
4
+ };
5
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sources":["../../../src/lib/version.ts"],"sourcesContent":["export const LIB_VERSION = '5.0.1';\n"],"names":["LIB_VERSION"],"mappings":"AAAO,MAAMA,IAAc;"}
package/package.json CHANGED
@@ -1,17 +1,26 @@
1
1
  {
2
2
  "name": "@webex/ladon-ts",
3
- "version": "4.5.0",
3
+ "version": "5.0.1",
4
4
  "description": "WebexIntelligence computer vision library",
5
5
  "type": "module",
6
6
  "main": "build/module/index.js",
7
7
  "typings": "build/module/index.d.ts",
8
8
  "module": "build/module/index.js",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./build/module/index.js",
12
+ "require": "./build/module/index.js"
13
+ },
14
+ "./worker": {
15
+ "import": "./build/worker/segmentation.js"
16
+ }
17
+ },
9
18
  "keywords": [],
10
19
  "license": "SEE LICENSE in LICENSE",
11
20
  "scripts": {
12
21
  "update-version": "node -p \"const fs = require('fs'); function handle_result(err){console.log(err);}; fs.writeFile('src/lib/version.ts', 'export const LIB_VERSION = ' + JSON.stringify(require('./package.json').version).replaceAll('\\\"', '\\'') + ';\\n', handle_result);\"",
13
22
  "build": "run-s build:*",
14
- "build:module": "tsc -p tsconfig.module.json",
23
+ "build:module": "vite build",
15
24
  "build:worker": "npm --prefix ./worker run build",
16
25
  "build:test": "npm --prefix ./test run build",
17
26
  "fix": "run-s fix:*",
@@ -30,8 +39,7 @@
30
39
  "doc:publish": "gh-pages -m \"[ci skip] Updates\" -d build/docs",
31
40
  "version": "standard-version",
32
41
  "test-release": "run-s test build doc:html",
33
- "prepare-release": "run-s test version update-version build doc:html doc:publish",
34
- "serve:worker": "npm --prefix ./worker run serve"
42
+ "prepare-release": "run-s test version update-version build doc:html doc:publish"
35
43
  },
36
44
  "devDependencies": {
37
45
  "@types/chai": "^4.3.0",
@@ -53,7 +61,11 @@
53
61
  "prettier": "^2.1.1",
54
62
  "standard-version": "^9.0.0",
55
63
  "typedoc": "^0.23.24",
56
- "typescript": "^4.7.4"
64
+ "typescript": "^4.7.4",
65
+ "vite": "^6.0.3",
66
+ "vite-plugin-copy": "^0.1.6",
67
+ "vite-plugin-dts": "^4.3.0",
68
+ "vite-plugin-static-copy": "^2.2.0"
57
69
  },
58
70
  "files": [
59
71
  "build/main",
@@ -74,5 +86,9 @@
74
86
  },
75
87
  "dependencies": {
76
88
  "onnxruntime-web": "^1.15.1"
89
+ },
90
+ "engines": {
91
+ "npm": ">=7.0.0",
92
+ "yarn": "false"
77
93
  }
78
94
  }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFkb24tcmVuZGVyZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JlbmRlcmVyL2xhZG9uLXJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -1,6 +0,0 @@
1
- export * from './renderer/blur-renderer';
2
- export * from './renderer/ladon-renderer';
3
- export * from './renderer/passthrough-renderer';
4
- export * from './renderer/replacement-renderer';
5
- export * from './renderer/webgl-renderer';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3JlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywyQkFBMkIsQ0FBQyJ9