@thewhateverapp/platform 0.13.9 → 0.13.11
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/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +12 -1
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/mock-provider.d.ts +16 -0
- package/dist/ai/mock-provider.d.ts.map +1 -0
- package/dist/ai/mock-provider.js +50 -0
- package/dist/ai/mock-provider.js.map +1 -0
- package/dist/ai/providers/http-proxy-ai.d.ts +29 -0
- package/dist/ai/providers/http-proxy-ai.d.ts.map +1 -0
- package/dist/ai/providers/http-proxy-ai.js +81 -0
- package/dist/ai/providers/http-proxy-ai.js.map +1 -0
- package/dist/ai/providers/index.d.ts +10 -0
- package/dist/ai/providers/index.d.ts.map +1 -0
- package/dist/ai/providers/index.js +15 -0
- package/dist/ai/providers/index.js.map +1 -0
- package/dist/ai/providers/three-tier-ai.d.ts +35 -0
- package/dist/ai/providers/three-tier-ai.d.ts.map +1 -0
- package/dist/ai/providers/three-tier-ai.js +43 -0
- package/dist/ai/providers/three-tier-ai.js.map +1 -0
- package/dist/ai/providers.d.ts +2 -0
- package/dist/ai/providers.d.ts.map +1 -1
- package/dist/ai/providers.js +4 -0
- package/dist/ai/providers.js.map +1 -1
- package/dist/ai/types.d.ts +5 -0
- package/dist/ai/types.d.ts.map +1 -1
- package/dist/database/index.d.ts.map +1 -1
- package/dist/database/index.js +11 -23
- package/dist/database/index.js.map +1 -1
- package/dist/database/mock-provider.d.ts +10 -0
- package/dist/database/mock-provider.d.ts.map +1 -0
- package/dist/database/mock-provider.js +145 -0
- package/dist/database/mock-provider.js.map +1 -0
- package/dist/database/providers/http-proxy-db.d.ts +24 -0
- package/dist/database/providers/http-proxy-db.d.ts.map +1 -0
- package/dist/database/providers/http-proxy-db.js +122 -0
- package/dist/database/providers/http-proxy-db.js.map +1 -0
- package/dist/database/providers/index.d.ts +2 -0
- package/dist/database/providers/index.d.ts.map +1 -1
- package/dist/database/providers/index.js +2 -0
- package/dist/database/providers/index.js.map +1 -1
- package/dist/database/providers/three-tier-db.d.ts +33 -0
- package/dist/database/providers/three-tier-db.d.ts.map +1 -0
- package/dist/database/providers/three-tier-db.js +105 -0
- package/dist/database/providers/three-tier-db.js.map +1 -0
- package/dist/database/types.d.ts +6 -1
- package/dist/database/types.d.ts.map +1 -1
- package/dist/env.d.ts +16 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js.map +1 -1
- package/dist/keyspace/index.d.ts.map +1 -1
- package/dist/keyspace/index.js +12 -0
- package/dist/keyspace/index.js.map +1 -1
- package/dist/keyspace/mock-provider.d.ts +31 -0
- package/dist/keyspace/mock-provider.d.ts.map +1 -0
- package/dist/keyspace/mock-provider.js +328 -0
- package/dist/keyspace/mock-provider.js.map +1 -0
- package/dist/keyspace/providers/http-proxy-keyspace.d.ts +36 -0
- package/dist/keyspace/providers/http-proxy-keyspace.d.ts.map +1 -0
- package/dist/keyspace/providers/http-proxy-keyspace.js +210 -0
- package/dist/keyspace/providers/http-proxy-keyspace.js.map +1 -0
- package/dist/keyspace/providers/index.d.ts +8 -0
- package/dist/keyspace/providers/index.d.ts.map +1 -0
- package/dist/keyspace/providers/index.js +10 -0
- package/dist/keyspace/providers/index.js.map +1 -0
- package/dist/keyspace/providers/three-tier-keyspace.d.ts +42 -0
- package/dist/keyspace/providers/three-tier-keyspace.d.ts.map +1 -0
- package/dist/keyspace/providers/three-tier-keyspace.js +106 -0
- package/dist/keyspace/providers/three-tier-keyspace.js.map +1 -0
- package/dist/keyspace/types.d.ts +5 -0
- package/dist/keyspace/types.d.ts.map +1 -1
- package/dist/kv/index.js +10 -10
- package/dist/kv/index.js.map +1 -1
- package/dist/kv/providers/index.d.ts +1 -0
- package/dist/kv/providers/index.d.ts.map +1 -1
- package/dist/kv/providers/index.js +1 -0
- package/dist/kv/providers/index.js.map +1 -1
- package/dist/kv/providers/three-tier-kv.d.ts +44 -0
- package/dist/kv/providers/three-tier-kv.d.ts.map +1 -0
- package/dist/kv/providers/three-tier-kv.js +69 -0
- package/dist/kv/providers/three-tier-kv.js.map +1 -0
- package/dist/providers/three-tier-provider.d.ts +77 -0
- package/dist/providers/three-tier-provider.d.ts.map +1 -0
- package/dist/providers/three-tier-provider.js +165 -0
- package/dist/providers/three-tier-provider.js.map +1 -0
- package/dist/r2/index.d.ts.map +1 -1
- package/dist/r2/index.js +11 -18
- package/dist/r2/index.js.map +1 -1
- package/dist/r2/mock-provider.d.ts +23 -0
- package/dist/r2/mock-provider.d.ts.map +1 -0
- package/dist/r2/mock-provider.js +161 -0
- package/dist/r2/mock-provider.js.map +1 -0
- package/dist/r2/providers/http-proxy-r2.d.ts +40 -0
- package/dist/r2/providers/http-proxy-r2.d.ts.map +1 -0
- package/dist/r2/providers/http-proxy-r2.js +195 -0
- package/dist/r2/providers/http-proxy-r2.js.map +1 -0
- package/dist/r2/providers/index.d.ts +2 -0
- package/dist/r2/providers/index.d.ts.map +1 -1
- package/dist/r2/providers/index.js +2 -0
- package/dist/r2/providers/index.js.map +1 -1
- package/dist/r2/providers/three-tier-r2.d.ts +43 -0
- package/dist/r2/providers/three-tier-r2.d.ts.map +1 -0
- package/dist/r2/providers/three-tier-r2.js +82 -0
- package/dist/r2/providers/three-tier-r2.js.map +1 -0
- package/dist/r2/types.d.ts +6 -1
- package/dist/r2/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple in-memory mock database provider
|
|
3
|
+
* Implements DatabaseProvider interface for preview/testing
|
|
4
|
+
*/
|
|
5
|
+
class MockCollection {
|
|
6
|
+
name;
|
|
7
|
+
documents = new Map();
|
|
8
|
+
nextId = 1;
|
|
9
|
+
constructor(name) {
|
|
10
|
+
this.name = name;
|
|
11
|
+
}
|
|
12
|
+
async insertOne(doc) {
|
|
13
|
+
const id = `${this.name}_${this.nextId++}`;
|
|
14
|
+
const document = { ...doc, _id: id };
|
|
15
|
+
this.documents.set(id, document);
|
|
16
|
+
return { insertedId: id };
|
|
17
|
+
}
|
|
18
|
+
async insertMany(docs) {
|
|
19
|
+
const insertedIds = [];
|
|
20
|
+
for (const doc of docs) {
|
|
21
|
+
const result = await this.insertOne(doc);
|
|
22
|
+
insertedIds.push(result.insertedId);
|
|
23
|
+
}
|
|
24
|
+
return { insertedIds };
|
|
25
|
+
}
|
|
26
|
+
async findOne(query) {
|
|
27
|
+
for (const doc of this.documents.values()) {
|
|
28
|
+
if (this.matches(doc, query)) {
|
|
29
|
+
return doc;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
find(query, options) {
|
|
35
|
+
const executeFind = async () => {
|
|
36
|
+
let results = Array.from(this.documents.values()).filter(doc => this.matches(doc, query || {}));
|
|
37
|
+
if (options?.skip) {
|
|
38
|
+
results = results.slice(options.skip);
|
|
39
|
+
}
|
|
40
|
+
if (options?.limit) {
|
|
41
|
+
results = results.slice(0, options.limit);
|
|
42
|
+
}
|
|
43
|
+
return results;
|
|
44
|
+
};
|
|
45
|
+
const cursor = {
|
|
46
|
+
_query: query || {},
|
|
47
|
+
_options: options || {},
|
|
48
|
+
then(resolve, reject) {
|
|
49
|
+
executeFind().then(resolve, reject);
|
|
50
|
+
return null;
|
|
51
|
+
},
|
|
52
|
+
sort(sort) {
|
|
53
|
+
this._options.sort = sort;
|
|
54
|
+
return this;
|
|
55
|
+
},
|
|
56
|
+
limit(limit) {
|
|
57
|
+
this._options.limit = limit;
|
|
58
|
+
return this;
|
|
59
|
+
},
|
|
60
|
+
skip(skip) {
|
|
61
|
+
this._options.skip = skip;
|
|
62
|
+
return this;
|
|
63
|
+
},
|
|
64
|
+
toArray() {
|
|
65
|
+
return executeFind();
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
return cursor;
|
|
69
|
+
}
|
|
70
|
+
async updateOne(query, update) {
|
|
71
|
+
const doc = await this.findOne(query);
|
|
72
|
+
if (!doc) {
|
|
73
|
+
return { matchedCount: 0, modifiedCount: 0 };
|
|
74
|
+
}
|
|
75
|
+
const updated = this.applyUpdate(doc, update);
|
|
76
|
+
this.documents.set(doc._id, updated);
|
|
77
|
+
return { matchedCount: 1, modifiedCount: 1 };
|
|
78
|
+
}
|
|
79
|
+
async updateMany(query, update) {
|
|
80
|
+
const docs = await this.find(query).toArray();
|
|
81
|
+
for (const doc of docs) {
|
|
82
|
+
const updated = this.applyUpdate(doc, update);
|
|
83
|
+
this.documents.set(doc._id, updated);
|
|
84
|
+
}
|
|
85
|
+
return { matchedCount: docs.length, modifiedCount: docs.length };
|
|
86
|
+
}
|
|
87
|
+
async deleteOne(query) {
|
|
88
|
+
const doc = await this.findOne(query);
|
|
89
|
+
if (!doc) {
|
|
90
|
+
return { deletedCount: 0 };
|
|
91
|
+
}
|
|
92
|
+
this.documents.delete(doc._id);
|
|
93
|
+
return { deletedCount: 1 };
|
|
94
|
+
}
|
|
95
|
+
async deleteMany(query) {
|
|
96
|
+
const docs = await this.find(query).toArray();
|
|
97
|
+
for (const doc of docs) {
|
|
98
|
+
this.documents.delete(doc._id);
|
|
99
|
+
}
|
|
100
|
+
return { deletedCount: docs.length };
|
|
101
|
+
}
|
|
102
|
+
async countDocuments(query) {
|
|
103
|
+
const docs = await this.find(query || {}).toArray();
|
|
104
|
+
return docs.length;
|
|
105
|
+
}
|
|
106
|
+
matches(doc, query) {
|
|
107
|
+
if (!query || Object.keys(query).length === 0) {
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
for (const [key, value] of Object.entries(query)) {
|
|
111
|
+
const docValue = doc[key];
|
|
112
|
+
if (docValue !== value) {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
applyUpdate(doc, update) {
|
|
119
|
+
const result = { ...doc };
|
|
120
|
+
if (update.$set) {
|
|
121
|
+
Object.assign(result, update.$set);
|
|
122
|
+
}
|
|
123
|
+
if (update.$inc) {
|
|
124
|
+
for (const [key, value] of Object.entries(update.$inc)) {
|
|
125
|
+
result[key] = (result[key] || 0) + value;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (update.$unset) {
|
|
129
|
+
for (const key of Object.keys(update.$unset)) {
|
|
130
|
+
delete result[key];
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return result;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
export class MockDatabaseProvider {
|
|
137
|
+
collections = new Map();
|
|
138
|
+
collection(name) {
|
|
139
|
+
if (!this.collections.has(name)) {
|
|
140
|
+
this.collections.set(name, new MockCollection(name));
|
|
141
|
+
}
|
|
142
|
+
return this.collections.get(name);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=mock-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-provider.js","sourceRoot":"","sources":["../../src/database/mock-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP Proxy Database provider for preview mode
|
|
3
|
+
*
|
|
4
|
+
* Proxies all database operations to a deployed tile's /proxy/database/op endpoint.
|
|
5
|
+
* Used in browser previews to access real D1 database via the deployed skeleton tile.
|
|
6
|
+
*/
|
|
7
|
+
import type { DatabaseProvider, Collection } from '../types';
|
|
8
|
+
export interface HTTPProxyDBOptions {
|
|
9
|
+
/** Base URL of the deployed tile (e.g., https://tile-id.whatever.tube) */
|
|
10
|
+
deploymentUrl: string;
|
|
11
|
+
/** Optional auth token for authenticated requests */
|
|
12
|
+
authToken?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* HTTP Proxy Database implementation
|
|
16
|
+
*/
|
|
17
|
+
export declare class HTTPProxyDatabase implements DatabaseProvider {
|
|
18
|
+
private deploymentUrl;
|
|
19
|
+
private authToken?;
|
|
20
|
+
private prefix;
|
|
21
|
+
constructor(options: HTTPProxyDBOptions);
|
|
22
|
+
collection<T = any>(name: string): Collection<T>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=http-proxy-db.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-proxy-db.d.ts","sourceRoot":"","sources":["../../../src/database/providers/http-proxy-db.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EASX,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,kBAAkB;IACjC,0EAA0E;IAC1E,aAAa,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,gBAAgB;IACxD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAmB;gBAErB,OAAO,EAAE,kBAAkB;IAMvC,UAAU,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;CAuHjD"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP Proxy Database provider for preview mode
|
|
3
|
+
*
|
|
4
|
+
* Proxies all database operations to a deployed tile's /proxy/database/op endpoint.
|
|
5
|
+
* Used in browser previews to access real D1 database via the deployed skeleton tile.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* HTTP Proxy Database implementation
|
|
9
|
+
*/
|
|
10
|
+
export class HTTPProxyDatabase {
|
|
11
|
+
deploymentUrl;
|
|
12
|
+
authToken;
|
|
13
|
+
prefix = '[HTTPProxyDB]';
|
|
14
|
+
constructor(options) {
|
|
15
|
+
this.deploymentUrl = options.deploymentUrl.replace(/\/$/, ''); // Remove trailing slash
|
|
16
|
+
this.authToken = options.authToken;
|
|
17
|
+
console.log(`${this.prefix} Initialized with deployment URL: ${this.deploymentUrl}`);
|
|
18
|
+
}
|
|
19
|
+
collection(name) {
|
|
20
|
+
const deploymentUrl = this.deploymentUrl;
|
|
21
|
+
const authToken = this.authToken;
|
|
22
|
+
const prefix = this.prefix;
|
|
23
|
+
async function proxyRequest(operation) {
|
|
24
|
+
const url = `${deploymentUrl}/proxy/database/op`;
|
|
25
|
+
const headers = {
|
|
26
|
+
'Content-Type': 'application/json',
|
|
27
|
+
};
|
|
28
|
+
if (authToken) {
|
|
29
|
+
headers['Authorization'] = `Bearer ${authToken}`;
|
|
30
|
+
}
|
|
31
|
+
console.log(`${prefix} ${operation.action?.toString().toUpperCase()} collection:${name}`, operation);
|
|
32
|
+
try {
|
|
33
|
+
const res = await fetch(url, {
|
|
34
|
+
method: 'POST',
|
|
35
|
+
headers,
|
|
36
|
+
body: JSON.stringify({ ...operation, collection: name }),
|
|
37
|
+
});
|
|
38
|
+
if (!res.ok) {
|
|
39
|
+
const errorText = await res.text().catch(() => res.statusText);
|
|
40
|
+
throw new Error(`Database ${operation.action} failed (${res.status}): ${errorText}`);
|
|
41
|
+
}
|
|
42
|
+
const data = (await res.json());
|
|
43
|
+
console.log(`${prefix} ${operation.action?.toString().toUpperCase()} result:`, data);
|
|
44
|
+
return data.data ?? data;
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
console.error(`${prefix} ${operation.action?.toString().toUpperCase()} error:`, error);
|
|
48
|
+
throw error;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
async insertOne(doc) {
|
|
53
|
+
return proxyRequest({ action: 'insertOne', doc });
|
|
54
|
+
},
|
|
55
|
+
async insertMany(docs) {
|
|
56
|
+
return proxyRequest({ action: 'insertMany', docs });
|
|
57
|
+
},
|
|
58
|
+
async findOne(query) {
|
|
59
|
+
return proxyRequest({ action: 'findOne', query });
|
|
60
|
+
},
|
|
61
|
+
find(query, options) {
|
|
62
|
+
const cursor = {
|
|
63
|
+
_query: query || {},
|
|
64
|
+
_options: options || {},
|
|
65
|
+
async then(resolve, reject) {
|
|
66
|
+
try {
|
|
67
|
+
const result = await proxyRequest({
|
|
68
|
+
action: 'find',
|
|
69
|
+
query: this._query,
|
|
70
|
+
options: this._options,
|
|
71
|
+
});
|
|
72
|
+
resolve(result);
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
if (reject)
|
|
76
|
+
reject(err);
|
|
77
|
+
else
|
|
78
|
+
throw err;
|
|
79
|
+
}
|
|
80
|
+
return null;
|
|
81
|
+
},
|
|
82
|
+
sort(sort) {
|
|
83
|
+
this._options.sort = sort;
|
|
84
|
+
return this;
|
|
85
|
+
},
|
|
86
|
+
limit(limit) {
|
|
87
|
+
this._options.limit = limit;
|
|
88
|
+
return this;
|
|
89
|
+
},
|
|
90
|
+
skip(skip) {
|
|
91
|
+
this._options.skip = skip;
|
|
92
|
+
return this;
|
|
93
|
+
},
|
|
94
|
+
async toArray() {
|
|
95
|
+
return proxyRequest({
|
|
96
|
+
action: 'find',
|
|
97
|
+
query: this._query,
|
|
98
|
+
options: this._options,
|
|
99
|
+
});
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
return cursor;
|
|
103
|
+
},
|
|
104
|
+
async updateOne(query, update) {
|
|
105
|
+
return proxyRequest({ action: 'updateOne', query, update });
|
|
106
|
+
},
|
|
107
|
+
async updateMany(query, update) {
|
|
108
|
+
return proxyRequest({ action: 'updateMany', query, update });
|
|
109
|
+
},
|
|
110
|
+
async deleteOne(query) {
|
|
111
|
+
return proxyRequest({ action: 'deleteOne', query });
|
|
112
|
+
},
|
|
113
|
+
async deleteMany(query) {
|
|
114
|
+
return proxyRequest({ action: 'deleteMany', query });
|
|
115
|
+
},
|
|
116
|
+
async countDocuments(query) {
|
|
117
|
+
return proxyRequest({ action: 'countDocuments', query: query || {} });
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=http-proxy-db.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-proxy-db.js","sourceRoot":"","sources":["../../../src/database/providers/http-proxy-db.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,4 +4,6 @@
|
|
|
4
4
|
* Export all available database providers
|
|
5
5
|
*/
|
|
6
6
|
export { FlexDB } from './flex-db';
|
|
7
|
+
export { HTTPProxyDatabase, type HTTPProxyDBOptions } from './http-proxy-db';
|
|
8
|
+
export { ThreeTierDatabase, type ThreeTierDBConfig } from './three-tier-db';
|
|
7
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/database/providers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/database/providers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
* Export all available database providers
|
|
5
5
|
*/
|
|
6
6
|
export { FlexDB } from './flex-db';
|
|
7
|
+
export { HTTPProxyDatabase } from './http-proxy-db';
|
|
8
|
+
export { ThreeTierDatabase } from './three-tier-db';
|
|
7
9
|
// Future providers:
|
|
8
10
|
// export { TursoDB } from './turso-db';
|
|
9
11
|
// export { MongoAtlasDB } from './mongo-atlas-db';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/database/providers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/database/providers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAA0B,MAAM,iBAAiB,CAAC;AAE5E,oBAAoB;AACpB,wCAAwC;AACxC,mDAAmD;AACnD,oDAAoD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Three-Tier Database Provider
|
|
3
|
+
*
|
|
4
|
+
* Implements the three-tier fallback system:
|
|
5
|
+
* 1. Production - Real Cloudflare D1 binding
|
|
6
|
+
* 2. Preview via Proxy - HTTP proxy to skeleton worker
|
|
7
|
+
* 3. Mock/In-Memory - Fallback when skeleton not ready
|
|
8
|
+
*/
|
|
9
|
+
import type { DatabaseProvider, Collection } from '../types';
|
|
10
|
+
import { type HTTPProxyDBOptions } from './http-proxy-db';
|
|
11
|
+
/**
|
|
12
|
+
* Three-tier database configuration
|
|
13
|
+
*/
|
|
14
|
+
export interface ThreeTierDBConfig {
|
|
15
|
+
/** Production D1 binding (if available) */
|
|
16
|
+
production?: D1Database;
|
|
17
|
+
/** Preview proxy configuration (if in preview mode) */
|
|
18
|
+
previewProxy?: HTTPProxyDBOptions;
|
|
19
|
+
/** Debug logging */
|
|
20
|
+
debug?: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Three-Tier Database Provider
|
|
24
|
+
*
|
|
25
|
+
* Automatically selects between production, preview proxy, and mock based on availability
|
|
26
|
+
* and skeleton deployment readiness.
|
|
27
|
+
*/
|
|
28
|
+
export declare class ThreeTierDatabase implements DatabaseProvider {
|
|
29
|
+
private provider;
|
|
30
|
+
constructor(config: ThreeTierDBConfig);
|
|
31
|
+
collection<T = any>(name: string): Collection<T>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=three-tier-db.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"three-tier-db.d.ts","sourceRoot":"","sources":["../../../src/database/providers/three-tier-db.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EASX,MAAM,UAAU,CAAC;AAElB,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAI7E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,uDAAuD;IACvD,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,oBAAoB;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,gBAAgB;IACxD,OAAO,CAAC,QAAQ,CAAsC;gBAE1C,MAAM,EAAE,iBAAiB;IAarC,UAAU,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;CAuGjD"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Three-Tier Database Provider
|
|
3
|
+
*
|
|
4
|
+
* Implements the three-tier fallback system:
|
|
5
|
+
* 1. Production - Real Cloudflare D1 binding
|
|
6
|
+
* 2. Preview via Proxy - HTTP proxy to skeleton worker
|
|
7
|
+
* 3. Mock/In-Memory - Fallback when skeleton not ready
|
|
8
|
+
*/
|
|
9
|
+
import { FlexDB } from './flex-db';
|
|
10
|
+
import { HTTPProxyDatabase } from './http-proxy-db';
|
|
11
|
+
import { MockDatabaseProvider } from '../mock-provider';
|
|
12
|
+
import { ThreeTierProvider } from '../../providers/three-tier-provider';
|
|
13
|
+
/**
|
|
14
|
+
* Three-Tier Database Provider
|
|
15
|
+
*
|
|
16
|
+
* Automatically selects between production, preview proxy, and mock based on availability
|
|
17
|
+
* and skeleton deployment readiness.
|
|
18
|
+
*/
|
|
19
|
+
export class ThreeTierDatabase {
|
|
20
|
+
provider;
|
|
21
|
+
constructor(config) {
|
|
22
|
+
const production = config.production ? new FlexDB(config.production) : undefined;
|
|
23
|
+
const previewProxy = config.previewProxy ? new HTTPProxyDatabase(config.previewProxy) : undefined;
|
|
24
|
+
const mock = new MockDatabaseProvider();
|
|
25
|
+
this.provider = new ThreeTierProvider({
|
|
26
|
+
production,
|
|
27
|
+
previewProxy,
|
|
28
|
+
mock,
|
|
29
|
+
debug: config.debug,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
collection(name) {
|
|
33
|
+
// Create wrapper collection that delegates to the three-tier provider
|
|
34
|
+
const provider = this.provider;
|
|
35
|
+
return {
|
|
36
|
+
async insertOne(doc) {
|
|
37
|
+
return provider.execute(`COLLECTION(${name}).INSERT_ONE`, (db) => db.collection(name).insertOne(doc));
|
|
38
|
+
},
|
|
39
|
+
async insertMany(docs) {
|
|
40
|
+
return provider.execute(`COLLECTION(${name}).INSERT_MANY`, (db) => db.collection(name).insertMany(docs));
|
|
41
|
+
},
|
|
42
|
+
async findOne(query) {
|
|
43
|
+
return provider.execute(`COLLECTION(${name}).FIND_ONE`, (db) => db.collection(name).findOne(query));
|
|
44
|
+
},
|
|
45
|
+
find(query, options) {
|
|
46
|
+
// Create a cursor that delegates to the three-tier provider
|
|
47
|
+
const cursor = {
|
|
48
|
+
_query: query || {},
|
|
49
|
+
_options: options || {},
|
|
50
|
+
async then(resolve, reject) {
|
|
51
|
+
try {
|
|
52
|
+
const result = await provider.execute(`COLLECTION(${name}).FIND`, async (db) => {
|
|
53
|
+
const dbCursor = db.collection(name).find(this._query, this._options);
|
|
54
|
+
return await dbCursor.toArray();
|
|
55
|
+
});
|
|
56
|
+
resolve(result);
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
if (reject)
|
|
60
|
+
reject(err);
|
|
61
|
+
else
|
|
62
|
+
throw err;
|
|
63
|
+
}
|
|
64
|
+
return null;
|
|
65
|
+
},
|
|
66
|
+
sort(sort) {
|
|
67
|
+
this._options.sort = sort;
|
|
68
|
+
return this;
|
|
69
|
+
},
|
|
70
|
+
limit(limit) {
|
|
71
|
+
this._options.limit = limit;
|
|
72
|
+
return this;
|
|
73
|
+
},
|
|
74
|
+
skip(skip) {
|
|
75
|
+
this._options.skip = skip;
|
|
76
|
+
return this;
|
|
77
|
+
},
|
|
78
|
+
async toArray() {
|
|
79
|
+
return provider.execute(`COLLECTION(${name}).FIND.TO_ARRAY`, async (db) => {
|
|
80
|
+
const dbCursor = db.collection(name).find(this._query, this._options);
|
|
81
|
+
return await dbCursor.toArray();
|
|
82
|
+
});
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
return cursor;
|
|
86
|
+
},
|
|
87
|
+
async updateOne(query, update) {
|
|
88
|
+
return provider.execute(`COLLECTION(${name}).UPDATE_ONE`, (db) => db.collection(name).updateOne(query, update));
|
|
89
|
+
},
|
|
90
|
+
async updateMany(query, update) {
|
|
91
|
+
return provider.execute(`COLLECTION(${name}).UPDATE_MANY`, (db) => db.collection(name).updateMany(query, update));
|
|
92
|
+
},
|
|
93
|
+
async deleteOne(query) {
|
|
94
|
+
return provider.execute(`COLLECTION(${name}).DELETE_ONE`, (db) => db.collection(name).deleteOne(query));
|
|
95
|
+
},
|
|
96
|
+
async deleteMany(query) {
|
|
97
|
+
return provider.execute(`COLLECTION(${name}).DELETE_MANY`, (db) => db.collection(name).deleteMany(query));
|
|
98
|
+
},
|
|
99
|
+
async countDocuments(query) {
|
|
100
|
+
return provider.execute(`COLLECTION(${name}).COUNT_DOCUMENTS`, (db) => db.collection(name).countDocuments(query));
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=three-tier-db.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"three-tier-db.js","sourceRoot":"","sources":["../../../src/database/providers/three-tier-db.ts"],"names":[],"mappings":"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"}
|
package/dist/database/types.d.ts
CHANGED
|
@@ -162,12 +162,17 @@ export interface DeleteResult {
|
|
|
162
162
|
* Cloudflare environment interface
|
|
163
163
|
*/
|
|
164
164
|
export interface CloudflareEnv {
|
|
165
|
-
DB
|
|
165
|
+
DB?: D1Database;
|
|
166
166
|
DB_PROVIDER?: 'flex' | 'turso' | 'mongo-atlas' | 'planetscale';
|
|
167
167
|
TURSO_URL?: string;
|
|
168
168
|
TURSO_TOKEN?: string;
|
|
169
169
|
MONGO_URL?: string;
|
|
170
170
|
PLANETSCALE_URL?: string;
|
|
171
|
+
/** HTTP proxy configuration for preview mode (internal use only) */
|
|
172
|
+
__DB_HTTP_PROXY__?: {
|
|
173
|
+
deploymentUrl: string;
|
|
174
|
+
authToken?: string;
|
|
175
|
+
};
|
|
171
176
|
}
|
|
172
177
|
/**
|
|
173
178
|
* Request wrapper for NextRequest compatibility
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":"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"}
|
package/dist/env.d.ts
CHANGED
|
@@ -35,6 +35,22 @@ export interface PlatformEnv {
|
|
|
35
35
|
deploymentUrl: string;
|
|
36
36
|
authToken?: string;
|
|
37
37
|
};
|
|
38
|
+
__DB_HTTP_PROXY__?: {
|
|
39
|
+
deploymentUrl: string;
|
|
40
|
+
authToken?: string;
|
|
41
|
+
};
|
|
42
|
+
__STORAGE_HTTP_PROXY__?: {
|
|
43
|
+
deploymentUrl: string;
|
|
44
|
+
authToken?: string;
|
|
45
|
+
};
|
|
46
|
+
__KEYSPACE_HTTP_PROXY__?: {
|
|
47
|
+
deploymentUrl: string;
|
|
48
|
+
authToken?: string;
|
|
49
|
+
};
|
|
50
|
+
__AI_HTTP_PROXY__?: {
|
|
51
|
+
deploymentUrl: string;
|
|
52
|
+
authToken?: string;
|
|
53
|
+
};
|
|
38
54
|
[key: string]: unknown;
|
|
39
55
|
}
|
|
40
56
|
type EnvProvider = () => PlatformEnv;
|
package/dist/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,iBAAiB,CAAC,EAAE;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,KAAK,WAAW,GAAG,MAAM,WAAW,CAAC;AAKrC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAEhE;AAaD;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAqB5C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAS3D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAUvC"}
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,iBAAiB,CAAC,EAAE;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,iBAAiB,CAAC,EAAE;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,sBAAsB,CAAC,EAAE;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,uBAAuB,CAAC,EAAE;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,iBAAiB,CAAC,EAAE;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,KAAK,WAAW,GAAG,MAAM,WAAW,CAAC;AAKrC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAEhE;AAaD;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAqB5C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAS3D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAUvC"}
|
package/dist/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAwCH,IAAI,WAAW,GAAuB,IAAI,CAAC;AAC3C,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAqB;IACxD,WAAW,GAAG,QAAQ,CAAC;AACzB,CAAC;AAED,wFAAwF;AACxF,SAAS,UAAU,CAAC,UAAkB;IACpC,IAAI,CAAC;QACH,mDAAmD;QACnD,8DAA8D;QAC9D,OAAO,IAAI,QAAQ,CAAC,YAAY,EAAE,4BAA4B,CAAC,CAAC,UAAU,CAAC,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,iDAAiD;QACjD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,UAAU,CAAC,wBAAwB,CAAkE,CAAC;YACvH,IAAI,QAAQ,EAAE,oBAAoB,EAAE,CAAC;gBACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,oBAAoB,EAAE,CAAC;gBAC5C,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;oBACb,OAAO,GAAG,CAAC,GAAG,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uCAAuC;QACzC,CAAC;QAED,MAAM,IAAI,KAAK,CACb,mCAAmC;YACjC,mGAAmG,CACtG,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,EAAE,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,WAAW,KAAK,IAAI,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,WAAW,GAAG,IAAI,CAAC;IACnB,WAAW,GAAG,KAAK,CAAC;AACtB,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,WAAW,GAAG,OAAO,CAAC;IACtB,wDAAwD;IACxD,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE,CAAC;QACrC,UAAsC,CAAC,yBAAyB,GAAG,OAAO,CAAC;IAC9E,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,aAAa;IAC3B,gCAAgC;IAChC,IAAI,WAAW;QAAE,OAAO,IAAI,CAAC;IAE7B,0EAA0E;IAC1E,IAAI,OAAO,UAAU,KAAK,WAAW,IAAK,UAAsC,CAAC,yBAAyB,EAAE,CAAC;QAC3G,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/keyspace/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAgBnB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/keyspace/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAgBnB,MAAM,SAAS,CAAC;AAUjB,mBAAmB,SAAS,CAAC;AAg4B7B;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,gBAAgB,CAK/E;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CACzB,QAAQ,CAAC,EAAE;IAAE,GAAG,EAAE,WAAW,CAAA;CAAE,GAAG,WAAW,GAC5C,gBAAgB,CA4DlB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,gBAAgB,CAgBjE"}
|
package/dist/keyspace/index.js
CHANGED
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
* ```
|
|
29
29
|
*/
|
|
30
30
|
import { getPlatformEnv, isPlatformEnvConfigured } from '../env';
|
|
31
|
+
import { ThreeTierKeyspace } from './providers';
|
|
31
32
|
/**
|
|
32
33
|
* Default base URL for HTTP-based keyspace access
|
|
33
34
|
*/
|
|
@@ -892,6 +893,17 @@ export function getKeyspace(reqOrEnv) {
|
|
|
892
893
|
if (!env) {
|
|
893
894
|
throw new Error('No environment found. Ensure you are running in edge runtime.');
|
|
894
895
|
}
|
|
896
|
+
// Check for HTTP proxy marker (set by platform-config module in preview mode)
|
|
897
|
+
if (env.__KEYSPACE_HTTP_PROXY__) {
|
|
898
|
+
const proxyOptions = env.__KEYSPACE_HTTP_PROXY__;
|
|
899
|
+
// Use three-tier provider with HTTP proxy fallback to mock
|
|
900
|
+
const config = {
|
|
901
|
+
production: undefined, // No production in preview mode
|
|
902
|
+
previewProxy: proxyOptions,
|
|
903
|
+
debug: true,
|
|
904
|
+
};
|
|
905
|
+
return new ThreeTierKeyspace(config);
|
|
906
|
+
}
|
|
895
907
|
// Check for KEYSPACE Durable Object binding
|
|
896
908
|
if (!env.KEYSPACE) {
|
|
897
909
|
throw new Error('No KEYSPACE Durable Object binding found. ' +
|