@webex/ladon-ts 4.2.4 → 4.3.0

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/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [4.3.0](https://github.com/beyonddunbar/ladon-ts/compare/v4.2.4...v4.3.0) (2024-03-25)
6
+
7
+
8
+ ### Features
9
+
10
+ * preload model and dependencies ([#9](https://github.com/beyonddunbar/ladon-ts/issues/9)) ([14fa92c](https://github.com/beyonddunbar/ladon-ts/commit/14fa92cb44d47100ff95da3abd2c763fcc87376d))
11
+
5
12
  ### [4.2.4](https://github.com/beyonddunbar/ladon-ts/compare/v4.2.3...v4.2.4) (2023-09-08)
6
13
 
7
14
  ### [4.2.3](https://github.com/beyonddunbar/ladon-ts/compare/v4.2.2...v4.2.3) (2023-08-10)
@@ -4,3 +4,4 @@ export * from './lib/pipeline';
4
4
  export * from './lib/renderer';
5
5
  export * from './lib/util';
6
6
  export * from './lib/version';
7
+ export * from './lib/shared-resource-manager';
@@ -4,4 +4,5 @@ export * from './lib/pipeline';
4
4
  export * from './lib/renderer';
5
5
  export * from './lib/util';
6
6
  export * from './lib/version';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxlQUFlLENBQUMifQ==
7
+ export * from './lib/shared-resource-manager';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYywrQkFBK0IsQ0FBQyJ9
@@ -1,3 +1,9 @@
1
+ export declare const BASE_URL = "https://models.intelligence.webex.com/ladon";
2
+ export declare const LOCAL_BASE_URL = "https://localhost";
3
+ export declare const LOCAL_WORKER_URI = "/segmentation.js";
4
+ export declare const LOCAL_PORT = 1235;
5
+ export declare const MODEL_VERSION = "1.0.0";
6
+ export declare const WASM_URI = "/wasm/1.15.1b/";
1
7
  export declare type SizeConfig = {
2
8
  readonly height: number;
3
9
  readonly width: number;
@@ -19,16 +25,25 @@ export interface ReplacementConfig extends RenderConfig {
19
25
  readonly static: boolean;
20
26
  }
21
27
  export declare type Generator = 'local' | 'worker';
22
- export declare type MaskConfig = {
28
+ export declare type BaseMaskConfig = {
23
29
  readonly generator: Generator;
24
30
  readonly generation_interval_ms: number;
25
31
  readonly model_rank: number;
26
32
  readonly model_url_resolver: ModelUrlResolver;
27
33
  readonly model_uri: string;
28
34
  readonly worker_uri: string;
35
+ readonly input_size?: SizeConfig;
36
+ readonly output_size?: SizeConfig;
37
+ };
38
+ export declare type MaskConfig = BaseMaskConfig & {
29
39
  readonly input_size: SizeConfig;
30
40
  readonly output_size: SizeConfig;
31
41
  };
42
+ export declare type PreloadConfig = {
43
+ readonly base_url?: string;
44
+ readonly wasm_uri?: string;
45
+ readonly mask: BaseMaskConfig;
46
+ };
32
47
  export declare type PipelineConfig = {
33
48
  readonly base_url?: string;
34
49
  readonly wasm_uri?: string;
@@ -51,7 +66,7 @@ export declare enum BlurStrength {
51
66
  STRONGEST = "STRONGEST"
52
67
  }
53
68
  export declare const getBlurConfig: (blur_strength: BlurStrength, horizontal_mirror?: boolean) => BlurConfig;
54
- export declare const getConfig: (height: number, width: number, quality?: Quality, generator?: Generator, render_config?: BlurConfig | RenderConfig | ReplacementConfig, model_url_resolver?: ModelUrlResolver, base_url?: string) => {
69
+ export declare const getPreloadConfig: (quality?: Quality, generator?: Generator, model_url_resolver?: ModelUrlResolver, base_url?: string, useLocalWorker?: boolean) => {
55
70
  mask: {
56
71
  generator: Generator;
57
72
  generation_interval_ms: number;
@@ -59,11 +74,28 @@ export declare const getConfig: (height: number, width: number, quality?: Qualit
59
74
  model_url_resolver: ModelUrlResolver;
60
75
  model_uri: string;
61
76
  worker_uri: string;
77
+ input_size?: SizeConfig | undefined;
78
+ output_size?: SizeConfig | undefined;
79
+ };
80
+ base_url?: string | undefined;
81
+ wasm_uri?: string | undefined;
82
+ };
83
+ export declare const getConfig: (height: number, width: number, quality?: Quality, generator?: Generator, renderConfig?: BlurConfig | RenderConfig | ReplacementConfig, modelUrlResolver?: ModelUrlResolver, baseUrl?: string, useLocalWorker?: boolean) => {
84
+ render: RenderConfig | BlurConfig | ReplacementConfig;
85
+ input: {
86
+ height: number;
87
+ width: number;
88
+ };
89
+ mask: {
62
90
  input_size: SizeConfig;
63
91
  output_size: SizeConfig;
92
+ generator: Generator;
93
+ generation_interval_ms: number;
94
+ model_rank: number;
95
+ model_url_resolver: ModelUrlResolver;
96
+ model_uri: string;
97
+ worker_uri: string;
64
98
  };
65
99
  base_url?: string | undefined;
66
100
  wasm_uri?: string | undefined;
67
- render: BlurConfig | RenderConfig | ReplacementConfig;
68
- input: InputConfig;
69
101
  };
@@ -1,5 +1,11 @@
1
1
  import { toAbsoluteURI } from './util';
2
2
  import { LIB_VERSION } from './version';
3
+ export const BASE_URL = 'https://models.intelligence.webex.com/ladon';
4
+ export const LOCAL_BASE_URL = 'https://localhost';
5
+ export const LOCAL_WORKER_URI = '/segmentation.js';
6
+ export const LOCAL_PORT = 1235;
7
+ export const MODEL_VERSION = '1.0.0';
8
+ export const WASM_URI = '/wasm/1.15.1b/';
3
9
  export var Quality;
4
10
  (function (Quality) {
5
11
  Quality["TINY"] = "TINY";
@@ -50,36 +56,24 @@ export const getBlurConfig = (blur_strength, horizontal_mirror) => {
50
56
  sigma,
51
57
  };
52
58
  };
53
- export const getConfig = (height, width, quality = Quality.LOW, generator = 'local', render_config = {
54
- type: 'blur',
55
- horizontal_mirror: false,
56
- kernel_size: 37,
57
- sigma: 17,
58
- }, model_url_resolver = (model_path) => Promise.resolve(toAbsoluteURI(model_path, `https://models.intelligence.webex.com/ladon`)), base_url = 'https://models.intelligence.webex.com/ladon') => {
59
- const model_version = '1.0.0';
59
+ export const getPreloadConfig = (quality = Quality.LOW, generator = 'local', model_url_resolver = (model_path) => Promise.resolve(toAbsoluteURI(model_path, BASE_URL)), base_url = BASE_URL, useLocalWorker = false) => {
60
+ const model_version = MODEL_VERSION;
61
+ const localBaseUrl = `${LOCAL_BASE_URL}:${LOCAL_PORT}`;
62
+ const workerBaseUrl = useLocalWorker ? localBaseUrl : base_url;
63
+ const workerScriptPath = useLocalWorker
64
+ ? LOCAL_WORKER_URI
65
+ : `/${LIB_VERSION}/worker/segmentation.js`;
66
+ const worker_uri = toAbsoluteURI(workerScriptPath, workerBaseUrl);
60
67
  const base_config = {
61
68
  base_url,
62
- wasm_uri: '/wasm/1.15.1b/',
63
- render: render_config,
64
- input: {
65
- height,
66
- width,
67
- },
69
+ wasm_uri: WASM_URI,
68
70
  mask: {
69
71
  generation_interval_ms: 48,
70
72
  generator,
71
73
  model_url_resolver,
72
74
  model_uri: `/models/${model_version}/mv2_dlv3plus_dynamic_dev_plus_dual_op11_mn3sm100.onnx`,
73
- worker_uri: `/${LIB_VERSION}/worker/segmentation.js`,
75
+ worker_uri,
74
76
  model_rank: 3,
75
- input_size: {
76
- height,
77
- width,
78
- },
79
- output_size: {
80
- height,
81
- width,
82
- },
83
77
  },
84
78
  };
85
79
  let mask_quality_config = {};
@@ -122,4 +116,16 @@ export const getConfig = (height, width, quality = Quality.LOW, generator = 'loc
122
116
  }
123
117
  return Object.assign(Object.assign({}, base_config), { mask: Object.assign(Object.assign({}, base_config.mask), mask_quality_config) });
124
118
  };
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBa0R4QyxNQUFNLENBQU4sSUFBWSxPQU1YO0FBTkQsV0FBWSxPQUFPO0lBQ2Ysd0JBQWEsQ0FBQTtJQUNiLHNCQUFXLENBQUE7SUFDWCw0QkFBaUIsQ0FBQTtJQUNqQix3QkFBYSxDQUFBO0lBQ2IsMEJBQWUsQ0FBQTtBQUNuQixDQUFDLEVBTlcsT0FBTyxLQUFQLE9BQU8sUUFNbEI7QUFFRCxNQUFNLENBQU4sSUFBWSxZQU1YO0FBTkQsV0FBWSxZQUFZO0lBQ3BCLDZCQUFhLENBQUE7SUFDYixxQ0FBcUIsQ0FBQTtJQUNyQixpQ0FBaUIsQ0FBQTtJQUNqQixxQ0FBcUIsQ0FBQTtJQUNyQix1Q0FBdUIsQ0FBQTtBQUMzQixDQUFDLEVBTlcsWUFBWSxLQUFaLFlBQVksUUFNdkI7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FDekIsYUFBMkIsRUFDM0IsaUJBQTJCLEVBQ2pCLEVBQUU7SUFDWixJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDckIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRWYsUUFBUSxhQUFhLEVBQUU7UUFDbkIsS0FBSyxZQUFZLENBQUMsSUFBSTtZQUNsQixXQUFXLEdBQUcsQ0FBQyxDQUFDO1lBQ2hCLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDVixNQUFNO1FBQ1YsS0FBSyxZQUFZLENBQUMsUUFBUTtZQUN0QixXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ2pCLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDVixNQUFNO1FBQ1YsS0FBSyxZQUFZLENBQUMsTUFBTTtZQUNwQixXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ2pCLEtB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
119
+ export const getConfig = (height, width, quality = Quality.LOW, generator = 'local', renderConfig = {
120
+ type: 'blur',
121
+ horizontal_mirror: false,
122
+ kernel_size: 37,
123
+ sigma: 17,
124
+ }, modelUrlResolver = (model_path) => Promise.resolve(toAbsoluteURI(model_path, BASE_URL)), baseUrl = BASE_URL, useLocalWorker = false) => {
125
+ const basePreloadConfig = getPreloadConfig(quality, generator, modelUrlResolver, baseUrl, useLocalWorker);
126
+ const maskConfig = basePreloadConfig.mask;
127
+ return Object.assign(Object.assign({}, basePreloadConfig), { render: renderConfig, input: { height, width }, mask: Object.assign(Object.assign({}, maskConfig), {
128
+ // Need to ensure we don't override the tiny model's input and output sizes.
129
+ input_size: maskConfig.input_size || { height, width }, output_size: maskConfig.output_size || { height, width } }) });
130
+ };
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyw2Q0FBNkMsQ0FBQztBQUN0RSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsa0JBQWtCLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQztBQUMvQixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDO0FBQ3JDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQztBQWdFekMsTUFBTSxDQUFOLElBQVksT0FNWDtBQU5ELFdBQVksT0FBTztJQUNmLHdCQUFhLENBQUE7SUFDYixzQkFBVyxDQUFBO0lBQ1gsNEJBQWlCLENBQUE7SUFDakIsd0JBQWEsQ0FBQTtJQUNiLDBCQUFlLENBQUE7QUFDbkIsQ0FBQyxFQU5XLE9BQU8sS0FBUCxPQUFPLFFBTWxCO0FBRUQsTUFBTSxDQUFOLElBQVksWUFNWDtBQU5ELFdBQVksWUFBWTtJQUNwQiw2QkFBYSxDQUFBO0lBQ2IscUNBQXFCLENBQUE7SUFDckIsaUNBQWlCLENBQUE7SUFDakIscUNBQXFCLENBQUE7SUFDckIsdUNBQXVCLENBQUE7QUFDM0IsQ0FBQyxFQU5XLFlBQVksS0FBWixZQUFZLFFBTXZCO0FBRUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQ3pCLGFBQTJCLEVBQzNCLGlCQUEyQixFQUNqQixFQUFFO0lBQ1osSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUVmLFFBQVEsYUFBYSxFQUFFO1FBQ25CLEtBQUssWUFBWSxDQUFDLElBQUk7WUFDbEIsV0FBVyxHQUFHLENBQUMsQ0FBQztZQUNoQixLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ1YsTUFBTTtRQUNWLEtBQUssWUFBWSxDQUFDLFFBQVE7WUFDdEIsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUNqQixLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ1YsTUFBTTtRQUNWLEtBQUssWUFBWSxDQUFDLE1BQU07WUFDcEIsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUNqQixLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ1gsTUFBTTtRQUNWLEtBQUssWUFBWSxDQUFDLFFBQVE7WUFDdEIsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUNqQixLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ1gsTUFBTTtRQUNWLEtBQUssWUFBWSxDQUFDLFNBQVM7WUFDdkIsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUNqQixLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ1gsTUFBTTtRQUNWO1lBQ0ksTUFBTTtLQUNiO0lBRUQsT0FBTztRQUNILElBQUksRUFBRSxNQUFNO1FBQ1osaUJBQWlCO1FBQ2pCLFdBQVc7UUFDWCxLQUFLO0tBQ1IsQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQzVCLFVBQW1CLE9BQU8sQ0FBQyxHQUFHLEVBQzlCLFlBQXVCLE9BQU8sRUFDOUIscUJBQXVDLENBQUMsVUFBa0IsRUFBRSxFQUFFLENBQzFELE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUN4RCxRQUFRLEdBQUcsUUFBUSxFQUNuQixjQUFjLEdBQUcsS0FBSyxFQUN4QixFQUFFO0lBQ0EsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQ3BDLE1BQU0sWUFBWSxHQUFHLEdBQUcsY0FBYyxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBQ3ZELE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDL0QsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjO1FBQ25DLENBQUMsQ0FBQyxnQkFBZ0I7UUFDbEIsQ0FBQyxDQUFDLElBQUksV0FBVyx5QkFBeUIsQ0FBQztJQUMvQyxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFFbEUsTUFBTSxXQUFXLEdBQWtCO1FBQy9CLFFBQVE7UUFDUixRQUFRLEVBQUUsUUFBUTtRQUNsQixJQUFJLEVBQUU7WUFDRixzQkFBc0IsRUFBRSxFQUFFO1lBQzFCLFNBQVM7WUFDVCxrQkFBa0I7WUFDbEIsU0FBUyxFQUFFLFdBQVcsYUFBYSx3REFBd0Q7WUFDM0YsVUFBVTtZQUNWLFVBQVUsRUFBRSxDQUFDO1NBQ2hCO0tBQ0osQ0FBQztJQUVGLElBQUksbUJBQW1CLEdBQUcsRUFBRSxDQUFDO0lBQzdCLFFBQVEsT0FBTyxFQUFFO1FBQ2IsS0FBSyxPQUFPLENBQUMsSUFBSTtZQUNiLG1CQUFtQixHQUFHO2dCQUNsQixzQkFBc0IsRUFBRSxFQUFFO2dCQUMxQixTQUFTLEVBQUUsV0FBVyxhQUFhLGtCQUFrQjtnQkFDckQsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO2dCQUN2QyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ3hDLFVBQVUsRUFBRSxDQUFDO2FBQ2hCLENBQUM7WUFDRixNQUFNO1FBQ1YsS0FBSyxPQUFPLENBQUMsR0FBRztZQUNaLG1CQUFtQixHQUFHO2dCQUNsQixzQkFBc0IsRUFBRSxFQUFFO2dCQUMxQixTQUFTLEVBQUUsV0FBVyxhQUFhLHdEQUF3RDthQUM5RixDQUFDO1lBQ0YsTUFBTTtRQUNWLEtBQUssT0FBTyxDQUFDLE1BQU07WUFDZixtQkFBbUIsR0FBRztnQkFDbEIsc0JBQXNCLEVBQUUsRUFBRTtnQkFDMUIsU0FBUyxFQUFFLFdBQVcsYUFBYSx3REFBd0Q7YUFDOUYsQ0FBQztZQUNGLE1BQU07UUFDVixLQUFLLE9BQU8sQ0FBQyxJQUFJO1lBQ2IsbUJBQW1CLEdBQUc7Z0JBQ2xCLHNCQUFzQixFQUFFLEVBQUU7Z0JBQzFCLFNBQVMsRUFBRSxXQUFXLGFBQWEsNERBQTREO2FBQ2xHLENBQUM7WUFDRixNQUFNO1FBQ1YsS0FBSyxPQUFPLENBQUMsS0FBSztZQUNkLG1CQUFtQixHQUFHO2dCQUNsQixzQkFBc0IsRUFBRSxDQUFDO2dCQUN6QixTQUFTLEVBQUUsV0FBVyxhQUFhLDREQUE0RDthQUNsRyxDQUFDO1lBQ0YsTUFBTTtRQUNWO1lBQ0ksTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsR0FBRyxPQUFPLENBQUMsQ0FBQztLQUMxRTtJQUVELHVDQUNPLFdBQVcsS0FDZCxJQUFJLGtDQUFPLFdBQVcsQ0FBQyxJQUFJLEdBQUssbUJBQW1CLEtBQ3JEO0FBQ04sQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQ3JCLE1BQWMsRUFDZCxLQUFhLEVBQ2IsVUFBbUIsT0FBTyxDQUFDLEdBQUcsRUFDOUIsWUFBdUIsT0FBTyxFQUM5QixlQUE4RDtJQUMxRCxJQUFJLEVBQUUsTUFBTTtJQUNaLGlCQUFpQixFQUFFLEtBQUs7SUFDeEIsV0FBVyxFQUFFLEVBQUU7SUFDZixLQUFLLEVBQUUsRUFBRTtDQUNaLEVBQ0QsbUJBQXFDLENBQUMsVUFBa0IsRUFBRSxFQUFFLENBQ3hELE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUN4RCxPQUFPLEdBQUcsUUFBUSxFQUNsQixjQUFjLEdBQUcsS0FBSyxFQUN4QixFQUFFO0lBQ0EsTUFBTSxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FDdEMsT0FBTyxFQUNQLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsT0FBTyxFQUNQLGNBQWMsQ0FDakIsQ0FBQztJQUNGLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQztJQUUxQyx1Q0FDTyxpQkFBaUIsS0FDcEIsTUFBTSxFQUFFLFlBQVksRUFDcEIsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUN4QixJQUFJLGtDQUNHLFVBQVU7WUFDYiw0RUFBNEU7WUFDNUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxVQUFVLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQ3RELFdBQVcsRUFBRSxVQUFVLENBQUMsV0FBVyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUU5RDtBQUNOLENBQUMsQ0FBQyJ9
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import * as ort from 'onnxruntime-web';
11
- import { getModelUrl, toAbsoluteURI } from './util';
11
+ import { sharedResourceManager } from './shared-resource-manager';
12
12
  export class LocalGenerator {
13
13
  constructor(config) {
14
14
  this.config = config;
@@ -87,9 +87,7 @@ export class LocalGenerator {
87
87
  ]);
88
88
  if (this.config.mask.model_rank === 4) {
89
89
  // This feed uses the new model input params for the tiny model.
90
- const results = yield this.mask_model.run({
91
- input: image_tns,
92
- });
90
+ const results = yield this.mask_model.run({ input: image_tns });
93
91
  this.last_mask = results.segmentation;
94
92
  }
95
93
  else {
@@ -106,15 +104,16 @@ export class LocalGenerator {
106
104
  });
107
105
  }
108
106
  load() {
107
+ var _a;
109
108
  return __awaiter(this, void 0, void 0, function* () {
110
- if (this.config.wasm_uri) {
111
- ort.env.wasm.wasmPaths = toAbsoluteURI(this.config.wasm_uri, this.config.base_url);
109
+ const modelUrl = yield sharedResourceManager.getModelUrl(this.config);
110
+ // Attempt to retrieve a preloaded InferenceSession from the shared resource manager.
111
+ this.mask_model = sharedResourceManager.getModelSession(modelUrl);
112
+ // If the model is not preloaded, load it from the provided model URL.
113
+ (_a = this.mask_model) !== null && _a !== void 0 ? _a : (this.mask_model = yield sharedResourceManager.preloadModel(this.config));
114
+ if (!this.mask_model) {
115
+ throw new Error('Failed to load the ONNX model.');
112
116
  }
113
- ort.env.wasm.numThreads = 1;
114
- const modelUrl = yield getModelUrl(this.config);
115
- this.mask_model = yield ort.InferenceSession.create(modelUrl, {
116
- executionProviders: ['wasm'],
117
- });
118
117
  });
119
118
  }
120
119
  isLoaded() {
@@ -180,23 +179,25 @@ export class WorkerGenerator {
180
179
  });
181
180
  }
182
181
  load() {
182
+ var _a;
183
183
  return __awaiter(this, void 0, void 0, function* () {
184
- const cross_origin_script_url = toAbsoluteURI(this.config.mask.worker_uri, this.config.base_url);
185
- const content = yield (yield fetch(cross_origin_script_url, { cache: 'force-cache' })).text();
186
- const worker_url = URL.createObjectURL(new Blob([content], { type: 'text/javascript' }));
187
- this.worker = new Worker(worker_url, { type: 'module' });
188
- const modelUrl = yield getModelUrl(this.config);
189
- const worker_config = {
184
+ this.worker = sharedResourceManager.getWorker();
185
+ (_a = this.worker) !== null && _a !== void 0 ? _a : (this.worker = yield sharedResourceManager.initializeWorker(this.config));
186
+ if (!this.worker) {
187
+ throw new Error('[ladon-ts] - worker is not defined.');
188
+ }
189
+ const modelUrl = yield sharedResourceManager.getModelUrl(this.config);
190
+ const workerConfig = {
190
191
  base_url: this.config.base_url,
191
192
  input: this.config.input,
192
193
  mask: Object.assign(Object.assign({}, this.config.mask), { model_url_resolver: modelUrl }),
193
194
  wasm_uri: this.config.wasm_uri,
194
195
  render: { type: 'passthrough' },
195
196
  };
196
- this.worker.postMessage(worker_config);
197
- let resolution_cb;
197
+ this.worker.postMessage({ type: 'init', config: workerConfig });
198
+ let resolutionCb;
198
199
  const result = new Promise((resolve) => {
199
- resolution_cb = resolve;
200
+ resolutionCb = resolve;
200
201
  });
201
202
  this.worker.onmessage = (event) => {
202
203
  if (event.data.mask) {
@@ -204,10 +205,11 @@ export class WorkerGenerator {
204
205
  this.new_mask = true;
205
206
  }
206
207
  else {
207
- URL.revokeObjectURL(worker_url);
208
- if (resolution_cb) {
209
- resolution_cb();
208
+ const workerUrl = sharedResourceManager.getWorkerUrl();
209
+ if (workerUrl) {
210
+ URL.revokeObjectURL(workerUrl);
210
211
  }
212
+ resolutionCb === null || resolutionCb === void 0 ? void 0 : resolutionCb();
211
213
  }
212
214
  };
213
215
  return result;
@@ -223,13 +225,13 @@ export class WorkerGenerator {
223
225
  throw new Error('[ladon-ts] - worker is not defined.');
224
226
  }
225
227
  this.worker.postMessage({
228
+ type: 'generate',
226
229
  image: input,
227
230
  }, [input.buffer]);
228
231
  });
229
232
  }
230
233
  destroy() {
231
- var _a;
232
- (_a = this.worker) === null || _a === void 0 ? void 0 : _a.terminate();
234
+ sharedResourceManager.terminateWorker();
233
235
  }
234
236
  }
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQztBQUd2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQXFCcEQsTUFBTSxPQUFPLGNBQWM7SUFNdkIsWUFBNEIsTUFBc0I7UUFBdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFIMUMseUJBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBSTdCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUMzQixTQUFTLEVBQ1QsSUFBSSxZQUFZLENBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUMzRSxFQUNELENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FDbEYsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNLLFVBQVUsQ0FBQyxLQUF3QixFQUFFLEtBQW1CO1FBQzVELE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ2pFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsVUFBVSxDQUFDO1FBQ3JDLE1BQU0sY0FBYyxHQUFHLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFD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
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQztBQUd2QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQXFCbEUsTUFBTSxPQUFPLGNBQWM7SUFNdkIsWUFBNEIsTUFBc0I7UUFBdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFIMUMseUJBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBSTdCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUMzQixTQUFTLEVBQ1QsSUFBSSxZQUFZLENBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUMzRSxFQUNELENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FDbEYsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNLLFVBQVUsQ0FBQyxLQUF3QixFQUFFLEtBQW1CO1FBQzVELE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ2pFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsVUFBVSxDQUFDO1FBQ3JDLE1BQU0sY0FBYyxHQUFHLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZCxJQUFJ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
@@ -0,0 +1,84 @@
1
+ import * as ort from 'onnxruntime-web';
2
+ import { PipelineConfig, PreloadConfig, SizeConfig } from './config';
3
+ /**
4
+ * Shared resource manager used to preload and share resources across different pipelines.
5
+ * This is useful when multiple pipelines are using the same model or when the model needs
6
+ * to be preloaded before the pipeline is created.
7
+ */
8
+ declare class SharedResourceManager {
9
+ private modelSessions;
10
+ private worker?;
11
+ private workerUrl?;
12
+ /**
13
+ * Initialize the worker using the provided configuration.
14
+ *
15
+ * @param {PreloadConfig} config The configuration object.
16
+ * @returns {Promise<Worker>} A promise that resolves when the worker is initialized.
17
+ * @example
18
+ * await initializeWorker(config);
19
+ */
20
+ initializeWorker(config: PreloadConfig): Promise<Worker>;
21
+ /**
22
+ * Terminate the worker.
23
+ */
24
+ terminateWorker(): void;
25
+ /**
26
+ * Preload the model using the provided configuration.
27
+ *
28
+ * @param {PreloadConfig} config The configuration object.
29
+ * @returns {Promise<void>} A promise that resolves when the model is preloaded.
30
+ * @example
31
+ * await preloadModel(config);
32
+ */
33
+ preloadModel(config: PreloadConfig): Promise<ort.InferenceSession>;
34
+ /**
35
+ * Preload the worker using the provided configuration.
36
+ *
37
+ * @param {PreloadConfig} config The configuration object.
38
+ * @returns {Promise<void>} A promise that resolves when the worker is preloaded.
39
+ * @example
40
+ * await preloadWorker(config);
41
+ */
42
+ preloadWorker(config: PreloadConfig): Promise<void>;
43
+ /**
44
+ * Warmup the model session with a dummy input to avoid latency when running the model for the first time.
45
+ *
46
+ * @param {ort.InferenceSession} session The model session.
47
+ * @param {SizeConfig} inputSize The input size of the model.
48
+ * @param {number} inputChannels The number of input channels (e.g., RGB is 3).
49
+ * @param {ort.Tensor.Type} inputType The input tensor type.
50
+ * @returns {Promise<void>} A promise that resolves when the model is warmed up.
51
+ * @example
52
+ * await warmupModel(session, inputSize, inputChannels, inputType);
53
+ */
54
+ warmupModel(session: ort.InferenceSession, inputSize?: SizeConfig, inputChannels?: number, inputType?: ort.Tensor.Type): Promise<void>;
55
+ /**
56
+ * Get the model session for the provided model URL.
57
+ *
58
+ * @param {string} modelUrl The model URL.
59
+ * @returns {ort.InferenceSession} The model session.
60
+ * @example
61
+ * const session = getModelSession(modelUrl);
62
+ */
63
+ getModelSession(modelUrl: string): ort.InferenceSession;
64
+ /**
65
+ * Resolves the model URL based on the configuration.
66
+ *
67
+ * @param {PipelineConfig} config The configuration object.
68
+ * @returns {Promise<string>} The resolved model URL.
69
+ * @example
70
+ * const modelUrl = await getModelUrl(config);
71
+ */
72
+ getModelUrl({ mask: { model_url_resolver, model_uri } }: PipelineConfig | PreloadConfig): Promise<string>;
73
+ getWorker(): Worker | undefined;
74
+ getWorkerUrl(): string | undefined;
75
+ }
76
+ export declare const sharedResourceManager: SharedResourceManager;
77
+ /**
78
+ * Preload the resources using the provided configuration. This function is used to preload the model
79
+ * and the worker before creating the pipeline.
80
+ *
81
+ * @param config - The configuration object.
82
+ */
83
+ export declare const preload: (config: PreloadConfig) => Promise<void>;
84
+ export {};
@@ -0,0 +1,189 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import * as ort from 'onnxruntime-web';
11
+ import { toAbsoluteURI } from './util';
12
+ /**
13
+ * Shared resource manager used to preload and share resources across different pipelines.
14
+ * This is useful when multiple pipelines are using the same model or when the model needs
15
+ * to be preloaded before the pipeline is created.
16
+ */
17
+ class SharedResourceManager {
18
+ constructor() {
19
+ this.modelSessions = {};
20
+ }
21
+ /**
22
+ * Initialize the worker using the provided configuration.
23
+ *
24
+ * @param {PreloadConfig} config The configuration object.
25
+ * @returns {Promise<Worker>} A promise that resolves when the worker is initialized.
26
+ * @example
27
+ * await initializeWorker(config);
28
+ */
29
+ initializeWorker(config) {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ if (typeof Worker === 'undefined') {
32
+ throw new Error('[ladon-ts] web workers are not supported in this environment');
33
+ }
34
+ const crossOriginScriptUrl = config.mask.worker_uri;
35
+ const content = yield (yield fetch(crossOriginScriptUrl, { cache: 'force-cache' })).text();
36
+ this.workerUrl = URL.createObjectURL(new Blob([content], { type: 'text/javascript' }));
37
+ this.worker = new Worker(this.workerUrl, { type: 'module' });
38
+ return this.worker;
39
+ });
40
+ }
41
+ /**
42
+ * Terminate the worker.
43
+ */
44
+ terminateWorker() {
45
+ if (this.worker) {
46
+ this.worker.terminate();
47
+ this.worker = undefined;
48
+ }
49
+ }
50
+ /**
51
+ * Preload the model using the provided configuration.
52
+ *
53
+ * @param {PreloadConfig} config The configuration object.
54
+ * @returns {Promise<void>} A promise that resolves when the model is preloaded.
55
+ * @example
56
+ * await preloadModel(config);
57
+ */
58
+ preloadModel(config) {
59
+ var _a;
60
+ var _b;
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ if (config.wasm_uri) {
63
+ ort.env.wasm.wasmPaths = toAbsoluteURI(config.wasm_uri, config.base_url);
64
+ }
65
+ ort.env.wasm.numThreads = 1;
66
+ // Resolve the model URL based on the configuration.
67
+ const modelUrl = yield this.getModelUrl(config);
68
+ // Use the model session cache to avoid creating multiple sessions for the same model.
69
+ (_a = (_b = this.modelSessions)[modelUrl]) !== null && _a !== void 0 ? _a : (_b[modelUrl] = yield ort.InferenceSession.create(modelUrl, {
70
+ executionProviders: ['wasm'],
71
+ }));
72
+ // Warmup the model with a dummy input to avoid latency when running the model for the first time.
73
+ yield this.warmupModel(this.modelSessions[modelUrl], config.mask.input_size, config.mask.model_rank);
74
+ return this.modelSessions[modelUrl];
75
+ });
76
+ }
77
+ /**
78
+ * Preload the worker using the provided configuration.
79
+ *
80
+ * @param {PreloadConfig} config The configuration object.
81
+ * @returns {Promise<void>} A promise that resolves when the worker is preloaded.
82
+ * @example
83
+ * await preloadWorker(config);
84
+ */
85
+ preloadWorker(config) {
86
+ var _a;
87
+ return __awaiter(this, void 0, void 0, function* () {
88
+ // If the model URL resolver is a function, We can't send the function to the worker so
89
+ // we resolve the model URL here and send the resolved URL to the worker.
90
+ const modelUrl = yield this.getModelUrl(config);
91
+ const newConfig = Object.assign(Object.assign({}, config), { mask: Object.assign(Object.assign({}, config.mask), { model_url_resolver: modelUrl }) });
92
+ // Initialize the worker.
93
+ yield this.initializeWorker(newConfig);
94
+ // Send the preload message to the worker.
95
+ (_a = this.worker) === null || _a === void 0 ? void 0 : _a.postMessage({ type: 'preload', config: newConfig });
96
+ });
97
+ }
98
+ /**
99
+ * Warmup the model session with a dummy input to avoid latency when running the model for the first time.
100
+ *
101
+ * @param {ort.InferenceSession} session The model session.
102
+ * @param {SizeConfig} inputSize The input size of the model.
103
+ * @param {number} inputChannels The number of input channels (e.g., RGB is 3).
104
+ * @param {ort.Tensor.Type} inputType The input tensor type.
105
+ * @returns {Promise<void>} A promise that resolves when the model is warmed up.
106
+ * @example
107
+ * await warmupModel(session, inputSize, inputChannels, inputType);
108
+ */
109
+ warmupModel(session, inputSize = { width: 1280, height: 720 }, inputChannels = 3, inputType = 'float32') {
110
+ return __awaiter(this, void 0, void 0, function* () {
111
+ const numPixels = inputSize.height * inputSize.width;
112
+ const dummyInputData = new Float32Array(inputChannels * numPixels).fill(0);
113
+ const dummyInput = new ort.Tensor(inputType, dummyInputData, [
114
+ 1,
115
+ inputChannels,
116
+ inputSize.height,
117
+ inputSize.width,
118
+ ]);
119
+ const feed = { [session.inputNames[0]]: dummyInput };
120
+ // Use an additional dummy tensor if the model expects a previous mask.
121
+ if (inputChannels === 3) {
122
+ const dummyMaskData = new Float32Array(numPixels).fill(0);
123
+ const prevMaskTensor = new ort.Tensor(inputType, dummyMaskData, [
124
+ 1,
125
+ 1,
126
+ inputSize.height,
127
+ inputSize.width,
128
+ ]);
129
+ feed[session.inputNames[1]] = prevMaskTensor;
130
+ }
131
+ // Run the model with the dummy input to warm it up.
132
+ yield session.run(feed);
133
+ });
134
+ }
135
+ /**
136
+ * Get the model session for the provided model URL.
137
+ *
138
+ * @param {string} modelUrl The model URL.
139
+ * @returns {ort.InferenceSession} The model session.
140
+ * @example
141
+ * const session = getModelSession(modelUrl);
142
+ */
143
+ getModelSession(modelUrl) {
144
+ return this.modelSessions[modelUrl];
145
+ }
146
+ /**
147
+ * Resolves the model URL based on the configuration.
148
+ *
149
+ * @param {PipelineConfig} config The configuration object.
150
+ * @returns {Promise<string>} The resolved model URL.
151
+ * @example
152
+ * const modelUrl = await getModelUrl(config);
153
+ */
154
+ getModelUrl({ mask: { model_url_resolver, model_uri } }) {
155
+ return __awaiter(this, void 0, void 0, function* () {
156
+ let modelUrl;
157
+ if (typeof model_url_resolver === 'string') {
158
+ modelUrl = model_url_resolver;
159
+ }
160
+ else {
161
+ modelUrl = yield model_url_resolver(model_uri);
162
+ }
163
+ return modelUrl;
164
+ });
165
+ }
166
+ getWorker() {
167
+ return this.worker;
168
+ }
169
+ getWorkerUrl() {
170
+ return this.workerUrl;
171
+ }
172
+ }
173
+ // Global instance of the shared resource manager.
174
+ export const sharedResourceManager = new SharedResourceManager();
175
+ /**
176
+ * Preload the resources using the provided configuration. This function is used to preload the model
177
+ * and the worker before creating the pipeline.
178
+ *
179
+ * @param config - The configuration object.
180
+ */
181
+ export const preload = (config) => __awaiter(void 0, void 0, void 0, function* () {
182
+ if (config.mask.generator === 'worker') {
183
+ yield sharedResourceManager.preloadWorker(config);
184
+ }
185
+ else {
186
+ yield sharedResourceManager.preloadModel(config);
187
+ }
188
+ });
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLXJlc291cmNlLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3NoYXJlZC1yZXNvdXJjZS1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxHQUFHLE1BQU0saUJBQWlCLENBQUM7QUFHdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUV2Qzs7OztHQUlHO0FBQ0gsTUFBTSxxQkFBcUI7SUFBM0I7UUFDWSxrQkFBYSxHQUF5QyxFQUFFLENBQUM7SUE0S3JFLENBQUM7SUF4S0c7Ozs7Ozs7T0FPRztJQUNHLGdCQUFnQixDQUFDLE1BQXFCOztZQUN4QyxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRTtnQkFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO2FBQ25GO1lBRUQsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNwRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBRTNGLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3ZGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBRTdELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN2QixDQUFDO0tBQUE7SUFFRDs7T0FFRztJQUNILGVBQWU7UUFDWCxJQUFJLElB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
@@ -1,4 +1,3 @@
1
- import { PipelineConfig } from './config';
2
1
  export declare const toAbsoluteURI: (relativeURL: string, baseURL?: string) => string;
3
2
  export declare function compileShader(gl: WebGL2RenderingContext, shader_type: number, source: string): WebGLShader;
4
3
  export declare function linkProgram(gl: WebGL2RenderingContext, vertex_shader: WebGLShader, fragment_shader: WebGLShader): WebGLProgram;
@@ -20,12 +19,3 @@ export declare function linkProgram(gl: WebGL2RenderingContext, vertex_shader: W
20
19
  * which is fast but might not provide the best quality for all images.
21
20
  */
22
21
  export declare const resizeImage: (imageData: Uint8ClampedArray, srcWidth: number, srcHeight: number, targetWidth: number, targetHeight: number) => Uint8ClampedArray;
23
- /**
24
- * Resolves the model URL based on the configuration.
25
- *
26
- * @param {PipelineConfig} config The configuration object.
27
- * @returns {Promise<string>} The resolved model URL.
28
- * @example
29
- * const modelUrl = await getModelUrl(config);
30
- */
31
- export declare const getModelUrl: ({ mask: { model_url_resolver, model_uri }, }: PipelineConfig) => Promise<string>;
@@ -1,12 +1,3 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  export const toAbsoluteURI = (relativeURL, baseURL) => {
11
2
  // adapted from - https://github.com/axios/axios/blob/fe7d09bb08fa1c0e414956b7fc760c80459b0a43/lib/helpers/combineURLs.js
12
3
  if (!baseURL || relativeURL.startsWith('http')) {
@@ -80,22 +71,4 @@ export const resizeImage = (imageData, srcWidth, srcHeight, targetWidth, targetH
80
71
  }
81
72
  return targetData;
82
73
  };
83
- /**
84
- * Resolves the model URL based on the configuration.
85
- *
86
- * @param {PipelineConfig} config The configuration object.
87
- * @returns {Promise<string>} The resolved model URL.
88
- * @example
89
- * const modelUrl = await getModelUrl(config);
90
- */
91
- export const getModelUrl = ({ mask: { model_url_resolver, model_uri }, }) => __awaiter(void 0, void 0, void 0, function* () {
92
- let modelUrl;
93
- if (typeof model_url_resolver === 'string') {
94
- modelUrl = model_url_resolver;
95
- }
96
- else {
97
- modelUrl = yield model_url_resolver(model_uri);
98
- }
99
- return modelUrl;
100
- });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxXQUFtQixFQUFFLE9BQWdCLEVBQUUsRUFBRTtJQUNuRSx5SEFBeUg7SUFFekgsSUFBSSxDQUFDLE9BQU8sSUFBSSxXQUFXLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQzVDLE9BQU8sSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDO0tBQ3BDO0lBRUQsT0FBTyxXQUFXO1FBQ2QsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDckUsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUsYUFBYSxDQUN6QixFQUEwQixFQUMxQixXQUFtQixFQUNuQixNQUFjOztJQUVkLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFNUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztLQUN6RDtJQUVELEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFekIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFO1FBQ25ELE1BQU0sS0FBSyxHQUFHLE1BQUEsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxtQ0FBSSxpQ0FBaUMsQ0FB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
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxXQUFtQixFQUFFLE9BQWdCLEVBQUUsRUFBRTtJQUNuRSx5SEFBeUg7SUFFekgsSUFBSSxDQUFDLE9BQU8sSUFBSSxXQUFXLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQzVDLE9BQU8sSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDO0tBQ3BDO0lBRUQsT0FBTyxXQUFXO1FBQ2QsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDckUsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUsYUFBYSxDQUN6QixFQUEwQixFQUMxQixXQUFtQixFQUNuQixNQUFjOztJQUVkLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFNUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztLQUN6RDtJQUVELEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFekIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFO1FBQ25ELE1BQU0sS0FBSyxHQUFHLE1BQUEsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxtQ0FBSSxpQ0FBaUMsQ0FBQztRQUMvRSxN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
@@ -1 +1 @@
1
- export declare const LIB_VERSION = "4.2.4";
1
+ export declare const LIB_VERSION = "4.3.0";
@@ -1,2 +1,2 @@
1
- export const LIB_VERSION = '4.2.4';
1
+ export const LIB_VERSION = '4.3.0';
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webex/ladon-ts",
3
- "version": "4.2.4",
3
+ "version": "4.3.0",
4
4
  "description": "WebexIntelligence computer vision library",
5
5
  "type": "module",
6
6
  "main": "build/module/index.js",
@@ -30,7 +30,8 @@
30
30
  "doc:publish": "gh-pages -m \"[ci skip] Updates\" -d build/docs",
31
31
  "version": "standard-version",
32
32
  "test-release": "run-s test build doc:html",
33
- "prepare-release": "run-s test version update-version build doc:html doc:publish"
33
+ "prepare-release": "run-s test version update-version build doc:html doc:publish",
34
+ "serve:worker": "npm --prefix ./worker run serve"
34
35
  },
35
36
  "devDependencies": {
36
37
  "@types/chai": "^4.3.0",
@@ -48,7 +49,7 @@
48
49
  "mocha": "^9.1.3",
49
50
  "npm-run-all": "^4.1.5",
50
51
  "open-cli": "^6.0.1",
51
- "parcel": "^2.8.3",
52
+ "parcel": "^2.12.0",
52
53
  "prettier": "^2.1.1",
53
54
  "standard-version": "^9.0.0",
54
55
  "typedoc": "^0.23.24",