@meshy-ai/cli 0.2.0 → 0.3.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.
- package/.env.example +8 -2
- package/README.md +343 -108
- package/dist/client/endpoints/animation-catalog.d.ts +37 -0
- package/dist/client/endpoints/animation-catalog.d.ts.map +1 -0
- package/dist/client/endpoints/animation-catalog.js +55 -0
- package/dist/client/endpoints/animation-catalog.js.map +1 -0
- package/dist/client/endpoints/balance.d.ts +5 -0
- package/dist/client/endpoints/balance.d.ts.map +1 -1
- package/dist/client/endpoints/balance.js +5 -1
- package/dist/client/endpoints/balance.js.map +1 -1
- package/dist/client/endpoints/base.d.ts +41 -7
- package/dist/client/endpoints/base.d.ts.map +1 -1
- package/dist/client/endpoints/base.js +61 -40
- package/dist/client/endpoints/base.js.map +1 -1
- package/dist/client/endpoints/showcases.d.ts +31 -0
- package/dist/client/endpoints/showcases.d.ts.map +1 -0
- package/dist/client/endpoints/showcases.js +49 -0
- package/dist/client/endpoints/showcases.js.map +1 -0
- package/dist/client/errors.d.ts +1 -0
- package/dist/client/errors.d.ts.map +1 -1
- package/dist/client/errors.js +1 -1
- package/dist/client/errors.js.map +1 -1
- package/dist/client/index.d.ts +47 -38
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +89 -120
- package/dist/client/index.js.map +1 -1
- package/dist/client/resource-registry.d.ts +97 -0
- package/dist/client/resource-registry.d.ts.map +1 -0
- package/dist/client/resource-registry.js +157 -0
- package/dist/client/resource-registry.js.map +1 -0
- package/dist/client/transport.d.ts +99 -0
- package/dist/client/transport.d.ts.map +1 -0
- package/dist/client/transport.js +320 -0
- package/dist/client/transport.js.map +1 -0
- package/dist/client/types.d.ts +17 -6
- package/dist/client/types.d.ts.map +1 -1
- package/dist/client/types.js +28 -6
- package/dist/client/types.js.map +1 -1
- package/dist/cmd/animation-catalog.d.ts +26 -0
- package/dist/cmd/animation-catalog.d.ts.map +1 -0
- package/dist/cmd/animation-catalog.js +80 -0
- package/dist/cmd/animation-catalog.js.map +1 -0
- package/dist/cmd/api.d.ts +3 -2
- package/dist/cmd/api.d.ts.map +1 -1
- package/dist/cmd/api.js +22 -8
- package/dist/cmd/api.js.map +1 -1
- package/dist/cmd/auth.d.ts.map +1 -1
- package/dist/cmd/auth.js +5 -0
- package/dist/cmd/auth.js.map +1 -1
- package/dist/cmd/balance.d.ts.map +1 -1
- package/dist/cmd/balance.js +10 -6
- package/dist/cmd/balance.js.map +1 -1
- package/dist/cmd/creative-lab.d.ts +26 -0
- package/dist/cmd/creative-lab.d.ts.map +1 -0
- package/dist/cmd/creative-lab.js +256 -0
- package/dist/cmd/creative-lab.js.map +1 -0
- package/dist/cmd/delete.d.ts.map +1 -1
- package/dist/cmd/delete.js +6 -7
- package/dist/cmd/delete.js.map +1 -1
- package/dist/cmd/doctor.d.ts +23 -0
- package/dist/cmd/doctor.d.ts.map +1 -0
- package/dist/cmd/doctor.js +61 -0
- package/dist/cmd/doctor.js.map +1 -0
- package/dist/cmd/download.d.ts +17 -0
- package/dist/cmd/download.d.ts.map +1 -0
- package/dist/cmd/download.js +436 -0
- package/dist/cmd/download.js.map +1 -0
- package/dist/cmd/inspect.d.ts +63 -0
- package/dist/cmd/inspect.d.ts.map +1 -0
- package/dist/cmd/inspect.js +179 -0
- package/dist/cmd/inspect.js.map +1 -0
- package/dist/cmd/make.d.ts +13 -3
- package/dist/cmd/make.d.ts.map +1 -1
- package/dist/cmd/make.js +240 -36
- package/dist/cmd/make.js.map +1 -1
- package/dist/cmd/mesh.d.ts +13 -0
- package/dist/cmd/mesh.d.ts.map +1 -0
- package/dist/cmd/mesh.js +67 -0
- package/dist/cmd/mesh.js.map +1 -0
- package/dist/cmd/project.d.ts +16 -0
- package/dist/cmd/project.d.ts.map +1 -0
- package/dist/cmd/project.js +136 -0
- package/dist/cmd/project.js.map +1 -0
- package/dist/cmd/resources.d.ts +5 -0
- package/dist/cmd/resources.d.ts.map +1 -1
- package/dist/cmd/resources.js +38 -10
- package/dist/cmd/resources.js.map +1 -1
- package/dist/cmd/showcases.d.ts +10 -0
- package/dist/cmd/showcases.d.ts.map +1 -0
- package/dist/cmd/showcases.js +63 -0
- package/dist/cmd/showcases.js.map +1 -0
- package/dist/cmd/slicer.d.ts +12 -0
- package/dist/cmd/slicer.d.ts.map +1 -0
- package/dist/cmd/slicer.js +46 -0
- package/dist/cmd/slicer.js.map +1 -0
- package/dist/cmd/uv-unwrap.d.ts +16 -0
- package/dist/cmd/uv-unwrap.d.ts.map +1 -0
- package/dist/cmd/uv-unwrap.js +52 -0
- package/dist/cmd/uv-unwrap.js.map +1 -0
- package/dist/index.d.ts +13 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +141 -8
- package/dist/index.js.map +1 -1
- package/dist/internal/artifacts.d.ts +97 -0
- package/dist/internal/artifacts.d.ts.map +1 -0
- package/dist/internal/artifacts.js +280 -0
- package/dist/internal/artifacts.js.map +1 -0
- package/dist/internal/atomic-file.d.ts +39 -0
- package/dist/internal/atomic-file.d.ts.map +1 -0
- package/dist/internal/atomic-file.js +160 -0
- package/dist/internal/atomic-file.js.map +1 -0
- package/dist/internal/command-helpers.d.ts +46 -0
- package/dist/internal/command-helpers.d.ts.map +1 -0
- package/dist/internal/command-helpers.js +61 -0
- package/dist/internal/command-helpers.js.map +1 -0
- package/dist/internal/config.d.ts +48 -5
- package/dist/internal/config.d.ts.map +1 -1
- package/dist/internal/config.js +95 -6
- package/dist/internal/config.js.map +1 -1
- package/dist/internal/context.d.ts +25 -0
- package/dist/internal/context.d.ts.map +1 -0
- package/dist/internal/context.js +37 -0
- package/dist/internal/context.js.map +1 -0
- package/dist/internal/credentials.d.ts +11 -0
- package/dist/internal/credentials.d.ts.map +1 -1
- package/dist/internal/credentials.js +2 -0
- package/dist/internal/credentials.js.map +1 -1
- package/dist/internal/doctor.d.ts +94 -0
- package/dist/internal/doctor.d.ts.map +1 -0
- package/dist/internal/doctor.js +280 -0
- package/dist/internal/doctor.js.map +1 -0
- package/dist/internal/download.d.ts +147 -13
- package/dist/internal/download.d.ts.map +1 -1
- package/dist/internal/download.js +735 -142
- package/dist/internal/download.js.map +1 -1
- package/dist/internal/env-file.d.ts +29 -0
- package/dist/internal/env-file.d.ts.map +1 -0
- package/dist/internal/env-file.js +95 -0
- package/dist/internal/env-file.js.map +1 -0
- package/dist/internal/errors.d.ts +74 -1
- package/dist/internal/errors.d.ts.map +1 -1
- package/dist/internal/errors.js +173 -1
- package/dist/internal/errors.js.map +1 -1
- package/dist/internal/file-input.d.ts +52 -12
- package/dist/internal/file-input.d.ts.map +1 -1
- package/dist/internal/file-input.js +162 -33
- package/dist/internal/file-input.js.map +1 -1
- package/dist/internal/global-options.d.ts +6 -4
- package/dist/internal/global-options.d.ts.map +1 -1
- package/dist/internal/global-options.js +19 -4
- package/dist/internal/global-options.js.map +1 -1
- package/dist/internal/image-models.d.ts +9 -2
- package/dist/internal/image-models.d.ts.map +1 -1
- package/dist/internal/image-models.js +24 -12
- package/dist/internal/image-models.js.map +1 -1
- package/dist/internal/inspect.d.ts +67 -0
- package/dist/internal/inspect.d.ts.map +1 -0
- package/dist/internal/inspect.js +111 -0
- package/dist/internal/inspect.js.map +1 -0
- package/dist/internal/lock.d.ts +19 -0
- package/dist/internal/lock.d.ts.map +1 -0
- package/dist/internal/lock.js +66 -0
- package/dist/internal/lock.js.map +1 -0
- package/dist/internal/material-links.d.ts +115 -0
- package/dist/internal/material-links.d.ts.map +1 -0
- package/dist/internal/material-links.js +577 -0
- package/dist/internal/material-links.js.map +1 -0
- package/dist/internal/obj-transform.d.ts +115 -0
- package/dist/internal/obj-transform.d.ts.map +1 -0
- package/dist/internal/obj-transform.js +649 -0
- package/dist/internal/obj-transform.js.map +1 -0
- package/dist/internal/operation-store.d.ts +123 -0
- package/dist/internal/operation-store.d.ts.map +1 -0
- package/dist/internal/operation-store.js +229 -0
- package/dist/internal/operation-store.js.map +1 -0
- package/dist/internal/output.d.ts +20 -2
- package/dist/internal/output.d.ts.map +1 -1
- package/dist/internal/output.js +32 -4
- package/dist/internal/output.js.map +1 -1
- package/dist/internal/paths.d.ts +89 -0
- package/dist/internal/paths.d.ts.map +1 -0
- package/dist/internal/paths.js +168 -0
- package/dist/internal/paths.js.map +1 -0
- package/dist/internal/payload.d.ts +15 -0
- package/dist/internal/payload.d.ts.map +1 -1
- package/dist/internal/payload.js +50 -3
- package/dist/internal/payload.js.map +1 -1
- package/dist/internal/poll.d.ts +30 -4
- package/dist/internal/poll.d.ts.map +1 -1
- package/dist/internal/poll.js +99 -16
- package/dist/internal/poll.js.map +1 -1
- package/dist/internal/project-store.d.ts +197 -0
- package/dist/internal/project-store.d.ts.map +1 -0
- package/dist/internal/project-store.js +467 -0
- package/dist/internal/project-store.js.map +1 -0
- package/dist/internal/result.d.ts +50 -0
- package/dist/internal/result.d.ts.map +1 -0
- package/dist/internal/result.js +41 -0
- package/dist/internal/result.js.map +1 -0
- package/dist/internal/runtime.d.ts +35 -5
- package/dist/internal/runtime.d.ts.map +1 -1
- package/dist/internal/runtime.js +68 -18
- package/dist/internal/runtime.js.map +1 -1
- package/dist/internal/slicers.d.ts +117 -0
- package/dist/internal/slicers.d.ts.map +1 -0
- package/dist/internal/slicers.js +314 -0
- package/dist/internal/slicers.js.map +1 -0
- package/dist/internal/stream.d.ts +58 -0
- package/dist/internal/stream.d.ts.map +1 -0
- package/dist/internal/stream.js +280 -0
- package/dist/internal/stream.js.map +1 -0
- package/dist/internal/task-command.d.ts +128 -11
- package/dist/internal/task-command.d.ts.map +1 -1
- package/dist/internal/task-command.js +991 -111
- package/dist/internal/task-command.js.map +1 -1
- package/dist/internal/task-view.d.ts +56 -0
- package/dist/internal/task-view.d.ts.map +1 -0
- package/dist/internal/task-view.js +95 -0
- package/dist/internal/task-view.js.map +1 -0
- package/dist/internal/update-notifier.d.ts +5 -1
- package/dist/internal/update-notifier.d.ts.map +1 -1
- package/dist/internal/update-notifier.js +7 -3
- package/dist/internal/update-notifier.js.map +1 -1
- package/dist/root.d.ts +10 -0
- package/dist/root.d.ts.map +1 -1
- package/dist/root.js +75 -10
- package/dist/root.js.map +1 -1
- package/package.json +3 -2
- package/skills/meshy-cli/SKILL.md +140 -59
- package/dist/client/endpoints/analyze-printability.d.ts +0 -5
- package/dist/client/endpoints/analyze-printability.d.ts.map +0 -1
- package/dist/client/endpoints/analyze-printability.js +0 -7
- package/dist/client/endpoints/analyze-printability.js.map +0 -1
- package/dist/client/endpoints/animate.d.ts +0 -6
- package/dist/client/endpoints/animate.d.ts.map +0 -1
- package/dist/client/endpoints/animate.js +0 -8
- package/dist/client/endpoints/animate.js.map +0 -1
- package/dist/client/endpoints/convert.d.ts +0 -5
- package/dist/client/endpoints/convert.d.ts.map +0 -1
- package/dist/client/endpoints/convert.js +0 -7
- package/dist/client/endpoints/convert.js.map +0 -1
- package/dist/client/endpoints/image-to-3d.d.ts +0 -5
- package/dist/client/endpoints/image-to-3d.d.ts.map +0 -1
- package/dist/client/endpoints/image-to-3d.js +0 -7
- package/dist/client/endpoints/image-to-3d.js.map +0 -1
- package/dist/client/endpoints/image-to-image.d.ts +0 -5
- package/dist/client/endpoints/image-to-image.d.ts.map +0 -1
- package/dist/client/endpoints/image-to-image.js +0 -7
- package/dist/client/endpoints/image-to-image.js.map +0 -1
- package/dist/client/endpoints/multi-color-print.d.ts +0 -5
- package/dist/client/endpoints/multi-color-print.d.ts.map +0 -1
- package/dist/client/endpoints/multi-color-print.js +0 -7
- package/dist/client/endpoints/multi-color-print.js.map +0 -1
- package/dist/client/endpoints/multi-image-to-3d.d.ts +0 -5
- package/dist/client/endpoints/multi-image-to-3d.d.ts.map +0 -1
- package/dist/client/endpoints/multi-image-to-3d.js +0 -7
- package/dist/client/endpoints/multi-image-to-3d.js.map +0 -1
- package/dist/client/endpoints/remesh.d.ts +0 -5
- package/dist/client/endpoints/remesh.d.ts.map +0 -1
- package/dist/client/endpoints/remesh.js +0 -7
- package/dist/client/endpoints/remesh.js.map +0 -1
- package/dist/client/endpoints/repair-printability.d.ts +0 -5
- package/dist/client/endpoints/repair-printability.d.ts.map +0 -1
- package/dist/client/endpoints/repair-printability.js +0 -7
- package/dist/client/endpoints/repair-printability.js.map +0 -1
- package/dist/client/endpoints/resize.d.ts +0 -5
- package/dist/client/endpoints/resize.d.ts.map +0 -1
- package/dist/client/endpoints/resize.js +0 -7
- package/dist/client/endpoints/resize.js.map +0 -1
- package/dist/client/endpoints/retexture.d.ts +0 -5
- package/dist/client/endpoints/retexture.d.ts.map +0 -1
- package/dist/client/endpoints/retexture.js +0 -7
- package/dist/client/endpoints/retexture.js.map +0 -1
- package/dist/client/endpoints/rigging.d.ts +0 -6
- package/dist/client/endpoints/rigging.d.ts.map +0 -1
- package/dist/client/endpoints/rigging.js +0 -8
- package/dist/client/endpoints/rigging.js.map +0 -1
- package/dist/client/endpoints/text-to-3d.d.ts +0 -6
- package/dist/client/endpoints/text-to-3d.d.ts.map +0 -1
- package/dist/client/endpoints/text-to-3d.js +0 -8
- package/dist/client/endpoints/text-to-3d.js.map +0 -1
- package/dist/client/endpoints/text-to-image.d.ts +0 -5
- package/dist/client/endpoints/text-to-image.d.ts.map +0 -1
- package/dist/client/endpoints/text-to-image.js +0 -7
- package/dist/client/endpoints/text-to-image.js.map +0 -1
- package/dist/client/endpoints/text-to-motion.d.ts +0 -6
- package/dist/client/endpoints/text-to-motion.d.ts.map +0 -1
- package/dist/client/endpoints/text-to-motion.js +0 -8
- package/dist/client/endpoints/text-to-motion.js.map +0 -1
|
@@ -1,24 +1,64 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Media inputs: turn what the user typed into what the API accepts.
|
|
3
3
|
*
|
|
4
|
-
* Accepted
|
|
5
|
-
* - http(s) URLs — preflighted with
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Accepted for every declared media field (see resource-registry mediaFields):
|
|
5
|
+
* - http(s) URLs — preflighted with an unauthenticated HEAD (GET fallback,
|
|
6
|
+
* aborted right after the headers) so unreachable sources fail before a
|
|
7
|
+
* billable POST. The API credential is never attached to a preflight.
|
|
8
|
+
* - data: URIs — validated (base64, sane MIME, size cap) and passed through.
|
|
9
|
+
* - Local file paths (absolute or relative to cwd) — must be regular files
|
|
10
|
+
* under the size cap and of an accepted format; read, MIME-sniffed and
|
|
11
|
+
* inlined as data URIs.
|
|
8
12
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
13
|
+
* Normalisation runs on the *final merged payload* (defaults < --data <
|
|
14
|
+
* flags), so a path inside `--data '{"texture_image_url":"./tex.png"}'` is
|
|
15
|
+
* handled exactly like the typed flag. Only fields the resource declares are
|
|
16
|
+
* touched — no string that merely looks like a path is ever read.
|
|
11
17
|
*/
|
|
12
|
-
|
|
18
|
+
import type { MediaField } from "../client/resource-registry.js";
|
|
19
|
+
export declare const DEFAULT_MEDIA_LIMITS: {
|
|
20
|
+
/** 50 MiB — an engineering default, not a Meshy product limit. */
|
|
21
|
+
readonly maxFileBytes: number;
|
|
22
|
+
readonly preflightTimeoutMs: 10000;
|
|
23
|
+
};
|
|
24
|
+
export type MediaLimits = {
|
|
25
|
+
maxFileBytes: number;
|
|
26
|
+
preflightTimeoutMs: number;
|
|
27
|
+
};
|
|
28
|
+
export interface NormalizeOptions {
|
|
29
|
+
cwd?: string;
|
|
30
|
+
limits?: Partial<MediaLimits>;
|
|
31
|
+
fetchImpl?: typeof fetch;
|
|
32
|
+
signal?: AbortSignal;
|
|
33
|
+
}
|
|
34
|
+
export interface NormalizedMedia {
|
|
35
|
+
field: string;
|
|
36
|
+
index: number | null;
|
|
37
|
+
source: "url" | "data-uri" | "local-file";
|
|
38
|
+
mime: string | null;
|
|
39
|
+
bytes: number | null;
|
|
40
|
+
}
|
|
41
|
+
/** camelCase option names that hold image inputs (legacy flag-level API). */
|
|
13
42
|
export declare const IMAGE_FIELDS: {
|
|
14
|
-
scalar: readonly ["imageUrl", "imageStyleUrl"];
|
|
43
|
+
scalar: readonly ["imageUrl", "imageStyleUrl", "textureImageUrl"];
|
|
15
44
|
list: readonly ["imageUrls", "referenceImageUrls", "multiviewImageUrls"];
|
|
16
45
|
};
|
|
17
|
-
/** camelCase option names that hold 3D model inputs. */
|
|
46
|
+
/** camelCase option names that hold 3D model inputs (legacy flag-level API). */
|
|
18
47
|
export declare const MODEL_FIELDS: {
|
|
19
48
|
scalar: readonly ["modelUrl"];
|
|
20
49
|
list: readonly [];
|
|
21
50
|
};
|
|
22
|
-
export declare function resolveImageFields(opts: Record<string, unknown
|
|
23
|
-
export declare function resolveModelFields(opts: Record<string, unknown
|
|
51
|
+
export declare function resolveImageFields(opts: Record<string, unknown>, o?: NormalizeOptions): Promise<void>;
|
|
52
|
+
export declare function resolveModelFields(opts: Record<string, unknown>, o?: NormalizeOptions): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Normalise every declared media field of a final payload in place-free
|
|
55
|
+
* fashion (a new object is returned). Non-string values are left untouched
|
|
56
|
+
* and reported by the endpoint schema instead.
|
|
57
|
+
*/
|
|
58
|
+
export declare function normalizeMediaPayload(payload: Record<string, unknown>, fields: readonly MediaField[], o?: NormalizeOptions): Promise<{
|
|
59
|
+
payload: Record<string, unknown>;
|
|
60
|
+
media: NormalizedMedia[];
|
|
61
|
+
}>;
|
|
62
|
+
export declare function detectImageMime(buffer: Buffer, path: string): string;
|
|
63
|
+
export declare function detectModelMime(buffer: Buffer, path: string): string;
|
|
24
64
|
//# sourceMappingURL=file-input.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-input.d.ts","sourceRoot":"","sources":["../../src/internal/file-input.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"file-input.d.ts","sourceRoot":"","sources":["../../src/internal/file-input.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,gCAAgC,CAAC;AAK5E,eAAO,MAAM,oBAAoB;IAC/B,kEAAkE;aAClE,YAAY;aACZ,kBAAkB,EAAE,KAAM;CAClB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/E,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,KAAK,GAAG,UAAU,GAAG,YAAY,CAAC;IAC1C,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,6EAA6E;AAC7E,eAAO,MAAM,YAAY;IACvB,MAAM,YACJ,UAAU,EACV,eAAe,EACf,iBAAiB;IAEnB,IAAI,YACF,WAAW,EACX,oBAAoB,EACpB,oBAAoB;CAEvB,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,YAAY;IACvB,MAAM,YAAG,UAAU;IACnB,IAAI;CACL,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/G;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/G;AAoCD;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,CAAC,GAAE,gBAAqB,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,KAAK,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC,CA4BzE;AAuJD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CA0BpE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CA2BpE"}
|
|
@@ -1,23 +1,36 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Media inputs: turn what the user typed into what the API accepts.
|
|
3
3
|
*
|
|
4
|
-
* Accepted
|
|
5
|
-
* - http(s) URLs — preflighted with
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Accepted for every declared media field (see resource-registry mediaFields):
|
|
5
|
+
* - http(s) URLs — preflighted with an unauthenticated HEAD (GET fallback,
|
|
6
|
+
* aborted right after the headers) so unreachable sources fail before a
|
|
7
|
+
* billable POST. The API credential is never attached to a preflight.
|
|
8
|
+
* - data: URIs — validated (base64, sane MIME, size cap) and passed through.
|
|
9
|
+
* - Local file paths (absolute or relative to cwd) — must be regular files
|
|
10
|
+
* under the size cap and of an accepted format; read, MIME-sniffed and
|
|
11
|
+
* inlined as data URIs.
|
|
8
12
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
13
|
+
* Normalisation runs on the *final merged payload* (defaults < --data <
|
|
14
|
+
* flags), so a path inside `--data '{"texture_image_url":"./tex.png"}'` is
|
|
15
|
+
* handled exactly like the typed flag. Only fields the resource declares are
|
|
16
|
+
* touched — no string that merely looks like a path is ever read.
|
|
11
17
|
*/
|
|
12
18
|
import { readFileSync, statSync } from "node:fs";
|
|
13
19
|
import { extname, isAbsolute, resolve as resolvePath } from "node:path";
|
|
14
20
|
import { UsageError } from "./errors.js";
|
|
15
21
|
import { logger } from "./logger.js";
|
|
16
|
-
|
|
22
|
+
import { USER_AGENT } from "./user-agent.js";
|
|
23
|
+
export const DEFAULT_MEDIA_LIMITS = {
|
|
24
|
+
/** 50 MiB — an engineering default, not a Meshy product limit. */
|
|
25
|
+
maxFileBytes: 50 * 1024 * 1024,
|
|
26
|
+
preflightTimeoutMs: 10_000,
|
|
27
|
+
};
|
|
28
|
+
/** camelCase option names that hold image inputs (legacy flag-level API). */
|
|
17
29
|
export const IMAGE_FIELDS = {
|
|
18
30
|
scalar: [
|
|
19
31
|
"imageUrl", // image-to-3d
|
|
20
32
|
"imageStyleUrl", // retexture
|
|
33
|
+
"textureImageUrl", // text-to-3d refine / rigging
|
|
21
34
|
],
|
|
22
35
|
list: [
|
|
23
36
|
"imageUrls", // multi-image-to-3d
|
|
@@ -25,22 +38,22 @@ export const IMAGE_FIELDS = {
|
|
|
25
38
|
"multiviewImageUrls", // retexture
|
|
26
39
|
],
|
|
27
40
|
};
|
|
28
|
-
/** camelCase option names that hold 3D model inputs. */
|
|
41
|
+
/** camelCase option names that hold 3D model inputs (legacy flag-level API). */
|
|
29
42
|
export const MODEL_FIELDS = {
|
|
30
|
-
scalar: ["modelUrl"], // remesh, retexture, rigging
|
|
43
|
+
scalar: ["modelUrl"], // remesh, retexture, rigging, uv-unwrap …
|
|
31
44
|
list: [],
|
|
32
45
|
};
|
|
33
|
-
export async function resolveImageFields(opts) {
|
|
34
|
-
await resolveGroup(opts, IMAGE_FIELDS,
|
|
46
|
+
export async function resolveImageFields(opts, o = {}) {
|
|
47
|
+
await resolveGroup(opts, IMAGE_FIELDS, "image", o);
|
|
35
48
|
}
|
|
36
|
-
export async function resolveModelFields(opts) {
|
|
37
|
-
await resolveGroup(opts, MODEL_FIELDS,
|
|
49
|
+
export async function resolveModelFields(opts, o = {}) {
|
|
50
|
+
await resolveGroup(opts, MODEL_FIELDS, "model", o);
|
|
38
51
|
}
|
|
39
|
-
async function resolveGroup(opts, fields,
|
|
52
|
+
async function resolveGroup(opts, fields, kind, o) {
|
|
40
53
|
for (const key of fields.scalar) {
|
|
41
54
|
const v = opts[key];
|
|
42
55
|
if (typeof v === "string" && v) {
|
|
43
|
-
opts[key] = await resolveOne(v, `--${toFlag(key)}`,
|
|
56
|
+
opts[key] = (await resolveOne(v, `--${toFlag(key)}`, kind, undefined, o)).value;
|
|
44
57
|
}
|
|
45
58
|
}
|
|
46
59
|
for (const key of fields.list) {
|
|
@@ -49,7 +62,7 @@ async function resolveGroup(opts, fields, detect, kind) {
|
|
|
49
62
|
const resolved = [];
|
|
50
63
|
for (const entry of v) {
|
|
51
64
|
if (typeof entry === "string" && entry) {
|
|
52
|
-
resolved.push(await resolveOne(entry, `--${toFlag(key)}`,
|
|
65
|
+
resolved.push((await resolveOne(entry, `--${toFlag(key)}`, kind, undefined, o)).value);
|
|
53
66
|
}
|
|
54
67
|
}
|
|
55
68
|
opts[key] = resolved;
|
|
@@ -59,28 +72,118 @@ async function resolveGroup(opts, fields, detect, kind) {
|
|
|
59
72
|
function toFlag(camel) {
|
|
60
73
|
return camel.replace(/([A-Z])/g, "-$1").toLowerCase();
|
|
61
74
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
75
|
+
function flagForField(path) {
|
|
76
|
+
return `--${path.replace(/_/g, "-")}`;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Normalise every declared media field of a final payload in place-free
|
|
80
|
+
* fashion (a new object is returned). Non-string values are left untouched
|
|
81
|
+
* and reported by the endpoint schema instead.
|
|
82
|
+
*/
|
|
83
|
+
export async function normalizeMediaPayload(payload, fields, o = {}) {
|
|
84
|
+
const out = { ...payload };
|
|
85
|
+
const media = [];
|
|
86
|
+
for (const field of fields) {
|
|
87
|
+
const value = out[field.path];
|
|
88
|
+
if (value === undefined || value === null)
|
|
89
|
+
continue;
|
|
90
|
+
const label = flagForField(field.path);
|
|
91
|
+
if (field.many) {
|
|
92
|
+
if (!Array.isArray(value))
|
|
93
|
+
continue;
|
|
94
|
+
const resolved = [];
|
|
95
|
+
for (let i = 0; i < value.length; i++) {
|
|
96
|
+
const entry = value[i];
|
|
97
|
+
if (typeof entry !== "string" || !entry) {
|
|
98
|
+
resolved.push(entry);
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
const r = await resolveOne(entry, `${label}[${i}]`, field.kind, field.formats, o);
|
|
102
|
+
resolved.push(r.value);
|
|
103
|
+
media.push({ field: field.path, index: i, source: r.source, mime: r.mime, bytes: r.bytes });
|
|
104
|
+
}
|
|
105
|
+
out[field.path] = resolved;
|
|
106
|
+
}
|
|
107
|
+
else if (typeof value === "string" && value) {
|
|
108
|
+
const r = await resolveOne(value, label, field.kind, field.formats, o);
|
|
109
|
+
out[field.path] = r.value;
|
|
110
|
+
media.push({ field: field.path, index: null, source: r.source, mime: r.mime, bytes: r.bytes });
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return { payload: out, media };
|
|
114
|
+
}
|
|
115
|
+
async function resolveOne(input, flagLabel, kind, formats, o) {
|
|
116
|
+
const limits = { ...DEFAULT_MEDIA_LIMITS, ...(o.limits ?? {}) };
|
|
117
|
+
if (/^data:/i.test(input)) {
|
|
118
|
+
return validateDataUri(input, flagLabel, kind, formats, limits);
|
|
65
119
|
}
|
|
66
120
|
if (/^https?:\/\//i.test(input)) {
|
|
67
|
-
await preflightUrl(input, flagLabel);
|
|
68
|
-
return input;
|
|
121
|
+
await preflightUrl(input, flagLabel, limits, o);
|
|
122
|
+
return { value: input, source: "url", mime: null, bytes: null };
|
|
123
|
+
}
|
|
124
|
+
if (/^[a-z][a-z0-9+.-]*:\/\//i.test(input)) {
|
|
125
|
+
throw new UsageError(`${flagLabel}: only http(s) URLs, data: URIs and local file paths are accepted (got ${input.split(":")[0]}: URL)`);
|
|
126
|
+
}
|
|
127
|
+
return loadLocalFile(input, flagLabel, kind, formats, limits, o.cwd ?? process.cwd());
|
|
128
|
+
}
|
|
129
|
+
const DATA_URI_RE = /^data:([a-z0-9!#$&^_.+-]+\/[a-z0-9!#$&^_.+-]+)((?:;[a-z0-9-]+=[^;,]*)*)(;base64)?,(.*)$/is;
|
|
130
|
+
function validateDataUri(input, flagLabel, kind, formats, limits) {
|
|
131
|
+
const m = DATA_URI_RE.exec(input);
|
|
132
|
+
if (!m)
|
|
133
|
+
throw new UsageError(`${flagLabel}: malformed data: URI (expected data:<mime>;base64,<payload>)`);
|
|
134
|
+
const mime = m[1].toLowerCase();
|
|
135
|
+
const isBase64 = Boolean(m[3]);
|
|
136
|
+
const body = m[4] ?? "";
|
|
137
|
+
if (!isBase64)
|
|
138
|
+
throw new UsageError(`${flagLabel}: data: URI must be base64-encoded`);
|
|
139
|
+
if (!/^[A-Za-z0-9+/=\s]*$/.test(body))
|
|
140
|
+
throw new UsageError(`${flagLabel}: data: URI payload is not valid base64`);
|
|
141
|
+
const bytes = Math.floor((body.replace(/\s+/g, "").length * 3) / 4);
|
|
142
|
+
if (bytes > limits.maxFileBytes) {
|
|
143
|
+
throw new UsageError(`${flagLabel}: inline data is ${bytes} bytes, above the ${limits.maxFileBytes}-byte limit`);
|
|
69
144
|
}
|
|
70
|
-
|
|
145
|
+
if (kind === "image" && !mime.startsWith("image/")) {
|
|
146
|
+
throw new UsageError(`${flagLabel}: expected an image data: URI, got ${mime}`);
|
|
147
|
+
}
|
|
148
|
+
if (kind === "model" && !(mime.startsWith("model/") || mime === "application/octet-stream")) {
|
|
149
|
+
throw new UsageError(`${flagLabel}: expected a 3D-model data: URI (model/* or application/octet-stream), got ${mime}`);
|
|
150
|
+
}
|
|
151
|
+
if (formats && formats.length > 0) {
|
|
152
|
+
const ext = extForMime(mime);
|
|
153
|
+
if (!ext || !formats.includes(ext)) {
|
|
154
|
+
throw new UsageError(`${flagLabel}: this field accepts ${formats.join("/")} only (data: URI is ${mime})`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return { value: input, source: "data-uri", mime, bytes };
|
|
71
158
|
}
|
|
72
|
-
async function preflightUrl(url, flagLabel) {
|
|
159
|
+
async function preflightUrl(url, flagLabel, limits, o) {
|
|
160
|
+
let parsed;
|
|
161
|
+
try {
|
|
162
|
+
parsed = new URL(url);
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
throw new UsageError(`${flagLabel}: invalid URL ${url}`);
|
|
166
|
+
}
|
|
167
|
+
if (parsed.username || parsed.password)
|
|
168
|
+
throw new UsageError(`${flagLabel}: URLs with embedded credentials are not accepted`);
|
|
169
|
+
const fetchImpl = o.fetchImpl ?? globalThis.fetch;
|
|
170
|
+
const headers = { "User-Agent": USER_AGENT };
|
|
171
|
+
const timeout = AbortSignal.timeout(limits.preflightTimeoutMs);
|
|
172
|
+
const signal = o.signal ? AbortSignal.any([timeout, o.signal]) : timeout;
|
|
73
173
|
let resp;
|
|
74
174
|
try {
|
|
75
|
-
resp = await
|
|
175
|
+
resp = await fetchImpl(url, { method: "HEAD", redirect: "follow", headers, signal });
|
|
76
176
|
if (resp.status === 405 || resp.status === 501) {
|
|
77
177
|
const controller = new AbortController();
|
|
78
|
-
|
|
178
|
+
const getSignal = AbortSignal.any([controller.signal, signal]);
|
|
179
|
+
resp = await fetchImpl(url, { method: "GET", redirect: "follow", headers, signal: getSignal });
|
|
79
180
|
controller.abort();
|
|
80
181
|
}
|
|
81
182
|
}
|
|
82
183
|
catch (err) {
|
|
83
184
|
const msg = err instanceof Error ? err.message : String(err);
|
|
185
|
+
if (timeout.aborted)
|
|
186
|
+
throw new UsageError(`${flagLabel}: preflight of ${url} timed out after ${limits.preflightTimeoutMs}ms`);
|
|
84
187
|
throw new UsageError(`${flagLabel}: cannot reach ${url} (${msg})`);
|
|
85
188
|
}
|
|
86
189
|
if (!resp.ok) {
|
|
@@ -88,8 +191,8 @@ async function preflightUrl(url, flagLabel) {
|
|
|
88
191
|
}
|
|
89
192
|
logger.debug(`${flagLabel} preflight OK: ${url} (${resp.status})`);
|
|
90
193
|
}
|
|
91
|
-
function loadLocalFile(input, flagLabel,
|
|
92
|
-
const absPath = isAbsolute(input) ? input : resolvePath(
|
|
194
|
+
function loadLocalFile(input, flagLabel, kind, formats, limits, cwd) {
|
|
195
|
+
const absPath = isAbsolute(input) ? input : resolvePath(cwd, input);
|
|
93
196
|
let stat;
|
|
94
197
|
try {
|
|
95
198
|
stat = statSync(absPath);
|
|
@@ -100,15 +203,41 @@ function loadLocalFile(input, flagLabel, detect, kind) {
|
|
|
100
203
|
if (!stat.isFile()) {
|
|
101
204
|
throw new UsageError(`${flagLabel}: not a regular file: ${input}`);
|
|
102
205
|
}
|
|
206
|
+
if (stat.size > limits.maxFileBytes) {
|
|
207
|
+
throw new UsageError(`${flagLabel}: ${input} is ${stat.size} bytes, above the ${limits.maxFileBytes}-byte limit`);
|
|
208
|
+
}
|
|
103
209
|
const buffer = readFileSync(absPath);
|
|
104
|
-
const mime =
|
|
210
|
+
const mime = kind === "image" ? detectImageMime(buffer, absPath) : detectModelMime(buffer, absPath);
|
|
105
211
|
if (!mime) {
|
|
106
|
-
throw new UsageError(`${flagLabel}: could not detect ${kind} MIME type for ${absPath}`);
|
|
212
|
+
throw new UsageError(`${flagLabel}: could not detect ${kind === "image" ? "image" : "3d model"} MIME type for ${absPath}`);
|
|
213
|
+
}
|
|
214
|
+
if (formats && formats.length > 0) {
|
|
215
|
+
const ext = extForMime(mime) ?? extname(absPath).slice(1).toLowerCase();
|
|
216
|
+
if (!formats.includes(ext)) {
|
|
217
|
+
throw new UsageError(`${flagLabel}: this field accepts ${formats.join("/")} only (got ${ext || "unknown"})`);
|
|
218
|
+
}
|
|
107
219
|
}
|
|
108
220
|
logger.debug(`${flagLabel} inlined ${absPath} as ${mime} data URI (${buffer.length} bytes)`);
|
|
109
|
-
return `data:${mime};base64,${buffer.toString("base64")}
|
|
221
|
+
return { value: `data:${mime};base64,${buffer.toString("base64")}`, source: "local-file", mime, bytes: buffer.length };
|
|
222
|
+
}
|
|
223
|
+
function extForMime(mime) {
|
|
224
|
+
const map = {
|
|
225
|
+
"image/jpeg": "jpg",
|
|
226
|
+
"image/png": "png",
|
|
227
|
+
"image/webp": "webp",
|
|
228
|
+
"image/gif": "gif",
|
|
229
|
+
"image/bmp": "bmp",
|
|
230
|
+
"model/gltf-binary": "glb",
|
|
231
|
+
"model/gltf+json": "gltf",
|
|
232
|
+
"model/obj": "obj",
|
|
233
|
+
"model/stl": "stl",
|
|
234
|
+
"model/vnd.usdz+zip": "usdz",
|
|
235
|
+
"model/3mf": "3mf",
|
|
236
|
+
"application/octet-stream": "fbx",
|
|
237
|
+
};
|
|
238
|
+
return map[mime] ?? null;
|
|
110
239
|
}
|
|
111
|
-
function detectImageMime(buffer, path) {
|
|
240
|
+
export function detectImageMime(buffer, path) {
|
|
112
241
|
if (buffer.length >= 12) {
|
|
113
242
|
if (buffer[0] === 0xff && buffer[1] === 0xd8 && buffer[2] === 0xff)
|
|
114
243
|
return "image/jpeg";
|
|
@@ -136,7 +265,7 @@ function detectImageMime(buffer, path) {
|
|
|
136
265
|
};
|
|
137
266
|
return map[ext] ?? "";
|
|
138
267
|
}
|
|
139
|
-
function detectModelMime(buffer, path) {
|
|
268
|
+
export function detectModelMime(buffer, path) {
|
|
140
269
|
// GLB: magic "glTF" at offset 0
|
|
141
270
|
if (buffer.length >= 4 &&
|
|
142
271
|
buffer[0] === 0x67 &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-input.js","sourceRoot":"","sources":["../../src/internal/file-input.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,qDAAqD;AACrD,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,MAAM,EAAE;QACN,UAAU,EAAQ,cAAc;QAChC,eAAe,EAAG,YAAY;KACtB;IACV,IAAI,EAAE;QACJ,WAAW,EAAa,oBAAoB;QAC5C,oBAAoB,EAAI,iBAAiB;QACzC,oBAAoB,EAAI,YAAY;KAC5B;CACX,CAAC;AAEF,wDAAwD;AACxD,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,MAAM,EAAE,CAAC,UAAU,CAAU,EAAG,6BAA6B;IAC7D,IAAI,EAAE,EAAW;CAClB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAA6B;IACpE,MAAM,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAA6B;IACpE,MAAM,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;AACtE,CAAC;AAID,KAAK,UAAU,YAAY,CACzB,IAA6B,EAC7B,MAA8D,EAC9D,MAAoB,EACpB,IAAY;IAEZ,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,UAAU,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,KAAK,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC;gBACtB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,EAAE,CAAC;oBACvC,QAAQ,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QACvB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,KAAa,EACb,SAAiB,EACjB,MAAoB,EACpB,IAAY;IAEZ,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,UAAU,CAClB,GAAG,SAAS,mFAAmF,CAChG,CAAC;IACJ,CAAC;IACD,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,SAAiB;IACxD,IAAI,IAAc,CAAC;IACnB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC/C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC1F,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,kBAAkB,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,KAAK,GAAG,aAAa,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,kBAAkB,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,aAAa,CACpB,KAAa,EACb,SAAiB,EACjB,MAAoB,EACpB,IAAY;IAEZ,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;IAC9E,IAAI,IAAiC,CAAC;IACtC,IAAI,CAAC;QACH,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,qBAAqB,KAAK,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,yBAAyB,KAAK,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,sBAAsB,IAAI,kBAAkB,OAAO,EAAE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,YAAY,OAAO,OAAO,IAAI,cAAc,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;IAC7F,OAAO,QAAQ,IAAI,WAAW,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,IAAY;IACnD,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACxB,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,YAAY,CAAC;QACxF,IACE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;YAClB,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;YAClB,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;YAClB,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;YAClB,OAAO,WAAW,CAAC;QACrB,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,WAAW,CAAC;QACvF,IACE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,MAAM;YAClD,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,MAAM;YACnD,OAAO,YAAY,CAAC;QACtB,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,WAAW,CAAC;IACnE,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,MAAM,GAAG,GAA2B;QAClC,GAAG,EAAE,YAAY;QACjB,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,WAAW;QAChB,GAAG,EAAE,WAAW;KACjB,CAAC;IACF,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,IAAY;IACnD,gCAAgC;IAChC,IACE,MAAM,CAAC,MAAM,IAAI,CAAC;QAClB,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;QAClB,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;QAClB,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;QAClB,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAClB,CAAC;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACD,+DAA+D;IAC/D,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,oBAAoB,EAAE,CAAC;QAC7F,OAAO,0BAA0B,CAAC;IACpC,CAAC;IACD,+EAA+E;IAC/E,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,MAAM,GAAG,GAA2B;QAClC,GAAG,EAAE,mBAAmB;QACxB,IAAI,EAAE,iBAAiB;QACvB,GAAG,EAAE,WAAW;QAChB,GAAG,EAAE,0BAA0B;QAC/B,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,WAAW;KACnB,CAAC;IACF,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC"}
|
|
1
|
+
{"version":3,"file":"file-input.js","sourceRoot":"","sources":["../../src/internal/file-input.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,kEAAkE;IAClE,YAAY,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IAC9B,kBAAkB,EAAE,MAAM;CAClB,CAAC;AAmBX,6EAA6E;AAC7E,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,MAAM,EAAE;QACN,UAAU,EAAQ,cAAc;QAChC,eAAe,EAAG,YAAY;QAC9B,iBAAiB,EAAE,8BAA8B;KACzC;IACV,IAAI,EAAE;QACJ,WAAW,EAAa,oBAAoB;QAC5C,oBAAoB,EAAI,iBAAiB;QACzC,oBAAoB,EAAI,YAAY;KAC5B;CACX,CAAC;AAEF,gFAAgF;AAChF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,MAAM,EAAE,CAAC,UAAU,CAAU,EAAG,0CAA0C;IAC1E,IAAI,EAAE,EAAW;CAClB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAA6B,EAAE,CAAC,GAAqB,EAAE;IAC9F,MAAM,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAA6B,EAAE,CAAC,GAAqB,EAAE;IAC9F,MAAM,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,IAA6B,EAC7B,MAA8D,EAC9D,IAAe,EACf,CAAmB;IAEnB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,UAAU,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAClF,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,KAAK,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC;gBACtB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,EAAE,CAAC;oBACvC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACzF,CAAC;YACH,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QACvB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAgC,EAChC,MAA6B,EAC7B,CAAC,GAAqB,EAAE;IAExB,MAAM,GAAG,GAA4B,EAAE,GAAG,OAAO,EAAE,CAAC;IACpD,MAAM,KAAK,GAAsB,EAAE,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QACpD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,SAAS;YACpC,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;oBACxC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrB,SAAS;gBACX,CAAC;gBACD,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAClF,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC9F,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;QAC7B,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACvE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AACjC,CAAC;AASD,KAAK,UAAU,UAAU,CACvB,KAAa,EACb,SAAiB,EACjB,IAAe,EACf,OAAsC,EACtC,CAAmB;IAEnB,MAAM,MAAM,GAAgB,EAAE,GAAG,oBAAoB,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;IAC7E,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAChD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAClE,CAAC;IACD,IAAI,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,0EAA0E,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC1I,CAAC;IACD,OAAO,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,WAAW,GAAG,2FAA2F,CAAC;AAEhH,SAAS,eAAe,CACtB,KAAa,EACb,SAAiB,EACjB,IAAe,EACf,OAAsC,EACtC,MAAmB;IAEnB,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,+DAA+D,CAAC,CAAC;IAC1G,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxB,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,oCAAoC,CAAC,CAAC;IACtF,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,yCAAyC,CAAC,CAAC;IACnH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpE,IAAI,KAAK,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,oBAAoB,KAAK,qBAAqB,MAAM,CAAC,YAAY,aAAa,CAAC,CAAC;IACnH,CAAC;IACD,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,sCAAsC,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,0BAA0B,CAAC,EAAE,CAAC;QAC5F,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,8EAA8E,IAAI,EAAE,CAAC,CAAC;IACzH,CAAC;IACD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,wBAAwB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,uBAAuB,IAAI,GAAG,CAAC,CAAC;QAC5G,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC3D,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,SAAiB,EAAE,MAAmB,EAAE,CAAmB;IAClG,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,iBAAiB,GAAG,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ;QAAE,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,mDAAmD,CAAC,CAAC;IAC9H,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;IAClD,MAAM,OAAO,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACzE,IAAI,IAAc,CAAC;IACnB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACrF,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC/C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YAC/D,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YAC/F,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,IAAI,OAAO,CAAC,OAAO;YAAE,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,kBAAkB,GAAG,oBAAoB,MAAM,CAAC,kBAAkB,IAAI,CAAC,CAAC;QAC9H,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,kBAAkB,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,KAAK,GAAG,aAAa,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,kBAAkB,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,aAAa,CACpB,KAAa,EACb,SAAiB,EACjB,IAAe,EACf,OAAsC,EACtC,MAAmB,EACnB,GAAW;IAEX,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpE,IAAI,IAAiC,CAAC;IACtC,IAAI,CAAC;QACH,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,qBAAqB,KAAK,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,yBAAyB,KAAK,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QACpC,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,KAAK,KAAK,OAAO,IAAI,CAAC,IAAI,qBAAqB,MAAM,CAAC,YAAY,aAAa,CAAC,CAAC;IACpH,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpG,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,sBAAsB,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,kBAAkB,OAAO,EAAE,CAAC,CAAC;IAC7H,CAAC;IACD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACxE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,wBAAwB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,IAAI,SAAS,GAAG,CAAC,CAAC;QAC/G,CAAC;IACH,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,YAAY,OAAO,OAAO,IAAI,cAAc,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;IAC7F,OAAO,EAAE,KAAK,EAAE,QAAQ,IAAI,WAAW,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AACzH,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,GAAG,GAA2B;QAClC,YAAY,EAAE,KAAK;QACnB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,MAAM;QACpB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;QAClB,mBAAmB,EAAE,KAAK;QAC1B,iBAAiB,EAAE,MAAM;QACzB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;QAClB,oBAAoB,EAAE,MAAM;QAC5B,WAAW,EAAE,KAAK;QAClB,0BAA0B,EAAE,KAAK;KAClC,CAAC;IACF,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,IAAY;IAC1D,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACxB,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,YAAY,CAAC;QACxF,IACE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;YAClB,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;YAClB,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;YAClB,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;YAClB,OAAO,WAAW,CAAC;QACrB,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,WAAW,CAAC;QACvF,IACE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,MAAM;YAClD,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,MAAM;YACnD,OAAO,YAAY,CAAC;QACtB,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,WAAW,CAAC;IACnE,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,MAAM,GAAG,GAA2B;QAClC,GAAG,EAAE,YAAY;QACjB,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,WAAW;QAChB,GAAG,EAAE,WAAW;KACjB,CAAC;IACF,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,IAAY;IAC1D,gCAAgC;IAChC,IACE,MAAM,CAAC,MAAM,IAAI,CAAC;QAClB,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;QAClB,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;QAClB,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;QAClB,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAClB,CAAC;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACD,+DAA+D;IAC/D,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,oBAAoB,EAAE,CAAC;QAC7F,OAAO,0BAA0B,CAAC;IACpC,CAAC;IACD,+EAA+E;IAC/E,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,MAAM,GAAG,GAA2B;QAClC,GAAG,EAAE,mBAAmB;QACxB,IAAI,EAAE,iBAAiB;QACvB,GAAG,EAAE,WAAW;QAChB,GAAG,EAAE,0BAA0B;QAC/B,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,WAAW;KACnB,CAAC;IACF,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC"}
|
|
@@ -3,14 +3,16 @@
|
|
|
3
3
|
* regardless of position in argv (e.g. `meshy-cli balance --format pretty`
|
|
4
4
|
* as well as `meshy-cli --format pretty balance`).
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* Commander parses the root command's known options wherever they appear in
|
|
7
|
+
* argv (positional options are disabled), so a flag declared here is consumed
|
|
8
|
+
* by the root even when typed after the subcommand. The hidden mirrors on
|
|
9
|
+
* every descendant keep `optsWithGlobals()` uniform and make the flag visible
|
|
10
|
+
* to `<sub> --help` walkers.
|
|
10
11
|
*/
|
|
11
12
|
import { Command } from "commander";
|
|
12
13
|
/** Register the visible, default-carrying versions on the root command. */
|
|
13
14
|
export declare function registerRootGlobalOptions(root: Command): void;
|
|
14
15
|
/** Mirror the same flags onto every descendant, hidden from help. */
|
|
15
16
|
export declare function mirrorGlobalOptionsToDescendants(root: Command): void;
|
|
17
|
+
export declare function walkCommands(cmd: Command, visit: (c: Command) => void): void;
|
|
16
18
|
//# sourceMappingURL=global-options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-options.d.ts","sourceRoot":"","sources":["../../src/internal/global-options.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"global-options.d.ts","sourceRoot":"","sources":["../../src/internal/global-options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAqD5C,2EAA2E;AAC3E,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAO7D;AAED,qEAAqE;AACrE,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CASpE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAE5E"}
|
|
@@ -3,19 +3,31 @@
|
|
|
3
3
|
* regardless of position in argv (e.g. `meshy-cli balance --format pretty`
|
|
4
4
|
* as well as `meshy-cli --format pretty balance`).
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* Commander parses the root command's known options wherever they appear in
|
|
7
|
+
* argv (positional options are disabled), so a flag declared here is consumed
|
|
8
|
+
* by the root even when typed after the subcommand. The hidden mirrors on
|
|
9
|
+
* every descendant keep `optsWithGlobals()` uniform and make the flag visible
|
|
10
|
+
* to `<sub> --help` walkers.
|
|
10
11
|
*/
|
|
11
12
|
import { Option } from "commander";
|
|
12
13
|
const FACTORIES = [
|
|
13
14
|
() => new Option("--api-key <key>", "Meshy API key (overrides MESHY_API_KEY)"),
|
|
14
15
|
() => new Option("--base-url-v1 <url>", "override v1 base URL"),
|
|
15
16
|
() => new Option("--base-url-v2 <url>", "override v2 base URL"),
|
|
17
|
+
() => new Option("--base-url-creative-lab <url>", "override the Creative Lab base URL (default: <v1 origin>/openapi/creative-lab)"),
|
|
16
18
|
() => new Option("--format <fmt>", "output format").choices(["json", "pretty", "ndjson"]),
|
|
17
19
|
() => new Option("--json", "output as JSON (alias for --format json)"),
|
|
20
|
+
() => new Option("--output-schema <schema>", "stdout data model: legacy (0.2.0-compatible, default for existing commands) | v1 (stable envelope; default for new commands)").choices(["legacy", "v1"]),
|
|
18
21
|
() => new Option("-o, --output <path>", "download artifacts + write meta.json; switches stdout to a status report"),
|
|
22
|
+
() => new Option("--api-key-file <path>", "read MESHY_API_KEY from this dotenv-style file (only that key is read; parsed, never executed; no .env auto-discovery)"),
|
|
23
|
+
// Node.js itself scans the whole argv for `--env-file` — even after the
|
|
24
|
+
// script name — loads the entire file into process.env (NODE_OPTIONS
|
|
25
|
+
// included) and exits 9 when it is missing. The flag therefore cannot be
|
|
26
|
+
// offered safely; it is registered only so a habitual `--env-file` gets an
|
|
27
|
+
// explanation instead of a silent, Node-side environment load.
|
|
28
|
+
() => new Option("--env-file <path>", "(unsupported) use --api-key-file").hideHelp(),
|
|
29
|
+
() => new Option("--workspace <dir>", "restrict every file written by local tools and downloads to this directory"),
|
|
30
|
+
() => new Option("--no-update-check", "never query npm for a newer version in this process"),
|
|
19
31
|
() => new Option("-v, --verbose", "debug logging"),
|
|
20
32
|
() => new Option("--log-level <level>", "log level").choices([
|
|
21
33
|
"debug",
|
|
@@ -49,6 +61,9 @@ export function mirrorGlobalOptionsToDescendants(root) {
|
|
|
49
61
|
}
|
|
50
62
|
});
|
|
51
63
|
}
|
|
64
|
+
export function walkCommands(cmd, visit) {
|
|
65
|
+
walk(cmd, visit);
|
|
66
|
+
}
|
|
52
67
|
function walk(cmd, visit) {
|
|
53
68
|
visit(cmd);
|
|
54
69
|
for (const sub of cmd.commands)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-options.js","sourceRoot":"","sources":["../../src/internal/global-options.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"global-options.js","sourceRoot":"","sources":["../../src/internal/global-options.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared model/aspect-ratio table for the 2D image commands, so text-to-image
|
|
3
3
|
* and image-to-image can't drift apart as Meshy ships new models.
|
|
4
|
+
*
|
|
5
|
+
* The ratio rules mirror the server's own per-model check
|
|
6
|
+
* (meshyd pkg/server/api_image_generation_handlers.go): every GPT Image model
|
|
7
|
+
* accepts all seven ratios; the nano-banana family rejects 3:2 and 2:3.
|
|
4
8
|
*/
|
|
5
|
-
export declare const IMAGE_MODELS: readonly ["gpt-image-2", "
|
|
9
|
+
export declare const IMAGE_MODELS: readonly ["gpt-image-2", "gpt-image-2-5-flare", "gpt-image-2-5-sunburst", "nano-banana-pro", "nano-banana-2", "nano-banana-2-lite"];
|
|
6
10
|
export declare const DEFAULT_IMAGE_MODEL = "gpt-image-2";
|
|
11
|
+
/** OpenAI GPT Image models of any generation — the ones that take every aspect ratio. */
|
|
12
|
+
export declare const GPT_IMAGE_MODELS: readonly ["gpt-image-2", "gpt-image-2-5-flare", "gpt-image-2-5-sunburst"];
|
|
7
13
|
export declare const IMAGE_MODEL_HELP: string;
|
|
8
14
|
export declare const ASPECT_RATIOS: readonly ["1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3"];
|
|
9
15
|
export declare const ASPECT_RATIO_HELP: string;
|
|
16
|
+
export declare function isGptImageModel(model: string): boolean;
|
|
10
17
|
/**
|
|
11
18
|
* Cross-validate model × aspect-ratio × multi-view before any credits are
|
|
12
|
-
* spent
|
|
19
|
+
* spent, with a message that names the fix. When the model is unknown at
|
|
13
20
|
* parse time (driven via --data), the ratio check is left to the server.
|
|
14
21
|
*/
|
|
15
22
|
export declare function checkImageCombo(opts: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-models.d.ts","sourceRoot":"","sources":["../../src/internal/image-models.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"image-models.d.ts","sourceRoot":"","sources":["../../src/internal/image-models.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,eAAO,MAAM,YAAY,YACvB,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,CACZ,CAAC;AAEX,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AAEjD,yFAAyF;AACzF,eAAO,MAAM,gBAAgB,YAAI,aAAa,EAAE,qBAAqB,EAAE,wBAAwB,CAAU,CAAC;AAE1G,eAAO,MAAM,gBAAgB,QAG6B,CAAC;AAE3D,eAAO,MAAM,aAAa,YAAI,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AAE1F,eAAO,MAAM,iBAAiB,QAGmB,CAAC;AAKlD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,GAAG,IAAI,CAcP"}
|
|
@@ -1,27 +1,38 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared model/aspect-ratio table for the 2D image commands, so text-to-image
|
|
3
3
|
* and image-to-image can't drift apart as Meshy ships new models.
|
|
4
|
+
*
|
|
5
|
+
* The ratio rules mirror the server's own per-model check
|
|
6
|
+
* (meshyd pkg/server/api_image_generation_handlers.go): every GPT Image model
|
|
7
|
+
* accepts all seven ratios; the nano-banana family rejects 3:2 and 2:3.
|
|
4
8
|
*/
|
|
5
9
|
import { UsageError } from "./errors.js";
|
|
6
10
|
export const IMAGE_MODELS = [
|
|
7
11
|
"gpt-image-2",
|
|
12
|
+
"gpt-image-2-5-flare",
|
|
13
|
+
"gpt-image-2-5-sunburst",
|
|
8
14
|
"nano-banana-pro",
|
|
9
15
|
"nano-banana-2",
|
|
10
16
|
"nano-banana-2-lite",
|
|
11
|
-
"nano-banana",
|
|
12
17
|
];
|
|
13
18
|
export const DEFAULT_IMAGE_MODEL = "gpt-image-2";
|
|
14
|
-
|
|
15
|
-
|
|
19
|
+
/** OpenAI GPT Image models of any generation — the ones that take every aspect ratio. */
|
|
20
|
+
export const GPT_IMAGE_MODELS = ["gpt-image-2", "gpt-image-2-5-flare", "gpt-image-2-5-sunburst"];
|
|
21
|
+
export const IMAGE_MODEL_HELP = "gpt-image-2 (default) | gpt-image-2-5-flare (GPT Image 2.5, fast tier) | " +
|
|
22
|
+
"gpt-image-2-5-sunburst (GPT Image 2.5, precision-edit tier) | nano-banana-pro | " +
|
|
23
|
+
"nano-banana-2 | nano-banana-2-lite (fastest, cheapest)";
|
|
16
24
|
export const ASPECT_RATIOS = ["1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3"];
|
|
17
|
-
export const ASPECT_RATIO_HELP = "default: 1:1.
|
|
18
|
-
"
|
|
25
|
+
export const ASPECT_RATIO_HELP = "default: 1:1. gpt-image-*: 1:1|16:9|9:16|4:3|3:4|3:2|2:3. " +
|
|
26
|
+
"nano-banana*: 1:1|16:9|9:16|4:3|3:4. " +
|
|
19
27
|
"Mutually exclusive with --generate-multi-view";
|
|
20
|
-
const
|
|
28
|
+
const GPT_IMAGE_MODEL_SET = new Set(GPT_IMAGE_MODELS);
|
|
21
29
|
const NANO_BANANA_RATIOS = new Set(["1:1", "16:9", "9:16", "4:3", "3:4"]);
|
|
30
|
+
export function isGptImageModel(model) {
|
|
31
|
+
return GPT_IMAGE_MODEL_SET.has(model);
|
|
32
|
+
}
|
|
22
33
|
/**
|
|
23
34
|
* Cross-validate model × aspect-ratio × multi-view before any credits are
|
|
24
|
-
* spent
|
|
35
|
+
* spent, with a message that names the fix. When the model is unknown at
|
|
25
36
|
* parse time (driven via --data), the ratio check is left to the server.
|
|
26
37
|
*/
|
|
27
38
|
export function checkImageCombo(opts) {
|
|
@@ -31,11 +42,12 @@ export function checkImageCombo(opts) {
|
|
|
31
42
|
const ratio = opts.aspectRatio;
|
|
32
43
|
if (!ratio || !opts.aiModel)
|
|
33
44
|
return;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
45
|
+
// GPT Image models (2 and 2.5) accept every ratio the flag offers; only the
|
|
46
|
+
// nano-banana family is narrower.
|
|
47
|
+
if (isGptImageModel(opts.aiModel))
|
|
48
|
+
return;
|
|
49
|
+
if (!NANO_BANANA_RATIOS.has(ratio)) {
|
|
50
|
+
throw new UsageError(`--aspect-ratio ${ratio} is only supported by the GPT Image models (${GPT_IMAGE_MODELS.join(", ")})`);
|
|
39
51
|
}
|
|
40
52
|
}
|
|
41
53
|
//# sourceMappingURL=image-models.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-models.js","sourceRoot":"","sources":["../../src/internal/image-models.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"image-models.js","sourceRoot":"","sources":["../../src/internal/image-models.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,aAAa;IACb,qBAAqB;IACrB,wBAAwB;IACxB,iBAAiB;IACjB,eAAe;IACf,oBAAoB;CACZ,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAAC;AAEjD,yFAAyF;AACzF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,aAAa,EAAE,qBAAqB,EAAE,wBAAwB,CAAU,CAAC;AAE1G,MAAM,CAAC,MAAM,gBAAgB,GAC3B,2EAA2E;IAC3E,kFAAkF;IAClF,wDAAwD,CAAC;AAE3D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AAE1F,MAAM,CAAC,MAAM,iBAAiB,GAC5B,4DAA4D;IAC5D,uCAAuC;IACvC,+CAA+C,CAAC;AAElD,MAAM,mBAAmB,GAAwB,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC3E,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAE/F,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAO,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,IAI/B;IACC,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACxD,MAAM,IAAI,UAAU,CAAC,sEAAsE,CAAC,CAAC;IAC/F,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;IAC/B,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO;IACpC,4EAA4E;IAC5E,kCAAkC;IAClC,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO;IAC1C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,UAAU,CAClB,kBAAkB,KAAK,+CAA+C,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACrG,CAAC;IACJ,CAAC;AACH,CAAC"}
|