@flighthq/image 0.5.1-next.815.cc08b93 → 0.5.1-next.903.f434bc2
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/README.md +2 -2
- package/dist/contract.d.ts +3 -1
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +3 -1
- package/dist/contract.js.map +1 -1
- package/dist/imageResource.d.ts +2 -1
- package/dist/imageResource.d.ts.map +1 -1
- package/dist/imageResource.js +32 -30
- package/dist/imageResource.js.map +1 -1
- package/dist/imageResourceFrom.d.ts +9 -6
- package/dist/imageResourceFrom.d.ts.map +1 -1
- package/dist/imageResourceFrom.js +47 -43
- package/dist/imageResourceFrom.js.map +1 -1
- package/dist/imageResourceReference.d.ts +3 -1
- package/dist/imageResourceReference.d.ts.map +1 -1
- package/dist/imageResourceReference.js +64 -51
- package/dist/imageResourceReference.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/src/imageResourceFrom.test.ts +97 -73
- package/src/imageResourceReference.test.ts +11 -11
- package/dist/imageBackend.d.ts +0 -11
- package/dist/imageBackend.d.ts.map +0 -1
- package/dist/imageBackend.js +0 -134
- package/dist/imageBackend.js.map +0 -1
- package/src/imageBackend.test.ts +0 -235
package/README.md
CHANGED
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/image`. The `@flight
|
|
|
13
13
|
This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
|
|
14
14
|
|
|
15
15
|
- [Flight project](https://github.com/flighthq/flight)
|
|
16
|
-
- [Source for @flighthq/image@0.5.1-next.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/image@0.5.1-next.903.f434bc2](https://github.com/flighthq/flight/tree/f434bc233778d75aeea61995df3a8cfaec459a85/packages/image)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/f434bc233778d75aeea61995df3a8cfaec459a85/LICENSE.md)
|
package/dist/contract.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
export * from './imageBackend';
|
|
2
1
|
export * from './imageResource';
|
|
3
2
|
export * from './imageResourceFrom';
|
|
4
3
|
export * from './imageResourceReference';
|
|
4
|
+
export { initializeCompressedImageResource } from './imageResource';
|
|
5
|
+
export { initializeEmbeddedImageResourceReference, initializeExternalImageResourceReference, } from './imageResourceReference';
|
|
6
|
+
export { initializeImageResourceFromCanvas, initializeImageResourceFromImageBitmap, initializeImageResourceFromImageElement, } from './imageResourceFrom';
|
|
5
7
|
//# sourceMappingURL=contract.d.ts.map
|
package/dist/contract.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,iCAAiC,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EACL,wCAAwC,EACxC,wCAAwC,GACzC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,iCAAiC,EACjC,sCAAsC,EACtC,uCAAuC,GACxC,MAAM,qBAAqB,CAAC"}
|
package/dist/contract.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
export * from './imageBackend';
|
|
2
1
|
export * from './imageResource';
|
|
3
2
|
export * from './imageResourceFrom';
|
|
4
3
|
export * from './imageResourceReference';
|
|
4
|
+
export { initializeCompressedImageResource } from './imageResource';
|
|
5
|
+
export { initializeEmbeddedImageResourceReference, initializeExternalImageResourceReference, } from './imageResourceReference';
|
|
6
|
+
export { initializeImageResourceFromCanvas, initializeImageResourceFromImageBitmap, initializeImageResourceFromImageElement, } from './imageResourceFrom';
|
|
5
7
|
//# sourceMappingURL=contract.js.map
|
package/dist/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,iCAAiC,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EACL,wCAAwC,EACxC,wCAAwC,GACzC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,iCAAiC,EACjC,sCAAsC,EACtC,uCAAuC,GACxC,MAAM,qBAAqB,CAAC"}
|
package/dist/imageResource.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { CompressedImageResource,
|
|
1
|
+
import type { CompressedImageData, CompressedImageResource, EntityConstruction, ImageResource } from '@flighthq/types/contract';
|
|
2
2
|
export declare function cloneImageResource(resource: Readonly<ImageResource>): ImageResource;
|
|
3
3
|
export declare function createCompressedImageResource(compressed: Readonly<CompressedImageData>): CompressedImageResource;
|
|
4
4
|
export declare function createImageResource(image: CanvasImageSource): ImageResource;
|
|
5
|
+
export declare function initializeCompressedImageResource(out: EntityConstruction<CompressedImageResource>, compressed: Readonly<CompressedImageData>): void;
|
|
5
6
|
export declare function invalidateImageResource(resource: ImageResource): void;
|
|
6
7
|
export declare function isImageResourceEmpty(resource: Readonly<ImageResource>): boolean;
|
|
7
8
|
//# sourceMappingURL=imageResource.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageResource.d.ts","sourceRoot":"","sources":["../src/imageResource.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"imageResource.d.ts","sourceRoot":"","sources":["../src/imageResource.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,EACd,MAAM,0BAA0B,CAAC;AAKlC,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,aAAa,CAUnF;AAED,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,uBAAuB,CAIhH;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,aAAa,CAW3E;AAID,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,EAChD,UAAU,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GACxC,IAAI,CAQN;AAGD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAGrE;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,OAAO,CAE/E"}
|
package/dist/imageResource.js
CHANGED
|
@@ -1,44 +1,46 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
2
2
|
import { CompressedImageTextureSourceKind, ImageTextureSourceKind } from '@flighthq/types/contract';
|
|
3
3
|
// Allocates a new resource identity over the same borrowed host image. The host handle is shared by
|
|
4
4
|
// reference; the clone owns an independent version counter for renderer cache invalidation.
|
|
5
5
|
export function cloneImageResource(resource) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
6
|
+
const out = allocateEntity();
|
|
7
|
+
out.alphaType = resource.alphaType;
|
|
8
|
+
out.gamut = resource.gamut;
|
|
9
|
+
out.height = resource.height;
|
|
10
|
+
out.kind = resource.kind;
|
|
11
|
+
out.source = resource.source;
|
|
12
|
+
out.version = resource.version;
|
|
13
|
+
out.width = resource.width;
|
|
14
|
+
return finishEntity(out);
|
|
15
15
|
}
|
|
16
|
-
// Wraps a parsed block-compressed payload as its own GPU-only source. The caller owns the payload
|
|
17
|
-
// bytes indexed by the container's level ranges.
|
|
18
16
|
export function createCompressedImageResource(compressed) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
gamut: DECODED_GAMUT,
|
|
23
|
-
height: compressed.container.height,
|
|
24
|
-
kind: CompressedImageTextureSourceKind,
|
|
25
|
-
version: 0,
|
|
26
|
-
width: compressed.container.width,
|
|
27
|
-
});
|
|
17
|
+
const out = allocateEntity();
|
|
18
|
+
initializeCompressedImageResource(out, compressed);
|
|
19
|
+
return finishEntity(out);
|
|
28
20
|
}
|
|
29
21
|
export function createImageResource(image) {
|
|
30
|
-
const resource =
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
});
|
|
22
|
+
const resource = allocateEntity();
|
|
23
|
+
resource.alphaType = DECODED_ALPHA_TYPE;
|
|
24
|
+
resource.gamut = DECODED_GAMUT;
|
|
25
|
+
resource.height = 0;
|
|
26
|
+
resource.kind = ImageTextureSourceKind;
|
|
27
|
+
resource.source = image;
|
|
28
|
+
resource.version = 0;
|
|
29
|
+
resource.width = 0;
|
|
39
30
|
updateImageResourceSize(resource);
|
|
40
31
|
return resource;
|
|
41
32
|
}
|
|
33
|
+
// Wraps a parsed block-compressed payload as its own GPU-only source. The caller owns the payload
|
|
34
|
+
// bytes indexed by the container's level ranges.
|
|
35
|
+
export function initializeCompressedImageResource(out, compressed) {
|
|
36
|
+
out.alphaType = DECODED_ALPHA_TYPE;
|
|
37
|
+
out.compressed = compressed;
|
|
38
|
+
out.gamut = DECODED_GAMUT;
|
|
39
|
+
out.height = compressed.container.height;
|
|
40
|
+
out.kind = CompressedImageTextureSourceKind;
|
|
41
|
+
out.version = 0;
|
|
42
|
+
out.width = compressed.container.width;
|
|
43
|
+
}
|
|
42
44
|
// Marks changed pixels behind the same borrowed host handle. The handle itself remains immutable.
|
|
43
45
|
export function invalidateImageResource(resource) {
|
|
44
46
|
updateImageResourceSize(resource);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageResource.js","sourceRoot":"","sources":["../src/imageResource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"imageResource.js","sourceRoot":"","sources":["../src/imageResource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAOzE,OAAO,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEpG,oGAAoG;AACpG,4FAA4F;AAC5F,MAAM,UAAU,kBAAkB,CAAC,QAAiC;IAClE,MAAM,GAAG,GAAG,cAAc,EAAiB,CAAC;IAC5C,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IACnC,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC3B,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC7B,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IACzB,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC7B,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IAC/B,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC3B,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,UAAyC;IACrF,MAAM,GAAG,GAAG,cAAc,EAA2B,CAAC;IACtD,iCAAiC,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACnD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAwB;IAC1D,MAAM,QAAQ,GAAG,cAAc,EAAiB,CAAC;IACjD,QAAQ,CAAC,SAAS,GAAG,kBAAkB,CAAC;IACxC,QAAQ,CAAC,KAAK,GAAG,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACpB,QAAQ,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACvC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;IACrB,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;IACnB,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAClC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,kGAAkG;AAClG,iDAAiD;AACjD,MAAM,UAAU,iCAAiC,CAC/C,GAAgD,EAChD,UAAyC;IAEzC,GAAG,CAAC,SAAS,GAAG,kBAAkB,CAAC;IACnC,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;IAC5B,GAAG,CAAC,KAAK,GAAG,aAAa,CAAC;IAC1B,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC;IACzC,GAAG,CAAC,IAAI,GAAG,gCAAgC,CAAC;IAC5C,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;IAChB,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC;AACzC,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,uBAAuB,CAAC,QAAuB;IAC7D,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAClC,QAAQ,CAAC,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAiC;IACpE,OAAO,QAAQ,CAAC,KAAK,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;AACrD,CAAC;AAED,0FAA0F;AAC1F,uFAAuF;AACvF,SAAS,uBAAuB,CAAC,QAAuB;IACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC;IAChC,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO;IAC7B,IAAI,OAAO,YAAY,gBAAgB,EAAE,CAAC;QACxC,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC;QACpC,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,OAA6D,CAAC;QAC5E,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC7B,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IACjC,CAAC;AACH,CAAC;AAED,mGAAmG;AACnG,uGAAuG;AACvG,oGAAoG;AACpG,sGAAsG;AACtG,4GAA4G;AAC5G,MAAM,kBAAkB,GAAG,UAAU,CAAC;AACtC,MAAM,aAAa,GAAG,MAAM,CAAC"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import type { Bitmap, ImageResource } from '@flighthq/types/contract';
|
|
2
|
-
export declare function createImageResourceFromBitmap(bitmap: Readonly<Bitmap>): ImageResource | null;
|
|
1
|
+
import type { Bitmap, EntityConstruction, HasGraphicsImage, ImageResource } from '@flighthq/types/contract';
|
|
2
|
+
export declare function createImageResourceFromBitmap(host: Readonly<HasGraphicsImage>, bitmap: Readonly<Bitmap>): ImageResource | null;
|
|
3
3
|
export declare function createImageResourceFromCanvas(canvas: HTMLCanvasElement): ImageResource;
|
|
4
4
|
export declare function createImageResourceFromImageBitmap(bitmap: ImageBitmap): ImageResource;
|
|
5
5
|
export declare function createImageResourceFromImageElement(img: HTMLImageElement): ImageResource;
|
|
6
|
+
export declare function initializeImageResourceFromCanvas(out: EntityConstruction<ImageResource>, canvas: HTMLCanvasElement): void;
|
|
7
|
+
export declare function initializeImageResourceFromImageBitmap(out: EntityConstruction<ImageResource>, bitmap: ImageBitmap): void;
|
|
8
|
+
export declare function initializeImageResourceFromImageElement(out: EntityConstruction<ImageResource>, img: HTMLImageElement): void;
|
|
6
9
|
export declare function isImageUrlSameOrigin(url: string): boolean;
|
|
7
|
-
export declare function loadImageResourceFromBase64(base64: string, mimeType: string, signal?: AbortSignal): Promise<ImageResource>;
|
|
8
|
-
export declare function loadImageResourceFromBlob(blob: Blob, signal?: AbortSignal): Promise<ImageResource>;
|
|
9
|
-
export declare function loadImageResourceFromBytes(bytes: Uint8Array, mimeType?: string, signal?: AbortSignal): Promise<ImageResource>;
|
|
10
|
-
export declare function loadImageResourceFromUrl(url: string, crossOrigin?: 'anonymous' | 'use-credentials', signal?: AbortSignal): Promise<ImageResource>;
|
|
10
|
+
export declare function loadImageResourceFromBase64(host: Readonly<HasGraphicsImage>, base64: string, mimeType: string, signal?: AbortSignal): Promise<ImageResource>;
|
|
11
|
+
export declare function loadImageResourceFromBlob(host: Readonly<HasGraphicsImage>, blob: Blob, signal?: AbortSignal): Promise<ImageResource>;
|
|
12
|
+
export declare function loadImageResourceFromBytes(host: Readonly<HasGraphicsImage>, bytes: Uint8Array, mimeType?: string, signal?: AbortSignal): Promise<ImageResource>;
|
|
13
|
+
export declare function loadImageResourceFromUrl(host: Readonly<HasGraphicsImage>, url: string, crossOrigin?: 'anonymous' | 'use-credentials', signal?: AbortSignal): Promise<ImageResource>;
|
|
11
14
|
//# sourceMappingURL=imageResourceFrom.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageResourceFrom.d.ts","sourceRoot":"","sources":["../src/imageResourceFrom.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"imageResourceFrom.d.ts","sourceRoot":"","sources":["../src/imageResourceFrom.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG5G,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GACvB,aAAa,GAAG,IAAI,CAItB;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,iBAAiB,GAAG,aAAa,CAItF;AAED,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa,CAIrF;AAED,wBAAgB,mCAAmC,CAAC,GAAG,EAAE,gBAAgB,GAAG,aAAa,CAIxF;AAED,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,kBAAkB,CAAC,aAAa,CAAC,EACtC,MAAM,EAAE,iBAAiB,GACxB,IAAI,CAQN;AAED,wBAAgB,sCAAsC,CACpD,GAAG,EAAE,kBAAkB,CAAC,aAAa,CAAC,EACtC,MAAM,EAAE,WAAW,GAClB,IAAI,CAQN;AAED,wBAAgB,uCAAuC,CACrD,GAAG,EAAE,kBAAkB,CAAC,aAAa,CAAC,EACtC,GAAG,EAAE,gBAAgB,GACpB,IAAI,CAQN;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOzD;AAED,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,aAAa,CAAC,CAExB;AAED,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,IAAI,EAAE,IAAI,EACV,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,aAAa,CAAC,CAOxB;AAED,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,KAAK,EAAE,UAAU,EACjB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,aAAa,CAAC,CAOxB;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAChC,GAAG,EAAE,MAAM,EACX,WAAW,CAAC,EAAE,WAAW,GAAG,iBAAiB,EAC7C,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,aAAa,CAAC,CAExB"}
|
|
@@ -1,48 +1,53 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
2
2
|
import { detectImageMimeType } from '@flighthq/image-codec/contract';
|
|
3
3
|
import { ImageTextureSourceKind } from '@flighthq/types/contract';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
// inverse of captureBitmapFromImageResource. Lives here rather than in @flighthq/bitmap because a
|
|
7
|
-
// conversion belongs with the type it PRODUCES: you look for it under what you want to end up with.
|
|
8
|
-
export function createImageResourceFromBitmap(bitmap) {
|
|
9
|
-
const backend = getImageBackend();
|
|
4
|
+
export function createImageResourceFromBitmap(host, bitmap) {
|
|
5
|
+
const backend = host.graphics.image;
|
|
10
6
|
if (backend.createImageFromBitmap === undefined)
|
|
11
7
|
return null;
|
|
12
8
|
return backend.createImageFromBitmap(bitmap);
|
|
13
9
|
}
|
|
14
10
|
export function createImageResourceFromCanvas(canvas) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
height: canvas.height,
|
|
19
|
-
kind: ImageTextureSourceKind,
|
|
20
|
-
source: canvas,
|
|
21
|
-
version: 0,
|
|
22
|
-
width: canvas.width,
|
|
23
|
-
});
|
|
11
|
+
const out = allocateEntity();
|
|
12
|
+
initializeImageResourceFromCanvas(out, canvas);
|
|
13
|
+
return finishEntity(out);
|
|
24
14
|
}
|
|
25
15
|
export function createImageResourceFromImageBitmap(bitmap) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
height: bitmap.height,
|
|
30
|
-
kind: ImageTextureSourceKind,
|
|
31
|
-
source: bitmap,
|
|
32
|
-
version: 0,
|
|
33
|
-
width: bitmap.width,
|
|
34
|
-
});
|
|
16
|
+
const out = allocateEntity();
|
|
17
|
+
initializeImageResourceFromImageBitmap(out, bitmap);
|
|
18
|
+
return finishEntity(out);
|
|
35
19
|
}
|
|
36
20
|
export function createImageResourceFromImageElement(img) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
21
|
+
const out = allocateEntity();
|
|
22
|
+
initializeImageResourceFromImageElement(out, img);
|
|
23
|
+
return finishEntity(out);
|
|
24
|
+
}
|
|
25
|
+
export function initializeImageResourceFromCanvas(out, canvas) {
|
|
26
|
+
out.alphaType = DECODED_ALPHA_TYPE;
|
|
27
|
+
out.gamut = DECODED_GAMUT;
|
|
28
|
+
out.height = canvas.height;
|
|
29
|
+
out.kind = ImageTextureSourceKind;
|
|
30
|
+
out.source = canvas;
|
|
31
|
+
out.version = 0;
|
|
32
|
+
out.width = canvas.width;
|
|
33
|
+
}
|
|
34
|
+
export function initializeImageResourceFromImageBitmap(out, bitmap) {
|
|
35
|
+
out.alphaType = DECODED_ALPHA_TYPE;
|
|
36
|
+
out.gamut = DECODED_GAMUT;
|
|
37
|
+
out.height = bitmap.height;
|
|
38
|
+
out.kind = ImageTextureSourceKind;
|
|
39
|
+
out.source = bitmap;
|
|
40
|
+
out.version = 0;
|
|
41
|
+
out.width = bitmap.width;
|
|
42
|
+
}
|
|
43
|
+
export function initializeImageResourceFromImageElement(out, img) {
|
|
44
|
+
out.alphaType = DECODED_ALPHA_TYPE;
|
|
45
|
+
out.gamut = DECODED_GAMUT;
|
|
46
|
+
out.height = img.height;
|
|
47
|
+
out.kind = ImageTextureSourceKind;
|
|
48
|
+
out.source = img;
|
|
49
|
+
out.version = 0;
|
|
50
|
+
out.width = img.width;
|
|
46
51
|
}
|
|
47
52
|
export function isImageUrlSameOrigin(url) {
|
|
48
53
|
if (url.startsWith('data:') || url.startsWith('blob:'))
|
|
@@ -54,30 +59,29 @@ export function isImageUrlSameOrigin(url) {
|
|
|
54
59
|
return true;
|
|
55
60
|
}
|
|
56
61
|
}
|
|
57
|
-
export async function loadImageResourceFromBase64(base64, mimeType, signal) {
|
|
58
|
-
return loadImageResourceFromUrl(`data:${mimeType};base64,${base64}`, undefined, signal);
|
|
62
|
+
export async function loadImageResourceFromBase64(host, base64, mimeType, signal) {
|
|
63
|
+
return loadImageResourceFromUrl(host, `data:${mimeType};base64,${base64}`, undefined, signal);
|
|
59
64
|
}
|
|
60
|
-
export async function loadImageResourceFromBlob(blob, signal) {
|
|
65
|
+
export async function loadImageResourceFromBlob(host, blob, signal) {
|
|
61
66
|
const url = URL.createObjectURL(blob);
|
|
62
67
|
try {
|
|
63
|
-
return await loadImageResourceFromUrl(url, undefined, signal);
|
|
68
|
+
return await loadImageResourceFromUrl(host, url, undefined, signal);
|
|
64
69
|
}
|
|
65
70
|
finally {
|
|
66
71
|
URL.revokeObjectURL(url);
|
|
67
72
|
}
|
|
68
73
|
}
|
|
69
|
-
export async function loadImageResourceFromBytes(bytes, mimeType, signal) {
|
|
74
|
+
export async function loadImageResourceFromBytes(host, bytes, mimeType, signal) {
|
|
70
75
|
const type = mimeType ?? detectImageMimeType(bytes);
|
|
71
76
|
if (type === null) {
|
|
72
77
|
throw new Error('Unable to determine image type from bytes');
|
|
73
78
|
}
|
|
74
79
|
const buf = bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength);
|
|
75
|
-
return loadImageResourceFromBlob(new Blob([buf], { type }), signal);
|
|
80
|
+
return loadImageResourceFromBlob(host, new Blob([buf], { type }), signal);
|
|
76
81
|
}
|
|
77
|
-
export async function loadImageResourceFromUrl(url, crossOrigin, signal) {
|
|
78
|
-
return
|
|
82
|
+
export async function loadImageResourceFromUrl(host, url, crossOrigin, signal) {
|
|
83
|
+
return host.graphics.image.loadImageFromUrl(url, crossOrigin, signal);
|
|
79
84
|
}
|
|
80
|
-
// The host-decode truth for every browser-backed source; see imageResource.ts.
|
|
81
85
|
const DECODED_ALPHA_TYPE = 'straight';
|
|
82
86
|
const DECODED_GAMUT = 'srgb';
|
|
83
87
|
//# sourceMappingURL=imageResourceFrom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageResourceFrom.js","sourceRoot":"","sources":["../src/imageResourceFrom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"imageResourceFrom.js","sourceRoot":"","sources":["../src/imageResourceFrom.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import type { AlphaType, EmbeddedImageResourceReference, ExternalImageResourceReference, ImageResourceFailure, ImageResourceFetch, ImageResourceReference, ImageResourceReferenceResolutionExplanation, TextureSource } from '@flighthq/types/contract';
|
|
1
|
+
import type { AlphaType, EmbeddedImageResourceReference, ExternalImageResourceReference, ImageResourceFailure, ImageResourceFetch, ImageResourceReference, ImageResourceReferenceResolutionExplanation, TextureSource, EntityConstruction } from '@flighthq/types/contract';
|
|
2
2
|
export declare function createEmbeddedImageResourceReference(bytes: Uint8Array, mimeType?: string | null, alphaType?: AlphaType): EmbeddedImageResourceReference;
|
|
3
3
|
export declare function createExternalImageResourceReference(uri: string, basePath?: string | null): ExternalImageResourceReference;
|
|
4
4
|
export declare function createImageResourceFailure(cause: unknown): ImageResourceFailure;
|
|
5
5
|
export declare function disableImageBitmapComposition(): void;
|
|
6
6
|
export declare function enableImageBitmapComposition(): void;
|
|
7
7
|
export declare function explainImageResourceReferenceResolution(ref: Readonly<ImageResourceReference>): ImageResourceReferenceResolutionExplanation;
|
|
8
|
+
export declare function initializeEmbeddedImageResourceReference(out: EntityConstruction<EmbeddedImageResourceReference>, bytes: Uint8Array, mimeType?: string | null, alphaType?: AlphaType): void;
|
|
9
|
+
export declare function initializeExternalImageResourceReference(out: EntityConstruction<ExternalImageResourceReference>, uri: string, basePath?: string | null): void;
|
|
8
10
|
export declare function resetFailedImageResourceReference(ref: ImageResourceReference): boolean;
|
|
9
11
|
export declare function resolveImageResourceReference(ref: ImageResourceReference, fetch: ImageResourceFetch, signal: AbortSignal): Promise<TextureSource | null>;
|
|
10
12
|
//# sourceMappingURL=imageResourceReference.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageResourceReference.d.ts","sourceRoot":"","sources":["../src/imageResourceReference.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,SAAS,EAET,8BAA8B,
|
|
1
|
+
{"version":3,"file":"imageResourceReference.d.ts","sourceRoot":"","sources":["../src/imageResourceReference.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,SAAS,EAET,8BAA8B,EAC9B,8BAA8B,EAC9B,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,2CAA2C,EAC3C,aAAa,EACb,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAQlC,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,UAAU,EACjB,QAAQ,GAAE,MAAM,GAAG,IAAW,EAC9B,SAAS,GAAE,SAAsB,GAChC,8BAA8B,CAIhC;AAED,wBAAgB,oCAAoC,CAClD,GAAG,EAAE,MAAM,EACX,QAAQ,GAAE,MAAM,GAAG,IAAW,GAC7B,8BAA8B,CAIhC;AAiCD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,CAa/E;AAED,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD;AAKD,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD;AA0BD,wBAAgB,uCAAuC,CACrD,GAAG,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GACpC,2CAA2C,CAO7C;AAKD,wBAAgB,wCAAwC,CACtD,GAAG,EAAE,kBAAkB,CAAC,8BAA8B,CAAC,EACvD,KAAK,EAAE,UAAU,EACjB,QAAQ,GAAE,MAAM,GAAG,IAAW,EAC9B,SAAS,GAAE,SAAsB,GAChC,IAAI,CAQN;AAED,wBAAgB,wCAAwC,CACtD,GAAG,EAAE,kBAAkB,CAAC,8BAA8B,CAAC,EACvD,GAAG,EAAE,MAAM,EACX,QAAQ,GAAE,MAAM,GAAG,IAAW,GAC7B,IAAI,CAQN;AAID,wBAAgB,iCAAiC,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAKtF;AAUD,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,sBAAsB,EAC3B,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAkC/B"}
|
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
2
2
|
import { decodeImage, decodeImagePremultiplied, explainImageDecodeFailure, getImageBitmapComposer, } from '@flighthq/image-codec/contract';
|
|
3
3
|
import { BitmapTextureSourceKind, ImageResourceFailureKind, ImageResourceReferenceKind, ResourceResolutionState, } from '@flighthq/types/contract';
|
|
4
|
-
// `bytes` is retained as the view the container handed over, not a copy: a parser carves an image payload
|
|
5
|
-
// out of its source and the reference borrows it, so a document that never resolves an image never pays for
|
|
6
|
-
// its pixels. `textures` starts empty and each waiting Texture subscribes itself.
|
|
7
4
|
export function createEmbeddedImageResourceReference(bytes, mimeType = null, alphaType = 'straight') {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
});
|
|
5
|
+
const out = allocateEntity();
|
|
6
|
+
initializeEmbeddedImageResourceReference(out, bytes, mimeType, alphaType);
|
|
7
|
+
return finishEntity(out);
|
|
8
|
+
}
|
|
9
|
+
export function createExternalImageResourceReference(uri, basePath = null) {
|
|
10
|
+
const out = allocateEntity();
|
|
11
|
+
initializeExternalImageResourceReference(out, uri, basePath);
|
|
12
|
+
return finishEntity(out);
|
|
17
13
|
}
|
|
18
14
|
// The one encoded-byte producer for image resource references. A registered decoder owns format
|
|
19
15
|
// knowledge; this async resource layer turns its RGBA result into the live Bitmap entity renderers
|
|
@@ -30,36 +26,41 @@ async function decodeEmbeddedImageResourceReference(ref, signal) {
|
|
|
30
26
|
signal.throwIfAborted();
|
|
31
27
|
if (decoded === null)
|
|
32
28
|
return null;
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
return createEntity(bitmap);
|
|
44
|
-
}
|
|
45
|
-
export function createExternalImageResourceReference(uri, basePath = null) {
|
|
46
|
-
return createEntity({
|
|
47
|
-
basePath,
|
|
48
|
-
failure: null,
|
|
49
|
-
kind: ImageResourceReferenceKind.External,
|
|
50
|
-
mimeType: null,
|
|
51
|
-
state: ResourceResolutionState.Unresolved,
|
|
52
|
-
textures: [],
|
|
53
|
-
uri,
|
|
54
|
-
});
|
|
29
|
+
const out = allocateEntity();
|
|
30
|
+
out.alphaType = ref.alphaType;
|
|
31
|
+
out.data = new Uint8ClampedArray(decoded.data);
|
|
32
|
+
out.format = 'rgba8unorm';
|
|
33
|
+
out.gamut = 'srgb';
|
|
34
|
+
out.height = decoded.height;
|
|
35
|
+
out.kind = BitmapTextureSourceKind;
|
|
36
|
+
out.version = 0;
|
|
37
|
+
out.width = decoded.width;
|
|
38
|
+
return finishEntity(out);
|
|
55
39
|
}
|
|
56
40
|
// Reduces a thrown value to the serialization-safe categories a reference retains. Raw Error objects and
|
|
57
41
|
// arbitrary thrown values stay inside the resolving operation; diagnostics get category, name, and message.
|
|
58
42
|
export function createImageResourceFailure(cause) {
|
|
59
43
|
if (cause instanceof Error) {
|
|
60
|
-
|
|
44
|
+
const out = allocateEntity();
|
|
45
|
+
out.kind = ImageResourceFailureKind.Error;
|
|
46
|
+
out.message = cause.message;
|
|
47
|
+
out.name = cause.name;
|
|
48
|
+
return finishEntity(out);
|
|
61
49
|
}
|
|
62
|
-
|
|
50
|
+
const out = allocateEntity();
|
|
51
|
+
out.kind = ImageResourceFailureKind.Error;
|
|
52
|
+
out.message = String(cause);
|
|
53
|
+
out.name = null;
|
|
54
|
+
return finishEntity(out);
|
|
55
|
+
}
|
|
56
|
+
export function disableImageBitmapComposition() {
|
|
57
|
+
_resolveImageBitmapComposition = null;
|
|
58
|
+
}
|
|
59
|
+
// Installs the optional decoded-pixel join without making an ordinary embedded-image consumer retain
|
|
60
|
+
// its registry lookup or straight-decode branch. A format package calls this beside its composer
|
|
61
|
+
// registrations; until then the nullable hook leaves the original hot path byte-for-byte tree-shakable.
|
|
62
|
+
export function enableImageBitmapComposition() {
|
|
63
|
+
_resolveImageBitmapComposition = resolveImageBitmapComposition;
|
|
63
64
|
}
|
|
64
65
|
async function resolveImageBitmapComposition(ref, signal) {
|
|
65
66
|
signal.throwIfAborted();
|
|
@@ -74,15 +75,6 @@ async function resolveImageBitmapComposition(ref, signal) {
|
|
|
74
75
|
return composer(decoded, composition.payload);
|
|
75
76
|
}
|
|
76
77
|
let _resolveImageBitmapComposition = null;
|
|
77
|
-
export function disableImageBitmapComposition() {
|
|
78
|
-
_resolveImageBitmapComposition = null;
|
|
79
|
-
}
|
|
80
|
-
// Installs the optional decoded-pixel join without making an ordinary embedded-image consumer retain
|
|
81
|
-
// its registry lookup or straight-decode branch. A format package calls this beside its composer
|
|
82
|
-
// registrations; until then the nullable hook leaves the original hot path byte-for-byte tree-shakable.
|
|
83
|
-
export function enableImageBitmapComposition() {
|
|
84
|
-
_resolveImageBitmapComposition = resolveImageBitmapComposition;
|
|
85
|
-
}
|
|
86
78
|
// Returns a detached plain-data explanation suitable for logs, tools, and serialization. It never throws
|
|
87
79
|
// and exposes no resolver runtime or raw thrown value.
|
|
88
80
|
export function explainImageResourceReferenceResolution(ref) {
|
|
@@ -93,6 +85,27 @@ export function explainImageResourceReferenceResolution(ref) {
|
|
|
93
85
|
state: ref.state,
|
|
94
86
|
};
|
|
95
87
|
}
|
|
88
|
+
// `bytes` is retained as the view the container handed over, not a copy: a parser carves an image payload
|
|
89
|
+
// out of its source and the reference borrows it, so a document that never resolves an image never pays for
|
|
90
|
+
// its pixels. `textures` starts empty and each waiting Texture subscribes itself.
|
|
91
|
+
export function initializeEmbeddedImageResourceReference(out, bytes, mimeType = null, alphaType = 'straight') {
|
|
92
|
+
out.alphaType = alphaType;
|
|
93
|
+
out.bytes = bytes;
|
|
94
|
+
out.failure = null;
|
|
95
|
+
out.kind = ImageResourceReferenceKind.Embedded;
|
|
96
|
+
out.mimeType = mimeType;
|
|
97
|
+
out.state = ResourceResolutionState.Unresolved;
|
|
98
|
+
out.textures = [];
|
|
99
|
+
}
|
|
100
|
+
export function initializeExternalImageResourceReference(out, uri, basePath = null) {
|
|
101
|
+
out.basePath = basePath;
|
|
102
|
+
out.failure = null;
|
|
103
|
+
out.kind = ImageResourceReferenceKind.External;
|
|
104
|
+
out.mimeType = null;
|
|
105
|
+
out.state = ResourceResolutionState.Unresolved;
|
|
106
|
+
out.textures = [];
|
|
107
|
+
out.uri = uri;
|
|
108
|
+
}
|
|
96
109
|
// Returns a failed reference to the requestable state. Loading/resolved/unresolved references are unchanged
|
|
97
110
|
// so this atom cannot invalidate live work or a successfully bound resource accidentally.
|
|
98
111
|
export function resetFailedImageResourceReference(ref) {
|
|
@@ -123,11 +136,11 @@ export async function resolveImageResourceReference(ref, fetch, signal) {
|
|
|
123
136
|
const decodeFailure = usesOrdinaryEmbeddedDecode
|
|
124
137
|
? explainImageDecodeFailure(ref.bytes, ref.mimeType ?? undefined)
|
|
125
138
|
: null;
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
139
|
+
const out = allocateEntity();
|
|
140
|
+
out.kind = ImageResourceFailureKind.Unavailable;
|
|
141
|
+
out.message = decodeFailure?.reason ?? 'Image resource unavailable';
|
|
142
|
+
out.name = null;
|
|
143
|
+
ref.failure = finishEntity(out);
|
|
131
144
|
ref.state = ResourceResolutionState.Failed;
|
|
132
145
|
return null;
|
|
133
146
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageResourceReference.js","sourceRoot":"","sources":["../src/imageResourceReference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"imageResourceReference.js","sourceRoot":"","sources":["../src/imageResourceReference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EACL,WAAW,EACX,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AAaxC,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAElC,MAAM,UAAU,oCAAoC,CAClD,KAAiB,EACjB,WAA0B,IAAI,EAC9B,YAAuB,UAAU;IAEjC,MAAM,GAAG,GAAG,cAAc,EAAkC,CAAC;IAC7D,wCAAwC,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC1E,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,GAAW,EACX,WAA0B,IAAI;IAE9B,MAAM,GAAG,GAAG,cAAc,EAAkC,CAAC;IAC7D,wCAAwC,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC7D,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,gGAAgG;AAChG,mGAAmG;AACnG,qGAAqG;AACrG,mFAAmF;AACnF,KAAK,UAAU,oCAAoC,CACjD,GAA6C,EAC7C,MAAmB;IAEnB,IAAI,GAAG,CAAC,iBAAiB,KAAK,SAAS,IAAI,8BAA8B,KAAK,IAAI,EAAE,CAAC;QACnF,OAAO,8BAA8B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,KAAK,eAAe;QACtD,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,IAAI,SAAS,CAAC;QAChE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC;IACvD,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,GAAG,GAAG,cAAc,EAAU,CAAC;IACrC,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;IAC9B,GAAG,CAAC,IAAI,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,GAAG,CAAC,MAAM,GAAG,YAAqB,CAAC;IACnC,GAAG,CAAC,KAAK,GAAG,MAAe,CAAC;IAC5B,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC5B,GAAG,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACnC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;IAChB,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC1B,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,yGAAyG;AACzG,4GAA4G;AAC5G,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,cAAc,EAAwB,CAAC;QACnD,GAAG,CAAC,IAAI,GAAG,wBAAwB,CAAC,KAAK,CAAC;QAC1C,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC5B,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACtB,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,GAAG,GAAG,cAAc,EAAwB,CAAC;IACnD,GAAG,CAAC,IAAI,GAAG,wBAAwB,CAAC,KAAK,CAAC;IAC1C,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAChB,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,8BAA8B,GAAG,IAAI,CAAC;AACxC,CAAC;AAED,qGAAqG;AACrG,iGAAiG;AACjG,wGAAwG;AACxG,MAAM,UAAU,4BAA4B;IAC1C,8BAA8B,GAAG,6BAA6B,CAAC;AACjE,CAAC;AAED,KAAK,UAAU,6BAA6B,CAC1C,GAA6C,EAC7C,MAAmB;IAEnB,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,MAAM,WAAW,GAAG,GAAG,CAAC,iBAAkB,CAAC;IAC3C,MAAM,QAAQ,GAAG,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnC,gGAAgG;IAChG,sFAAsF;IACtF,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC;IACxE,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,OAAO,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC;AAOD,IAAI,8BAA8B,GAAyC,IAAI,CAAC;AAEhF,yGAAyG;AACzG,uDAAuD;AACvD,MAAM,UAAU,uCAAuC,CACrD,GAAqC;IAErC,OAAO;QACL,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE;QACzD,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS,EAAE,GAAG,CAAC,KAAK,KAAK,uBAAuB,CAAC,MAAM;QACvD,KAAK,EAAE,GAAG,CAAC,KAAK;KACjB,CAAC;AACJ,CAAC;AAED,0GAA0G;AAC1G,4GAA4G;AAC5G,kFAAkF;AAClF,MAAM,UAAU,wCAAwC,CACtD,GAAuD,EACvD,KAAiB,EACjB,WAA0B,IAAI,EAC9B,YAAuB,UAAU;IAEjC,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1B,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;IAClB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;IACnB,GAAG,CAAC,IAAI,GAAG,0BAA0B,CAAC,QAAQ,CAAC;IAC/C,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACxB,GAAG,CAAC,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;IAC/C,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,wCAAwC,CACtD,GAAuD,EACvD,GAAW,EACX,WAA0B,IAAI;IAE9B,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACxB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;IACnB,GAAG,CAAC,IAAI,GAAG,0BAA0B,CAAC,QAAQ,CAAC;IAC/C,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;IACpB,GAAG,CAAC,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;IAC/C,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;IAClB,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;AAChB,CAAC;AAED,4GAA4G;AAC5G,0FAA0F;AAC1F,MAAM,UAAU,iCAAiC,CAAC,GAA2B;IAC3E,IAAI,GAAG,CAAC,KAAK,KAAK,uBAAuB,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC/D,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;IACnB,GAAG,CAAC,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;IAC/C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+GAA+G;AAC/G,0GAA0G;AAC1G,yGAAyG;AACzG,uGAAuG;AACvG,+CAA+C;AAC/C,EAAE;AACF,yGAAyG;AACzG,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,GAA2B,EAC3B,KAAyB,EACzB,MAAmB;IAEnB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;IACnB,GAAG,CAAC,KAAK,GAAG,uBAAuB,CAAC,OAAO,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,0BAA0B,GAC9B,GAAG,CAAC,IAAI,KAAK,0BAA0B,CAAC,QAAQ;YAChD,CAAC,GAAG,CAAC,iBAAiB,KAAK,SAAS,IAAI,8BAA8B,KAAK,IAAI,CAAC,CAAC;QACnF,MAAM,MAAM,GACV,GAAG,CAAC,IAAI,KAAK,0BAA0B,CAAC,QAAQ;YAC9C,CAAC,CAAC,MAAM,oCAAoC,CAAC,GAAG,EAAE,MAAM,CAAC;YACzD,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC/B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,aAAa,GAAG,0BAA0B;gBAC9C,CAAC,CAAC,yBAAyB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,IAAI,SAAS,CAAC;gBACjE,CAAC,CAAC,IAAI,CAAC;YACT,MAAM,GAAG,GAAG,cAAc,EAAwB,CAAC;YACnD,GAAG,CAAC,IAAI,GAAG,wBAAwB,CAAC,WAAW,CAAC;YAChD,GAAG,CAAC,OAAO,GAAG,aAAa,EAAE,MAAM,IAAI,4BAA4B,CAAC;YACpE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;YAChB,GAAG,CAAC,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAChC,GAAG,CAAC,KAAK,GAAG,uBAAuB,CAAC,MAAM,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,GAAG,CAAC,KAAK,GAAG,uBAAuB,CAAC,QAAQ,CAAC;QAC7C,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,GAAG,CAAC,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;YAC/C,MAAM,KAAK,CAAC;QACd,CAAC;QACD,GAAG,CAAC,OAAO,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAChD,GAAG,CAAC,KAAK,GAAG,uBAAuB,CAAC,MAAM,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { cloneImageResource, createCompressedImageResource, createEmbeddedImageResourceReference, createExternalImageResourceReference, createImageResource, createImageResourceFailure, createImageResourceFromBitmap, createImageResourceFromCanvas, createImageResourceFromImageBitmap, createImageResourceFromImageElement, disableImageBitmapComposition, enableImageBitmapComposition, explainImageResourceReferenceResolution, isImageResourceEmpty, isImageUrlSameOrigin, loadImageResourceFromBase64, loadImageResourceFromBlob, loadImageResourceFromBytes, loadImageResourceFromUrl, resetFailedImageResourceReference, resolveImageResourceReference, } from './contract';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,6BAA6B,EAC7B,oCAAoC,EACpC,oCAAoC,EACpC,mBAAmB,EACnB,0BAA0B,EAC1B,6BAA6B,EAC7B,6BAA6B,EAC7B,kCAAkC,EAClC,mCAAmC,EACnC,6BAA6B,EAC7B,4BAA4B,EAC5B,uCAAuC,EACvC,oBAAoB,EACpB,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,iCAAiC,EACjC,6BAA6B,GAC9B,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { cloneImageResource, createCompressedImageResource, createEmbeddedImageResourceReference, createExternalImageResourceReference, createImageResource, createImageResourceFailure, createImageResourceFromBitmap, createImageResourceFromCanvas, createImageResourceFromImageBitmap, createImageResourceFromImageElement, disableImageBitmapComposition, enableImageBitmapComposition, explainImageResourceReferenceResolution, isImageResourceEmpty, isImageUrlSameOrigin, loadImageResourceFromBase64, loadImageResourceFromBlob, loadImageResourceFromBytes, loadImageResourceFromUrl, resetFailedImageResourceReference, resolveImageResourceReference, } from './contract';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,6BAA6B,EAC7B,oCAAoC,EACpC,oCAAoC,EACpC,mBAAmB,EACnB,0BAA0B,EAC1B,6BAA6B,EAC7B,6BAA6B,EAC7B,kCAAkC,EAClC,mCAAmC,EACnC,6BAA6B,EAC7B,4BAA4B,EAC5B,uCAAuC,EACvC,oBAAoB,EACpB,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,iCAAiC,EACjC,6BAA6B,GAC9B,MAAM,YAAY,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/image",
|
|
3
|
-
"version": "0.5.1-next.
|
|
3
|
+
"version": "0.5.1-next.903.f434bc2",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/entity": "0.5.1-next.
|
|
42
|
-
"@flighthq/image-codec": "0.5.1-next.
|
|
43
|
-
"@flighthq/types": "0.5.1-next.
|
|
41
|
+
"@flighthq/entity": "0.5.1-next.903.f434bc2",
|
|
42
|
+
"@flighthq/image-codec": "0.5.1-next.903.f434bc2",
|
|
43
|
+
"@flighthq/types": "0.5.1-next.903.f434bc2"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"typescript": "^5.3.0"
|