@thebes/cadmus 0.3.0 → 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.
package/dist/index.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  import { generateSessionId, generateToken, hashToken, signSession, verifySession } from "./auth/index.js";
2
2
  import { purgeCache } from "./cache/index.js";
3
- import { $ as ValidationSeverity, A as CollectionConfig, B as RichTextFieldConfig, C as ArrayFieldConfig, Ct as CadmusValidationError, D as CmsConfig, Dt as StringBlockRenderer, E as CheckboxFieldConfig, Et as PortableBlockLike, F as JsonFieldConfig, G as flattenFields, H as TextFieldConfig, I as JsonValue, J as CustomValidatorResult, K as nestDoc, L as NumberFieldConfig, M as DateFieldConfig, N as FieldConfig, O as CollectionAccess, Ot as createBlockRegistry, P as GroupFieldConfig, Q as ValidationFieldContext, R as RelationshipDepth, S as AccessFn, St as CadmusStorageError, T as CadmeaPlugin, Tt as BlockRegistry, U as UploadFieldConfig, V as SelectFieldConfig, W as flattenDoc, X as ValidateDocumentOptions, Y as Rule, Z as ValidationBuilder, _ as collectionSearchTableSQL, _t as CadmusEmailError, a as BuildStudioStructureOptions, at as LocalApi, b as extractSearchText, bt as CadmusRateLimitError, c as StudioStructureItem, ct as createLocalApi, d as CollectionMeta, dt as CadmusAccessDeniedError, et as assertValid, f as getCollectionsMeta, ft as CadmusApiError, g as collectionSearchTableName, gt as CadmusDbError, h as cmsConfigToSchema, ht as CadmusCmsError, i as deliverWebhookMessage, it as CmsRegistry, j as CollectionHooks, k as CollectionAdminConfig, kt as renderBlocksToString, l as buildStudioStructure, lt as createVersionedLocalApi, m as defineCollection, mt as CadmusCacheError, n as WebhookMessage, nt as rule, o as DEFAULT_STUDIO_GROUP, ot as VersionedLocalApi, p as defineCmsConfig, pt as CadmusAuthError, q as CustomValidator, r as createWebhookHook, rt as validateDocument, s as StudioStructureGroup, st as can, t as WebhookConfig, tt as defineField, u as generateSchemaSource, ut as getRegisteredApi, v as collectionToTable, vt as CadmusError, w as BaseFieldConfig, wt as ValidationViolation, x as relationshipJoinTables, xt as CadmusSessionError, y as collectionVersionsTable, yt as CadmusQueueError, z as RelationshipFieldConfig } from "./index-BRZrCTsN.js";
3
+ import { $ as RelationshipDepth, A as cmsConfigToSchema, At as PatchOp, B as CadmeaPlugin, Bt as CadmusEmailError, C as RunMigrationOptions, Ct as createLocalApi, D as getCollectionsMeta, Dt as FieldChange, E as CollectionMeta, Et as DiffOptions, F as extractSearchText, Ft as CadmusApiError, G as CollectionConfig, Gt as CadmusStorageError, H as CmsConfig, Ht as CadmusQueueError, I as relationshipJoinTables, It as CadmusAuthError, J as FieldConfig, Jt as BlockRegistry, K as CollectionHooks, Kt as CadmusValidationError, L as AccessFn, Lt as CadmusCacheError, M as collectionSearchTableSQL, Mt as computePatch, N as collectionToTable, Nt as diffDocuments, O as defineCmsConfig, Ot as FieldChangeKind, P as collectionVersionsTable, Pt as CadmusAccessDeniedError, Q as NumberFieldConfig, Qt as renderBlocksToString, R as ArrayFieldConfig, Rt as CadmusCmsError, S as MigrationResult, St as can, T as runMigration, Tt as getRegisteredApi, U as CollectionAccess, Ut as CadmusRateLimitError, V as CheckboxFieldConfig, Vt as CadmusError, W as CollectionAdminConfig, Wt as CadmusSessionError, X as JsonFieldConfig, Xt as StringBlockRenderer, Y as GroupFieldConfig, Yt as PortableBlockLike, Z as JsonValue, Zt as createBlockRegistry, _ as StudioStructureItem, _t as rule, a as EDIT_ATTR, at as flattenDoc, b as Migration, bt as LocalApi, c as VisualEditingMessage, ct as CustomValidator, d as editAttr, dt as ValidateDocumentOptions, et as RelationshipFieldConfig, f as encodeEditRef, ft as ValidationBuilder, g as StudioStructureGroup, gt as defineField, h as DEFAULT_STUDIO_GROUP, ht as assertValid, i as deliverWebhookMessage, it as UploadFieldConfig, j as collectionSearchTableName, jt as applyPatch, k as defineCollection, kt as Patch, l as VisualEditingOptions, lt as CustomValidatorResult, m as BuildStudioStructureOptions, mt as ValidationSeverity, n as WebhookMessage, nt as SelectFieldConfig, o as EditRef, ot as flattenFields, p as mountVisualEditing, pt as ValidationFieldContext, q as DateFieldConfig, qt as ValidationViolation, r as createWebhookHook, rt as TextFieldConfig, s as VISUAL_EDIT_MESSAGE, st as nestDoc, t as WebhookConfig, tt as RichTextFieldConfig, u as decodeEditRef, ut as Rule, v as buildStudioStructure, vt as validateDocument, w as defineMigration, wt as createVersionedLocalApi, x as MigrationChange, xt as VersionedLocalApi, y as generateSchemaSource, yt as CmsRegistry, z as BaseFieldConfig, zt as CadmusDbError } from "./index-sB3YOadC.js";
4
4
  import { db } from "./db/index.js";
