@cibule/image 0.2.1 → 0.4.0

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.
@@ -3,5 +3,6 @@ export { Injectable } from './lib/injectable';
3
3
  export { InjectionToken } from './lib/injection-token';
4
4
  export { Injector } from './lib/injector';
5
5
  export type { ClassProvider, FactoryProvider, InjectOptions, Provider, SingleProvider, ValueProvider, } from './lib/provider';
6
+ export { runInInjectionContext } from './lib/run-in-injection-context';
6
7
  export type { AbstractType, Token, Type } from './lib/token';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../di/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EACV,aAAa,EACb,eAAe,EACf,aAAa,EACb,QAAQ,EACR,cAAc,EACd,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../di/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EACV,aAAa,EACb,eAAe,EACf,aAAa,EACb,QAAQ,EACR,cAAc,EACd,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Injector } from './injector';
2
+ export declare function runInInjectionContext<T>(injector: Injector, fn: () => T): T;
3
+ //# sourceMappingURL=run-in-injection-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-in-injection-context.d.ts","sourceRoot":"","sources":["../../../../../../../di/src/lib/run-in-injection-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAE3E"}
@@ -3,5 +3,6 @@ export { getContentType } from './lib/content-type-map';
3
3
  export { ImageTransformer } from './lib/image-transformer';
4
4
  export type { ImageTransformerAccessor } from './lib/image-transformer-accessor';
5
5
  export { IMAGE_TRANSFORMER_ACCESSOR } from './lib/image-transformer-accessor';
6
+ export { provideImageTransformerAccessor } from './lib/provider';
6
7
  export type { ImageFit, ImageFormat, PurgeCacheResult, TransformOptions, TransformResult, } from './lib/transform-options';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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"}
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,OAAO,EAAE,+BAA+B,EAAE,MAAM,gBAAgB,CAAC;AACjE,YAAY,EACV,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,MAAM,yBAAyB,CAAC"}
@@ -1 +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"}
1
+ {"version":3,"file":"image-transformer.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/image-transformer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE/F,8BACsB,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,4 @@
1
+ import type { Provider } from '@cibule/di';
2
+ import type { ImageTransformerAccessor } from './image-transformer-accessor';
3
+ export declare function provideImageTransformerAccessor(factory: () => ImageTransformerAccessor): Provider;
4
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAG7E,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,MAAM,wBAAwB,GAAG,QAAQ,CAEjG"}
package/dist/index.cjs CHANGED
@@ -1,8 +1,15 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name);
8
+ var __typeError = (msg) => {
9
+ throw TypeError(msg);
10
+ };
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
13
  var __export = (target, all) => {
7
14
  for (var name in all)
8
15
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -16,6 +23,44 @@ var __copyProps = (to, from, except, desc) => {
16
23
  return to;
17
24
  };
18
25
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
26
+ var __decoratorStart = (base) => [, , , __create(base?.[__knownSymbol("metadata")] ?? null)];
27
+ var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
28
+ var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
29
+ var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
30
+ var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
31
+ var __runInitializers = (array, flags, self, value) => {
32
+ for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
33
+ return value;
34
+ };
35
+ var __decorateElement = (array, flags, name, decorators, target, extra) => {
36
+ var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
37
+ var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];
38
+ var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
39
+ var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : { get [name]() {
40
+ return __privateGet(this, extra);
41
+ }, set [name](x) {
42
+ return __privateSet(this, extra, x);
43
+ } }, name));
44
+ k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name);
45
+ for (var i = decorators.length - 1; i >= 0; i--) {
46
+ ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
47
+ if (k) {
48
+ ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x };
49
+ if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];
50
+ if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;
51
+ }
52
+ it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
53
+ if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);
54
+ else if (typeof it !== "object" || it === null) __typeError("Object expected");
55
+ else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
56
+ }
57
+ return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
58
+ };
59
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
60
+ var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
61
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
62
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
63
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
19
64
 
20
65
  // src/index.ts
21
66
  var index_exports = {};
@@ -26,7 +71,8 @@ __export(index_exports, {
26
71
  DEFAULT_QUALITY: () => DEFAULT_QUALITY,
27
72
  IMAGE_TRANSFORMER_ACCESSOR: () => IMAGE_TRANSFORMER_ACCESSOR,
28
73
  ImageTransformer: () => ImageTransformer,
29
- getContentType: () => getContentType
74
+ getContentType: () => getContentType,
75
+ provideImageTransformerAccessor: () => provideImageTransformerAccessor
30
76
  });
31
77
  module.exports = __toCommonJS(index_exports);
32
78
 
@@ -47,9 +93,11 @@ function getContentType(format) {
47
93
  return FORMAT_TO_CONTENT_TYPE[format];
48
94
  }
49
95
 
50
- // src/lib/image-transformer.ts
51
- var ImageTransformer = class {
52
- };
96
+ // ../di/src/lib/injectable.ts
97
+ function Injectable() {
98
+ return () => {
99
+ };
100
+ }
53
101
 
54
102
  // ../di/src/lib/injection-token.ts
