@aelionsdk/capability 1.0.0-rc.1 → 1.2.0-rc.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 CHANGED
@@ -1,7 +1,28 @@
1
- # @aelionsdk/capability
1
+ # `@aelionsdk/capability`
2
2
 
3
- Browser media capability probing for AelionSDK
3
+ Browser media, graphics, storage and execution capability probing for
4
+ AelionSDK.
4
5
 
5
- Install with `npm install @aelionsdk/capability@next`.
6
+ ## Install
6
7
 
7
- Version 1.0.0-rc.1 is a prerelease and its API may change before the first stable release. This package is part of [AelionSDK](https://github.com/FoyonaCZY/AelionSDK); see the repository README for supported browsers, examples and deployment requirements.
8
+ ```bash
9
+ npm install @aelionsdk/capability@next
10
+ ```
11
+
12
+ `next` currently resolves to `1.2.0-rc.1`. Product applications should normally
13
+ use the capability APIs exposed by `@aelionsdk/sdk`; this package is for custom
14
+ preflight screens and execution hosts.
15
+
16
+ ## Public surface
17
+
18
+ - browser capability probes;
19
+ - capability reports and typed results;
20
+ - fail-closed gates for required features and export profiles.
21
+
22
+ A declared browser API is not proof that a codec configuration works. Run the
23
+ relevant gate with the actual dimensions, frame rate, sample rate and channel
24
+ count before starting a job.
25
+
26
+ See the [capability preflight guide](https://foyonaczy.github.io/AelionSDK/production/capability-preflight/)
27
+ and [API reference](https://foyonaczy.github.io/AelionSDK/api/aelionsdk/capability/overview/).
28
+ Licensed under MIT.
@@ -0,0 +1,62 @@
1
+ import type { Diagnostic } from '@aelionsdk/core';
2
+ /** Whether the codec operation is a decode or an encode. */
3
+ export type CodecOperation = 'decode' | 'encode';
4
+ /** Whether the codec path is video or audio. */
5
+ export type CodecClass = 'video' | 'audio';
6
+ /** The codec execution the SDK is being asked to perform. */
7
+ export interface CodecIdentity {
8
+ readonly class: CodecClass;
9
+ readonly operation: CodecOperation;
10
+ /** WebCodecs codec string, e.g. `avc1.64001f` or `mp4a.40.2`. */
11
+ readonly codec: string;
12
+ }
13
+ /**
14
+ * Contract for a software codec fallback backend (e.g. a WASM decoder).
15
+ *
16
+ * The engine negotiates through this interface but ships no backend in 1.1:
17
+ * an application registers one after the codec strategy is chosen. The
18
+ * interface intentionally mirrors the WebCodecs lifecycle so a future WASM
19
+ * adapter can implement it without reshaping the negotiation path.
20
+ */
21
+ export interface CodecFallbackProvider {
22
+ /** Stable provider id, e.g. `wasm-h264`. */
23
+ readonly id: string;
24
+ /** True when the backend is loaded and ready to accept work. */
25
+ readonly ready: boolean;
26
+ /** Whether this provider can execute the requested codec path. */
27
+ supports(identity: CodecIdentity): boolean;
28
+ }
29
+ /** Negotiated execution path for a single codec operation. */
30
+ export type CodecExecutionPath = {
31
+ readonly path: 'hardware';
32
+ } | {
33
+ readonly path: 'fallback';
34
+ readonly providerId: string;
35
+ } | {
36
+ readonly path: 'unavailable';
37
+ };
38
+ /**
39
+ * Negotiated execution path for a single codec operation plus any diagnostics
40
+ * the negotiation produced (for example a `CAPABILITY_CODEC_FALLBACK_USED`
41
+ * warning or a `CAPABILITY_CODEC_NO_BACKEND` error).
42
+ */
43
+ export type CodecExecutionDecision = CodecExecutionPath & {
44
+ readonly diagnostics: readonly Diagnostic[];
45
+ };
46
+ /**
47
+ * Negotiate how to execute a codec operation: hardware when the platform
48
+ * reports it, otherwise the first ready provider that supports the identity,
49
+ * otherwise fail closed with a diagnostic.
50
+ */
51
+ export declare function selectCodecExecution(identity: CodecIdentity, hardwareSupported: boolean, providers: readonly CodecFallbackProvider[]): CodecExecutionDecision;
52
+ /** Bounded registry of software codec fallback providers. */
53
+ export declare class CodecFallbackRegistry {
54
+ #private;
55
+ register(provider: CodecFallbackProvider): void;
56
+ unregister(id: string): void;
57
+ clear(): void;
58
+ providers(): readonly CodecFallbackProvider[];
59
+ }
60
+ /** The default process-wide registry used when no application instance is passed. */
61
+ export declare const codecFallbackRegistry: CodecFallbackRegistry;
62
+ //# sourceMappingURL=fallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fallback.d.ts","sourceRoot":"","sources":["../src/fallback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,4DAA4D;AAC5D,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACjD,gDAAgD;AAChD,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;AAE3C,6DAA6D;AAC7D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB;IACpC,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC;CAC5C;AAED,8DAA8D;AAC9D,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAErC;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,GAAG;IACxD,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;CAC7C,CAAC;AAWF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,aAAa,EACvB,iBAAiB,EAAE,OAAO,EAC1B,SAAS,EAAE,SAAS,qBAAqB,EAAE,GAC1C,sBAAsB,CA4BxB;AAED,6DAA6D;AAC7D,qBAAa,qBAAqB;;IAGzB,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAO/C,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK5B,KAAK,IAAI,IAAI;IAIb,SAAS,IAAI,SAAS,qBAAqB,EAAE;CAGrD;AAED,qFAAqF;AACrF,eAAO,MAAM,qBAAqB,uBAA8B,CAAC"}
@@ -0,0 +1,57 @@
1
+ function decisionDiagnostic(code, message, recoverable) {
2
+ return {
3
+ code,
4
+ severity: recoverable ? 'warning' : 'error',
5
+ message,
6
+ recoverable,
7
+ };
8
+ }
9
+ /**
10
+ * Negotiate how to execute a codec operation: hardware when the platform
11
+ * reports it, otherwise the first ready provider that supports the identity,
12
+ * otherwise fail closed with a diagnostic.
13
+ */
14
+ export function selectCodecExecution(identity, hardwareSupported, providers) {
15
+ if (hardwareSupported) {
16
+ return { path: 'hardware', diagnostics: [] };
17
+ }
18
+ const provider = providers.find(candidate => candidate.ready && candidate.supports(identity));
19
+ if (provider !== undefined) {
20
+ return {
21
+ path: 'fallback',
22
+ providerId: provider.id,
23
+ diagnostics: [
24
+ decisionDiagnostic('CAPABILITY_CODEC_FALLBACK_USED', `${identity.class} ${identity.operation} for ${identity.codec} runs through the ${provider.id} software fallback`, true),
25
+ ],
26
+ };
27
+ }
28
+ return {
29
+ path: 'unavailable',
30
+ diagnostics: [
31
+ decisionDiagnostic('CAPABILITY_CODEC_NO_BACKEND', `${identity.class} ${identity.operation} for ${identity.codec} has no hardware support and no registered software fallback`, false),
32
+ ],
33
+ };
34
+ }
35
+ /** Bounded registry of software codec fallback providers. */
36
+ export class CodecFallbackRegistry {
37
+ #providers = [];
38
+ register(provider) {
39
+ if (this.#providers.some(existing => existing.id === provider.id)) {
40
+ throw new TypeError(`Codec fallback ${provider.id} is already registered`);
41
+ }
42
+ this.#providers.push(provider);
43
+ }
44
+ unregister(id) {
45
+ const index = this.#providers.findIndex(provider => provider.id === id);
46
+ if (index !== -1)
47
+ this.#providers.splice(index, 1);
48
+ }
49
+ clear() {
50
+ this.#providers.length = 0;
51
+ }
52
+ providers() {
53
+ return [...this.#providers];
54
+ }
55
+ }
56
+ /** The default process-wide registry used when no application instance is passed. */
57
+ export const codecFallbackRegistry = new CodecFallbackRegistry();
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './fallback.js';
1
2
  export * from './gate.js';
2
3
  export * from './probe.js';
3
4
  export * from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './fallback.js';
1
2
  export * from './gate.js';
2
3
  export * from './probe.js';
3
4
  export * from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAIV,sBAAsB,EACtB,gBAAgB,EAMjB,MAAM,YAAY,CAAC;AA4epB,wBAAsB,iBAAiB,CACrC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,gBAAgB,CAAC,CAkD3B"}
1
+ {"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAIV,sBAAsB,EACtB,gBAAgB,EAOjB,MAAM,YAAY,CAAC;AAghBpB,wBAAsB,iBAAiB,CACrC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,gBAAgB,CAAC,CAwD3B"}
package/dist/probe.js CHANGED
@@ -375,6 +375,35 @@ function probeColor() {
375
375
  },
376
376
  };
377
377
  }
378
+ async function probeImageFormat(format) {
379
+ const mime = `image/${format}`;
380
+ // ImageDecoder is typed as always-present by the DOM lib, but runtime
381
+ // availability varies; read it through globalThis so the guard is real.
382
+ const imageDecoder = globalThis.ImageDecoder;
383
+ if (imageDecoder === undefined) {
384
+ // No decoder-capability API: report unknown rather than guessing. The
385
+ // createImageBitmap path used by decodeStillImage may still support the
386
+ // format, so claiming unsupported here would be wrong.
387
+ return failed('CAPABILITY_IMAGE_FORMAT_UNKNOWN', `ImageDecoder is unavailable; ${mime} decode support is unknown`, undefined);
388
+ }
389
+ try {
390
+ return (await imageDecoder.isTypeSupported(mime))
391
+ ? supported({ mime })
392
+ : unsupported('CAPABILITY_IMAGE_FORMAT_UNSUPPORTED', `${mime} decode is unsupported`);
393
+ }
394
+ catch (cause) {
395
+ return failed('CAPABILITY_IMAGE_FORMAT_PROBE_FAILED', `Failed to probe ${mime}`, cause);
396
+ }
397
+ }
398
+ async function probeImages() {
399
+ const [avif, jpeg, png, webp] = await Promise.all([
400
+ probeImageFormat('avif'),
401
+ probeImageFormat('jpeg'),
402
+ probeImageFormat('png'),
403
+ probeImageFormat('webp'),
404
+ ]);
405
+ return { avif, jpeg, png, webp };
406
+ }
378
407
  function tier(codecs, gpu, audio) {
379
408
  const hasVideoDecode = codecs.some(codec => codec.kind === 'video-decoder' && codec.supported);
380
409
  if (hasVideoDecode &&
@@ -399,6 +428,7 @@ export async function probeCapabilities(options = {}) {
399
428
  const audio = probeAudio();
400
429
  const storage = probeStorage();
401
430
  const color = probeColor();
431
+ const images = await probeImages();
402
432
  const diagnostics = [
403
433
  ...codecs.flatMap(codec => codec.diagnostics),
404
434
  ...(gpu.webgpu.diagnostics ?? []),
@@ -413,6 +443,10 @@ export async function probeCapabilities(options = {}) {
413
443
  ...(storage.transferableStreams.diagnostics ?? []),
414
444
  ...(color.displayP3Gamut.diagnostics ?? []),
415
445
  ...(color.highDynamicRange.diagnostics ?? []),
446
+ ...(images.avif.diagnostics ?? []),
447
+ ...(images.jpeg.diagnostics ?? []),
448
+ ...(images.png.diagnostics ?? []),
449
+ ...(images.webp.diagnostics ?? []),
416
450
  ];
417
451
  return {
418
452
  schemaVersion: '1.0.0',
@@ -424,6 +458,7 @@ export async function probeCapabilities(options = {}) {
424
458
  audio,
425
459
  storage,
426
460
  color,
461
+ images,
427
462
  wasm: typeof WebAssembly === 'object'
428
463
  ? { available: supported() }
429
464
  : {
package/dist/types.d.ts CHANGED
@@ -35,6 +35,23 @@ export interface StorageCapability {
35
35
  readonly fileSystemAccess: CapabilityProbe;
36
36
  readonly transferableStreams: CapabilityProbe;
37
37
  }
38
+ /**
39
+ * Still-image decode capability for the formats the SDK accepts through
40
+ * {@link ImageDecoder}/`createImageBitmap`. Probes report what the platform can
41
+ * deterministically signal; a probe with `status: 'unknown'` means the platform
42
+ * exposes no decoder-capability API (e.g. no `ImageDecoder`), not that the
43
+ * format is unsupported.
44
+ */
45
+ export interface ImageFormatCapability {
46
+ /** AVIF still decode. */
47
+ readonly avif: CapabilityProbe;
48
+ /** JPEG still decode. */
49
+ readonly jpeg: CapabilityProbe;
50
+ /** PNG still decode. */
51
+ readonly png: CapabilityProbe;
52
+ /** WebP still decode. */
53
+ readonly webp: CapabilityProbe;
54
+ }
38
55
  export interface ColorCapability {
39
56
  readonly displayP3Gamut: CapabilityProbe;
40
57
  readonly highDynamicRange: CapabilityProbe;
@@ -72,6 +89,7 @@ export interface CapabilityReport {
72
89
  readonly audio: AudioCapability;
73
90
  readonly storage: StorageCapability;
74
91
  readonly color: ColorCapability;
92
+ readonly images: ImageFormatCapability;
75
93
  readonly wasm: {
76
94
  readonly available: CapabilityProbe;
77
95
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aelionsdk/capability",
3
- "version": "1.0.0-rc.1",
3
+ "version": "1.2.0-rc.1",
4
4
  "description": "Browser media capability probing for AelionSDK",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -27,14 +27,14 @@
27
27
  "!dist/.tsbuildinfo"
28
28
  ],
29
29
  "engines": {
30
- "node": ">=20.19"
30
+ "node": ">=24 <25"
31
31
  },
32
32
  "publishConfig": {
33
33
  "access": "public",
34
34
  "provenance": true
35
35
  },
36
36
  "dependencies": {
37
- "@aelionsdk/core": "1.0.0-rc.1"
37
+ "@aelionsdk/core": "1.2.0-rc.1"
38
38
  },
39
39
  "scripts": {
40
40
  "build": "tsc -b",