5
5
  import { SendEmailInput, sendEmail } from "./email/index.js";
6
6
  import { QueueMessageHandler, enqueue, processBatch } from "./queues/index.js";
7
7
  import { RateLimitResult, checkRateLimit } from "./rate-limit/index.js";
8
8
  import { createSession, deleteSession, getSession } from "./session/index.js";
9
- import { IMAGE_MIME_WHITELIST, ImageService, MAX_IMAGE_UPLOAD_BYTES, RenderedImage, validateImageFile } from "./storage/index.js";
9
+ import { IMAGE_MIME_WHITELIST, ImageCrop, ImageHotspot, ImageService, MAX_IMAGE_UPLOAD_BYTES, RenderedImage, validateImageFile } from "./storage/index.js";
10
10
 
11
11
  //#region src/index.d.ts
12
12
  interface CadmusEnv {
@@ -17,5 +17,5 @@ interface CadmusEnv {
17
17
  SESSION_SECRET: string;
18
18
  }
19
19
  //#endregion
20
- export { AccessFn, ArrayFieldConfig, BaseFieldConfig, BlockRegistry, BuildStudioStructureOptions, CadmeaPlugin, CadmusAccessDeniedError, CadmusApiError, CadmusAuthError, CadmusCacheError, CadmusCmsError, CadmusDbError, CadmusEmailError, CadmusEnv, CadmusError, CadmusQueueError, CadmusRateLimitError, CadmusSessionError, CadmusStorageError, CadmusValidationError, CheckboxFieldConfig, CmsConfig, CmsRegistry, CollectionAccess, CollectionAdminConfig, CollectionConfig, CollectionHooks, CollectionMeta, CustomValidator, CustomValidatorResult, DEFAULT_STUDIO_GROUP, DateFieldConfig, FieldConfig, GroupFieldConfig, IMAGE_MIME_WHITELIST, ImageService, JsonFieldConfig, JsonValue, LocalApi, MAX_IMAGE_UPLOAD_BYTES, NumberFieldConfig, PortableBlockLike, QueueMessageHandler, RateLimitResult, RelationshipDepth, RelationshipFieldConfig, RenderedImage, RichTextFieldConfig, Rule, SelectFieldConfig, SendEmailInput, StringBlockRenderer, StudioStructureGroup, StudioStructureItem, TextFieldConfig, UploadFieldConfig, ValidateDocumentOptions, ValidationBuilder, ValidationFieldContext, ValidationSeverity, ValidationViolation, VersionedLocalApi, WebhookConfig, WebhookMessage, assertValid, buildStudioStructure, can, checkRateLimit, cmsConfigToSchema, collectionSearchTableName, collectionSearchTableSQL, collectionToTable, collectionVersionsTable, createBlockRegistry, createLocalApi, createSession, createVersionedLocalApi, createWebhookHook, db, defineCmsConfig, defineCollection, defineField, deleteSession, deliverWebhookMessage, enqueue, extractSearchText, flattenDoc, flattenFields, generateSchemaSource, generateSessionId, generateToken, getCollectionsMeta, getRegisteredApi, getSession, hashToken, nestDoc, processBatch, purgeCache, relationshipJoinTables, renderBlocksToString, rule, sendEmail, signSession, validateDocument, validateImageFile, verifySession };
20
+ export { AccessFn, ArrayFieldConfig, BaseFieldConfig, BlockRegistry, BuildStudioStructureOptions, CadmeaPlugin, CadmusAccessDeniedError, CadmusApiError, CadmusAuthError, CadmusCacheError, CadmusCmsError, CadmusDbError, CadmusEmailError, CadmusEnv, CadmusError, CadmusQueueError, CadmusRateLimitError, CadmusSessionError, CadmusStorageError, CadmusValidationError, CheckboxFieldConfig, CmsConfig, CmsRegistry, CollectionAccess, CollectionAdminConfig, CollectionConfig, CollectionHooks, CollectionMeta, CustomValidator, CustomValidatorResult, DEFAULT_STUDIO_GROUP, DateFieldConfig, DiffOptions, EDIT_ATTR, EditRef, FieldChange, FieldChangeKind, FieldConfig, GroupFieldConfig, IMAGE_MIME_WHITELIST, ImageCrop, ImageHotspot, ImageService, JsonFieldConfig, JsonValue, LocalApi, MAX_IMAGE_UPLOAD_BYTES, Migration, MigrationChange, MigrationResult, NumberFieldConfig, Patch, PatchOp, PortableBlockLike, QueueMessageHandler, RateLimitResult, RelationshipDepth, RelationshipFieldConfig, RenderedImage, RichTextFieldConfig, Rule, RunMigrationOptions, SelectFieldConfig, SendEmailInput, StringBlockRenderer, StudioStructureGroup, StudioStructureItem, TextFieldConfig, UploadFieldConfig, VISUAL_EDIT_MESSAGE, ValidateDocumentOptions, ValidationBuilder, ValidationFieldContext, ValidationSeverity, ValidationViolation, VersionedLocalApi, VisualEditingMessage, VisualEditingOptions, WebhookConfig, WebhookMessage, applyPatch, assertValid, buildStudioStructure, can, checkRateLimit, cmsConfigToSchema, collectionSearchTableName, collectionSearchTableSQL, collectionToTable, collectionVersionsTable, computePatch, createBlockRegistry, createLocalApi, createSession, createVersionedLocalApi, createWebhookHook, db, decodeEditRef, defineCmsConfig, defineCollection, defineField, defineMigration, deleteSession, deliverWebhookMessage, diffDocuments, editAttr, encodeEditRef, enqueue, extractSearchText, flattenDoc, flattenFields, generateSchemaSource, generateSessionId, generateToken, getCollectionsMeta, getRegisteredApi, getSession, hashToken, mountVisualEditing, nestDoc, processBatch, purgeCache, relationshipJoinTables, renderBlocksToString, rule, runMigration, sendEmail, signSession, validateDocument, validateImageFile, verifySession };
21
21
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -2,10 +2,10 @@ import { generateSessionId, generateToken, hashToken, signSession, verifySession
2
2
  import { purgeCache } from "./cache/index.js";
3
3
  import { a as CadmusCmsError, c as CadmusError, d as CadmusSessionError, f as CadmusStorageError, i as CadmusCacheError, l as CadmusQueueError, n as CadmusApiError, o as CadmusDbError, p as CadmusValidationError, r as CadmusAuthError, s as CadmusEmailError, t as CadmusAccessDeniedError, u as CadmusRateLimitError } from "./errors-C8SqkFjl.js";
4
4
  import { enqueue, processBatch } from "./queues/index.js";
5
- import { DEFAULT_STUDIO_GROUP, Rule, assertValid, buildStudioStructure, can, cmsConfigToSchema, collectionSearchTableName, collectionSearchTableSQL, collectionToTable, collectionVersionsTable, createBlockRegistry, createLocalApi, createVersionedLocalApi, createWebhookHook, defineCmsConfig, defineCollection, defineField, deliverWebhookMessage, extractSearchText, flattenDoc, flattenFields, generateSchemaSource, getCollectionsMeta, getRegisteredApi, nestDoc, relationshipJoinTables, renderBlocksToString, rule, validateDocument } from "./cms/index.js";
5
+ import { DEFAULT_STUDIO_GROUP, EDIT_ATTR, Rule, VISUAL_EDIT_MESSAGE, applyPatch, assertValid, buildStudioStructure, can, cmsConfigToSchema, collectionSearchTableName, collectionSearchTableSQL, collectionToTable, collectionVersionsTable, computePatch, createBlockRegistry, createLocalApi, createVersionedLocalApi, createWebhookHook, decodeEditRef, defineCmsConfig, defineCollection, defineField, defineMigration, deliverWebhookMessage, diffDocuments, editAttr, encodeEditRef, extractSearchText, flattenDoc, flattenFields, generateSchemaSource, getCollectionsMeta, getRegisteredApi, mountVisualEditing, nestDoc, relationshipJoinTables, renderBlocksToString, rule, runMigration, validateDocument } from "./cms/index.js";
6
6
  import { db } from "./db/index.js";
7
7
  import { sendEmail } from "./email/index.js";
8
8
  import { checkRateLimit } from "./rate-limit/index.js";
9
9
  import { createSession, deleteSession, getSession } from "./session/index.js";
10
10
  import { IMAGE_MIME_WHITELIST, MAX_IMAGE_UPLOAD_BYTES, validateImageFile } from "./storage/index.js";
11
- export { CadmusAccessDeniedError, CadmusApiError, CadmusAuthError, CadmusCacheError, CadmusCmsError, CadmusDbError, CadmusEmailError, CadmusError, CadmusQueueError, CadmusRateLimitError, CadmusSessionError, CadmusStorageError, CadmusValidationError, DEFAULT_STUDIO_GROUP, IMAGE_MIME_WHITELIST, MAX_IMAGE_UPLOAD_BYTES, Rule, assertValid, buildStudioStructure, can, checkRateLimit, cmsConfigToSchema, collectionSearchTableName, collectionSearchTableSQL, collectionToTable, collectionVersionsTable, createBlockRegistry, createLocalApi, createSession, createVersionedLocalApi, createWebhookHook, db, defineCmsConfig, defineCollection, defineField, deleteSession, deliverWebhookMessage, enqueue, extractSearchText, flattenDoc, flattenFields, generateSchemaSource, generateSessionId, generateToken, getCollectionsMeta, getRegisteredApi, getSession, hashToken, nestDoc, processBatch, purgeCache, relationshipJoinTables, renderBlocksToString, rule, sendEmail, signSession, validateDocument, validateImageFile, verifySession };
11
+ export { CadmusAccessDeniedError, CadmusApiError, CadmusAuthError, CadmusCacheError, CadmusCmsError, CadmusDbError, CadmusEmailError, CadmusError, CadmusQueueError, CadmusRateLimitError, CadmusSessionError, CadmusStorageError, CadmusValidationError, DEFAULT_STUDIO_GROUP, EDIT_ATTR, IMAGE_MIME_WHITELIST, MAX_IMAGE_UPLOAD_BYTES, Rule, VISUAL_EDIT_MESSAGE, applyPatch, assertValid, buildStudioStructure, can, checkRateLimit, cmsConfigToSchema, collectionSearchTableName, collectionSearchTableSQL, collectionToTable, collectionVersionsTable, computePatch, createBlockRegistry, createLocalApi, createSession, createVersionedLocalApi, createWebhookHook, db, decodeEditRef, defineCmsConfig, defineCollection, defineField, defineMigration, deleteSession, deliverWebhookMessage, diffDocuments, editAttr, encodeEditRef, enqueue, extractSearchText, flattenDoc, flattenFields, generateSchemaSource, generateSessionId, generateToken, getCollectionsMeta, getRegisteredApi, getSession, hashToken, mountVisualEditing, nestDoc, processBatch, purgeCache, relationshipJoinTables, renderBlocksToString, rule, runMigration, sendEmail, signSession, validateDocument, validateImageFile, verifySession };
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["CadmusStorageError"],"sources":["../../src/storage/index.ts"],"sourcesContent":["// Copyright (c) 2026 BowenLabs. All rights reserved.\n// Cadmus is MIT licensed. See LICENSE in the repo root.\n//\n// @thebes/cadmus/storage\n//\n// Defines the ImageService contract only — R2 upload/serve and any\n// alternate implementation (e.g. a Cloudflare Images extension) live\n// outside this primitive. Cadmus ships the interface so apps can swap\n// implementations without touching any component, renderer, or block\n// data; it has no opinion on which implementation is active.\nimport { CadmusStorageError } from \"../errors.js\";\n\n/** A rendered `<img>`-ready description of a stored image. */\nexport interface RenderedImage {\n src: string;\n srcset?: string;\n sizes?: string;\n}\n\n/**\n * Resolved once per app and imported everywhere images are read or\n * written. Never construct storage URLs or `cdn-cgi/image/...` paths\n * inline — always go through an `ImageService`.\n */\nexport interface ImageService {\n upload: (file: File) => Promise<{ url: string }>;\n render: (image: {\n url: string;\n width?: number;\n height?: number;\n alt: string;\n }) => RenderedImage;\n}\n\n/** MIME types `validateImageFile` accepts — never trust a client-sent\n * MIME type beyond this whitelist check; it's still just `file.type`,\n * not a real content sniff, but rules out the obviously-wrong cases. */\nexport const IMAGE_MIME_WHITELIST = [\n \"image/jpeg\",\n \"image/png\",\n \"image/webp\",\n \"image/gif\",\n] as const;\n\nexport const MAX_IMAGE_UPLOAD_BYTES = 5 * 1024 * 1024; // 5MB\n\n/**\n * Validates a file against the image MIME whitelist and 5MB size cap\n * before it ever reaches `ImageService.upload()`/R2. Throws\n * `CadmusStorageError` — callers map that to the right HTTP status\n * (400 for an invalid type, 413 for oversize).\n */\nexport function validateImageFile(file: File): void {\n if (\n !IMAGE_MIME_WHITELIST.includes(\n file.type as (typeof IMAGE_MIME_WHITELIST)[number],\n )\n ) {\n throw new CadmusStorageError(\n `Unsupported file type: ${file.type || \"unknown\"}`,\n );\n }\n if (file.size > MAX_IMAGE_UPLOAD_BYTES) {\n throw new CadmusStorageError(\n `File exceeds the ${MAX_IMAGE_UPLOAD_BYTES / (1024 * 1024)}MB limit`,\n );\n }\n}\n"],"mappings":";;;;;;AAqCA,MAAa,uBAAuB;CAClC;CACA;CACA;CACA;AACF;AAEA,MAAa,yBAAyB,IAAI,OAAO;;;;;;;AAQjD,SAAgB,kBAAkB,MAAkB;CAClD,IACE,CAAC,qBAAqB,SACpB,KAAK,IACP,GAEA,MAAM,IAAIA,eAAAA,mBACR,0BAA0B,KAAK,QAAQ,WACzC;CAEF,IAAI,KAAK,OAAA,SACP,MAAM,IAAIA,eAAAA,mBACR,oBAAoB,0BAA0B,OAAO,MAAM,SAC7D;AAEJ"}
1
+ {"version":3,"file":"index.cjs","names":["CadmusStorageError"],"sources":["../../src/storage/index.ts"],"sourcesContent":["// Copyright (c) 2026 BowenLabs. All rights reserved.\n// Cadmus is MIT licensed. See LICENSE in the repo root.\n//\n// @thebes/cadmus/storage\n//\n// Defines the ImageService contract only — R2 upload/serve and any\n// alternate implementation (e.g. a Cloudflare Images extension) live\n// outside this primitive. Cadmus ships the interface so apps can swap\n// implementations without touching any component, renderer, or block\n// data; it has no opinion on which implementation is active.\nimport { CadmusStorageError } from \"../errors.js\";\n\n/** A rendered `<img>`-ready description of a stored image. */\nexport interface RenderedImage {\n src: string;\n srcset?: string;\n sizes?: string;\n}\n\n/**\n * Focal point of an image (issue #17) — adopts Sanity's hotspot model.\n * Normalized 0–1 coordinates; `{ x: 0.5, y: 0.5 }` is dead center. When a\n * render crops (e.g. `fit=cover` to a fixed width/height), the focal point\n * is kept in frame instead of the geometric center, so a subject near an\n * edge isn't cut off.\n */\nexport interface ImageHotspot {\n x: number;\n y: number;\n}\n\n/**\n * A crop region (issue #17), as normalized 0–1 insets from each edge —\n * Sanity's crop model. `{ top: 0.1, bottom: 0, left: 0, right: 0.2 }` keeps\n * the middle-left 70%×90% of the image. Applying a crop region needs the\n * source's pixel dimensions (see the render input's `sourceWidth`/\n * `sourceHeight`); without them an implementation should fall back to the\n * hotspot alone.\n */\nexport interface ImageCrop {\n top: number;\n bottom: number;\n left: number;\n right: number;\n}\n\n/**\n * Resolved once per app and imported everywhere images are read or\n * written. Never construct storage URLs or `cdn-cgi/image/...` paths\n * inline — always go through an `ImageService`.\n */\nexport interface ImageService {\n upload: (file: File) => Promise<{ url: string }>;\n render: (image: {\n url: string;\n width?: number;\n height?: number;\n alt: string;\n /** Focal point for cover-crops (issue #17). */\n hotspot?: ImageHotspot;\n /** Crop region (issue #17); needs `sourceWidth`/`sourceHeight` to apply. */\n crop?: ImageCrop;\n /** Source pixel dimensions — required to apply a `crop` region. */\n sourceWidth?: number;\n sourceHeight?: number;\n }) => RenderedImage;\n}\n\n/** MIME types `validateImageFile` accepts — never trust a client-sent\n * MIME type beyond this whitelist check; it's still just `file.type`,\n * not a real content sniff, but rules out the obviously-wrong cases. */\nexport const IMAGE_MIME_WHITELIST = [\n \"image/jpeg\",\n \"image/png\",\n \"image/webp\",\n \"image/gif\",\n] as const;\n\nexport const MAX_IMAGE_UPLOAD_BYTES = 5 * 1024 * 1024; // 5MB\n\n/**\n * Validates a file against the image MIME whitelist and 5MB size cap\n * before it ever reaches `ImageService.upload()`/R2. Throws\n * `CadmusStorageError` — callers map that to the right HTTP status\n * (400 for an invalid type, 413 for oversize).\n */\nexport function validateImageFile(file: File): void {\n if (\n !IMAGE_MIME_WHITELIST.includes(\n file.type as (typeof IMAGE_MIME_WHITELIST)[number],\n )\n ) {\n throw new CadmusStorageError(\n `Unsupported file type: ${file.type || \"unknown\"}`,\n );\n }\n if (file.size > MAX_IMAGE_UPLOAD_BYTES) {\n throw new CadmusStorageError(\n `File exceeds the ${MAX_IMAGE_UPLOAD_BYTES / (1024 * 1024)}MB limit`,\n );\n }\n}\n"],"mappings":";;;;;;AAuEA,MAAa,uBAAuB;CAClC;CACA;CACA;CACA;AACF;AAEA,MAAa,yBAAyB,IAAI,OAAO;;;;;;;AAQjD,SAAgB,kBAAkB,MAAkB;CAClD,IACE,CAAC,qBAAqB,SACpB,KAAK,IACP,GAEA,MAAM,IAAIA,eAAAA,mBACR,0BAA0B,KAAK,QAAQ,WACzC;CAEF,IAAI,KAAK,OAAA,SACP,MAAM,IAAIA,eAAAA,mBACR,oBAAoB,0BAA0B,OAAO,MAAM,SAC7D;AAEJ"}
@@ -5,6 +5,31 @@ interface RenderedImage {
5
5
  srcset?: string;
6
6
  sizes?: string;
7
7
  }
8
+ /**
9
+ * Focal point of an image (issue #17) — adopts Sanity's hotspot model.
10
+ * Normalized 0–1 coordinates; `{ x: 0.5, y: 0.5 }` is dead center. When a
11
+ * render crops (e.g. `fit=cover` to a fixed width/height), the focal point
12
+ * is kept in frame instead of the geometric center, so a subject near an
13
+ * edge isn't cut off.
14
+ */
15
+ interface ImageHotspot {
16
+ x: number;
17
+ y: number;
18
+ }
19
+ /**
20
+ * A crop region (issue #17), as normalized 0–1 insets from each edge —
21
+ * Sanity's crop model. `{ top: 0.1, bottom: 0, left: 0, right: 0.2 }` keeps
22
+ * the middle-left 70%×90% of the image. Applying a crop region needs the
23
+ * source's pixel dimensions (see the render input's `sourceWidth`/
24
+ * `sourceHeight`); without them an implementation should fall back to the
25
+ * hotspot alone.
26
+ */
27
+ interface ImageCrop {
28
+ top: number;
29
+ bottom: number;
30
+ left: number;
31
+ right: number;
32
+ }
8
33
  /**
9
34
  * Resolved once per app and imported everywhere images are read or
10
35
  * written. Never construct storage URLs or `cdn-cgi/image/...` paths
@@ -18,7 +43,11 @@ interface ImageService {
18
43
  url: string;
19
44
  width?: number;
20
45
  height?: number;
21
- alt: string;
46
+ alt: string; /** Focal point for cover-crops (issue #17). */
47
+ hotspot?: ImageHotspot; /** Crop region (issue #17); needs `sourceWidth`/`sourceHeight` to apply. */
48
+ crop?: ImageCrop; /** Source pixel dimensions — required to apply a `crop` region. */
49
+ sourceWidth?: number;
50
+ sourceHeight?: number;
22
51
  }) => RenderedImage;
