@shapio/cms 0.5.2 → 0.5.3
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/cli.js +1 -1
- package/dist/index.js +1 -1
- package/dist/{s3Adapter-CQ4iXRWp.js → s3Adapter-Bkgr_k9p.js} +2 -2
- package/dist/{s3Adapter-CQ4iXRWp.js.map → s3Adapter-Bkgr_k9p.js.map} +1 -1
- package/dist/{worker-W5eY5lSj.js → worker-DNL9_ZmU.js} +4 -4
- package/dist/{worker-W5eY5lSj.js.map → worker-DNL9_ZmU.js.map} +1 -1
- package/package.json +5 -5
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { $ as parseLockFile, A as buildEditorManifest, B as RESERVED_DEFINITION_API_KEYS, C as loopbackUrl, D as BEFORE_EVENTS, E as AFTER_EVENTS, F as lockById, G as THEME_VARIANTS, H as RESERVED_TYPE_NAMES, I as update, J as hashDefinition, K as checkThemeContrast, L as STORAGE_DRIVERS, N as listForAssets, O as EXTENSION_JOB_PREFIX, P as listLiveByDriver, Q as parseDefinition, R as describeError, S as createUrlBuilder, T as loadProjectConfig, U as SCHEMA_KIND_DIRECTORIES, V as RESERVED_FIELD_API_KEYS, W as SITES_DIRECTORY, X as lockEntriesForSite, Y as lockCoversSite, Z as mergePulledLock, _ as listAllSites, a as loadConfig, at as toTypeName, b as generateToken, ct as withSiteCovered, d as migrateToLatest, dt as createStableId, et as schemaFilePath, f as SHAPIO_VERSION, ft as validateRichText, g as createSite, i as assertDatabaseReachable, it as suggestPlural, k as EXTENSION_ROUTE_ROOT, lt as RICHTEXT_FORMAT, mt as sqliteDriverOf, n as startServer, nt as serializeDefinition, o as loadEnvFileIfPresent, ot as upgradeLockFile, p as createMediaStorage, pt as createDb, q as foldApiKey, r as copyObjectVerified, rt as serializeLockFile, st as validateSchema, t as startDedicatedWorker, tt as scopeDirectory, u as getPendingMigrations, ut as SAFE_LINK_PATTERN, v as createAdminDirect, w as SITE_KEY_PATTERN, x as createLogger, y as SYSTEM_CLI_ACTOR } from "./worker-
|
|
2
|
+
import { $ as parseLockFile, A as buildEditorManifest, B as RESERVED_DEFINITION_API_KEYS, C as loopbackUrl, D as BEFORE_EVENTS, E as AFTER_EVENTS, F as lockById, G as THEME_VARIANTS, H as RESERVED_TYPE_NAMES, I as update, J as hashDefinition, K as checkThemeContrast, L as STORAGE_DRIVERS, N as listForAssets, O as EXTENSION_JOB_PREFIX, P as listLiveByDriver, Q as parseDefinition, R as describeError, S as createUrlBuilder, T as loadProjectConfig, U as SCHEMA_KIND_DIRECTORIES, V as RESERVED_FIELD_API_KEYS, W as SITES_DIRECTORY, X as lockEntriesForSite, Y as lockCoversSite, Z as mergePulledLock, _ as listAllSites, a as loadConfig, at as toTypeName, b as generateToken, ct as withSiteCovered, d as migrateToLatest, dt as createStableId, et as schemaFilePath, f as SHAPIO_VERSION, ft as validateRichText, g as createSite, i as assertDatabaseReachable, it as suggestPlural, k as EXTENSION_ROUTE_ROOT, lt as RICHTEXT_FORMAT, mt as sqliteDriverOf, n as startServer, nt as serializeDefinition, o as loadEnvFileIfPresent, ot as upgradeLockFile, p as createMediaStorage, pt as createDb, q as foldApiKey, r as copyObjectVerified, rt as serializeLockFile, st as validateSchema, t as startDedicatedWorker, tt as scopeDirectory, u as getPendingMigrations, ut as SAFE_LINK_PATTERN, v as createAdminDirect, w as SITE_KEY_PATTERN, x as createLogger, y as SYSTEM_CLI_ACTOR } from "./worker-DNL9_ZmU.js";
|
|
3
3
|
import { createDecipheriv, createHash, scryptSync } from "node:crypto";
|
|
4
4
|
import { createReadStream, createWriteStream, existsSync, openAsBlob } from "node:fs";
|
|
5
5
|
import { basename, dirname, extname, isAbsolute, join, posix, relative, resolve } from "node:path";
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as loadConfig, f as SHAPIO_VERSION, n as startServer, s as buildApp, t as startDedicatedWorker } from "./worker-
|
|
1
|
+
import { a as loadConfig, f as SHAPIO_VERSION, n as startServer, s as buildApp, t as startDedicatedWorker } from "./worker-DNL9_ZmU.js";
|
|
2
2
|
import { EXTENSION_CONTRACT_VERSION, HookError, defineConfig, isHookError } from "./config.js";
|
|
3
3
|
export { EXTENSION_CONTRACT_VERSION, HookError, SHAPIO_VERSION, buildApp, defineConfig, isHookError, loadConfig, startDedicatedWorker, startServer };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { M as isValidStorageKey, c as bucketContentDisposition, h as ObjectNotFoundError, j as encodeKeyPath, l as contentDisposition, m as InvalidStorageKeyError } from "./worker-
|
|
1
|
+
import { M as isValidStorageKey, c as bucketContentDisposition, h as ObjectNotFoundError, j as encodeKeyPath, l as contentDisposition, m as InvalidStorageKeyError } from "./worker-DNL9_ZmU.js";
|
|
2
2
|
import { DeleteObjectCommand, GetObjectCommand, HeadObjectCommand, PutObjectCommand, S3Client, S3ServiceException } from "@aws-sdk/client-s3";
|
|
3
3
|
import { createPresignedPost } from "@aws-sdk/s3-presigned-post";
|
|
4
4
|
import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
|
|
@@ -122,4 +122,4 @@ const createS3Adapter = ({ config, publicBaseUrl, client }) => {
|
|
|
122
122
|
//#endregion
|
|
123
123
|
export { createS3Adapter };
|
|
124
124
|
|
|
125
|
-
//# sourceMappingURL=s3Adapter-
|
|
125
|
+
//# sourceMappingURL=s3Adapter-Bkgr_k9p.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3Adapter-
|
|
1
|
+
{"version":3,"file":"s3Adapter-Bkgr_k9p.js","names":[],"sources":["../src/media/s3Adapter.ts"],"sourcesContent":["import type { Readable } from 'node:stream';\nimport {\n DeleteObjectCommand,\n GetObjectCommand,\n HeadObjectCommand,\n PutObjectCommand,\n S3Client,\n S3ServiceException,\n} from '@aws-sdk/client-s3';\nimport { createPresignedPost } from '@aws-sdk/s3-presigned-post';\nimport { getSignedUrl } from '@aws-sdk/s3-request-presigner';\nimport type { S3StorageConfig } from '../config/index.js';\nimport { bucketContentDisposition, contentDisposition } from './contentDisposition.js';\nimport { InvalidStorageKeyError, ObjectNotFoundError } from './errors.js';\nimport { encodeKeyPath, isValidStorageKey } from './keys.js';\nimport type { StorageAdapter } from './types.js';\n\n/** R2 accepts any region name (\"auto\" by convention); AWS needs the bucket's real region. */\nconst DEFAULT_REGION = 'us-east-1';\n\nconst isNotFound = (error: unknown): boolean =>\n error instanceof S3ServiceException &&\n (error.$metadata.httpStatusCode === 404 || error.name === 'NotFound' || error.name === 'NoSuchKey');\n\nexport const createS3Client = (config: S3StorageConfig): S3Client =>\n new S3Client({\n region: config.region ?? DEFAULT_REGION,\n ...(config.endpoint ? { endpoint: config.endpoint } : {}),\n forcePathStyle: config.forcePathStyle,\n ...(config.accessKeyId && config.secretAccessKey\n ? { credentials: { accessKeyId: config.accessKeyId, secretAccessKey: config.secretAccessKey } }\n : {}),\n // Only send/validate checksums when an operation requires them: several S3-compatible services\n // (R2, B2 and other gateways) reject the SDK's default streaming CRC32 trailers.\n requestChecksumCalculation: 'WHEN_REQUIRED',\n responseChecksumValidation: 'WHEN_REQUIRED',\n });\n\nexport type S3AdapterOptions = {\n config: S3StorageConfig;\n publicBaseUrl: string | undefined;\n /** Injected in tests; created from `config` otherwise. */\n client?: S3Client;\n};\n\n/**\n * Any S3-compatible service (AWS S3, Cloudflare R2, B2, Spaces, Wasabi, versitygw). Private objects are read\n * through presigned GET URLs; browsers upload straight to the bucket with a presigned POST whose policy\n * limits size and content type, so Shapio never streams upload bytes.\n */\nexport const createS3Adapter = ({ config, publicBaseUrl, client }: S3AdapterOptions): StorageAdapter => {\n const s3 = client ?? createS3Client(config);\n const Bucket = config.bucket;\n const checkKey = (key: string) => {\n if (!isValidStorageKey(key)) {\n throw new InvalidStorageKeyError(key);\n }\n return key;\n };\n\n const head = async (key: string) => {\n try {\n const result = await s3.send(new HeadObjectCommand({ Bucket, Key: checkKey(key) }));\n return { size: result.ContentLength ?? 0, contentType: result.ContentType };\n } catch (error) {\n if (isNotFound(error)) {\n return undefined;\n }\n throw error;\n }\n };\n\n return {\n driver: 's3',\n put: async (key, body, { contentType, contentLength }) => {\n await s3.send(\n new PutObjectCommand({\n Bucket,\n Key: checkKey(key),\n Body: body,\n ContentType: contentType,\n ContentLength: Buffer.isBuffer(body) ? body.length : contentLength,\n ContentDisposition: bucketContentDisposition(contentType),\n }),\n );\n },\n getStream: async (key, range) => {\n try {\n const result = await s3.send(\n new GetObjectCommand({\n Bucket,\n Key: checkKey(key),\n ...(range ? { Range: `bytes=${range.start}-${range.end}` } : {}),\n }),\n );\n if (!result.Body) {\n throw new ObjectNotFoundError(key);\n }\n return result.Body as Readable;\n } catch (error) {\n throw isNotFound(error) ? new ObjectNotFoundError(key, { cause: error }) : error;\n }\n },\n head,\n exists: async (key) => (await head(key)) !== undefined,\n delete: async (key) => {\n await s3.send(new DeleteObjectCommand({ Bucket, Key: checkKey(key) }));\n },\n signedGetUrl: async (key, { expiresInSeconds, filename, contentType }) =>\n getSignedUrl(\n s3,\n new GetObjectCommand({\n Bucket,\n Key: checkKey(key),\n ResponseContentType: contentType,\n ResponseContentDisposition: contentDisposition(filename),\n }),\n { expiresIn: expiresInSeconds },\n ),\n publicUrl: (key) => (publicBaseUrl ? `${publicBaseUrl}/${encodeKeyPath(checkKey(key))}` : undefined),\n presignedUpload: async ({ key, contentType, maxSizeBytes, expiresInSeconds }) => {\n const disposition = bucketContentDisposition(contentType);\n const { url, fields } = await createPresignedPost(s3, {\n Bucket,\n Key: checkKey(key),\n Conditions: [\n ['content-length-range', 1, maxSizeBytes],\n ['eq', '$Content-Type', contentType],\n ...(disposition ? [['eq', '$Content-Disposition', disposition] as ['eq', string, string]] : []),\n ],\n Fields: {\n 'Content-Type': contentType,\n ...(disposition ? { 'Content-Disposition': disposition } : {}),\n },\n Expires: expiresInSeconds,\n });\n return { url, fields };\n },\n };\n};\n"],"mappings":";;;;;;AAkBA,MAAM,iBAAiB;AAEvB,MAAM,cAAc,UAClB,iBAAiB,uBAChB,MAAM,UAAU,mBAAmB,OAAO,MAAM,SAAS,cAAc,MAAM,SAAS;AAEzF,MAAa,kBAAkB,WAC7B,IAAI,SAAS;CACX,QAAQ,OAAO,UAAU;CACzB,GAAI,OAAO,WAAW,EAAE,UAAU,OAAO,SAAS,IAAI,CAAC;CACvD,gBAAgB,OAAO;CACvB,GAAI,OAAO,eAAe,OAAO,kBAC7B,EAAE,aAAa;EAAE,aAAa,OAAO;EAAa,iBAAiB,OAAO;CAAgB,EAAE,IAC5F,CAAC;CAGL,4BAA4B;CAC5B,4BAA4B;AAC9B,CAAC;;;;;;AAcH,MAAa,mBAAmB,EAAE,QAAQ,eAAe,aAA+C;CACtG,MAAM,KAAK,UAAU,eAAe,MAAM;CAC1C,MAAM,SAAS,OAAO;CACtB,MAAM,YAAY,QAAgB;EAChC,IAAI,CAAC,kBAAkB,GAAG,GACxB,MAAM,IAAI,uBAAuB,GAAG;EAEtC,OAAO;CACT;CAEA,MAAM,OAAO,OAAO,QAAgB;EAClC,IAAI;GACF,MAAM,SAAS,MAAM,GAAG,KAAK,IAAI,kBAAkB;IAAE;IAAQ,KAAK,SAAS,GAAG;GAAE,CAAC,CAAC;GAClF,OAAO;IAAE,MAAM,OAAO,iBAAiB;IAAG,aAAa,OAAO;GAAY;EAC5E,SAAS,OAAO;GACd,IAAI,WAAW,KAAK,GAClB;GAEF,MAAM;EACR;CACF;CAEA,OAAO;EACL,QAAQ;EACR,KAAK,OAAO,KAAK,MAAM,EAAE,aAAa,oBAAoB;GACxD,MAAM,GAAG,KACP,IAAI,iBAAiB;IACnB;IACA,KAAK,SAAS,GAAG;IACjB,MAAM;IACN,aAAa;IACb,eAAe,OAAO,SAAS,IAAI,IAAI,KAAK,SAAS;IACrD,oBAAoB,yBAAyB,WAAW;GAC1D,CAAC,CACH;EACF;EACA,WAAW,OAAO,KAAK,UAAU;GAC/B,IAAI;IACF,MAAM,SAAS,MAAM,GAAG,KACtB,IAAI,iBAAiB;KACnB;KACA,KAAK,SAAS,GAAG;KACjB,GAAI,QAAQ,EAAE,OAAO,SAAS,MAAM,MAAM,GAAG,MAAM,MAAM,IAAI,CAAC;IAChE,CAAC,CACH;IACA,IAAI,CAAC,OAAO,MACV,MAAM,IAAI,oBAAoB,GAAG;IAEnC,OAAO,OAAO;GAChB,SAAS,OAAO;IACd,MAAM,WAAW,KAAK,IAAI,IAAI,oBAAoB,KAAK,EAAE,OAAO,MAAM,CAAC,IAAI;GAC7E;EACF;EACA;EACA,QAAQ,OAAO,QAAS,MAAM,KAAK,GAAG,MAAO,KAAA;EAC7C,QAAQ,OAAO,QAAQ;GACrB,MAAM,GAAG,KAAK,IAAI,oBAAoB;IAAE;IAAQ,KAAK,SAAS,GAAG;GAAE,CAAC,CAAC;EACvE;EACA,cAAc,OAAO,KAAK,EAAE,kBAAkB,UAAU,kBACtD,aACE,IACA,IAAI,iBAAiB;GACnB;GACA,KAAK,SAAS,GAAG;GACjB,qBAAqB;GACrB,4BAA4B,mBAAmB,QAAQ;EACzD,CAAC,GACD,EAAE,WAAW,iBAAiB,CAChC;EACF,YAAY,QAAS,gBAAgB,GAAG,cAAc,GAAG,cAAc,SAAS,GAAG,CAAC,MAAM,KAAA;EAC1F,iBAAiB,OAAO,EAAE,KAAK,aAAa,cAAc,uBAAuB;GAC/E,MAAM,cAAc,yBAAyB,WAAW;GACxD,MAAM,EAAE,KAAK,WAAW,MAAM,oBAAoB,IAAI;IACpD;IACA,KAAK,SAAS,GAAG;IACjB,YAAY;KACV;MAAC;MAAwB;MAAG;KAAY;KACxC;MAAC;MAAM;MAAiB;KAAW;KACnC,GAAI,cAAc,CAAC;MAAC;MAAM;MAAwB;KAAW,CAA2B,IAAI,CAAC;IAC/F;IACA,QAAQ;KACN,gBAAgB;KAChB,GAAI,cAAc,EAAE,uBAAuB,YAAY,IAAI,CAAC;IAC9D;IACA,SAAS;GACX,CAAC;GACD,OAAO;IAAE;IAAK;GAAO;EACvB;CACF;AACF"}
|
|
@@ -15353,7 +15353,7 @@ const resolveMediaOrigins = async (storage) => {
|
|
|
15353
15353
|
const base = originOf(storage.publicBaseUrl);
|
|
15354
15354
|
if (base) origins.add(base);
|
|
15355
15355
|
if (storage.s3) {
|
|
15356
|
-
const { createS3Adapter } = await import("./s3Adapter-
|
|
15356
|
+
const { createS3Adapter } = await import("./s3Adapter-Bkgr_k9p.js");
|
|
15357
15357
|
const adapter = createS3Adapter({
|
|
15358
15358
|
config: storage.s3,
|
|
15359
15359
|
publicBaseUrl: void 0
|
|
@@ -21712,7 +21712,7 @@ const createMediaStorage = async (config, deps) => {
|
|
|
21712
21712
|
publicBaseUrl: config.publicBaseUrl
|
|
21713
21713
|
}));
|
|
21714
21714
|
if (config.s3) {
|
|
21715
|
-
const { createS3Adapter } = await import("./s3Adapter-
|
|
21715
|
+
const { createS3Adapter } = await import("./s3Adapter-Bkgr_k9p.js");
|
|
21716
21716
|
adapters.set("s3", createS3Adapter({
|
|
21717
21717
|
config: config.s3,
|
|
21718
21718
|
publicBaseUrl: config.publicBaseUrl
|
|
@@ -39052,7 +39052,7 @@ const openStoredBundle = (storage, stored) => storage.get(stored.driver).getStre
|
|
|
39052
39052
|
const removeStoredBundle = (storage, stored) => storage.get(stored.driver).delete(stored.key);
|
|
39053
39053
|
//#endregion
|
|
39054
39054
|
//#region src/constants/version.ts
|
|
39055
|
-
const SHAPIO_VERSION = "0.5.
|
|
39055
|
+
const SHAPIO_VERSION = "0.5.3";
|
|
39056
39056
|
//#endregion
|
|
39057
39057
|
//#region src/repositories/transferExport.ts
|
|
39058
39058
|
/**
|
|
@@ -49624,4 +49624,4 @@ const startDedicatedWorker = async (config) => {
|
|
|
49624
49624
|
//#endregion
|
|
49625
49625
|
export { parseLockFile as $, buildEditorManifest as A, RESERVED_DEFINITION_API_KEYS as B, loopbackUrl as C, BEFORE_EVENTS as D, AFTER_EVENTS as E, lockById$5 as F, THEME_VARIANTS as G, RESERVED_TYPE_NAMES as H, update$8 as I, hashDefinition as J, checkThemeContrast as K, STORAGE_DRIVERS$1 as L, isValidStorageKey as M, listForAssets as N, EXTENSION_JOB_PREFIX as O, listLiveByDriver as P, parseDefinition as Q, describeError as R, createUrlBuilder as S, loadProjectConfig as T, SCHEMA_KIND_DIRECTORIES as U, RESERVED_FIELD_API_KEYS as V, SITES_DIRECTORY as W, lockEntriesForSite as X, lockCoversSite as Y, mergePulledLock as Z, listAllSites as _, loadConfig as a, toTypeName as at, generateToken as b, bucketContentDisposition as c, withSiteCovered as ct, migrateToLatest as d, createStableId as dt, schemaFilePath as et, SHAPIO_VERSION as f, validateRichText as ft, createSite$1 as g, ObjectNotFoundError as h, assertDatabaseReachable as i, suggestPlural as it, encodeKeyPath as j, EXTENSION_ROUTE_ROOT as k, contentDisposition as l, RICHTEXT_FORMAT as lt, InvalidStorageKeyError as m, sqliteDriverOf as mt, startServer as n, serializeDefinition as nt, loadEnvFileIfPresent as o, upgradeLockFile as ot, createMediaStorage as p, createDb as pt, foldApiKey as q, copyObjectVerified as r, serializeLockFile as rt, buildApp as s, validateSchema as st, startDedicatedWorker as t, scopeDirectory as tt, getPendingMigrations as u, SAFE_LINK_PATTERN as ut, createAdminDirect as v, SITE_KEY_PATTERN as w, createLogger as x, SYSTEM_CLI_ACTOR as y, LOCK_FILE_PATH as z };
|
|
49626
49626
|
|
|
49627
|
-
//# sourceMappingURL=worker-
|
|
49627
|
+
//# sourceMappingURL=worker-DNL9_ZmU.js.map
|