@napi-rs/canvas 0.1.68 → 0.1.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +1 -1
  2. package/index.d.ts +274 -5
  3. package/package.json +15 -15
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # `skr canvas`
2
2
 
3
3
  [![CI](https://github.com/Brooooooklyn/canvas/actions/workflows/CI.yaml/badge.svg)](https://github.com/Brooooooklyn/canvas/actions/workflows/CI.yaml)
4
- ![Skia Version](https://img.shields.io/badge/Skia-chrome%2Fm134-hotpink)
4
+ ![Skia Version](https://img.shields.io/badge/Skia-chrome%2Fm136-hotpink)
5
5
  [![install size](https://packagephobia.com/badge?p=@napi-rs/canvas)](https://packagephobia.com/result?p=@napi-rs/canvas)
6
6
  [![Downloads](https://img.shields.io/npm/dm/@napi-rs/canvas.svg?sanitize=true)](https://npmcharts.com/compare/@napi-rs/canvas?minimal=true)
7
7
 
package/index.d.ts CHANGED
@@ -3,6 +3,279 @@ import { ReadableStream } from 'node:stream/web'
3
3
  // Clear all type of caches in Skia
4
4
  export function clearAllCache(): void
5
5
 
6
+ interface CanvasRenderingContext2D
7
+ extends CanvasCompositing,
8
+ CanvasDrawPath,
9
+ CanvasFillStrokeStyles,
10
+ CanvasFilters,
11
+ CanvasImageData,
12
+ CanvasImageSmoothing,
13
+ CanvasPath,
14
+ CanvasPathDrawingStyles,
15
+ CanvasRect,
16
+ CanvasSettings,
17
+ CanvasShadowStyles,
18
+ CanvasState,
19
+ CanvasText,
20
+ CanvasTextDrawingStyles,
21
+ CanvasTransform {}
22
+
23
+ interface CanvasState {
24
+ isContextLost(): boolean
25
+ reset(): void
26
+ restore(): void
27
+ save(): void
28
+ }
29
+ interface CanvasShadowStyles {
30
+ shadowBlur: number
31
+ shadowColor: string
32
+ shadowOffsetX: number
33
+ shadowOffsetY: number
34
+ }
35
+ interface CanvasRenderingContext2DSettings {
36
+ alpha?: boolean
37
+ colorSpace?: PredefinedColorSpace
38
+ desynchronized?: boolean
39
+ willReadFrequently?: boolean
40
+ }
41
+ interface CanvasSettings {
42
+ getContextAttributes(): CanvasRenderingContext2DSettings
43
+ }
44
+
45
+ interface CanvasRect {
46
+ clearRect(x: number, y: number, w: number, h: number): void
47
+ fillRect(x: number, y: number, w: number, h: number): void
48
+ strokeRect(x: number, y: number, w: number, h: number): void
49
+ }
50
+
51
+ interface TextMetrics {
52
+ readonly actualBoundingBoxAscent: number
53
+ readonly actualBoundingBoxDescent: number
54
+ readonly actualBoundingBoxLeft: number
55
+ readonly actualBoundingBoxRight: number
56
+ readonly alphabeticBaseline: number
57
+ readonly emHeightAscent: number
58
+ readonly emHeightDescent: number
59
+ readonly fontBoundingBoxAscent: number
60
+ readonly fontBoundingBoxDescent: number
61
+ readonly hangingBaseline: number
62
+ readonly ideographicBaseline: number
63
+ readonly width: number
64
+ }
65
+
66
+ interface CanvasText {
67
+ fillText(text: string, x: number, y: number, maxWidth?: number): void
68
+ measureText(text: string): TextMetrics
69
+ strokeText(text: string, x: number, y: number, maxWidth?: number): void
70
+ }
71
+
72
+ type CanvasLineCap = 'butt' | 'round' | 'square'
73
+ type CanvasLineJoin = 'bevel' | 'miter' | 'round'
74
+
75
+ interface CanvasPathDrawingStyles {
76
+ lineCap: CanvasLineCap
77
+ lineDashOffset: number
78
+ lineJoin: CanvasLineJoin
79
+ lineWidth: number
80
+ miterLimit: number
81
+ getLineDash(): number[]
82
+ setLineDash(segments: number[]): void
83
+ }
84
+
85
+ interface CanvasPath {
86
+ arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void
87
+ arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void
88
+ bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void
89
+ closePath(): void
90
+ ellipse(
91
+ x: number,
92
+ y: number,
93
+ radiusX: number,
94
+ radiusY: number,
95
+ rotation: number,
96
+ startAngle: number,
97
+ endAngle: number,
98
+ counterclockwise?: boolean,
99
+ ): void
100
+ lineTo(x: number, y: number): void
101
+ moveTo(x: number, y: number): void
102
+ quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void
103
+ rect(x: number, y: number, w: number, h: number): void
104
+ roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | (number | DOMPointInit)[]): void
105
+ }
106
+
107
+ type ImageSmoothingQuality = 'high' | 'low' | 'medium'
108
+
109
+ interface CanvasImageSmoothing {
110
+ imageSmoothingEnabled: boolean
111
+ imageSmoothingQuality: ImageSmoothingQuality
112
+ }
113
+
114
+ interface CanvasTransform {
115
+ resetTransform(): void
116
+ rotate(angle: number): void
117
+ scale(x: number, y: number): void
118
+ setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void
119
+ setTransform(transform?: DOMMatrix2DInit): void
120
+ transform(a: number, b: number, c: number, d: number, e: number, f: number): void
121
+ translate(x: number, y: number): void
122
+ }
123
+ type PredefinedColorSpace = 'display-p3' | 'srgb'
124
+
125
+ interface ImageDataSettings {
126
+ colorSpace?: PredefinedColorSpace
127
+ }
128
+ interface CanvasImageData {
129
+ createImageData(sw: number, sh: number, settings?: ImageDataSettings): ImageData
130
+ createImageData(imagedata: ImageData): ImageData
131
+ getImageData(sx: number, sy: number, sw: number, sh: number, settings?: ImageDataSettings): ImageData
132
+ putImageData(imagedata: ImageData, dx: number, dy: number): void
133
+ putImageData(
134
+ imagedata: ImageData,
135
+ dx: number,
136
+ dy: number,
137
+ dirtyX: number,
138
+ dirtyY: number,
139
+ dirtyWidth: number,
140
+ dirtyHeight: number,
141
+ ): void
142
+ }
143
+
144
+ type CanvasDirection = 'inherit' | 'ltr' | 'rtl'
145
+ type CanvasFontKerning = 'auto' | 'none' | 'normal'
146
+ type CanvasFontStretch =
147
+ | 'condensed'
148
+ | 'expanded'
149
+ | 'extra-condensed'
150
+ | 'extra-expanded'
151
+ | 'normal'
152
+ | 'semi-condensed'
153
+ | 'semi-expanded'
154
+ | 'ultra-condensed'
155
+ | 'ultra-expanded'
156
+ type CanvasFontVariantCaps =
157
+ | 'all-petite-caps'
158
+ | 'all-small-caps'
159
+ | 'normal'
160
+ | 'petite-caps'
161
+ | 'small-caps'
162
+ | 'titling-caps'
163
+ | 'unicase'
164
+ type CanvasTextAlign = 'center' | 'end' | 'left' | 'right' | 'start'
165
+ type CanvasTextBaseline = 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top'
166
+ type CanvasTextRendering = 'auto' | 'geometricPrecision' | 'optimizeLegibility' | 'optimizeSpeed'
167
+
168
+ interface CanvasTextDrawingStyles {
169
+ direction: CanvasDirection
170
+ font: string
171
+ fontKerning: CanvasFontKerning
172
+ fontStretch: CanvasFontStretch
173
+ fontVariantCaps: CanvasFontVariantCaps
174
+ letterSpacing: string
175
+ textAlign: CanvasTextAlign
176
+ textBaseline: CanvasTextBaseline
177
+ textRendering: CanvasTextRendering
178
+ wordSpacing: string
179
+ }
180
+
181
+ interface CanvasFilters {
182
+ filter: string
183
+ }
184
+
185
+ interface CanvasFillStrokeStyles {
186
+ fillStyle: string | CanvasGradient | CanvasPattern
187
+ strokeStyle: string | CanvasGradient | CanvasPattern
188
+ createConicGradient(startAngle: number, x: number, y: number): CanvasGradient
189
+ createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient
190
+ createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient
191
+ }
192
+
193
+ type CanvasFillRule = 'evenodd' | 'nonzero'
194
+
195
+ interface CanvasDrawPath {
196
+ beginPath(): void
197
+ clip(fillRule?: CanvasFillRule): void
198
+ clip(path: Path2D, fillRule?: CanvasFillRule): void
199
+ fill(fillRule?: CanvasFillRule): void
200
+ fill(path: Path2D, fillRule?: CanvasFillRule): void
201
+ isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean
202
+ isPointInPath(path: Path2D, x: number, y: number, fillRule?: CanvasFillRule): boolean
203
+ isPointInStroke(x: number, y: number): boolean
204
+ isPointInStroke(path: Path2D, x: number, y: number): boolean
205
+ stroke(): void
206
+ stroke(path: Path2D): void
207
+ }
208
+
209
+ type GlobalCompositeOperation =
210
+ | 'color'
211
+ | 'color-burn'
212
+ | 'color-dodge'
213
+ | 'copy'
214
+ | 'darken'
215
+ | 'destination-atop'
216
+ | 'destination-in'
217
+ | 'destination-out'
218
+ | 'destination-over'
219
+ | 'difference'
220
+ | 'exclusion'
221
+ | 'hard-light'
222
+ | 'hue'
223
+ | 'lighten'
224
+ | 'lighter'
225
+ | 'luminosity'
226
+ | 'multiply'
227
+ | 'overlay'
228
+ | 'saturation'
229
+ | 'screen'
230
+ | 'soft-light'
231
+ | 'source-atop'
232
+ | 'source-in'
233
+ | 'source-out'
234
+ | 'source-over'
235
+ | 'xor'
236
+
237
+ interface CanvasCompositing {
238
+ globalAlpha: number
239
+ globalCompositeOperation: GlobalCompositeOperation
240
+ }
241
+
242
+ interface DOMPointInit {
243
+ w?: number
244
+ x?: number
245
+ y?: number
246
+ z?: number
247
+ }
248
+ interface CanvasPattern {
249
+ setTransform(transform?: DOMMatrix2DInit): void
250
+ }
251
+
252
+ interface CanvasGradient {
253
+ addColorStop(offset: number, color: string): void
254
+ }
255
+
256
+ interface DOMRectInit {
257
+ height?: number
258
+ width?: number
259
+ x?: number
260
+ y?: number
261
+ }
262
+
263
+ interface DOMMatrixInit extends DOMMatrix2DInit {
264
+ is2D?: boolean
265
+ m13?: number
266
+ m14?: number
267
+ m23?: number
268
+ m24?: number
269
+ m31?: number
270
+ m32?: number
271
+ m33?: number
272
+ m34?: number
273
+ m43?: number
274
+ m44?: number
275
+ }
276
+
277
+ // ----------- added types
278
+
6
279
  export interface DOMMatrix2DInit {
7
280
  a: number
8
281
  b: number
@@ -250,11 +523,7 @@ export interface StrokeOptions {
250
523
  join?: StrokeJoin
251
524
  }
252
525
 
253
- export interface SKRSContext2D
254
- extends Omit<
255
- CanvasRenderingContext2D,
256
- 'drawImage' | 'createPattern' | 'getTransform' | 'drawFocusIfNeeded' | 'scrollPathIntoView' | 'canvas'
257
- > {
526
+ export interface SKRSContext2D extends CanvasRenderingContext2D {
258
527
  canvas: Canvas
259
528
  /**
260
529
  * @param startAngle The angle at which to begin the gradient, in radians. Angle measurements start vertically above the centre and move around clockwise.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@napi-rs/canvas",
3
- "version": "0.1.68",
3
+ "version": "0.1.69",
4
4
  "description": "Canvas for Node.js with skia backend",
5
5
  "main": "index.js",
6
6
  "repository": {
@@ -81,7 +81,7 @@
81
81
  "@types/semver": "^7",
82
82
  "ava": "^6.1.1",
83
83
  "canvas": "^3.0.0",
84
- "canvaskit-wasm": "^0.39.1",
84
+ "canvaskit-wasm": "^0.40.0",
85
85
  "colorette": "^2.0.20",
86
86
  "conventional-changelog-cli": "^5.0.0",
87
87
  "core-js": "^3.38.0",
@@ -90,7 +90,7 @@
90
90
  "lint-staged": "^15.2.1",
91
91
  "lodash": "^4.17.21",
92
92
  "npm-run-all2": "^7.0.0",
93
- "oxlint": "^0.15.0",
93
+ "oxlint": "^0.16.0",
94
94
  "pinst": "^3.0.0",
95
95
  "png.js": "^0.2.1",
96
96
  "prettier": "^3.2.5",
@@ -98,7 +98,7 @@
98
98
  "semver": "^7.5.4",
99
99
  "skia-canvas": "^2.0.0",
100
100
  "table": "^6.8.1",
101
- "tinybench": "^3.0.6",
101
+ "tinybench": "^4.0.0",
102
102
  "typescript": "^5.3.3"
103
103
  },
104
104
  "lint-staged": {
@@ -136,17 +136,17 @@
136
136
  "singleQuote": true,
137
137
  "arrowParens": "always"
138
138
  },
139
- "packageManager": "yarn@4.7.0",
139
+ "packageManager": "yarn@4.8.1",
140
140
  "optionalDependencies": {
141
- "@napi-rs/canvas-linux-x64-gnu": "0.1.68",
142
- "@napi-rs/canvas-darwin-x64": "0.1.68",
143
- "@napi-rs/canvas-win32-x64-msvc": "0.1.68",
144
- "@napi-rs/canvas-linux-arm-gnueabihf": "0.1.68",
145
- "@napi-rs/canvas-linux-x64-musl": "0.1.68",
146
- "@napi-rs/canvas-linux-arm64-gnu": "0.1.68",
147
- "@napi-rs/canvas-linux-arm64-musl": "0.1.68",
148
- "@napi-rs/canvas-darwin-arm64": "0.1.68",
149
- "@napi-rs/canvas-android-arm64": "0.1.68",
150
- "@napi-rs/canvas-linux-riscv64-gnu": "0.1.68"
141
+ "@napi-rs/canvas-linux-x64-gnu": "0.1.69",
142
+ "@napi-rs/canvas-darwin-x64": "0.1.69",
143
+ "@napi-rs/canvas-win32-x64-msvc": "0.1.69",
144
+ "@napi-rs/canvas-linux-arm-gnueabihf": "0.1.69",
145
+ "@napi-rs/canvas-linux-x64-musl": "0.1.69",
146
+ "@napi-rs/canvas-linux-arm64-gnu": "0.1.69",
147
+ "@napi-rs/canvas-linux-arm64-musl": "0.1.69",
148
+ "@napi-rs/canvas-darwin-arm64": "0.1.69",
149
+ "@napi-rs/canvas-android-arm64": "0.1.69",
150
+ "@napi-rs/canvas-linux-riscv64-gnu": "0.1.69"
151
151
  }
152
152
  }