23
52
  }
24
53
  /** MIME types `validateImageFile` accepts — never trust a client-sent
@@ -34,5 +63,5 @@ declare const MAX_IMAGE_UPLOAD_BYTES: number;
34
63
  */
35
64
  declare function validateImageFile(file: File): void;
36
65
  //#endregion
37
- export { IMAGE_MIME_WHITELIST, ImageService, MAX_IMAGE_UPLOAD_BYTES, RenderedImage, validateImageFile };
66
+ export { IMAGE_MIME_WHITELIST, ImageCrop, ImageHotspot, ImageService, MAX_IMAGE_UPLOAD_BYTES, RenderedImage, validateImageFile };
38
67
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/storage/index.ts"],"mappings":";;UAaiB,aAAA;EACf,GAAA;EACA,MAAA;EACA,KAAA;AAAA;;;;AAAK;AAQP;UAAiB,YAAA;EACf,MAAA,GAAS,IAAA,EAAM,IAAA,KAAS,OAAA;IAAU,GAAA;EAAA;EAClC,MAAA,GAAS,KAAA;IACP,GAAA;IACA,KAAA;IACA,MAAA;IACA,GAAA;EAAA,MACI,aAAA;AAAA;;;;cAMK,oBAAA;AAAA,cAOA,sBAAA;;;;;AAbQ;AAMrB;iBAegB,iBAAA,CAAkB,IAAU,EAAJ,IAAI"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/storage/index.ts"],"mappings":";;UAaiB,aAAA;EACf,GAAA;EACA,MAAA;EACA,KAAA;AAAA;;;;AAAK;AAUP;;;UAAiB,YAAA;EACf,CAAA;EACA,CAAC;AAAA;;;;;;;;AAeI;UAJU,SAAA;EACf,GAAA;EACA,MAAA;EACA,IAAA;EACA,KAAA;AAAA;;;;;;UAQe,YAAA;EACf,MAAA,GAAS,IAAA,EAAM,IAAA,KAAS,OAAA;IAAU,GAAA;EAAA;EAClC,MAAA,GAAS,KAAA;IACP,GAAA;IACA,KAAA;IACA,MAAA;IACA,GAAA,UAEA;IAAA,OAAA,GAAU,YAAA,EAEV;IAAA,IAAA,GAAO,SAAA,EAEP;IAAA,WAAA;IACA,YAAA;EAAA,MACI,aAAA;AAAA;AAAa;AAMrB;;AANqB,cAMR,oBAAA;AAAA,cAOA,sBAAA;AAFH;AAEV;;;;AAAqD;AAF3C,iBAUM,iBAAA,CAAkB,IAAU,EAAJ,IAAI"}
@@ -5,6 +5,31 @@ interface RenderedImage {
5
5
  srcset?: string;
6
6
  sizes?: string;
7
7
  }