55
103
  var InjectionToken = class {
@@ -58,10 +106,24 @@ var InjectionToken = class {
58
106
  }
59
107
  };
60
108
 
109
+ // src/lib/image-transformer.ts
110
+ var _ImageTransformer_decorators, _init;
111
+ _ImageTransformer_decorators = [Injectable()];
112
+ var ImageTransformer = class {
113
+ };
114
+ _init = __decoratorStart(null);
115
+ ImageTransformer = __decorateElement(_init, 0, "ImageTransformer", _ImageTransformer_decorators, ImageTransformer);
116
+ __runInitializers(_init, 1, ImageTransformer);
117
+
61
118
  // src/lib/image-transformer-accessor.ts
62
119
  var IMAGE_TRANSFORMER_ACCESSOR = new InjectionToken(
63
120
  "IMAGE_TRANSFORMER_ACCESSOR"
64
121
  );
122
+
123
+ // src/lib/provider.ts
124
+ function provideImageTransformerAccessor(factory) {
125
+ return { provide: IMAGE_TRANSFORMER_ACCESSOR, useFactory: factory };
126
+ }
65
127
  // Annotate the CommonJS export names for ESM import in node:
66
128
  0 && (module.exports = {
67
129
  ALLOWED_PLACEHOLDER_WIDTHS,
@@ -70,6 +132,7 @@ var IMAGE_TRANSFORMER_ACCESSOR = new InjectionToken(
70
132
  DEFAULT_QUALITY,
71
133
  IMAGE_TRANSFORMER_ACCESSOR,
72
134
  ImageTransformer,
73
- getContentType
135
+ getContentType,
136
+ provideImageTransformerAccessor
74
137
  });
75
138
  //# sourceMappingURL=index.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
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;",
3
+ "sources": ["../src/index.ts", "../src/lib/constants.ts", "../src/lib/content-type-map.ts", "../../di/src/lib/injectable.ts", "../../di/src/lib/injection-token.ts", "../src/lib/image-transformer.ts", "../src/lib/image-transformer-accessor.ts", "../src/lib/provider.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 { provideImageTransformerAccessor } from './lib/provider';\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 { AbstractType, Type } from './token';\n\nexport function Injectable(): (target: Type<unknown> | AbstractType<unknown>) => void {\n return (): void => {};\n}\n", "export class InjectionToken<T> {\n declare readonly _brand: T;\n constructor(public readonly description: string) {}\n}\n", "import { Injectable } from '@cibule/di';\n\nimport type { PurgeCacheResult, TransformOptions, TransformResult } from './transform-options';\n\n@Injectable()\nexport abstract class ImageTransformer {\n abstract transform(key: string, options: TransformOptions): Promise<TransformResult>;\n abstract purgeCache(): Promise<PurgeCacheResult>;\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", "import type { Provider } from '@cibule/di';\n\nimport type { ImageTransformerAccessor } from './image-transformer-accessor';\nimport { IMAGE_TRANSFORMER_ACCESSOR } from './image-transformer-accessor';\n\nexport function provideImageTransformerAccessor(factory: () => ImageTransformerAccessor): Provider {\n return { provide: IMAGE_TRANSFORMER_ACCESSOR, useFactory: factory };\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;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,SAAS,aAAsE;AACpF,SAAO,MAAY;AAAA,EAAC;AACtB;;;ACJO,IAAM,iBAAN,MAAwB;AAAA,EAE7B,YAA4B,aAAqB;AAArB;AAAA,EAAsB;AACpD;;;ACHA;AAIA,gCAAC,WAAW;AACL,IAAe,mBAAf,MAAgC;AAGvC;AAHO;AAAe,mBAAf,gDADP,8BACsB;AAAf,4BAAe;;;ACCf,IAAM,6BAA6B,IAAI;AAAA,EAC5C;AACF;;;ACHO,SAAS,gCAAgC,SAAmD;AACjG,SAAO,EAAE,SAAS,4BAA4B,YAAY,QAAQ;AACpE;",
6
6
  "names": []
7
7
  }
package/dist/index.js CHANGED
@@ -1,3 +1,51 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name);
5
+ var __typeError = (msg) => {
6
+ throw TypeError(msg);
7
+ };
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
10
+ var __decoratorStart = (base) => [, , , __create(base?.[__knownSymbol("metadata")] ?? null)];
11
+ var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
12
+ var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
13
+ var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
14
+ var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
15
+ var __runInitializers = (array, flags, self, value) => {
16
+ for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
17
+ return value;
18
+ };
19
+ var __decorateElement = (array, flags, name, decorators, target, extra) => {
20
+ var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
21
+ var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];
22
+ var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
23
+ var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : { get [name]() {
24
+ return __privateGet(this, extra);
25
+ }, set [name](x) {
26
+ return __privateSet(this, extra, x);
27
+ } }, name));
28
+ k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name);
29
+ for (var i = decorators.length - 1; i >= 0; i--) {
30
+ ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
31
+ if (k) {
32
+ ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x };
33
+ if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];
34
+ if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;
35
+ }
36
+ it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
37
+ if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);
38
+ else if (typeof it !== "object" || it === null) __typeError("Object expected");
39
+ else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
40
+ }
41
+ return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
42
+ };
43
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
44
+ var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
45
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
46
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
47
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
48
+
1
49
  // src/lib/constants.ts
