@revealui/core 0.6.0 → 0.8.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/README.md +2 -2
- package/dist/api/rate-limit.d.ts.map +1 -1
- package/dist/api/rate-limit.js +8 -14
- package/dist/client/admin/utils/apiClient.d.ts.map +1 -1
- package/dist/client/admin/utils/apiClient.js +16 -1
- package/dist/client/richtext/index.d.ts.map +1 -1
- package/dist/client/richtext/index.js +0 -1
- package/dist/collections/operations/create.d.ts.map +1 -1
- package/dist/collections/operations/create.js +23 -5
- package/dist/collections/operations/delete.d.ts +2 -4
- package/dist/collections/operations/delete.d.ts.map +1 -1
- package/dist/collections/operations/delete.js +21 -4
- package/dist/collections/operations/findById.d.ts.map +1 -1
- package/dist/collections/operations/findById.js +18 -3
- package/dist/collections/operations/update.d.ts.map +1 -1
- package/dist/collections/operations/update.js +21 -4
- package/dist/database/universal-postgres.d.ts +14 -0
- package/dist/database/universal-postgres.d.ts.map +1 -1
- package/dist/database/universal-postgres.js +97 -0
- package/dist/fieldTraversal.d.ts +1 -1
- package/dist/fieldTraversal.d.ts.map +1 -1
- package/dist/instance/methods/create.d.ts.map +1 -1
- package/dist/instance/methods/create.js +3 -2
- package/dist/license.d.ts +40 -5
- package/dist/license.d.ts.map +1 -1
- package/dist/license.js +88 -22
- package/dist/observability/metrics.d.ts +15 -0
- package/dist/observability/metrics.d.ts.map +1 -1
- package/dist/observability/metrics.js +21 -0
- package/dist/revforge-license.d.ts +60 -0
- package/dist/revforge-license.d.ts.map +1 -0
- package/dist/revforge-license.js +74 -0
- package/dist/richtext/exports/server/rsc.d.ts +1 -1
- package/dist/richtext/exports/server/rsc.d.ts.map +1 -1
- package/dist/richtext/exports/server/rsc.js +7 -2
- package/dist/security/index.d.ts +9 -2
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js +9 -2
- package/dist/storage/_helpers.d.ts +14 -0
- package/dist/storage/_helpers.d.ts.map +1 -0
- package/dist/storage/_helpers.js +40 -0
- package/dist/storage/index.d.ts +16 -0
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +43 -1
- package/dist/storage/mock.d.ts +39 -0
- package/dist/storage/mock.d.ts.map +1 -0
- package/dist/storage/mock.js +91 -0
- package/dist/storage/r2.d.ts +13 -0
- package/dist/storage/r2.d.ts.map +1 -0
- package/dist/storage/r2.js +117 -0
- package/dist/storage/types.d.ts +110 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +16 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/{legacy.d.ts → internal.d.ts} +1 -1
- package/dist/types/internal.d.ts.map +1 -0
- package/dist/types/runtime.d.ts +12 -0
- package/dist/types/runtime.d.ts.map +1 -1
- package/dist/utils/api-wrapper.d.ts.map +1 -1
- package/dist/utils/api-wrapper.js +2 -1
- package/package.json +33 -24
- package/dist/types/legacy.d.ts.map +0 -1
- /package/dist/types/{legacy.js → internal.js} +0 -0
package/dist/storage/index.d.ts
CHANGED
|
@@ -1,2 +1,18 @@
|
|
|
1
|
+
import type { StorageConfig, StorageProvider } from './types.js';
|
|
2
|
+
export { createMockProvider } from './mock.js';
|
|
3
|
+
export { createR2Provider } from './r2.js';
|
|
4
|
+
export type { ListItem, ListOptions, ListResult, PutOptions, PutResult, R2Config, StorageConfig, StorageProvider, VercelBlobConfig, } from './types.js';
|
|
1
5
|
export { vercelBlobStorage } from './vercel-blob.js';
|
|
6
|
+
/**
|
|
7
|
+
* Construct a StorageProvider from a tagged config.
|
|
8
|
+
*
|
|
9
|
+
* Per `feedback_pluggable_provider_pattern`: explicit "no-X" opt-in — unknown
|
|
10
|
+
* or unsupported tags throw with a clear message; no silent fallback.
|
|
11
|
+
*
|
|
12
|
+
* Supported tags in Phase 2a: 'r2', 'mock'. The 'vercel-blob' tag is reserved
|
|
13
|
+
* for Phase 2b (StorageProvider impl over @vercel/blob); during the migration
|
|
14
|
+
* window, consumers needing Vercel Blob should use the legacy `vercelBlobStorage`
|
|
15
|
+
* Payload plugin via `revealui.config.ts`.
|
|
16
|
+
*/
|
|
17
|
+
export declare function createStorage(config: StorageConfig): StorageProvider;
|
|
2
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAK/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EACV,QAAQ,EACR,WAAW,EACX,UAAU,EACV,UAAU,EACV,SAAS,EACT,QAAQ,EACR,aAAa,EACb,eAAe,EACf,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,eAAe,CAqBpE"}
|
package/dist/storage/index.js
CHANGED
|
@@ -1,2 +1,44 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Storage abstraction (StorageProvider interface + per-provider configs + factory).
|
|
2
|
+
// GAP-208 — introduced 2026-05-18 alongside Vercel Blob → Cloudflare R2 swap.
|
|
3
|
+
//
|
|
4
|
+
// Phase 1 (#959): types.ts + index.ts type re-exports.
|
|
5
|
+
// Phase 2a (this PR): r2 + mock providers + createStorage factory.
|
|
6
|
+
import { createMockProvider } from './mock.js';
|
|
7
|
+
import { createR2Provider } from './r2.js';
|
|
8
|
+
export { createMockProvider } from './mock.js';
|
|
9
|
+
// Provider factories — exported so callers can construct a provider directly
|
|
10
|
+
// when they already know which one they want (skipping the discriminated-union
|
|
11
|
+
// factory below).
|
|
12
|
+
export { createR2Provider } from './r2.js';
|
|
13
|
+
// Legacy Payload-style plugin — kept during GAP-208 migration so existing
|
|
14
|
+
// `apps/admin/revealui.config.ts` keeps working. Dropped in Phase 4 cleanup.
|
|
2
15
|
export { vercelBlobStorage } from './vercel-blob.js';
|
|
16
|
+
/**
|
|
17
|
+
* Construct a StorageProvider from a tagged config.
|
|
18
|
+
*
|
|
19
|
+
* Per `feedback_pluggable_provider_pattern`: explicit "no-X" opt-in — unknown
|
|
20
|
+
* or unsupported tags throw with a clear message; no silent fallback.
|
|
21
|
+
*
|
|
22
|
+
* Supported tags in Phase 2a: 'r2', 'mock'. The 'vercel-blob' tag is reserved
|
|
23
|
+
* for Phase 2b (StorageProvider impl over @vercel/blob); during the migration
|
|
24
|
+
* window, consumers needing Vercel Blob should use the legacy `vercelBlobStorage`
|
|
25
|
+
* Payload plugin via `revealui.config.ts`.
|
|
26
|
+
*/
|
|
27
|
+
export function createStorage(config) {
|
|
28
|
+
switch (config.provider) {
|
|
29
|
+
case 'r2':
|
|
30
|
+
return createR2Provider(config.r2);
|
|
31
|
+
case 'mock':
|
|
32
|
+
return createMockProvider();
|
|
33
|
+
case 'vercel-blob':
|
|
34
|
+
throw new Error("createStorage: provider 'vercel-blob' is not yet implemented as a " +
|
|
35
|
+
'StorageProvider (lands in GAP-208 Phase 2b). For the migration ' +
|
|
36
|
+
'window, use the legacy `vercelBlobStorage` Payload plugin in ' +
|
|
37
|
+
"revealui.config.ts, or switch to provider: 'r2'.");
|
|
38
|
+
default: {
|
|
39
|
+
const _exhaustive = config;
|
|
40
|
+
throw new Error(`createStorage: unknown provider tag. Got ${JSON.stringify(_exhaustive)}. ` +
|
|
41
|
+
"Valid tags: 'r2', 'mock', 'vercel-blob' (Phase 2b).");
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory mock implementation of StorageProvider for tests.
|
|
3
|
+
*
|
|
4
|
+
* Per `feedback_pluggable_provider_pattern`: every provider abstraction ships
|
|
5
|
+
* a mock so consumer tests don't need network access or real cloud creds.
|
|
6
|
+
*
|
|
7
|
+
* Stores objects in a Map keyed by storage key. URLs use a synthetic
|
|
8
|
+
* `mock://` scheme so callers can distinguish mock results from real ones
|
|
9
|
+
* without parsing host names.
|
|
10
|
+
*
|
|
11
|
+
* GAP-208 Phase 2a (2026-05-18).
|
|
12
|
+
*/
|
|
13
|
+
import type { ListOptions, ListResult, PutOptions, PutResult, StorageProvider } from './types.js';
|
|
14
|
+
interface MockEntry {
|
|
15
|
+
body: Uint8Array;
|
|
16
|
+
contentType: string;
|
|
17
|
+
cacheControl?: string;
|
|
18
|
+
metadata?: Record<string, string>;
|
|
19
|
+
uploadedAt: Date;
|
|
20
|
+
}
|
|
21
|
+
declare class MockProvider implements StorageProvider {
|
|
22
|
+
readonly provider = "mock";
|
|
23
|
+
private readonly store;
|
|
24
|
+
put(key: string, data: Blob | ArrayBuffer | Uint8Array | ReadableStream<Uint8Array>, opts?: PutOptions): Promise<PutResult>;
|
|
25
|
+
del(keyOrUrl: string): Promise<void>;
|
|
26
|
+
list(opts?: ListOptions): Promise<ListResult>;
|
|
27
|
+
/** Test helper — read the raw bytes back. Not part of StorageProvider. */
|
|
28
|
+
read(key: string): Uint8Array | undefined;
|
|
29
|
+
/** Test helper — full entry inspection. Not part of StorageProvider. */
|
|
30
|
+
inspect(key: string): MockEntry | undefined;
|
|
31
|
+
/** Test helper — count of stored objects. Not part of StorageProvider. */
|
|
32
|
+
size(): number;
|
|
33
|
+
/** Test helper — wipe all stored objects. Not part of StorageProvider. */
|
|
34
|
+
clear(): void;
|
|
35
|
+
private extractKey;
|
|
36
|
+
}
|
|
37
|
+
export declare function createMockProvider(): MockProvider;
|
|
38
|
+
export type { MockProvider };
|
|
39
|
+
//# sourceMappingURL=mock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../src/storage/mock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAEV,WAAW,EACX,UAAU,EACV,UAAU,EACV,SAAS,EACT,eAAe,EAChB,MAAM,YAAY,CAAC;AAMpB,UAAU,SAAS;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE,IAAI,CAAC;CAClB;AAED,cAAM,YAAa,YAAW,eAAe;IAC3C,QAAQ,CAAC,QAAQ,UAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IAEhD,GAAG,CACP,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,IAAI,GAAG,WAAW,GAAG,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,EAClE,IAAI,CAAC,EAAE,UAAU,GAChB,OAAO,CAAC,SAAS,CAAC;IAiBf,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpC,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAgCnD,0EAA0E;IAC1E,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIzC,wEAAwE;IACxE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI3C,0EAA0E;IAC1E,IAAI,IAAI,MAAM;IAId,0EAA0E;IAC1E,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,UAAU;CAMnB;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAEjD;AAED,YAAY,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory mock implementation of StorageProvider for tests.
|
|
3
|
+
*
|
|
4
|
+
* Per `feedback_pluggable_provider_pattern`: every provider abstraction ships
|
|
5
|
+
* a mock so consumer tests don't need network access or real cloud creds.
|
|
6
|
+
*
|
|
7
|
+
* Stores objects in a Map keyed by storage key. URLs use a synthetic
|
|
8
|
+
* `mock://` scheme so callers can distinguish mock results from real ones
|
|
9
|
+
* without parsing host names.
|
|
10
|
+
*
|
|
11
|
+
* GAP-208 Phase 2a (2026-05-18).
|
|
12
|
+
*/
|
|
13
|
+
import { toUint8Array } from './_helpers.js';
|
|
14
|
+
const PROVIDER_TAG = 'mock';
|
|
15
|
+
const MOCK_URL_SCHEME = 'mock://storage';
|
|
16
|
+
const DEFAULT_LIST_LIMIT = 1000;
|
|
17
|
+
class MockProvider {
|
|
18
|
+
provider = PROVIDER_TAG;
|
|
19
|
+
store = new Map();
|
|
20
|
+
async put(key, data, opts) {
|
|
21
|
+
const body = await toUint8Array(data);
|
|
22
|
+
this.store.set(key, {
|
|
23
|
+
body,
|
|
24
|
+
contentType: opts?.contentType ?? 'application/octet-stream',
|
|
25
|
+
cacheControl: opts?.cacheControl,
|
|
26
|
+
metadata: opts?.metadata,
|
|
27
|
+
uploadedAt: new Date(),
|
|
28
|
+
});
|
|
29
|
+
return {
|
|
30
|
+
key,
|
|
31
|
+
url: `${MOCK_URL_SCHEME}/${key}`,
|
|
32
|
+
size: body.byteLength,
|
|
33
|
+
provider: PROVIDER_TAG,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
async del(keyOrUrl) {
|
|
37
|
+
const key = this.extractKey(keyOrUrl);
|
|
38
|
+
this.store.delete(key);
|
|
39
|
+
}
|
|
40
|
+
async list(opts) {
|
|
41
|
+
const prefix = opts?.prefix ?? '';
|
|
42
|
+
const limit = opts?.limit ?? DEFAULT_LIST_LIMIT;
|
|
43
|
+
const startAfter = opts?.cursor;
|
|
44
|
+
const allKeys = Array.from(this.store.keys())
|
|
45
|
+
.filter((key) => key.startsWith(prefix))
|
|
46
|
+
.sort();
|
|
47
|
+
const startIndex = startAfter ? allKeys.findIndex((k) => k > startAfter) : 0;
|
|
48
|
+
const effectiveStart = startIndex < 0 ? allKeys.length : startIndex;
|
|
49
|
+
const page = allKeys.slice(effectiveStart, effectiveStart + limit);
|
|
50
|
+
const items = page.map((key) => {
|
|
51
|
+
const entry = this.store.get(key);
|
|
52
|
+
if (!entry) {
|
|
53
|
+
throw new Error(`mock: store mutated during list iteration (${key})`);
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
key,
|
|
57
|
+
url: `${MOCK_URL_SCHEME}/${key}`,
|
|
58
|
+
size: entry.body.byteLength,
|
|
59
|
+
uploadedAt: entry.uploadedAt,
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
const hasMore = effectiveStart + limit < allKeys.length;
|
|
63
|
+
const nextCursor = hasMore ? page[page.length - 1] : undefined;
|
|
64
|
+
return { items, cursor: nextCursor, hasMore };
|
|
65
|
+
}
|
|
66
|
+
/** Test helper — read the raw bytes back. Not part of StorageProvider. */
|
|
67
|
+
read(key) {
|
|
68
|
+
return this.store.get(key)?.body;
|
|
69
|
+
}
|
|
70
|
+
/** Test helper — full entry inspection. Not part of StorageProvider. */
|
|
71
|
+
inspect(key) {
|
|
72
|
+
return this.store.get(key);
|
|
73
|
+
}
|
|
74
|
+
/** Test helper — count of stored objects. Not part of StorageProvider. */
|
|
75
|
+
size() {
|
|
76
|
+
return this.store.size;
|
|
77
|
+
}
|
|
78
|
+
/** Test helper — wipe all stored objects. Not part of StorageProvider. */
|
|
79
|
+
clear() {
|
|
80
|
+
this.store.clear();
|
|
81
|
+
}
|
|
82
|
+
extractKey(keyOrUrl) {
|
|
83
|
+
if (keyOrUrl.startsWith(`${MOCK_URL_SCHEME}/`)) {
|
|
84
|
+
return keyOrUrl.slice(MOCK_URL_SCHEME.length + 1);
|
|
85
|
+
}
|
|
86
|
+
return keyOrUrl;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
export function createMockProvider() {
|
|
90
|
+
return new MockProvider();
|
|
91
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare R2 implementation of StorageProvider.
|
|
3
|
+
*
|
|
4
|
+
* R2 is S3-compatible — uses @aws-sdk/client-s3 with a custom endpoint and
|
|
5
|
+
* region='auto'. See https://developers.cloudflare.com/r2/api/s3/api/.
|
|
6
|
+
*
|
|
7
|
+
* GAP-208 Phase 2a (2026-05-18). Phase 1 (interface + types) shipped in #959.
|
|
8
|
+
*
|
|
9
|
+
* Server-only. Do NOT import from client-side code or edge runtime.
|
|
10
|
+
*/
|
|
11
|
+
import type { R2Config, StorageProvider } from './types.js';
|
|
12
|
+
export declare function createR2Provider(config: R2Config): StorageProvider;
|
|
13
|
+
//# sourceMappingURL=r2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"r2.d.ts","sourceRoot":"","sources":["../../src/storage/r2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,OAAO,KAAK,EAMV,QAAQ,EACR,eAAe,EAChB,MAAM,YAAY,CAAC;AAsHpB,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,CAElE"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare R2 implementation of StorageProvider.
|
|
3
|
+
*
|
|
4
|
+
* R2 is S3-compatible — uses @aws-sdk/client-s3 with a custom endpoint and
|
|
5
|
+
* region='auto'. See https://developers.cloudflare.com/r2/api/s3/api/.
|
|
6
|
+
*
|
|
7
|
+
* GAP-208 Phase 2a (2026-05-18). Phase 1 (interface + types) shipped in #959.
|
|
8
|
+
*
|
|
9
|
+
* Server-only. Do NOT import from client-side code or edge runtime.
|
|
10
|
+
*/
|
|
11
|
+
import { DeleteObjectCommand, ListObjectsV2Command, PutObjectCommand, S3Client, } from '@aws-sdk/client-s3';
|
|
12
|
+
import { toUint8Array } from './_helpers.js';
|
|
13
|
+
const PROVIDER_TAG = 'r2';
|
|
14
|
+
const DEFAULT_CONTENT_TYPE = 'application/octet-stream';
|
|
15
|
+
const DEFAULT_LIST_LIMIT = 1000;
|
|
16
|
+
class R2Provider {
|
|
17
|
+
provider = PROVIDER_TAG;
|
|
18
|
+
client;
|
|
19
|
+
bucket;
|
|
20
|
+
publicBaseUrl;
|
|
21
|
+
constructor(config) {
|
|
22
|
+
if (!config.publicBaseUrl) {
|
|
23
|
+
throw new Error('R2 provider requires R2Config.publicBaseUrl. Presigned/private URLs ' +
|
|
24
|
+
'are not supported in Phase 2a. Set publicBaseUrl to either a bound ' +
|
|
25
|
+
"custom domain (e.g. 'https://media.revealui.com') or the R2 dev URL " +
|
|
26
|
+
"('https://<account-id>.r2.cloudflarestorage.com/<bucket>').");
|
|
27
|
+
}
|
|
28
|
+
this.bucket = config.bucket;
|
|
29
|
+
this.publicBaseUrl = stripTrailingSlash(config.publicBaseUrl);
|
|
30
|
+
this.client = new S3Client({
|
|
31
|
+
region: 'auto',
|
|
32
|
+
endpoint: `https://${config.accountId}.r2.cloudflarestorage.com`,
|
|
33
|
+
credentials: {
|
|
34
|
+
accessKeyId: config.accessKeyId,
|
|
35
|
+
secretAccessKey: config.secretAccessKey,
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
async put(key, data, opts) {
|
|
40
|
+
if (opts?.access === 'private') {
|
|
41
|
+
throw new Error("R2 provider Phase 2a does not support access: 'private'. All objects " +
|
|
42
|
+
'are written under the publicBaseUrl. Presigned/private-URL support ' +
|
|
43
|
+
'lands in Phase 2b.');
|
|
44
|
+
}
|
|
45
|
+
const body = await toUint8Array(data);
|
|
46
|
+
await this.client.send(new PutObjectCommand({
|
|
47
|
+
Bucket: this.bucket,
|
|
48
|
+
Key: key,
|
|
49
|
+
Body: body,
|
|
50
|
+
ContentType: opts?.contentType ?? DEFAULT_CONTENT_TYPE,
|
|
51
|
+
ContentLength: body.byteLength,
|
|
52
|
+
CacheControl: opts?.cacheControl,
|
|
53
|
+
Metadata: opts?.metadata,
|
|
54
|
+
}));
|
|
55
|
+
return {
|
|
56
|
+
key,
|
|
57
|
+
url: `${this.publicBaseUrl}/${key}`,
|
|
58
|
+
size: body.byteLength,
|
|
59
|
+
provider: PROVIDER_TAG,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
async del(keyOrUrl) {
|
|
63
|
+
const key = this.extractKey(keyOrUrl);
|
|
64
|
+
await this.client.send(new DeleteObjectCommand({
|
|
65
|
+
Bucket: this.bucket,
|
|
66
|
+
Key: key,
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
async list(opts) {
|
|
70
|
+
const response = await this.client.send(new ListObjectsV2Command({
|
|
71
|
+
Bucket: this.bucket,
|
|
72
|
+
Prefix: opts?.prefix,
|
|
73
|
+
MaxKeys: opts?.limit ?? DEFAULT_LIST_LIMIT,
|
|
74
|
+
ContinuationToken: opts?.cursor,
|
|
75
|
+
}));
|
|
76
|
+
const items = (response.Contents ?? []).flatMap((entry) => {
|
|
77
|
+
if (!entry.Key)
|
|
78
|
+
return [];
|
|
79
|
+
return [
|
|
80
|
+
{
|
|
81
|
+
key: entry.Key,
|
|
82
|
+
url: `${this.publicBaseUrl}/${entry.Key}`,
|
|
83
|
+
size: entry.Size ?? 0,
|
|
84
|
+
uploadedAt: entry.LastModified ?? new Date(0),
|
|
85
|
+
},
|
|
86
|
+
];
|
|
87
|
+
});
|
|
88
|
+
return {
|
|
89
|
+
items,
|
|
90
|
+
cursor: response.NextContinuationToken,
|
|
91
|
+
hasMore: response.IsTruncated === true,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
extractKey(keyOrUrl) {
|
|
95
|
+
const parsed = tryParseUrl(keyOrUrl);
|
|
96
|
+
if (!parsed) {
|
|
97
|
+
return keyOrUrl;
|
|
98
|
+
}
|
|
99
|
+
// URL form — strip the leading slash from the pathname.
|
|
100
|
+
return parsed.pathname.startsWith('/') ? parsed.pathname.slice(1) : parsed.pathname;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
export function createR2Provider(config) {
|
|
104
|
+
return new R2Provider(config);
|
|
105
|
+
}
|
|
106
|
+
// ── helpers ────────────────────────────────────────────────────────────────
|
|
107
|
+
function tryParseUrl(value) {
|
|
108
|
+
try {
|
|
109
|
+
return new URL(value);
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
function stripTrailingSlash(value) {
|
|
116
|
+
return value.endsWith('/') ? value.slice(0, -1) : value;
|
|
117
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider-agnostic storage interface for the RevealUI fleet.
|
|
3
|
+
*
|
|
4
|
+
* Per `feedback_revealui_agnosticism_principle` + `feedback_pluggable_provider_pattern`:
|
|
5
|
+
* slim interface, tag + factory, explicit "no-X" opt-in, mock provider for tests.
|
|
6
|
+
*
|
|
7
|
+
* Providers implement this interface; consumers (apps/server media routes,
|
|
8
|
+
* apps/admin health probes, packages/core Payload-style plugin shims) depend
|
|
9
|
+
* only on this contract. Switching providers becomes a config change.
|
|
10
|
+
*
|
|
11
|
+
* GAP-208 introduces this abstraction during the Vercel Blob → Cloudflare R2
|
|
12
|
+
* swap (2026-05-18). The vercel-blob Payload-style plugin (vercel-blob.ts)
|
|
13
|
+
* stays in place during migration for backward compat; once consumers migrate
|
|
14
|
+
* to the interface, the legacy plugin is dropped.
|
|
15
|
+
*/
|
|
16
|
+
export interface StorageProvider {
|
|
17
|
+
/** Upload binary data. Returns a fully-qualified URL the value is reachable at. */
|
|
18
|
+
put(key: string, data: Blob | ArrayBuffer | Uint8Array | ReadableStream<Uint8Array>, opts?: PutOptions): Promise<PutResult>;
|
|
19
|
+
/** Delete by either provider URL or storage key. Best-effort; missing keys are not errors. */
|
|
20
|
+
del(keyOrUrl: string): Promise<void>;
|
|
21
|
+
/** List items, optionally filtered by key prefix. Used by health probes + admin browsing. */
|
|
22
|
+
list(opts?: ListOptions): Promise<ListResult>;
|
|
23
|
+
/** Provider tag (e.g. "r2", "vercel-blob", "mock") — exposed so consumers can adapt URL handling. */
|
|
24
|
+
readonly provider: string;
|
|
25
|
+
}
|
|
26
|
+
export interface PutOptions {
|
|
27
|
+
/** MIME type — written to the object's Content-Type header. Defaults to "application/octet-stream". */
|
|
28
|
+
contentType?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Public read access (no auth required for GET on the returned URL).
|
|
31
|
+
* Defaults to "public" because the current media-upload flow needs public CDN URLs.
|
|
32
|
+
* Providers that don't support public access (e.g. private-bucket-only configs)
|
|
33
|
+
* MUST throw when access: "public" is requested.
|
|
34
|
+
*/
|
|
35
|
+
access?: 'public' | 'private';
|
|
36
|
+
/** Cache-Control header value. Provider may apply a sensible default if omitted. */
|
|
37
|
+
cacheControl?: string;
|
|
38
|
+
/** Custom user-metadata. Keys are lowercased; values are strings. Limits vary by provider. */
|
|
39
|
+
metadata?: Record<string, string>;
|
|
40
|
+
}
|
|
41
|
+
export interface PutResult {
|
|
42
|
+
/** The storage key the object was written to (provider-relative, e.g. "media/uuid.jpg"). */
|
|
43
|
+
key: string;
|
|
44
|
+
/** Fully-qualified URL the object is reachable at for GET. */
|
|
45
|
+
url: string;
|
|
46
|
+
/** Storage size in bytes. Always populated by every provider. */
|
|
47
|
+
size: number;
|
|
48
|
+
/** Provider tag that wrote this object (matches StorageProvider.provider). */
|
|
49
|
+
provider: string;
|
|
50
|
+
}
|
|
51
|
+
export interface ListOptions {
|
|
52
|
+
/** Filter to keys starting with this prefix. */
|
|
53
|
+
prefix?: string;
|
|
54
|
+
/** Maximum items per page. Providers cap this internally (typically 1000). */
|
|
55
|
+
limit?: number;
|
|
56
|
+
/** Opaque pagination cursor from a previous ListResult. */
|
|
57
|
+
cursor?: string;
|
|
58
|
+
}
|
|
59
|
+
export interface ListResult {
|
|
60
|
+
items: ListItem[];
|
|
61
|
+
/** Next-page cursor if hasMore is true; undefined when listing is exhausted. */
|
|
62
|
+
cursor?: string;
|
|
63
|
+
hasMore: boolean;
|
|
64
|
+
}
|
|
65
|
+
export interface ListItem {
|
|
66
|
+
key: string;
|
|
67
|
+
url: string;
|
|
68
|
+
size: number;
|
|
69
|
+
uploadedAt: Date;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Discriminated union over `provider`. Adding a new provider means:
|
|
73
|
+
* 1. add a tag here + the per-provider config shape
|
|
74
|
+
* 2. add a case in the createStorage factory
|
|
75
|
+
* 3. implement the StorageProvider interface in a new file
|
|
76
|
+
*
|
|
77
|
+
* No silent fallback per `feedback_pluggable_provider_pattern`: unknown tags
|
|
78
|
+
* throw with a clear "valid tags: ..." message.
|
|
79
|
+
*/
|
|
80
|
+
export type StorageConfig = {
|
|
81
|
+
provider: 'r2';
|
|
82
|
+
r2: R2Config;
|
|
83
|
+
} | {
|
|
84
|
+
provider: 'vercel-blob';
|
|
85
|
+
vercelBlob: VercelBlobConfig;
|
|
86
|
+
} | {
|
|
87
|
+
provider: 'mock';
|
|
88
|
+
};
|
|
89
|
+
export interface R2Config {
|
|
90
|
+
/** Cloudflare account ID (visible at top of the R2 dashboard). */
|
|
91
|
+
accountId: string;
|
|
92
|
+
/** R2 API token Access Key ID (NOT the global account API token). */
|
|
93
|
+
accessKeyId: string;
|
|
94
|
+
/** R2 API token Secret Access Key (paired with accessKeyId). */
|
|
95
|
+
secretAccessKey: string;
|
|
96
|
+
/** Bucket name (per-account-globally-unique within R2). */
|
|
97
|
+
bucket: string;
|
|
98
|
+
/**
|
|
99
|
+
* Optional public base URL for objects (e.g. "https://media.revealui.com" if a
|
|
100
|
+
* custom domain is bound, or "https://<account-id>.r2.cloudflarestorage.com/<bucket>"
|
|
101
|
+
* for the dev URL). When set, PutResult.url uses this base. When omitted, PutResult.url
|
|
102
|
+
* falls back to a presigned URL (private bucket pattern).
|
|
103
|
+
*/
|
|
104
|
+
publicBaseUrl?: string;
|
|
105
|
+
}
|
|
106
|
+
export interface VercelBlobConfig {
|
|
107
|
+
/** vercel_blob_rw_* token from the Vercel Blob dashboard. */
|
|
108
|
+
token: string;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/storage/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,MAAM,WAAW,eAAe;IAC9B,mFAAmF;IACnF,GAAG,CACD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,IAAI,GAAG,WAAW,GAAG,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,EAClE,IAAI,CAAC,EAAE,UAAU,GAChB,OAAO,CAAC,SAAS,CAAC,CAAC;IAEtB,8FAA8F;IAC9F,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC,6FAA6F;IAC7F,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAE9C,qGAAqG;IACrG,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAID,MAAM,WAAW,UAAU;IACzB,uGAAuG;IACvG,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAE9B,oFAAoF;IACpF,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,SAAS;IACxB,4FAA4F;IAC5F,GAAG,EAAE,MAAM,CAAC;IAEZ,8DAA8D;IAC9D,GAAG,EAAE,MAAM,CAAC;IAEZ,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IAEb,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,MAAM,WAAW,WAAW;IAC1B,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAElB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,IAAI,CAAC;CAClB;AAID;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAA;CAAE,GAChC;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,gBAAgB,CAAA;CAAE,GACzD;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzB,MAAM,WAAW,QAAQ;IACvB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAElB,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;IAEpB,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAC;IAExB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider-agnostic storage interface for the RevealUI fleet.
|
|
3
|
+
*
|
|
4
|
+
* Per `feedback_revealui_agnosticism_principle` + `feedback_pluggable_provider_pattern`:
|
|
5
|
+
* slim interface, tag + factory, explicit "no-X" opt-in, mock provider for tests.
|
|
6
|
+
*
|
|
7
|
+
* Providers implement this interface; consumers (apps/server media routes,
|
|
8
|
+
* apps/admin health probes, packages/core Payload-style plugin shims) depend
|
|
9
|
+
* only on this contract. Switching providers becomes a config change.
|
|
10
|
+
*
|
|
11
|
+
* GAP-208 introduces this abstraction during the Vercel Blob → Cloudflare R2
|
|
12
|
+
* swap (2026-05-18). The vercel-blob Payload-style plugin (vercel-blob.ts)
|
|
13
|
+
* stays in place during migration for backward compat; once consumers migrate
|
|
14
|
+
* to the interface, the legacy plugin is dropped.
|
|
15
|
+
*/
|
|
16
|
+
export {};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -32,7 +32,7 @@ export type { APIResponse, EndpointHandler, EndpointHandlerArgs, REST_DELETE, RE
|
|
|
32
32
|
export type { RichTextEditor, RichTextFeature, } from './richtext.js';
|
|
33
33
|
export type { Plugin, PluginOptions, } from './plugins.js';
|
|
34
34
|
export type { CustomComponent, RevealUICollectionConfig, RevealUIComponent, RevealUIContext, RevealUIEnhancedField, RevealUIField, RevealUIFieldType, RevealUIFrameworkContext, } from './extensions.js';
|
|
35
|
-
export type { Block, BlocksField, CheckboxField, ClientCollectionConfig, ClientConfig, RevealUIBlock, RevealUIDependencyCheckArgs, RevealUIRichTextAdapter, RevealUISchemaArgs, RevealUITraverseFieldsArgs, RevealUITraverseFieldsResult, } from './
|
|
35
|
+
export type { Block, BlocksField, CheckboxField, ClientCollectionConfig, ClientConfig, RevealUIBlock, RevealUIDependencyCheckArgs, RevealUIRichTextAdapter, RevealUISchemaArgs, RevealUITraverseFieldsArgs, RevealUITraverseFieldsResult, } from './internal.js';
|
|
36
36
|
export type { JobsConfig, JobTask, JobTaskPriority, JobTaskStatus, JobWorkflow, WorkflowStep, } from './jobs.js';
|
|
37
37
|
export interface VectorDocument {
|
|
38
38
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/types/internal.ts"],"names":[],"mappings":"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"}
|
package/dist/types/runtime.d.ts
CHANGED
|
@@ -233,10 +233,22 @@ export interface CollectionStorageAdapter {
|
|
|
233
233
|
}
|
|
234
234
|
export interface QueryableDatabaseAdapter {
|
|
235
235
|
query: (query: string, values?: unknown[]) => Promise<DatabaseResult>;
|
|
236
|
+
/**
|
|
237
|
+
* Execute a callback inside a database transaction with a single connection
|
|
238
|
+
* held across all queries. The callback receives a transactional adapter
|
|
239
|
+
* whose `query` runs on the same connection; committed on success, rolled
|
|
240
|
+
* back on throw.
|
|
241
|
+
*
|
|
242
|
+
* Optional: adapters without real connection affinity (e.g. test mocks) can
|
|
243
|
+
* omit this. Operations that need read-after-write consistency must guard
|
|
244
|
+
* with `if (db.transaction)` and fall back to sequential queries.
|
|
245
|
+
*/
|
|
246
|
+
transaction?: <T>(fn: (tx: QueryableDatabaseAdapter) => Promise<T>) => Promise<T>;
|
|
236
247
|
collectionStorage?: CollectionStorageAdapter;
|
|
237
248
|
}
|
|
238
249
|
export interface DatabaseAdapter {
|
|
239
250
|
query: QueryableDatabaseAdapter['query'];
|
|
251
|
+
transaction?: QueryableDatabaseAdapter['transaction'];
|
|
240
252
|
connect: () => Promise<void>;
|
|
241
253
|
disconnect: () => Promise<void>;
|
|
242
254
|
init?: () => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/types/runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/types/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-wrapper.d.ts","sourceRoot":"","sources":["../../src/utils/api-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"api-wrapper.d.ts","sourceRoot":"","sources":["../../src/utils/api-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,CAsElE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,SAAS,OAAO,EAAE,EAAE,OAAO,EACtE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,GAC3C,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,CAkCtC"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Wraps Next.js API routes to automatically set up request context,
|
|
5
5
|
* error handling, and logging.
|
|
6
6
|
*/
|
|
7
|
+
import { getClientIp } from '@revealui/security';
|
|
7
8
|
import { handleApiError } from './errors.js';
|
|
8
9
|
import { logger } from './logger.js';
|
|
9
10
|
import { createRequestContext, getRequestDuration, runInRequestContext, } from './request-context.js';
|
|
@@ -42,7 +43,7 @@ export function withRequestContext(handler) {
|
|
|
42
43
|
headers: Object.fromEntries(request.headers.entries()),
|
|
43
44
|
path: new URL(request.url).pathname,
|
|
44
45
|
method: request.method,
|
|
45
|
-
ip:
|
|
46
|
+
ip: getClientIp(request),
|
|
46
47
|
});
|
|
47
48
|
// Log incoming request
|
|
48
49
|
logger.info('Incoming request', {
|