@cibule/image 0.1.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/README.md ADDED
@@ -0,0 +1,99 @@
1
+ # @cibule/image
2
+
3
+ Image transformation core package. Defines the `ImageTransformer` abstract class, transform options, and configuration constants used by driver packages (`@cibule/image-sharp`, `@cibule/image-cf`).
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @cibule/image
9
+ ```
10
+
11
+ ## API
12
+
13
+ ### ImageTransformer
14
+
15
+ Abstract class defining the image transformation contract:
16
+
17
+ ```typescript
18
+ import { ImageTransformer } from '@cibule/image';
19
+
20
+ abstract class ImageTransformer {
21
+ abstract transform(key: string, options: TransformOptions): Promise<TransformResult>;
22
+ abstract purgeCache(): Promise<PurgeCacheResult>;
23
+ }
24
+ ```
25
+
26
+ ### TransformOptions
27
+
28
+ Options passed to `transform()`:
29
+
30
+ ```typescript
31
+ interface TransformOptions {
32
+ readonly width: number;
33
+ readonly quality?: number; // default: 80
34
+ readonly format?: ImageFormat; // 'avif' | 'webp' | 'jpeg' | 'png'
35
+ readonly fit?: ImageFit; // 'cover' | 'contain' | 'fill' | 'inside' | 'outside'
36
+ }
37
+ ```
38
+
39
+ ### TransformResult
40
+
41
+ Result returned by `transform()`:
42
+
43
+ ```typescript
44
+ interface TransformResult {
45
+ readonly body: ReadableStream<Uint8Array>;
46
+ readonly contentType: string;
47
+ readonly width: number;
48
+ readonly height: number;
49
+ readonly size: number;
50
+ }
51
+ ```
52
+
53
+ ### PurgeCacheResult
54
+
55
+ Result returned by `purgeCache()`:
56
+
57
+ ```typescript
58
+ interface PurgeCacheResult {
59
+ readonly purgedCount: number;
60
+ }
61
+ ```
62
+
63
+ ### DI Token
64
+
65
+ Injection token for the accessor pattern:
66
+
67
+ ```typescript
68
+ import { IMAGE_TRANSFORMER_ACCESSOR } from '@cibule/image';
69
+ import type { ImageTransformerAccessor } from '@cibule/image';
70
+
71
+ // Register
72
+ const providers = [{ provide: IMAGE_TRANSFORMER_ACCESSOR, useFactory: () => () => myTransformer }];
73
+
74
+ // Resolve
75
+ const getTransformer = inject(IMAGE_TRANSFORMER_ACCESSOR);
76
+ const transformer = getTransformer();
77
+ ```
78
+
79
+ ### Constants
80
+
81
+ ```typescript
82
+ import {
83
+ ALLOWED_WIDTHS, // [384, 640, 750, 828, 1080, 1200, 1920]
84
+ ALLOWED_PLACEHOLDER_WIDTHS, // [20, 30, 50, 80]
85
+ DEFAULT_QUALITY, // 80
86
+ DEFAULT_MAX_SOURCE_SIZE, // 62914560 (60 MB)
87
+ } from '@cibule/image';
88
+ ```
89
+
90
+ ## Drivers
91
+
92
+ | Package | Strategy | Cache |
93
+ | --------------------- | ------------------------------ | ---------------------------------- |
94
+ | `@cibule/image-sharp` | Sharp library, resize + AVIF | Local FileStorage (`/thumbnails/`) |
95
+ | `@cibule/image-cf` | CF Image Resizing (`cf.image`) | CDN edge (purge via CF API) |
96
+
97
+ ## License
98
+
99
+ MIT
package/dist/index.cjs ADDED
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
+ ALLOWED_PLACEHOLDER_WIDTHS: () => ALLOWED_PLACEHOLDER_WIDTHS,
24
+ ALLOWED_WIDTHS: () => ALLOWED_WIDTHS,
25
+ DEFAULT_MAX_SOURCE_SIZE: () => DEFAULT_MAX_SOURCE_SIZE,
26
+ DEFAULT_QUALITY: () => DEFAULT_QUALITY,
27
+ IMAGE_TRANSFORMER_ACCESSOR: () => IMAGE_TRANSFORMER_ACCESSOR,
28
+ ImageTransformer: () => ImageTransformer,
29
+ getContentType: () => getContentType
30
+ });
31
+ module.exports = __toCommonJS(index_exports);
32
+
33
+ // src/lib/constants.ts
34
+ var ALLOWED_WIDTHS = [384, 640, 750, 828, 1080, 1200, 1920];
35
+ var ALLOWED_PLACEHOLDER_WIDTHS = [20, 30, 50, 80];
36
+ var DEFAULT_QUALITY = 80;
37
+ var DEFAULT_MAX_SOURCE_SIZE = 60 * 1024 * 1024;
38
+
39
+ // src/lib/content-type-map.ts
40
+ var FORMAT_TO_CONTENT_TYPE = {
41
+ avif: "image/avif",
42
+ webp: "image/webp",
43
+ jpeg: "image/jpeg",
44
+ png: "image/png"
45
+ };
46
+ function getContentType(format) {
47
+ return FORMAT_TO_CONTENT_TYPE[format];
48
+ }
49
+
50
+ // src/lib/image-transformer.ts
51
+ var ImageTransformer = class {
52
+ };
53
+
54
+ // ../di/src/lib/injection-token.ts
55
+ var InjectionToken = class {
56
+ constructor(description) {
57
+ this.description = description;
58
+ }
59
+ };
60
+
61
+ // src/lib/image-transformer-accessor.ts
62
+ var IMAGE_TRANSFORMER_ACCESSOR = new InjectionToken(
63
+ "IMAGE_TRANSFORMER_ACCESSOR"
64
+ );
65
+ // Annotate the CommonJS export names for ESM import in node:
66
+ 0 && (module.exports = {
67
+ ALLOWED_PLACEHOLDER_WIDTHS,
68
+ ALLOWED_WIDTHS,
69
+ DEFAULT_MAX_SOURCE_SIZE,
70
+ DEFAULT_QUALITY,
71
+ IMAGE_TRANSFORMER_ACCESSOR,
72
+ ImageTransformer,
73
+ getContentType
74
+ });
75
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts", "../src/lib/constants.ts", "../src/lib/content-type-map.ts", "../src/lib/image-transformer.ts", "../../di/src/lib/injection-token.ts", "../src/lib/image-transformer-accessor.ts"],
4
+ "sourcesContent": ["export {\n ALLOWED_PLACEHOLDER_WIDTHS,\n ALLOWED_WIDTHS,\n DEFAULT_MAX_SOURCE_SIZE,\n DEFAULT_QUALITY,\n} from './lib/constants';\nexport { getContentType } from './lib/content-type-map';\nexport { ImageTransformer } from './lib/image-transformer';\nexport type { ImageTransformerAccessor } from './lib/image-transformer-accessor';\nexport { IMAGE_TRANSFORMER_ACCESSOR } from './lib/image-transformer-accessor';\nexport type {\n ImageFit,\n ImageFormat,\n PurgeCacheResult,\n TransformOptions,\n TransformResult,\n} from './lib/transform-options';\n", "export const ALLOWED_WIDTHS = [384, 640, 750, 828, 1080, 1200, 1920] as const;\n\nexport const ALLOWED_PLACEHOLDER_WIDTHS = [20, 30, 50, 80] as const;\n\nexport const DEFAULT_QUALITY = 80;\n\nexport const DEFAULT_MAX_SOURCE_SIZE = 60 * 1024 * 1024;\n", "import type { ImageFormat } from './transform-options';\n\nconst FORMAT_TO_CONTENT_TYPE: Record<ImageFormat, string> = {\n avif: 'image/avif',\n webp: 'image/webp',\n jpeg: 'image/jpeg',\n png: 'image/png',\n};\n\nexport function getContentType(format: ImageFormat): string {\n return FORMAT_TO_CONTENT_TYPE[format];\n}\n", "import type { PurgeCacheResult, TransformOptions, TransformResult } from './transform-options';\n\nexport abstract class ImageTransformer {\n abstract transform(key: string, options: TransformOptions): Promise<TransformResult>;\n abstract purgeCache(): Promise<PurgeCacheResult>;\n}\n", "export class InjectionToken<T> {\n declare readonly _brand: T;\n constructor(public readonly description: string) {}\n}\n", "import { InjectionToken } from '@cibule/di';\n\nimport type { ImageTransformer } from './image-transformer';\n\nexport type ImageTransformerAccessor = () => ImageTransformer;\n\nexport const IMAGE_TRANSFORMER_ACCESSOR = new InjectionToken<ImageTransformerAccessor>(\n 'IMAGE_TRANSFORMER_ACCESSOR',\n);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAO,IAAM,iBAAiB,CAAC,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,IAAI;AAE5D,IAAM,6BAA6B,CAAC,IAAI,IAAI,IAAI,EAAE;AAElD,IAAM,kBAAkB;AAExB,IAAM,0BAA0B,KAAK,OAAO;;;ACJnD,IAAM,yBAAsD;AAAA,EAC1D,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,KAAK;AACP;AAEO,SAAS,eAAe,QAA6B;AAC1D,SAAO,uBAAuB,MAAM;AACtC;;;ACTO,IAAe,mBAAf,MAAgC;AAGvC;;;ACLO,IAAM,iBAAN,MAAwB;AAAA,EAE7B,YAA4B,aAAqB;AAArB;AAAA,EAAsB;AACpD;;;ACGO,IAAM,6BAA6B,IAAI;AAAA,EAC5C;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,7 @@
1
+ export { ALLOWED_PLACEHOLDER_WIDTHS, ALLOWED_WIDTHS, DEFAULT_MAX_SOURCE_SIZE, DEFAULT_QUALITY, } from './lib/constants';
2
+ export { getContentType } from './lib/content-type-map';
3
+ export { ImageTransformer } from './lib/image-transformer';
4
+ export type { ImageTransformerAccessor } from './lib/image-transformer-accessor';
5
+ export { IMAGE_TRANSFORMER_ACCESSOR } from './lib/image-transformer-accessor';
6
+ export type { ImageFit, ImageFormat, PurgeCacheResult, TransformOptions, TransformResult, } from './lib/transform-options';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,cAAc,EACd,uBAAuB,EACvB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,YAAY,EACV,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,MAAM,yBAAyB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,42 @@
1
+ // src/lib/constants.ts
2
+ var ALLOWED_WIDTHS = [384, 640, 750, 828, 1080, 1200, 1920];
3
+ var ALLOWED_PLACEHOLDER_WIDTHS = [20, 30, 50, 80];
4
+ var DEFAULT_QUALITY = 80;
5
+ var DEFAULT_MAX_SOURCE_SIZE = 60 * 1024 * 1024;
6
+
7
+ // src/lib/content-type-map.ts
8
+ var FORMAT_TO_CONTENT_TYPE = {
9
+ avif: "image/avif",
10
+ webp: "image/webp",
11
+ jpeg: "image/jpeg",
12
+ png: "image/png"
13
+ };
14
+ function getContentType(format) {
15
+ return FORMAT_TO_CONTENT_TYPE[format];
16
+ }
17
+
18
+ // src/lib/image-transformer.ts
19
+ var ImageTransformer = class {
20
+ };
21
+
22
+ // ../di/src/lib/injection-token.ts
23
+ var InjectionToken = class {
24
+ constructor(description) {
25
+ this.description = description;
26
+ }
27
+ };
28
+
29
+ // src/lib/image-transformer-accessor.ts
30
+ var IMAGE_TRANSFORMER_ACCESSOR = new InjectionToken(
31
+ "IMAGE_TRANSFORMER_ACCESSOR"
32
+ );
33
+ export {
34
+ ALLOWED_PLACEHOLDER_WIDTHS,
35
+ ALLOWED_WIDTHS,
36
+ DEFAULT_MAX_SOURCE_SIZE,
37
+ DEFAULT_QUALITY,
38
+ IMAGE_TRANSFORMER_ACCESSOR,
39
+ ImageTransformer,
40
+ getContentType
41
+ };
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/lib/constants.ts", "../src/lib/content-type-map.ts", "../src/lib/image-transformer.ts", "../../di/src/lib/injection-token.ts", "../src/lib/image-transformer-accessor.ts"],
4
+ "sourcesContent": ["export const ALLOWED_WIDTHS = [384, 640, 750, 828, 1080, 1200, 1920] as const;\n\nexport const ALLOWED_PLACEHOLDER_WIDTHS = [20, 30, 50, 80] as const;\n\nexport const DEFAULT_QUALITY = 80;\n\nexport const DEFAULT_MAX_SOURCE_SIZE = 60 * 1024 * 1024;\n", "import type { ImageFormat } from './transform-options';\n\nconst FORMAT_TO_CONTENT_TYPE: Record<ImageFormat, string> = {\n avif: 'image/avif',\n webp: 'image/webp',\n jpeg: 'image/jpeg',\n png: 'image/png',\n};\n\nexport function getContentType(format: ImageFormat): string {\n return FORMAT_TO_CONTENT_TYPE[format];\n}\n", "import type { PurgeCacheResult, TransformOptions, TransformResult } from './transform-options';\n\nexport abstract class ImageTransformer {\n abstract transform(key: string, options: TransformOptions): Promise<TransformResult>;\n abstract purgeCache(): Promise<PurgeCacheResult>;\n}\n", "export class InjectionToken<T> {\n declare readonly _brand: T;\n constructor(public readonly description: string) {}\n}\n", "import { InjectionToken } from '@cibule/di';\n\nimport type { ImageTransformer } from './image-transformer';\n\nexport type ImageTransformerAccessor = () => ImageTransformer;\n\nexport const IMAGE_TRANSFORMER_ACCESSOR = new InjectionToken<ImageTransformerAccessor>(\n 'IMAGE_TRANSFORMER_ACCESSOR',\n);\n"],
5
+ "mappings": ";AAAO,IAAM,iBAAiB,CAAC,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,IAAI;AAE5D,IAAM,6BAA6B,CAAC,IAAI,IAAI,IAAI,EAAE;AAElD,IAAM,kBAAkB;AAExB,IAAM,0BAA0B,KAAK,OAAO;;;ACJnD,IAAM,yBAAsD;AAAA,EAC1D,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,KAAK;AACP;AAEO,SAAS,eAAe,QAA6B;AAC1D,SAAO,uBAAuB,MAAM;AACtC;;;ACTO,IAAe,mBAAf,MAAgC;AAGvC;;;ACLO,IAAM,iBAAN,MAAwB;AAAA,EAE7B,YAA4B,aAAqB;AAArB;AAAA,EAAsB;AACpD;;;ACGO,IAAM,6BAA6B,IAAI;AAAA,EAC5C;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,5 @@
1
+ export declare const ALLOWED_WIDTHS: readonly [384, 640, 750, 828, 1080, 1200, 1920];
2
+ export declare const ALLOWED_PLACEHOLDER_WIDTHS: readonly [20, 30, 50, 80];
3
+ export declare const DEFAULT_QUALITY = 80;
4
+ export declare const DEFAULT_MAX_SOURCE_SIZE: number;
5
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,iDAAkD,CAAC;AAE9E,eAAO,MAAM,0BAA0B,2BAA4B,CAAC;AAEpE,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC,eAAO,MAAM,uBAAuB,QAAmB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ImageFormat } from './transform-options';
2
+ export declare function getContentType(format: ImageFormat): string;
3
+ //# sourceMappingURL=content-type-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-type-map.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/content-type-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AASvD,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAE1D"}
@@ -0,0 +1,5 @@
1
+ import { InjectionToken } from '@cibule/di';
2
+ import type { ImageTransformer } from './image-transformer';
3
+ export type ImageTransformerAccessor = () => ImageTransformer;
4
+ export declare const IMAGE_TRANSFORMER_ACCESSOR: InjectionToken<ImageTransformerAccessor>;
5
+ //# sourceMappingURL=image-transformer-accessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-transformer-accessor.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/image-transformer-accessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,MAAM,wBAAwB,GAAG,MAAM,gBAAgB,CAAC;AAE9D,eAAO,MAAM,0BAA0B,0CAEtC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { PurgeCacheResult, TransformOptions, TransformResult } from './transform-options';
2
+ export declare abstract class ImageTransformer {
3
+ abstract transform(key: string, options: TransformOptions): Promise<TransformResult>;
4
+ abstract purgeCache(): Promise<PurgeCacheResult>;
5
+ }
6
+ //# sourceMappingURL=image-transformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-transformer.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/image-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE/F,8BAAsB,gBAAgB;IACpC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IACpF,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC;CACjD"}
@@ -0,0 +1,19 @@
1
+ export type ImageFormat = 'avif' | 'webp' | 'jpeg' | 'png';
2
+ export type ImageFit = 'cover' | 'contain' | 'fill' | 'inside' | 'outside';
3
+ export interface TransformOptions {
4
+ readonly width: number;
5
+ readonly quality?: number;
6
+ readonly format?: ImageFormat;
7
+ readonly fit?: ImageFit;
8
+ }
9
+ export interface TransformResult {
10
+ readonly body: ReadableStream<Uint8Array>;
11
+ readonly contentType: string;
12
+ readonly width: number;
13
+ readonly height: number;
14
+ readonly size: number;
15
+ }
16
+ export interface PurgeCacheResult {
17
+ readonly purgedCount: number;
18
+ }
19
+ //# sourceMappingURL=transform-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform-options.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/transform-options.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAE3D,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B"}
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "@cibule/image",
3
+ "version": "0.1.1",
4
+ "license": "MIT",
5
+ "type": "module",
6
+ "main": "dist/index.cjs",
7
+ "module": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": {
12
+ "types": "./dist/index.d.ts",
13
+ "default": "./dist/index.js"
14
+ },
15
+ "require": {
16
+ "types": "./dist/index.d.ts",
17
+ "default": "./dist/index.cjs"
18
+ }
19
+ }
20
+ },
21
+ "files": [
22
+ "dist"
23
+ ],
24
+ "sideEffects": false,
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "https://gitlab.com/LadaBr/cibule",
28
+ "directory": "packages/image"
29
+ },
30
+ "publishConfig": {
31
+ "access": "public"
32
+ },
33
+ "dependencies": {
34
+ "@cibule/di": "workspace:*"
35
+ }
36
+ }