2
50
  var ALLOWED_WIDTHS = [384, 640, 750, 828, 1080, 1200, 1920];
3
51
  var ALLOWED_PLACEHOLDER_WIDTHS = [20, 30, 50, 80];
@@ -15,9 +63,11 @@ function getContentType(format) {
15
63
  return FORMAT_TO_CONTENT_TYPE[format];
16
64
  }
17
65
 
18
- // src/lib/image-transformer.ts
19
- var ImageTransformer = class {
20
- };
66
+ // ../di/src/lib/injectable.ts
67
+ function Injectable() {
68
+ return () => {
69
+ };
70
+ }
21
71
 
22
72
  // ../di/src/lib/injection-token.ts
23
73
  var InjectionToken = class {
@@ -26,10 +76,24 @@ var InjectionToken = class {
26
76
  }
27
77
  };
28
78
 
79
+ // src/lib/image-transformer.ts
80
+ var _ImageTransformer_decorators, _init;
81
+ _ImageTransformer_decorators = [Injectable()];
82
+ var ImageTransformer = class {
83
+ };
84
+ _init = __decoratorStart(null);
85
+ ImageTransformer = __decorateElement(_init, 0, "ImageTransformer", _ImageTransformer_decorators, ImageTransformer);
86
+ __runInitializers(_init, 1, ImageTransformer);
87
+
29
88
  // src/lib/image-transformer-accessor.ts
30
89
  var IMAGE_TRANSFORMER_ACCESSOR = new InjectionToken(
31
90
  "IMAGE_TRANSFORMER_ACCESSOR"
32
91
  );
92
+
93
+ // src/lib/provider.ts
94
+ function provideImageTransformerAccessor(factory) {
95
+ return { provide: IMAGE_TRANSFORMER_ACCESSOR, useFactory: factory };
96
+ }
33
97
  export {
34
98
  ALLOWED_PLACEHOLDER_WIDTHS,
35
99
  ALLOWED_WIDTHS,
@@ -37,6 +101,7 @@ export {
37
101
  DEFAULT_QUALITY,
38
102
  IMAGE_TRANSFORMER_ACCESSOR,
39
103
  ImageTransformer,
40
- getContentType
104
+ getContentType,
105
+ provideImageTransformerAccessor
41
106
  };
42
107
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
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;",
3
+ "sources": ["../src/lib/constants.ts", "../src/lib/content-type-map.ts", "../../di/src/lib/injectable.ts", "../../di/src/lib/injection-token.ts", "../src/lib/image-transformer.ts", "../src/lib/image-transformer-accessor.ts", "../src/lib/provider.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 { AbstractType, Type } from './token';\n\nexport function Injectable(): (target: Type<unknown> | AbstractType<unknown>) => void {\n return (): void => {};\n}\n", "export class InjectionToken<T> {\n declare readonly _brand: T;\n constructor(public readonly description: string) {}\n}\n", "import { Injectable } from '@cibule/di';\n\nimport type { PurgeCacheResult, TransformOptions, TransformResult } from './transform-options';\n\n@Injectable()\nexport abstract class ImageTransformer {\n abstract transform(key: string, options: TransformOptions): Promise<TransformResult>;\n abstract purgeCache(): Promise<PurgeCacheResult>;\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", "import type { Provider } from '@cibule/di';\n\nimport type { ImageTransformerAccessor } from './image-transformer-accessor';\nimport { IMAGE_TRANSFORMER_ACCESSOR } from './image-transformer-accessor';\n\nexport function provideImageTransformerAccessor(factory: () => ImageTransformerAccessor): Provider {\n return { provide: IMAGE_TRANSFORMER_ACCESSOR, useFactory: factory };\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,SAAS,aAAsE;AACpF,SAAO,MAAY;AAAA,EAAC;AACtB;;;ACJO,IAAM,iBAAN,MAAwB;AAAA,EAE7B,YAA4B,aAAqB;AAArB;AAAA,EAAsB;AACpD;;;ACHA;AAIA,gCAAC,WAAW;AACL,IAAe,mBAAf,MAAgC;AAGvC;AAHO;AAAe,mBAAf,gDADP,8BACsB;AAAf,4BAAe;;;ACCf,IAAM,6BAA6B,IAAI;AAAA,EAC5C;AACF;;;ACHO,SAAS,gCAAgC,SAAmD;AACjG,SAAO,EAAE,SAAS,4BAA4B,YAAY,QAAQ;AACpE;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cibule/image",
3
- "version": "0.2.1",
3
+ "version": "0.4.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -31,6 +31,6 @@
31
31
  "access": "public"
32
32
  },
33
33
  "dependencies": {
34
- "@cibule/di": "^0.2.0"
34
+ "@cibule/di": "^0.4.0"
35
35
  }
36
36
  }