8
+ /**
9
+ * Focal point of an image (issue #17) — adopts Sanity's hotspot model.
10
+ * Normalized 0–1 coordinates; `{ x: 0.5, y: 0.5 }` is dead center. When a
11
+ * render crops (e.g. `fit=cover` to a fixed width/height), the focal point
12
+ * is kept in frame instead of the geometric center, so a subject near an
13
+ * edge isn't cut off.
14
+ */
15
+ interface ImageHotspot {
16
+ x: number;
17
+ y: number;
18
+ }
19
+ /**
20
+ * A crop region (issue #17), as normalized 0–1 insets from each edge —
21
+ * Sanity's crop model. `{ top: 0.1, bottom: 0, left: 0, right: 0.2 }` keeps
22
+ * the middle-left 70%×90% of the image. Applying a crop region needs the
23
+ * source's pixel dimensions (see the render input's `sourceWidth`/
24
+ * `sourceHeight`); without them an implementation should fall back to the
25
+ * hotspot alone.
26
+ */
27
+ interface ImageCrop {
28
+ top: number;
29
+ bottom: number;
30
+ left: number;
31
+ right: number;
32
+ }
8
33
  /**
9
34
  * Resolved once per app and imported everywhere images are read or
10
35
  * written. Never construct storage URLs or `cdn-cgi/image/...` paths
@@ -18,7 +43,11 @@ interface ImageService {
18
43
  url: string;
19
44
  width?: number;
20
45
  height?: number;
21
- alt: string;
46
+ alt: string; /** Focal point for cover-crops (issue #17). */
47
+ hotspot?: ImageHotspot; /** Crop region (issue #17); needs `sourceWidth`/`sourceHeight` to apply. */
48
+ crop?: ImageCrop; /** Source pixel dimensions — required to apply a `crop` region. */
49
+ sourceWidth?: number;
50
+ sourceHeight?: number;
22
51
  }) => RenderedImage;
