@takumi-rs/image-response 1.0.0-beta.0 → 1.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/node.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var c=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var I=(t,e)=>{for(var r in e)c(t,r,{get:e[r],enumerable:!0})},b=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of w(e))!x.call(t,n)&&n!==r&&c(t,n,{get:()=>e[n],enumerable:!(s=O(e,n))||s.enumerable});return t};var P=t=>b(c({},"__esModule",{value:!0}),t);var S={};I(S,{ImageResponse:()=>i,default:()=>J});module.exports=P(S);var o=require("@takumi-rs/core"),u=require("@takumi-rs/helpers"),p=require("@takumi-rs/helpers/jsx"),a,j={format:"webp"};async function A(t){if(t&&"renderer"in t)return t.renderer;if(!a)return a=new o.Renderer(t),a;let e=[],r=a;return r?(t?.fonts&&t.fonts.length>0&&e.push(r.loadFonts(t.fonts)),t?.persistentImages&&e.push(...t.persistentImages.map(s=>r.putPersistentImage(s.src,s.data))),e.length>0&&await Promise.all(e),r):a}function F(t,e){if(e?.fetchedResources)return e.fetchedResources;let r=(0,o.extractResourceUrls)(t);return(0,u.fetchResources)(r)}function N(t,e){return new ReadableStream({type:"bytes",async start(r){try{let s=(0,p.fromJsx)(t,e?.jsx).then(async({node:d,stylesheets:l})=>{let y=await F(d,e);return{node:d,fetchedResources:y,stylesheets:l}}),[n,{node:m,fetchedResources:R,stylesheets:f}]=await Promise.all([A(e),s]),g={width:e?.width,height:e?.height,format:e?.format,quality:e?.quality,dithering:e?.dithering,drawDebugBorder:e?.drawDebugBorder,devicePixelRatio:e?.devicePixelRatio,fetchedResources:R,stylesheets:e?.stylesheets??f},h=await n.render(m,g,e?.signal);r.enqueue(h),r.close()}catch(s){r.error(s)}}})}var B={webp:"image/webp",png:"image/png",jpeg:"image/jpeg",raw:"application/octet-stream"},i=class extends Response{constructor(e,r){let s=N(e,r),n=new Headers(r?.headers);n.get("content-type")||n.set("content-type",B[r?.format??j.format]),super(s,{status:r?.status,statusText:r?.statusText,headers:n})}},J=i;0&&(module.exports={ImageResponse});
1
+ "use strict";var m=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var j=Object.prototype.hasOwnProperty;var I=(t,e)=>{for(var r in e)m(t,r,{get:e[r],enumerable:!0})},b=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of x(e))!j.call(t,n)&&n!==r&&m(t,n,{get:()=>e[n],enumerable:!(s=w(e,n))||s.enumerable});return t};var P=t=>b(m({},"__esModule",{value:!0}),t);var J={};I(J,{ImageResponse:()=>o,default:()=>E});module.exports=P(J);var c=require("@takumi-rs/core"),d=require("@takumi-rs/helpers"),p=require("@takumi-rs/helpers/emoji"),u=require("@takumi-rs/helpers/jsx"),a,T={format:"webp"};async function A(t){if(t&&"renderer"in t)return t.renderer;if(!a)return a=new c.Renderer(t),a;let e=[],r=a;return r?(t?.fonts&&t.fonts.length>0&&e.push(r.loadFonts(t.fonts)),t?.persistentImages&&e.push(...t.persistentImages.map(s=>r.putPersistentImage(s.src,s.data))),e.length>0&&await Promise.all(e),r):a}function F(t,e){if(e?.fetchedResources)return e.fetchedResources;let r=(0,c.extractResourceUrls)(t);return(0,d.fetchResources)(r)}function N(t,e){return new ReadableStream({type:"bytes",async start(r){try{let s=(0,u.fromJsx)(t,e?.jsx).then(async({node:i,stylesheets:l})=>{e?.emoji&&e.emoji!=="from-font"&&(i=(0,p.extractEmojis)(i,e.emoji));let O=await F(i,e);return{node:i,fetchedResources:O,stylesheets:l}}),[n,{node:f,fetchedResources:R,stylesheets:g}]=await Promise.all([A(e),s]),h={width:e?.width,height:e?.height,format:e?.format,quality:e?.quality,dithering:e?.dithering,drawDebugBorder:e?.drawDebugBorder,devicePixelRatio:e?.devicePixelRatio,fetchedResources:R,stylesheets:[...e?.stylesheets??[],...g]},y=await n.render(f,h,e?.signal);r.enqueue(y),r.close()}catch(s){r.error(s)}}})}var B={webp:"image/webp",png:"image/png",jpeg:"image/jpeg",raw:"application/octet-stream"},o=class extends Response{constructor(e,r){let s=N(e,r),n=new Headers(r?.headers);n.get("content-type")||n.set("content-type",B[r?.format??T.format]),super(s,{status:r?.status,statusText:r?.statusText,headers:n})}},E=o;0&&(module.exports={ImageResponse});
package/dist/node.d.cts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { RenderOptions, Renderer, ConstructRendererOptions } from '@takumi-rs/core';
2
+ import { EmojiType } from '@takumi-rs/helpers/emoji';
2
3
  import { FromJsxOptions } from '@takumi-rs/helpers/jsx';