23
52
  }
24
53
  /** MIME types `validateImageFile` accepts — never trust a client-sent
@@ -34,5 +63,5 @@ declare const MAX_IMAGE_UPLOAD_BYTES: number;
34
63
  */
35
64
  declare function validateImageFile(file: File): void;
36
65
  //#endregion
37
- export { IMAGE_MIME_WHITELIST, ImageService, MAX_IMAGE_UPLOAD_BYTES, RenderedImage, validateImageFile };
66
+ export { IMAGE_MIME_WHITELIST, ImageCrop, ImageHotspot, ImageService, MAX_IMAGE_UPLOAD_BYTES, RenderedImage, validateImageFile };
38
67
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/storage/index.ts"],"mappings":";;UAaiB,aAAA;EACf,GAAA;EACA,MAAA;EACA,KAAA;AAAA;;;;AAAK;AAQP;UAAiB,YAAA;EACf,MAAA,GAAS,IAAA,EAAM,IAAA,KAAS,OAAA;IAAU,GAAA;EAAA;EAClC,MAAA,GAAS,KAAA;IACP,GAAA;IACA,KAAA;IACA,MAAA;IACA,GAAA;EAAA,MACI,aAAA;AAAA;;;;cAMK,oBAAA;AAAA,cAOA,sBAAA;;;;;AAbQ;AAMrB;iBAegB,iBAAA,CAAkB,IAAU,EAAJ,IAAI"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/storage/index.ts"],"mappings":";;UAaiB,aAAA;EACf,GAAA;EACA,MAAA;EACA,KAAA;AAAA;;;;AAAK;AAUP;;;UAAiB,YAAA;EACf,CAAA;EACA,CAAC;AAAA;;;;;;;;AAeI;UAJU,SAAA;EACf,GAAA;EACA,MAAA;EACA,IAAA;EACA,KAAA;AAAA;;;;;;UAQe,YAAA;EACf,MAAA,GAAS,IAAA,EAAM,IAAA,KAAS,OAAA;IAAU,GAAA;EAAA;EAClC,MAAA,GAAS,KAAA;IACP,GAAA;IACA,KAAA;IACA,MAAA;IACA,GAAA,UAEA;IAAA,OAAA,GAAU,YAAA,EAEV;IAAA,IAAA,GAAO,SAAA,EAEP;IAAA,WAAA;IACA,YAAA;EAAA,MACI,aAAA;AAAA;AAAa;AAMrB;;AANqB,cAMR,oBAAA;AAAA,cAOA,sBAAA;AAFH;AAEV;;;;AAAqD;AAF3C,iBAUM,iBAAA,CAAkB,IAAU,EAAJ,IAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/storage/index.ts"],"sourcesContent":["// Copyright (c) 2026 BowenLabs. All rights reserved.\n// Cadmus is MIT licensed. See LICENSE in the repo root.\n//\n// @thebes/cadmus/storage\n//\n// Defines the ImageService contract only — R2 upload/serve and any\n// alternate implementation (e.g. a Cloudflare Images extension) live\n// outside this primitive. Cadmus ships the interface so apps can swap\n// implementations without touching any component, renderer, or block\n// data; it has no opinion on which implementation is active.\nimport { CadmusStorageError } from \"../errors.js\";\n\n/** A rendered `<img>`-ready description of a stored image. */\nexport interface RenderedImage {\n src: string;\n srcset?: string;\n sizes?: string;\n}\n\n/**\n * Resolved once per app and imported everywhere images are read or\n * written. Never construct storage URLs or `cdn-cgi/image/...` paths\n * inline — always go through an `ImageService`.\n */\nexport interface ImageService {\n upload: (file: File) => Promise<{ url: string }>;\n render: (image: {\n url: string;\n width?: number;\n height?: number;\n alt: string;\n }) => RenderedImage;\n}\n\n/** MIME types `validateImageFile` accepts — never trust a client-sent\n * MIME type beyond this whitelist check; it's still just `file.type`,\n * not a real content sniff, but rules out the obviously-wrong cases. */\nexport const IMAGE_MIME_WHITELIST = [\n \"image/jpeg\",\n \"image/png\",\n \"image/webp\",\n \"image/gif\",\n] as const;\n\nexport const MAX_IMAGE_UPLOAD_BYTES = 5 * 1024 * 1024; // 5MB\n\n/**\n * Validates a file against the image MIME whitelist and 5MB size cap\n * before it ever reaches `ImageService.upload()`/R2. Throws\n * `CadmusStorageError` — callers map that to the right HTTP status\n * (400 for an invalid type, 413 for oversize).\n */\nexport function validateImageFile(file: File): void {\n if (\n !IMAGE_MIME_WHITELIST.includes(\n file.type as (typeof IMAGE_MIME_WHITELIST)[number],\n )\n ) {\n throw new CadmusStorageError(\n `Unsupported file type: ${file.type || \"unknown\"}`,\n );\n }\n if (file.size > MAX_IMAGE_UPLOAD_BYTES) {\n throw new CadmusStorageError(\n `File exceeds the ${MAX_IMAGE_UPLOAD_BYTES / (1024 * 1024)}MB limit`,\n );\n }\n}\n"],"mappings":";;;;;AAqCA,MAAa,uBAAuB;CAClC;CACA;CACA;CACA;AACF;AAEA,MAAa,yBAAyB,IAAI,OAAO;;;;;;;AAQjD,SAAgB,kBAAkB,MAAkB;CAClD,IACE,CAAC,qBAAqB,SACpB,KAAK,IACP,GAEA,MAAM,IAAI,mBACR,0BAA0B,KAAK,QAAQ,WACzC;CAEF,IAAI,KAAK,OAAA,SACP,MAAM,IAAI,mBACR,oBAAoB,0BAA0B,OAAO,MAAM,SAC7D;AAEJ"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/storage/index.ts"],"sourcesContent":["// Copyright (c) 2026 BowenLabs. All rights reserved.\n// Cadmus is MIT licensed. See LICENSE in the repo root.\n//\n// @thebes/cadmus/storage\n//\n// Defines the ImageService contract only — R2 upload/serve and any\n// alternate implementation (e.g. a Cloudflare Images extension) live\n// outside this primitive. Cadmus ships the interface so apps can swap\n// implementations without touching any component, renderer, or block\n// data; it has no opinion on which implementation is active.\nimport { CadmusStorageError } from \"../errors.js\";\n\n/** A rendered `<img>`-ready description of a stored image. */\nexport interface RenderedImage {\n src: string;\n srcset?: string;\n sizes?: string;\n}\n\n/**\n * Focal point of an image (issue #17) — adopts Sanity's hotspot model.\n * Normalized 0–1 coordinates; `{ x: 0.5, y: 0.5 }` is dead center. When a\n * render crops (e.g. `fit=cover` to a fixed width/height), the focal point\n * is kept in frame instead of the geometric center, so a subject near an\n * edge isn't cut off.\n */\nexport interface ImageHotspot {\n x: number;\n y: number;\n}\n\n/**\n * A crop region (issue #17), as normalized 0–1 insets from each edge —\n * Sanity's crop model. `{ top: 0.1, bottom: 0, left: 0, right: 0.2 }` keeps\n * the middle-left 70%×90% of the image. Applying a crop region needs the\n * source's pixel dimensions (see the render input's `sourceWidth`/\n * `sourceHeight`); without them an implementation should fall back to the\n * hotspot alone.\n */\nexport interface ImageCrop {\n top: number;\n bottom: number;\n left: number;\n right: number;\n}\n\n/**\n * Resolved once per app and imported everywhere images are read or\n * written. Never construct storage URLs or `cdn-cgi/image/...` paths\n * inline — always go through an `ImageService`.\n */\nexport interface ImageService {\n upload: (file: File) => Promise<{ url: string }>;\n render: (image: {\n url: string;\n width?: number;\n height?: number;\n alt: string;\n /** Focal point for cover-crops (issue #17). */\n hotspot?: ImageHotspot;\n /** Crop region (issue #17); needs `sourceWidth`/`sourceHeight` to apply. */\n crop?: ImageCrop;\n /** Source pixel dimensions — required to apply a `crop` region. */\n sourceWidth?: number;\n sourceHeight?: number;\n }) => RenderedImage;\n}\n\n/** MIME types `validateImageFile` accepts — never trust a client-sent\n * MIME type beyond this whitelist check; it's still just `file.type`,\n * not a real content sniff, but rules out the obviously-wrong cases. */\nexport const IMAGE_MIME_WHITELIST = [\n \"image/jpeg\",\n \"image/png\",\n \"image/webp\",\n \"image/gif\",\n] as const;\n\nexport const MAX_IMAGE_UPLOAD_BYTES = 5 * 1024 * 1024; // 5MB\n\n/**\n * Validates a file against the image MIME whitelist and 5MB size cap\n * before it ever reaches `ImageService.upload()`/R2. Throws\n * `CadmusStorageError` — callers map that to the right HTTP status\n * (400 for an invalid type, 413 for oversize).\n */\nexport function validateImageFile(file: File): void {\n if (\n !IMAGE_MIME_WHITELIST.includes(\n file.type as (typeof IMAGE_MIME_WHITELIST)[number],\n )\n ) {\n throw new CadmusStorageError(\n `Unsupported file type: ${file.type || \"unknown\"}`,\n );\n }\n if (file.size > MAX_IMAGE_UPLOAD_BYTES) {\n throw new CadmusStorageError(\n `File exceeds the ${MAX_IMAGE_UPLOAD_BYTES / (1024 * 1024)}MB limit`,\n );\n }\n}\n"],"mappings":";;;;;AAuEA,MAAa,uBAAuB;CAClC;CACA;CACA;CACA;AACF;AAEA,MAAa,yBAAyB,IAAI,OAAO;;;;;;;AAQjD,SAAgB,kBAAkB,MAAkB;CAClD,IACE,CAAC,qBAAqB,SACpB,KAAK,IACP,GAEA,MAAM,IAAI,mBACR,0BAA0B,KAAK,QAAQ,WACzC;CAEF,IAAI,KAAK,OAAA,SACP,MAAM,IAAI,mBACR,oBAAoB,0BAA0B,OAAO,MAAM,SAC7D;AAEJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thebes/cadmus",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "V8-first, Cloudflare-native full-stack framework primitives",
5
5
  "author": "BowenLabs <hello@bowenlabs.io>",
6
6
  "license": "MIT",
@@ -76,12 +76,6 @@
76
76
  "default": "./dist/astro/index.js"
77
77
  }
78
78
  },
79
- "scripts": {
80
- "build": "vp pack",
81
- "dev": "vp pack --watch",
82
- "test": "vitest run",
83
- "test:watch": "vitest"
84
- },
85
79
  "peerDependencies": {
86
80
  "astro": ">=5.0.0",
87
81
  "hono": ">=4.0.0"
@@ -111,5 +105,11 @@
111
105
  "dependencies": {
112
106
  "drizzle-orm": "^0.45.2",
113
107
  "mimetext": "^3.0.28"
108
+ },
109
+ "scripts": {
110
+ "build": "vp pack",
111
+ "dev": "vp pack --watch",
112
+ "test": "vitest run",
113
+ "test:watch": "vitest"
114
114
  }
115
- }
115
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-BRZrCTsN.d.cts","names":[],"sources":["../src/cms/blocks.ts","../src/errors.ts","../src/cms/localApi.ts","../src/cms/validation.ts","../src/cms/types.ts","../src/cms/codegen.ts","../src/cms/defineCollection.ts","../src/cms/meta.ts","../src/cms/schema-gen.ts","../src/cms/structure.ts","../src/cms/webhooks.ts"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-BRZrCTsN.d.ts","names":[],"sources":["../src/cms/blocks.ts","../src/errors.ts","../src/cms/localApi.ts","../src/cms/validation.ts","../src/cms/types.ts","../src/cms/codegen.ts","../src/cms/defineCollection.ts","../src/cms/meta.ts","../src/cms/schema-gen.ts","../src/cms/structure.ts","../src/cms/webhooks.ts"],"mappings":"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"}