3
4
  import { ReactNode } from 'react';
4
5
 
@@ -11,10 +12,12 @@ type ImageResponseOptionsWithRenderer = ResponseInit & RenderOptions & {
11
12
  renderer: Renderer;
12
13
  signal?: AbortSignal;
13
14
  jsx?: FromJsxOptions;
15
+ emoji?: EmojiType | "from-font";
14
16
  };
15
17
  type ImageResponseOptionsWithoutRenderer = ResponseInit & RenderOptions & ConstructRendererOptions & {
16
18
  signal?: AbortSignal;
17
19
  jsx?: FromJsxOptions;
20
+ emoji?: EmojiType | "from-font";
18
21
  };
19
22
  type ImageResponseOptions = ImageResponseOptionsWithRenderer | ImageResponseOptionsWithoutRenderer;
20
23
  declare class ImageResponse extends Response {
package/dist/node.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { RenderOptions, Renderer, ConstructRendererOptions } from '@takumi-rs/core';
2
+ import { EmojiType } from '@takumi-rs/helpers/emoji';
2
3
  import { FromJsxOptions } from '@takumi-rs/helpers/jsx';
3
4
  import { ReactNode } from 'react';
4
5
 
@@ -11,10 +12,12 @@ type ImageResponseOptionsWithRenderer = ResponseInit & RenderOptions & {
11
12
  renderer: Renderer;
12
13
  signal?: AbortSignal;
13
14
  jsx?: FromJsxOptions;
15
+ emoji?: EmojiType | "from-font";
14
16
  };
15
17
  type ImageResponseOptionsWithoutRenderer = ResponseInit & RenderOptions & ConstructRendererOptions & {
16
18
  signal?: AbortSignal;
17
19
  jsx?: FromJsxOptions;
20
+ emoji?: EmojiType | "from-font";
18
21
  };
19
22
  type ImageResponseOptions = ImageResponseOptionsWithRenderer | ImageResponseOptionsWithoutRenderer;
20
23
  declare class ImageResponse extends Response {
package/dist/node.js CHANGED
@@ -1 +1 @@
1
- import{extractResourceUrls as g,Renderer as h}from"@takumi-rs/core";import{fetchResources as l}from"@takumi-rs/helpers";import{fromJsx as y}from"@takumi-rs/helpers/jsx";var a,O={format:"webp"};async function w(r){if(r&&"renderer"in r)return r.renderer;if(!a)return a=new h(r),a;let e=[],t=a;return t?(r?.fonts&&r.fonts.length>0&&e.push(t.loadFonts(r.fonts)),r?.persistentImages&&e.push(...r.persistentImages.map(s=>t.putPersistentImage(s.src,s.data))),e.length>0&&await Promise.all(e),t):a}function x(r,e){if(e?.fetchedResources)return e.fetchedResources;let t=g(r);return l(t)}function I(r,e){return new ReadableStream({type:"bytes",async start(t){try{let s=y(r,e?.jsx).then(async({node:o,stylesheets:R})=>{let f=await x(o,e);return{node:o,fetchedResources:f,stylesheets:R}}),[n,{node:c,fetchedResources:d,stylesheets:u}]=await Promise.all([w(e),s]),p={width:e?.width,height:e?.height,format:e?.format,quality:e?.quality,dithering:e?.dithering,drawDebugBorder:e?.drawDebugBorder,devicePixelRatio:e?.devicePixelRatio,fetchedResources:d,stylesheets:e?.stylesheets??u},m=await n.render(c,p,e?.signal);t.enqueue(m),t.close()}catch(s){t.error(s)}}})}var b={webp:"image/webp",png:"image/png",jpeg:"image/jpeg",raw:"application/octet-stream"},i=class extends Response{constructor(e,t){let s=I(e,t),n=new Headers(t?.headers);n.get("content-type")||n.set("content-type",b[t?.format??O.format]),super(s,{status:t?.status,statusText:t?.statusText,headers:n})}},F=i;export{i as ImageResponse,F as default};
1
+ import{extractResourceUrls as g,Renderer as h}from"@takumi-rs/core";import{fetchResources as y}from"@takumi-rs/helpers";import{extractEmojis as l}from"@takumi-rs/helpers/emoji";import{fromJsx as O}from"@takumi-rs/helpers/jsx";var a,w={format:"webp"};async function x(r){if(r&&"renderer"in r)return r.renderer;if(!a)return a=new h(r),a;let e=[],t=a;return t?(r?.fonts&&r.fonts.length>0&&e.push(t.loadFonts(r.fonts)),r?.persistentImages&&e.push(...r.persistentImages.map(s=>t.putPersistentImage(s.src,s.data))),e.length>0&&await Promise.all(e),t):a}function j(r,e){if(e?.fetchedResources)return e.fetchedResources;let t=g(r);return y(t)}function I(r,e){return new ReadableStream({type:"bytes",async start(t){try{let s=O(r,e?.jsx).then(async({node:i,stylesheets:f})=>{e?.emoji&&e.emoji!=="from-font"&&(i=l(i,e.emoji));let R=await j(i,e);return{node:i,fetchedResources:R,stylesheets:f}}),[n,{node:c,fetchedResources:m,stylesheets:d}]=await Promise.all([x(e),s]),p={width:e?.width,height:e?.height,format:e?.format,quality:e?.quality,dithering:e?.dithering,drawDebugBorder:e?.drawDebugBorder,devicePixelRatio:e?.devicePixelRatio,fetchedResources:m,stylesheets:[...e?.stylesheets??[],...d]},u=await n.render(c,p,e?.signal);t.enqueue(u),t.close()}catch(s){t.error(s)}}})}var b={webp:"image/webp",png:"image/png",jpeg:"image/jpeg",raw:"application/octet-stream"},o=class extends Response{constructor(e,t){let s=I(e,t),n=new Headers(t?.headers);n.get("content-type")||n.set("content-type",b[t?.format??w.format]),super(s,{status:t?.status,statusText:t?.statusText,headers:n})}},N=o;export{o as ImageResponse,N as default};
package/dist/wasm.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var g=Object.create;var p=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var x=(e,t)=>{for(var r in t)p(e,r,{get:t[r],enumerable:!0})},u=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of y(t))!h.call(e,s)&&s!==r&&p(e,s,{get:()=>t[s],enumerable:!(n=I(t,s))||n.enumerable});return e};var w=(e,t,r)=>(r=e!=null?g(O(e)):{},u(t||!e||!e.__esModule?p(r,"default",{value:e,enumerable:!0}):r,e)),b=e=>u(p({},"__esModule",{value:!0}),e);var S={};x(S,{ImageResponse:()=>m,default:()=>M});module.exports=b(S);var c=require("@takumi-rs/helpers"),f=require("@takumi-rs/helpers/jsx"),i=w(require("@takumi-rs/wasm/no-bundler"),1),o;function j(e){if(e&&"renderer"in e)return e.renderer;if(!o)return o=new i.Renderer(e),o;if(e?.fonts)for(let t of e.fonts)o.loadFont(t);if(e?.persistentImages)for(let t of e.persistentImages)o.putPersistentImage(t);return o}var d=null;function F(e,t){return new ReadableStream({type:"bytes",async start(r){try{"module"in t&&!o&&(d||(d=(async()=>{let a=await t.module;typeof a=="object"&&"default"in a&&(a=a.default),await(0,i.default)({module_or_path:a})})()),await d);let n=j(t),{node:s,stylesheets:R}=await(0,f.fromJsx)(e,t.jsx);if(t.stylesheets??=R,!t.fetchedResources){let a=(0,i.extractResourceUrls)(s);a.length>0&&(t.fetchedResources=await(0,c.fetchResources)(a))}let l=n.render(s,t);r.enqueue(l),r.close()}catch(n){r.error(n)}}})}var P={png:"image/png",jpeg:"image/jpeg",webp:"image/webp",raw:"application/octet-stream"},J={format:"webp"},m=class extends Response{constructor(t,r){let n=F(t,r),s=new Headers(r.headers);s.get("content-type")||s.set("content-type",P[r.format??J.format]),super(n,{status:r.status,statusText:r.statusText,headers:s})}},M=m;0&&(module.exports={ImageResponse});
1
+ "use strict";var g=Object.create;var p=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var j=(e,t)=>{for(var s in t)p(e,s,{get:t[s],enumerable:!0})},f=(e,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of I(t))!h.call(e,r)&&r!==s&&p(e,r,{get:()=>t[r],enumerable:!(n=y(t,r))||n.enumerable});return e};var w=(e,t,s)=>(s=e!=null?g(O(e)):{},f(t||!e||!e.__esModule?p(s,"default",{value:e,enumerable:!0}):s,e)),x=e=>f(p({},"__esModule",{value:!0}),e);var E={};j(E,{ImageResponse:()=>m,default:()=>A});module.exports=x(E);var u=require("@takumi-rs/helpers"),d=require("@takumi-rs/helpers/emoji"),l=require("@takumi-rs/helpers/jsx"),a=w(require("@takumi-rs/wasm/no-bundler"),1),o;function b(e){if(e&&"renderer"in e)return e.renderer;if(!o)return o=new a.Renderer(e),o;if(e?.fonts)for(let t of e.fonts)o.loadFont(t);if(e?.persistentImages)for(let t of e.persistentImages)o.putPersistentImage(t);return o}var c=null;async function T(e){!("module"in e)||o||(c||(c=(async()=>{let t=await e.module;typeof t=="object"&&"default"in t&&(t=t.default),await(0,a.default)({module_or_path:t})})()),await c)}async function F(e,t){let s={...t},{node:n,stylesheets:r}=await(0,l.fromJsx)(e,s.jsx);if(s.stylesheets=[...s.stylesheets??[],...r],s.emoji&&s.emoji!=="from-font"&&(n=(0,d.extractEmojis)(n,s.emoji)),!s.fetchedResources){let i=(0,a.extractResourceUrls)(n);i.length>0&&(s.fetchedResources=await(0,u.fetchResources)(i))}return{node:n,options:s}}function N(e,t){return new ReadableStream({type:"bytes",async start(s){try{await T(t);let n=b(t),{node:r,options:i}=await F(e,t),R=n.render(r,i);s.enqueue(R),s.close()}catch(n){s.error(n)}}})}var P={png:"image/png",jpeg:"image/jpeg",webp:"image/webp",raw:"application/octet-stream"},W={format:"webp"},m=class extends Response{constructor(t,s){let n=N(t,s),r=new Headers(s.headers);r.get("content-type")||r.set("content-type",P[s.format??W.format]),super(n,{status:s.status,statusText:s.statusText,headers:r})}},A=m;0&&(module.exports={ImageResponse});
package/dist/wasm.d.cts CHANGED
@@ -1,3 +1,4 @@
1
+ import { EmojiType } from '@takumi-rs/helpers/emoji';
1
2
  import { FromJsxOptions } from '@takumi-rs/helpers/jsx';
2
3
  import { RenderOptions, Renderer, InitInput, Font, ImageSource } from '@takumi-rs/wasm/no-bundler';
3
4
  import { ReactNode } from 'react';
@@ -41,11 +42,13 @@ type ModuleOptions = {
41
42
  type ImageResponseOptionsWithRenderer = ResponseInit & RenderOptions & {
42
43
  renderer: Renderer;
43
44
  jsx?: FromJsxOptions;
45
+ emoji?: EmojiType | "from-font";
44
46
  };
45
47
  type ImageResponseOptionsWithoutRenderer = ResponseInit & RenderOptions & ModuleOptions & {
46
48
  fonts?: Font[];
47
49
  persistentImages?: ImageSource[];
48
50
  jsx?: FromJsxOptions;
51
+ emoji?: EmojiType | "from-font";
49
52
  };
50
53
  type ImageResponseOptions = ImageResponseOptionsWithRenderer | ImageResponseOptionsWithoutRenderer;
51
54
  declare class ImageResponse extends Response {
package/dist/wasm.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { EmojiType } from '@takumi-rs/helpers/emoji';
1
2
  import { FromJsxOptions } from '@takumi-rs/helpers/jsx';
2
3
  import { RenderOptions, Renderer, InitInput, Font, ImageSource } from '@takumi-rs/wasm/no-bundler';
3
4
  import { ReactNode } from 'react';
@@ -41,11 +42,13 @@ type ModuleOptions = {
41
42
  type ImageResponseOptionsWithRenderer = ResponseInit & RenderOptions & {
42
43
  renderer: Renderer;
43
44
  jsx?: FromJsxOptions;
45
+ emoji?: EmojiType | "from-font";
44
46
  };
45
47
  type ImageResponseOptionsWithoutRenderer = ResponseInit & RenderOptions & ModuleOptions & {
46
48
  fonts?: Font[];
47
49
  persistentImages?: ImageSource[];
48
50
  jsx?: FromJsxOptions;
51
+ emoji?: EmojiType | "from-font";
49
52
  };
50
53
  type ImageResponseOptions = ImageResponseOptionsWithRenderer | ImageResponseOptionsWithoutRenderer;
51
54
  declare class ImageResponse extends Response {
package/dist/wasm.js CHANGED
@@ -1 +1 @@
1
- import{fetchResources as u}from"@takumi-rs/helpers";import{fromJsx as c}from"@takumi-rs/helpers/jsx";import f,{extractResourceUrls as R,Renderer as l}from"@takumi-rs/wasm/no-bundler";var n;function g(t){if(t&&"renderer"in t)return t.renderer;if(!n)return n=new l(t),n;if(t?.fonts)for(let e of t.fonts)n.loadFont(e);if(t?.persistentImages)for(let e of t.persistentImages)n.putPersistentImage(e);return n}var i=null;function I(t,e){return new ReadableStream({type:"bytes",async start(r){try{"module"in e&&!n&&(i||(i=(async()=>{let s=await e.module;typeof s=="object"&&"default"in s&&(s=s.default),await f({module_or_path:s})})()),await i);let o=g(e),{node:a,stylesheets:m}=await c(t,e.jsx);if(e.stylesheets??=m,!e.fetchedResources){let s=R(a);s.length>0&&(e.fetchedResources=await u(s))}let d=o.render(a,e);r.enqueue(d),r.close()}catch(o){r.error(o)}}})}var y={png:"image/png",jpeg:"image/jpeg",webp:"image/webp",raw:"application/octet-stream"},O={format:"webp"},p=class extends Response{constructor(e,r){let o=I(e,r),a=new Headers(r.headers);a.get("content-type")||a.set("content-type",y[r.format??O.format]),super(o,{status:r.status,statusText:r.statusText,headers:a})}},b=p;export{p as ImageResponse,b as default};
1
+ import{fetchResources as c}from"@takumi-rs/helpers";import{extractEmojis as f}from"@takumi-rs/helpers/emoji";import{fromJsx as u}from"@takumi-rs/helpers/jsx";import d,{extractResourceUrls as l,Renderer as R}from"@takumi-rs/wasm/no-bundler";var o;function g(s){if(s&&"renderer"in s)return s.renderer;if(!o)return o=new R(s),o;if(s?.fonts)for(let t of s.fonts)o.loadFont(t);if(s?.persistentImages)for(let t of s.persistentImages)o.putPersistentImage(t);return o}var i=null;async function y(s){!("module"in s)||o||(i||(i=(async()=>{let t=await s.module;typeof t=="object"&&"default"in t&&(t=t.default),await d({module_or_path:t})})()),await i)}async function I(s,t){let e={...t},{node:n,stylesheets:r}=await u(s,e.jsx);if(e.stylesheets=[...e.stylesheets??[],...r],e.emoji&&e.emoji!=="from-font"&&(n=f(n,e.emoji)),!e.fetchedResources){let a=l(n);a.length>0&&(e.fetchedResources=await c(a))}return{node:n,options:e}}function O(s,t){return new ReadableStream({type:"bytes",async start(e){try{await y(t);let n=g(t),{node:r,options:a}=await I(s,t),m=n.render(r,a);e.enqueue(m),e.close()}catch(n){e.error(n)}}})}var h={png:"image/png",jpeg:"image/jpeg",webp:"image/webp",raw:"application/octet-stream"},j={format:"webp"},p=class extends Response{constructor(t,e){let n=O(t,e),r=new Headers(e.headers);r.get("content-type")||r.set("content-type",h[e.format??j.format]),super(n,{status:e.status,statusText:e.statusText,headers:r})}},F=p;export{p as ImageResponse,F as default};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@takumi-rs/image-response",
3
3
  "type": "module",
4
- "version": "1.0.0-beta.0",
4
+ "version": "1.0.0-beta.2",
5
5
  "author": {
6
6
  "email": "me@kane.tw",
7
7
  "name": "Kane Wang",
@@ -11,9 +11,9 @@
11
11
  "url": "git+https://github.com/kane50613/takumi.git"
12
12
  },
13
13
  "dependencies": {
14
- "@takumi-rs/core": "1.0.0-beta.0",
15
- "@takumi-rs/helpers": "1.0.0-beta.0",
16
- "@takumi-rs/wasm": "1.0.0-beta.0"
14
+ "@takumi-rs/core": "1.0.0-beta.2",
15
+ "@takumi-rs/helpers": "1.0.0-beta.2",
16
+ "@takumi-rs/wasm": "1.0.0-beta.2"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@types/bun": "catalog:",