@maravilla-labs/adapter-core 0.2.1 → 0.2.2
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/config-loader.d.ts +34 -0
- package/dist/config-loader.d.ts.map +1 -0
- package/dist/config-loader.js +356 -0
- package/dist/config-loader.js.map +1 -0
- package/dist/events.d.ts +21 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +62 -0
- package/dist/events.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +5 -1
- package/dist/manifest.js.map +1 -1
- package/dist/types.d.ts +142 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -2
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { AuthConfigBlock, DatabaseConfigBlock } from './types.js';
|
|
2
|
+
export interface MaravillaConfig {
|
|
3
|
+
auth?: AuthConfigBlock;
|
|
4
|
+
database?: DatabaseConfigBlock;
|
|
5
|
+
}
|
|
6
|
+
export interface OAuthProviderDefinition {
|
|
7
|
+
enabled: boolean;
|
|
8
|
+
client_id: string;
|
|
9
|
+
client_secret: SecretRef;
|
|
10
|
+
scopes: string[];
|
|
11
|
+
discovery_url?: string;
|
|
12
|
+
}
|
|
13
|
+
export type SecretRef = string | {
|
|
14
|
+
env: string;
|
|
15
|
+
};
|
|
16
|
+
export interface LoadResult {
|
|
17
|
+
/** The normalized config. Empty object when no config file is present. */
|
|
18
|
+
config: MaravillaConfig;
|
|
19
|
+
/** Absolute path of the file that was loaded, or `null` if none was found. */
|
|
20
|
+
path: string | null;
|
|
21
|
+
}
|
|
22
|
+
export declare class ConfigError extends Error {
|
|
23
|
+
readonly file: string | null;
|
|
24
|
+
readonly field?: string | undefined;
|
|
25
|
+
constructor(message: string, file?: string | null, field?: string | undefined);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Find and load a `maravilla.config.*` file at the given project root.
|
|
29
|
+
* Returns an empty config (but no error) when none exists — the adapter
|
|
30
|
+
* should treat missing config as "no declarative auth, nothing to apply".
|
|
31
|
+
*/
|
|
32
|
+
export declare function loadMaravillaConfig(projectRoot: string): Promise<LoadResult>;
|
|
33
|
+
export type { AuthConfigBlock, DatabaseConfigBlock, DocumentIndexDeclaration, VectorIndexDeclaration, } from './types.js';
|
|
34
|
+
//# sourceMappingURL=config-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../src/config-loader.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EAGpB,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC;AACD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,SAAS,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AACD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAWjD,MAAM,WAAW,UAAU;IACzB,0EAA0E;IAC1E,MAAM,EAAE,eAAe,CAAC;IACxB,8EAA8E;IAC9E,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,qBAAa,WAAY,SAAQ,KAAK;aAGlB,IAAI,EAAE,MAAM,GAAG,IAAI;aACnB,KAAK,CAAC,EAAE,MAAM;gBAF9B,OAAO,EAAE,MAAM,EACC,IAAI,GAAE,MAAM,GAAG,IAAW,EAC1B,KAAK,CAAC,EAAE,MAAM,YAAA;CASjC;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAkBlF;AA4WD,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loads `maravilla.config.{ts,js,mjs,yaml,yml,json}` from a project root and
|
|
3
|
+
* returns a normalized {@link MaravillaConfig}. Invoked by adapters during
|
|
4
|
+
* build to enrich the manifest with auth settings.
|
|
5
|
+
*
|
|
6
|
+
* Discovery is deliberately strict — exactly one config file may exist. Each
|
|
7
|
+
* supported format parses to the same schema:
|
|
8
|
+
*
|
|
9
|
+
* - `.ts`, `.js`, `.mjs` — loaded via `jiti` (supports TS without a compile step)
|
|
10
|
+
* - `.yaml`, `.yml` — loaded via `yaml`
|
|
11
|
+
* - `.json` — `JSON.parse`
|
|
12
|
+
*
|
|
13
|
+
* The loader does light structural validation (required fields, secret-ref
|
|
14
|
+
* shape). Deep validation of policy expressions happens server-side at
|
|
15
|
+
* reconcile time — local parsing would require shipping the REL grammar.
|
|
16
|
+
*/
|
|
17
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
18
|
+
import { join, resolve } from 'node:path';
|
|
19
|
+
import { pathToFileURL } from 'node:url';
|
|
20
|
+
const CONFIG_BASENAMES = [
|
|
21
|
+
'maravilla.config.ts',
|
|
22
|
+
'maravilla.config.mjs',
|
|
23
|
+
'maravilla.config.js',
|
|
24
|
+
'maravilla.config.yaml',
|
|
25
|
+
'maravilla.config.yml',
|
|
26
|
+
'maravilla.config.json',
|
|
27
|
+
];
|
|
28
|
+
export class ConfigError extends Error {
|
|
29
|
+
file;
|
|
30
|
+
field;
|
|
31
|
+
constructor(message, file = null, field) {
|
|
32
|
+
super(file
|
|
33
|
+
? `[maravilla] ${message} (in ${file}${field ? ` at ${field}` : ''})`
|
|
34
|
+
: `[maravilla] ${message}`);
|
|
35
|
+
this.file = file;
|
|
36
|
+
this.field = field;
|
|
37
|
+
this.name = 'ConfigError';
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Find and load a `maravilla.config.*` file at the given project root.
|
|
42
|
+
* Returns an empty config (but no error) when none exists — the adapter
|
|
43
|
+
* should treat missing config as "no declarative auth, nothing to apply".
|
|
44
|
+
*/
|
|
45
|
+
export async function loadMaravillaConfig(projectRoot) {
|
|
46
|
+
const candidates = CONFIG_BASENAMES
|
|
47
|
+
.map((name) => join(resolve(projectRoot), name))
|
|
48
|
+
.filter((p) => existsSync(p));
|
|
49
|
+
if (candidates.length === 0) {
|
|
50
|
+
return { config: {}, path: null };
|
|
51
|
+
}
|
|
52
|
+
if (candidates.length > 1) {
|
|
53
|
+
throw new ConfigError(`multiple maravilla.config.* files found — keep exactly one: ${candidates.join(', ')}`);
|
|
54
|
+
}
|
|
55
|
+
const filePath = candidates[0];
|
|
56
|
+
const raw = await loadByExt(filePath);
|
|
57
|
+
const config = normalize(raw, filePath);
|
|
58
|
+
return { config, path: filePath };
|
|
59
|
+
}
|
|
60
|
+
async function loadByExt(filePath) {
|
|
61
|
+
if (filePath.endsWith('.json')) {
|
|
62
|
+
try {
|
|
63
|
+
return JSON.parse(readFileSync(filePath, 'utf8'));
|
|
64
|
+
}
|
|
65
|
+
catch (e) {
|
|
66
|
+
throw new ConfigError(`invalid JSON: ${errMsg(e)}`, filePath);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (filePath.endsWith('.yaml') || filePath.endsWith('.yml')) {
|
|
70
|
+
let yaml;
|
|
71
|
+
try {
|
|
72
|
+
yaml = await import('yaml');
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
throw new ConfigError("YAML config requires the 'yaml' package — it's a direct dep of adapter-core, reinstall if missing", filePath);
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
return yaml.parse(readFileSync(filePath, 'utf8'));
|
|
79
|
+
}
|
|
80
|
+
catch (e) {
|
|
81
|
+
throw new ConfigError(`invalid YAML: ${errMsg(e)}`, filePath);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (filePath.endsWith('.ts') || filePath.endsWith('.mjs') || filePath.endsWith('.js')) {
|
|
85
|
+
return loadScript(filePath);
|
|
86
|
+
}
|
|
87
|
+
throw new ConfigError(`unsupported extension: ${filePath}`);
|
|
88
|
+
}
|
|
89
|
+
async function loadScript(filePath) {
|
|
90
|
+
// .mjs / .js: prefer native ESM import so users don't need a transpiler.
|
|
91
|
+
if (filePath.endsWith('.mjs') || filePath.endsWith('.js')) {
|
|
92
|
+
try {
|
|
93
|
+
const mod = await import(pathToFileURL(filePath).href);
|
|
94
|
+
return extractDefault(mod);
|
|
95
|
+
}
|
|
96
|
+
catch (e) {
|
|
97
|
+
throw new ConfigError(`failed to load module: ${errMsg(e)}`, filePath);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// .ts: jiti handles TypeScript without a compile step.
|
|
101
|
+
let createJiti;
|
|
102
|
+
try {
|
|
103
|
+
({ createJiti } = await import('jiti'));
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
throw new ConfigError("TypeScript config requires the 'jiti' package — it's a direct dep of adapter-core, reinstall if missing", filePath);
|
|
107
|
+
}
|
|
108
|
+
try {
|
|
109
|
+
const loader = createJiti(filePath, { interopDefault: true });
|
|
110
|
+
const mod = await loader.import(filePath);
|
|
111
|
+
return extractDefault(mod);
|
|
112
|
+
}
|
|
113
|
+
catch (e) {
|
|
114
|
+
throw new ConfigError(`failed to load TypeScript config: ${errMsg(e)}`, filePath);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
function extractDefault(mod) {
|
|
118
|
+
if (mod && typeof mod === 'object' && 'default' in mod) {
|
|
119
|
+
return mod.default;
|
|
120
|
+
}
|
|
121
|
+
return mod;
|
|
122
|
+
}
|
|
123
|
+
// ── Normalization + validation ──
|
|
124
|
+
function normalize(raw, file) {
|
|
125
|
+
if (raw === null || raw === undefined)
|
|
126
|
+
return {};
|
|
127
|
+
if (typeof raw !== 'object') {
|
|
128
|
+
throw new ConfigError(`config must export an object, got ${typeof raw}`, file);
|
|
129
|
+
}
|
|
130
|
+
const src = raw;
|
|
131
|
+
const out = {};
|
|
132
|
+
if (src.auth !== undefined) {
|
|
133
|
+
out.auth = normalizeAuth(src.auth, file, 'auth');
|
|
134
|
+
}
|
|
135
|
+
// Allow top-level `resources` as convenience shorthand for `auth.resources`.
|
|
136
|
+
if (src.resources !== undefined && out.auth?.resources === undefined) {
|
|
137
|
+
out.auth = { ...(out.auth ?? {}), resources: src.resources };
|
|
138
|
+
}
|
|
139
|
+
if (src.database !== undefined) {
|
|
140
|
+
out.database = normalizeDatabase(src.database, file, 'database');
|
|
141
|
+
}
|
|
142
|
+
return out;
|
|
143
|
+
}
|
|
144
|
+
// ── Database normalization ──
|
|
145
|
+
const VECTOR_METRICS = new Set(['cosine', 'l2', 'hamming']);
|
|
146
|
+
const VECTOR_STORAGE = new Set(['float32', 'int8', 'bit']);
|
|
147
|
+
function normalizeDatabase(raw, file, field) {
|
|
148
|
+
if (raw === null || typeof raw !== 'object') {
|
|
149
|
+
throw new ConfigError(`${field} must be an object`, file, field);
|
|
150
|
+
}
|
|
151
|
+
const src = raw;
|
|
152
|
+
const out = {};
|
|
153
|
+
if (src.indexes !== undefined) {
|
|
154
|
+
out.indexes = expectArray(src.indexes, file, `${field}.indexes`).map((item, i) => normalizeDocumentIndex(item, file, `${field}.indexes[${i}]`));
|
|
155
|
+
}
|
|
156
|
+
if (src.vectorIndexes !== undefined) {
|
|
157
|
+
out.vectorIndexes = expectArray(src.vectorIndexes, file, `${field}.vectorIndexes`).map((item, i) => normalizeVectorIndex(item, file, `${field}.vectorIndexes[${i}]`));
|
|
158
|
+
}
|
|
159
|
+
return out;
|
|
160
|
+
}
|
|
161
|
+
function normalizeDocumentIndex(raw, file, path) {
|
|
162
|
+
const obj = expectObject(raw, file, path);
|
|
163
|
+
expectString(obj.collection, file, `${path}.collection`);
|
|
164
|
+
if (obj.keys === undefined) {
|
|
165
|
+
throw new ConfigError(`missing required field 'keys'`, file, `${path}.keys`);
|
|
166
|
+
}
|
|
167
|
+
const keys = normalizeKeys(obj.keys, file, `${path}.keys`);
|
|
168
|
+
const out = {
|
|
169
|
+
collection: obj.collection,
|
|
170
|
+
keys,
|
|
171
|
+
};
|
|
172
|
+
if (obj.name !== undefined) {
|
|
173
|
+
expectString(obj.name, file, `${path}.name`);
|
|
174
|
+
out.name = obj.name;
|
|
175
|
+
}
|
|
176
|
+
if (obj.unique !== undefined)
|
|
177
|
+
out.unique = expectBool(obj.unique, file, `${path}.unique`);
|
|
178
|
+
if (obj.sparse !== undefined)
|
|
179
|
+
out.sparse = expectBool(obj.sparse, file, `${path}.sparse`);
|
|
180
|
+
if (obj.partial !== undefined) {
|
|
181
|
+
out.partial = expectObject(obj.partial, file, `${path}.partial`);
|
|
182
|
+
}
|
|
183
|
+
if (obj.expireAfterSeconds !== undefined) {
|
|
184
|
+
const v = obj.expireAfterSeconds;
|
|
185
|
+
if (typeof v !== 'number' || !Number.isFinite(v) || v < 0) {
|
|
186
|
+
throw new ConfigError(`expected non-negative number`, file, `${path}.expireAfterSeconds`);
|
|
187
|
+
}
|
|
188
|
+
out.expireAfterSeconds = v;
|
|
189
|
+
}
|
|
190
|
+
return out;
|
|
191
|
+
}
|
|
192
|
+
function normalizeKeys(raw, file, path) {
|
|
193
|
+
// Array form: [['field', 1], ['other', -1]]
|
|
194
|
+
if (Array.isArray(raw)) {
|
|
195
|
+
return raw.map((pair, i) => {
|
|
196
|
+
if (!Array.isArray(pair) || pair.length !== 2) {
|
|
197
|
+
throw new ConfigError(`expected [field, direction] tuple`, file, `${path}[${i}]`);
|
|
198
|
+
}
|
|
199
|
+
const [f, d] = pair;
|
|
200
|
+
if (typeof f !== 'string' || f.length === 0) {
|
|
201
|
+
throw new ConfigError(`field must be a non-empty string`, file, `${path}[${i}][0]`);
|
|
202
|
+
}
|
|
203
|
+
if (d !== 1 && d !== -1) {
|
|
204
|
+
throw new ConfigError(`direction must be 1 or -1`, file, `${path}[${i}][1]`);
|
|
205
|
+
}
|
|
206
|
+
return [f, d];
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
// Object form: { field: 1, other: -1 }
|
|
210
|
+
if (raw !== null && typeof raw === 'object') {
|
|
211
|
+
const obj = raw;
|
|
212
|
+
const out = {};
|
|
213
|
+
for (const [f, d] of Object.entries(obj)) {
|
|
214
|
+
if (d !== 1 && d !== -1) {
|
|
215
|
+
throw new ConfigError(`direction must be 1 or -1`, file, `${path}.${f}`);
|
|
216
|
+
}
|
|
217
|
+
out[f] = d;
|
|
218
|
+
}
|
|
219
|
+
if (Object.keys(out).length === 0) {
|
|
220
|
+
throw new ConfigError(`must declare at least one key field`, file, path);
|
|
221
|
+
}
|
|
222
|
+
return out;
|
|
223
|
+
}
|
|
224
|
+
throw new ConfigError(`expected array or object`, file, path);
|
|
225
|
+
}
|
|
226
|
+
function normalizeVectorIndex(raw, file, path) {
|
|
227
|
+
const obj = expectObject(raw, file, path);
|
|
228
|
+
expectString(obj.collection, file, `${path}.collection`);
|
|
229
|
+
expectString(obj.field, file, `${path}.field`);
|
|
230
|
+
if (typeof obj.dimensions !== 'number' || !Number.isInteger(obj.dimensions) || obj.dimensions <= 0) {
|
|
231
|
+
throw new ConfigError(`dimensions must be a positive integer`, file, `${path}.dimensions`);
|
|
232
|
+
}
|
|
233
|
+
const out = {
|
|
234
|
+
collection: obj.collection,
|
|
235
|
+
field: obj.field,
|
|
236
|
+
dimensions: obj.dimensions,
|
|
237
|
+
};
|
|
238
|
+
if (obj.metric !== undefined) {
|
|
239
|
+
if (typeof obj.metric !== 'string' || !VECTOR_METRICS.has(obj.metric)) {
|
|
240
|
+
throw new ConfigError(`metric must be one of ${[...VECTOR_METRICS].join(', ')}`, file, `${path}.metric`);
|
|
241
|
+
}
|
|
242
|
+
out.metric = obj.metric;
|
|
243
|
+
}
|
|
244
|
+
if (obj.storage !== undefined) {
|
|
245
|
+
if (typeof obj.storage !== 'string' || !VECTOR_STORAGE.has(obj.storage)) {
|
|
246
|
+
throw new ConfigError(`storage must be one of ${[...VECTOR_STORAGE].join(', ')}`, file, `${path}.storage`);
|
|
247
|
+
}
|
|
248
|
+
out.storage = obj.storage;
|
|
249
|
+
}
|
|
250
|
+
if (obj.matryoshka !== undefined) {
|
|
251
|
+
out.matryoshka = expectBool(obj.matryoshka, file, `${path}.matryoshka`);
|
|
252
|
+
}
|
|
253
|
+
if (obj.multiVector !== undefined) {
|
|
254
|
+
out.multiVector = expectBool(obj.multiVector, file, `${path}.multiVector`);
|
|
255
|
+
}
|
|
256
|
+
return out;
|
|
257
|
+
}
|
|
258
|
+
function expectBool(v, file, field) {
|
|
259
|
+
if (typeof v !== 'boolean') {
|
|
260
|
+
throw new ConfigError(`expected boolean`, file, field);
|
|
261
|
+
}
|
|
262
|
+
return v;
|
|
263
|
+
}
|
|
264
|
+
function normalizeAuth(raw, file, field) {
|
|
265
|
+
if (raw === null || typeof raw !== 'object') {
|
|
266
|
+
throw new ConfigError(`${field} must be an object`, file, field);
|
|
267
|
+
}
|
|
268
|
+
const src = raw;
|
|
269
|
+
const out = {};
|
|
270
|
+
if (src.resources !== undefined) {
|
|
271
|
+
out.resources = expectArray(src.resources, file, `${field}.resources`).map((r, i) => {
|
|
272
|
+
const path = `${field}.resources[${i}]`;
|
|
273
|
+
const obj = expectObject(r, file, path);
|
|
274
|
+
expectString(obj.name, file, `${path}.name`);
|
|
275
|
+
expectString(obj.title, file, `${path}.title`);
|
|
276
|
+
expectArrayOfStrings(obj.actions, file, `${path}.actions`);
|
|
277
|
+
return obj;
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
if (src.groups !== undefined) {
|
|
281
|
+
out.groups = expectArray(src.groups, file, `${field}.groups`).map((g, i) => {
|
|
282
|
+
const path = `${field}.groups[${i}]`;
|
|
283
|
+
const obj = expectObject(g, file, path);
|
|
284
|
+
expectString(obj.name, file, `${path}.name`);
|
|
285
|
+
return obj;
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
if (src.relations !== undefined) {
|
|
289
|
+
out.relations = expectArray(src.relations, file, `${field}.relations`).map((r, i) => {
|
|
290
|
+
const path = `${field}.relations[${i}]`;
|
|
291
|
+
const obj = expectObject(r, file, path);
|
|
292
|
+
expectString(obj.relation_name, file, `${path}.relation_name`);
|
|
293
|
+
expectString(obj.title, file, `${path}.title`);
|
|
294
|
+
return obj;
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
if (src.registration !== undefined) {
|
|
298
|
+
const obj = expectObject(src.registration, file, `${field}.registration`);
|
|
299
|
+
out.registration = { fields: expectArray(obj.fields, file, `${field}.registration.fields`) };
|
|
300
|
+
}
|
|
301
|
+
if (src.oauth !== undefined) {
|
|
302
|
+
const obj = expectObject(src.oauth, file, `${field}.oauth`);
|
|
303
|
+
const providers = {};
|
|
304
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
305
|
+
const path = `${field}.oauth.${key}`;
|
|
306
|
+
const prov = expectObject(value, file, path);
|
|
307
|
+
expectString(prov.client_id, file, `${path}.client_id`);
|
|
308
|
+
validateSecretRef(prov.client_secret, file, `${path}.client_secret`);
|
|
309
|
+
expectArrayOfStrings(prov.scopes, file, `${path}.scopes`);
|
|
310
|
+
providers[key] = prov;
|
|
311
|
+
}
|
|
312
|
+
out.oauth = providers;
|
|
313
|
+
}
|
|
314
|
+
if (src.security !== undefined) {
|
|
315
|
+
out.security = expectObject(src.security, file, `${field}.security`);
|
|
316
|
+
}
|
|
317
|
+
if (src.branding !== undefined) {
|
|
318
|
+
out.branding = expectObject(src.branding, file, `${field}.branding`);
|
|
319
|
+
}
|
|
320
|
+
return out;
|
|
321
|
+
}
|
|
322
|
+
// ── Small validators ──
|
|
323
|
+
function expectObject(v, file, field) {
|
|
324
|
+
if (v === null || typeof v !== 'object' || Array.isArray(v)) {
|
|
325
|
+
throw new ConfigError(`expected object`, file, field);
|
|
326
|
+
}
|
|
327
|
+
return v;
|
|
328
|
+
}
|
|
329
|
+
function expectArray(v, file, field) {
|
|
330
|
+
if (!Array.isArray(v))
|
|
331
|
+
throw new ConfigError(`expected array`, file, field);
|
|
332
|
+
return v;
|
|
333
|
+
}
|
|
334
|
+
function expectString(v, file, field) {
|
|
335
|
+
if (typeof v !== 'string' || v.length === 0) {
|
|
336
|
+
throw new ConfigError(`expected non-empty string`, file, field);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
function expectArrayOfStrings(v, file, field) {
|
|
340
|
+
if (!Array.isArray(v) || !v.every((x) => typeof x === 'string')) {
|
|
341
|
+
throw new ConfigError(`expected string[]`, file, field);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
function validateSecretRef(v, file, field) {
|
|
345
|
+
if (typeof v === 'string')
|
|
346
|
+
return;
|
|
347
|
+
if (v !== null && typeof v === 'object' && typeof v.env === 'string')
|
|
348
|
+
return;
|
|
349
|
+
throw new ConfigError(`expected secret (string or { env: "VAR_NAME" })`, file, field);
|
|
350
|
+
}
|
|
351
|
+
function errMsg(e) {
|
|
352
|
+
if (e instanceof Error)
|
|
353
|
+
return e.message;
|
|
354
|
+
return String(e);
|
|
355
|
+
}
|
|
356
|
+
//# sourceMappingURL=config-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../src/config-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAuBzC,MAAM,gBAAgB,GAAG;IACvB,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;IACrB,uBAAuB;IACvB,sBAAsB;IACtB,uBAAuB;CACf,CAAC;AASX,MAAM,OAAO,WAAY,SAAQ,KAAK;IAGlB;IACA;IAHlB,YACE,OAAe,EACC,OAAsB,IAAI,EAC1B,KAAc;QAE9B,KAAK,CACH,IAAI;YACF,CAAC,CAAC,eAAe,OAAO,QAAQ,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG;YACrE,CAAC,CAAC,eAAe,OAAO,EAAE,CAC7B,CAAC;QAPc,SAAI,GAAJ,IAAI,CAAsB;QAC1B,UAAK,GAAL,KAAK,CAAS;QAO9B,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAmB;IAC3D,MAAM,UAAU,GAAG,gBAAgB;SAChC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;SAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACpC,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,WAAW,CACnB,+DAA+D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACvF,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;IAChC,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACpC,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,QAAgB;IACvC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,WAAW,CAAC,iBAAiB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,IAAI,IAA2B,CAAC;QAChC,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,WAAW,CACnB,mGAAmG,EACnG,QAAQ,CACT,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,WAAW,CAAC,iBAAiB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACtF,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,IAAI,WAAW,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,yEAAyE;IACzE,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;YACvD,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,WAAW,CAAC,0BAA0B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IACD,uDAAuD;IACvD,IAAI,UAA4C,CAAC;IACjD,IAAI,CAAC;QACH,CAAC,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,WAAW,CACnB,yGAAyG,EACzG,QAAQ,CACT,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,WAAW,CAAC,qCAAqC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACpF,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,GAAY;IAClC,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,SAAS,IAAK,GAA+B,EAAE,CAAC;QACpF,OAAQ,GAA+B,CAAC,OAAO,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,mCAAmC;AAEnC,SAAS,SAAS,CAAC,GAAY,EAAE,IAAY;IAC3C,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACjD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,WAAW,CAAC,qCAAqC,OAAO,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,GAAG,GAAG,GAA8B,CAAC;IAC3C,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC3B,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IACD,6EAA6E;IAC7E,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;QACrE,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAyC,EAAE,CAAC;IAC/F,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC/B,GAAG,CAAC,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+BAA+B;AAE/B,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5D,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAE3D,SAAS,iBAAiB,CAAC,GAAY,EAAE,IAAY,EAAE,KAAa;IAClE,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5C,MAAM,IAAI,WAAW,CAAC,GAAG,KAAK,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,GAAG,GAAG,GAA8B,CAAC;IAC3C,MAAM,GAAG,GAAwB,EAAE,CAAC;IAEpC,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC9B,GAAG,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAC/E,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,YAAY,CAAC,GAAG,CAAC,CAC7D,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACpC,GAAG,CAAC,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,KAAK,gBAAgB,CAAC,CAAC,GAAG,CACpF,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,kBAAkB,CAAC,GAAG,CAAC,CAC9E,CAAC;IACJ,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,sBAAsB,CAC7B,GAAY,EACZ,IAAY,EACZ,IAAY;IAEZ,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,IAAI,aAAa,CAAC,CAAC;IAEzD,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,WAAW,CAAC,+BAA+B,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;IAE3D,MAAM,GAAG,GAA6B;QACpC,UAAU,EAAE,GAAG,CAAC,UAAoB;QACpC,IAAI;KACL,CAAC;IACF,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC3B,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;QAC7C,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAc,CAAC;IAChC,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;QAAE,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,CAAC,CAAC;IAC1F,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;QAAE,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,CAAC,CAAC;IAC1F,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC9B,GAAG,CAAC,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,UAAU,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,GAAG,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,GAAG,CAAC,kBAAkB,CAAC;QACjC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,WAAW,CACnB,8BAA8B,EAC9B,IAAI,EACJ,GAAG,IAAI,qBAAqB,CAC7B,CAAC;QACJ,CAAC;QACD,GAAG,CAAC,kBAAkB,GAAG,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CACpB,GAAY,EACZ,IAAY,EACZ,IAAY;IAEZ,4CAA4C;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,WAAW,CACnB,mCAAmC,EACnC,IAAI,EACJ,GAAG,IAAI,IAAI,CAAC,GAAG,CAChB,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;YACpB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5C,MAAM,IAAI,WAAW,CAAC,kCAAkC,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;YACtF,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,WAAW,CAAC,2BAA2B,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/E,CAAC;YACD,OAAO,CAAC,CAAC,EAAE,CAAC,CAAqB,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,uCAAuC;IACvC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,GAA8B,CAAC;QAC3C,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,WAAW,CAAC,2BAA2B,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3E,CAAC;YACD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,WAAW,CAAC,qCAAqC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,IAAI,WAAW,CAAC,0BAA0B,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,oBAAoB,CAC3B,GAAY,EACZ,IAAY,EACZ,IAAY;IAEZ,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,IAAI,aAAa,CAAC,CAAC;IACzD,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,CAAC;IAE/C,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;QACnG,MAAM,IAAI,WAAW,CAAC,uCAAuC,EAAE,IAAI,EAAE,GAAG,IAAI,aAAa,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,GAAG,GAA2B;QAClC,UAAU,EAAE,GAAG,CAAC,UAAoB;QACpC,KAAK,EAAE,GAAG,CAAC,KAAe;QAC1B,UAAU,EAAE,GAAG,CAAC,UAAU;KAC3B,CAAC;IAEF,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,WAAW,CACnB,yBAAyB,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACzD,IAAI,EACJ,GAAG,IAAI,SAAS,CACjB,CAAC;QACJ,CAAC;QACD,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAA0C,CAAC;IAC9D,CAAC;IACD,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,WAAW,CACnB,0BAA0B,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC1D,IAAI,EACJ,GAAG,IAAI,UAAU,CAClB,CAAC;QACJ,CAAC;QACD,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAA4C,CAAC;IACjE,CAAC;IACD,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACjC,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,IAAI,aAAa,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAClC,GAAG,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,cAAc,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,CAAU,EAAE,IAAY,EAAE,KAAa;IACzD,IAAI,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,WAAW,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,aAAa,CAAC,GAAY,EAAE,IAAY,EAAE,KAAa;IAC9D,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5C,MAAM,IAAI,WAAW,CAAC,GAAG,KAAK,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,GAAG,GAAG,GAA8B,CAAC;IAC3C,MAAM,GAAG,GAAoB,EAAE,CAAC;IAEhC,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAChC,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAClF,MAAM,IAAI,GAAG,GAAG,KAAK,cAAc,CAAC,GAAG,CAAC;YACxC,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACxC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;YAC7C,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,CAAC;YAC/C,oBAAoB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,UAAU,CAAC,CAAC;YAC3D,OAAO,GAAmE,CAAC;QAC7E,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC7B,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACzE,MAAM,IAAI,GAAG,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC;YACrC,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACxC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;YAC7C,OAAO,GAAgE,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAChC,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAClF,MAAM,IAAI,GAAG,GAAG,KAAK,cAAc,CAAC,GAAG,CAAC;YACxC,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACxC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,IAAI,gBAAgB,CAAC,CAAC;YAC/D,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,CAAC;YAC/C,OAAO,GAAmE,CAAC;QAC7E,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,eAAe,CAAC,CAAC;QAC1E,GAAG,CAAC,YAAY,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,sBAAsB,CAA8F,EAAE,CAAC;IAC5L,CAAC;IAED,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC;QAC5D,MAAM,SAAS,GAA4C,EAAE,CAAC;QAC9D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,GAAG,KAAK,UAAU,GAAG,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7C,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,YAAY,CAAC,CAAC;YACxD,iBAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,IAAI,gBAAgB,CAAC,CAAC;YACrE,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,CAAC,CAAC;YAC1D,SAAS,CAAC,GAAG,CAAC,GAAG,IAA0C,CAAC;QAC9D,CAAC;QACD,GAAG,CAAC,KAAK,GAAG,SAAgD,CAAC;IAC/D,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC/B,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,WAAW,CAAgC,CAAC;IACtG,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC/B,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,WAAW,CAAgC,CAAC;IACtG,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,yBAAyB;AAEzB,SAAS,YAAY,CAAC,CAAU,EAAE,IAAY,EAAE,KAAa;IAC3D,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,WAAW,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,CAA4B,CAAC;AACtC,CAAC;AAED,SAAS,WAAW,CAAC,CAAU,EAAE,IAAY,EAAE,KAAa;IAC1D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,WAAW,CAAC,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5E,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,YAAY,CAAC,CAAU,EAAE,IAAY,EAAE,KAAa;IAC3D,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,WAAW,CAAC,2BAA2B,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,CAAU,EAAE,IAAY,EAAE,KAAa;IACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,WAAW,CAAC,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAU,EAAE,IAAY,EAAE,KAAa;IAChE,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO;IAClC,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAQ,CAA6B,CAAC,GAAG,KAAK,QAAQ;QAAE,OAAO;IAC1G,MAAM,IAAI,WAAW,CACnB,iDAAiD,EACjD,IAAI,EACJ,KAAK,CACN,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,CAAU;IACxB,IAAI,CAAC,YAAY,KAAK;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC;IACzC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC"}
|
package/dist/events.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
type EventsAPI = {
|
|
2
|
+
buildEvents: (opts: any) => Promise<any>;
|
|
3
|
+
integrateEventsWithManifest: (manifestPath: string, em: any) => Promise<void>;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Dynamically load the events build API from `@maravilla-labs/functions`.
|
|
7
|
+
* Mirrors {@link loadFunctionsAPI} — prefers the installed package, falls
|
|
8
|
+
* back to workspace paths, no-op shim if neither resolves.
|
|
9
|
+
*/
|
|
10
|
+
export declare function loadEventsAPI(): Promise<EventsAPI>;
|
|
11
|
+
/**
|
|
12
|
+
* Build events from a project directory and merge into the manifest.
|
|
13
|
+
* Safe no-op if no `events.ts` / `events/` present.
|
|
14
|
+
*/
|
|
15
|
+
export declare function buildAndIntegrateEvents(projectDir: string, outDir: string, log?: {
|
|
16
|
+
minor: (msg: string) => void;
|
|
17
|
+
error: (msg: string) => void;
|
|
18
|
+
warn: (msg: string) => void;
|
|
19
|
+
}): Promise<void>;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAEA,KAAK,SAAS,GAAG;IACf,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,2BAA2B,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/E,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,SAAS,CAAC,CAqBxD;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,GAAG,CAAC,EAAE;IAAE,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GAChG,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
|
package/dist/events.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
/**
|
|
3
|
+
* Dynamically load the events build API from `@maravilla-labs/functions`.
|
|
4
|
+
* Mirrors {@link loadFunctionsAPI} — prefers the installed package, falls
|
|
5
|
+
* back to workspace paths, no-op shim if neither resolves.
|
|
6
|
+
*/
|
|
7
|
+
export async function loadEventsAPI() {
|
|
8
|
+
const fallbacks = [
|
|
9
|
+
'@maravilla-labs/functions',
|
|
10
|
+
'../../functions/dist/index.js',
|
|
11
|
+
'../../functions/src/index.ts',
|
|
12
|
+
];
|
|
13
|
+
for (const spec of fallbacks) {
|
|
14
|
+
try {
|
|
15
|
+
const mod = await import(spec);
|
|
16
|
+
if (mod.buildEvents && mod.integrateEventsWithManifest) {
|
|
17
|
+
return {
|
|
18
|
+
buildEvents: mod.buildEvents,
|
|
19
|
+
integrateEventsWithManifest: mod.integrateEventsWithManifest,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
catch (_) { /* try next */ }
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
buildEvents: async () => null,
|
|
27
|
+
integrateEventsWithManifest: async () => { },
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Build events from a project directory and merge into the manifest.
|
|
32
|
+
* Safe no-op if no `events.ts` / `events/` present.
|
|
33
|
+
*/
|
|
34
|
+
export async function buildAndIntegrateEvents(projectDir, outDir, log) {
|
|
35
|
+
const hasRoot = existsSync(`${projectDir}/events.ts`)
|
|
36
|
+
|| existsSync(`${projectDir}/events.js`)
|
|
37
|
+
|| existsSync(`${projectDir}/events.mjs`);
|
|
38
|
+
const hasDir = existsSync(`${projectDir}/events`);
|
|
39
|
+
if (!hasRoot && !hasDir) {
|
|
40
|
+
log?.minor('No events found, skipping events build');
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const { buildEvents, integrateEventsWithManifest } = await loadEventsAPI();
|
|
44
|
+
log?.minor('Building events from: ' + projectDir);
|
|
45
|
+
let eventsManifest;
|
|
46
|
+
try {
|
|
47
|
+
eventsManifest = await buildEvents({
|
|
48
|
+
projectDir,
|
|
49
|
+
outputDir: outDir,
|
|
50
|
+
production: true,
|
|
51
|
+
minify: true,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
log?.error('Failed to build events: ' + (error?.message || error));
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (!eventsManifest)
|
|
59
|
+
return;
|
|
60
|
+
await integrateEventsWithManifest(`${outDir}/manifest.json`, eventsManifest);
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAOrC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,SAAS,GAAG;QAChB,2BAA2B;QAC3B,+BAA+B;QAC/B,8BAA8B;KAC/B,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAQ,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,2BAA2B,EAAE,CAAC;gBACvD,OAAO;oBACL,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,2BAA2B,EAAE,GAAG,CAAC,2BAA2B;iBAC7D,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;IAChC,CAAC;IACD,OAAO;QACL,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;QAC7B,2BAA2B,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,UAAkB,EAClB,MAAc,EACd,GAAiG;IAEjG,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,UAAU,YAAY,CAAC;WAChD,UAAU,CAAC,GAAG,UAAU,YAAY,CAAC;WACrC,UAAU,CAAC,GAAG,UAAU,aAAa,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,UAAU,SAAS,CAAC,CAAC;IAClD,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACxB,GAAG,EAAE,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,2BAA2B,EAAE,GAAG,MAAM,aAAa,EAAE,CAAC;IAE3E,GAAG,EAAE,KAAK,CAAC,wBAAwB,GAAG,UAAU,CAAC,CAAC;IAClD,IAAI,cAAc,CAAC;IACnB,IAAI,CAAC;QACH,cAAc,GAAG,MAAM,WAAW,CAAC;YACjC,UAAU;YACV,SAAS,EAAE,MAAM;YACjB,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,GAAG,EAAE,KAAK,CAAC,0BAA0B,GAAG,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC;QACnE,OAAO;IACT,CAAC;IAED,IAAI,CAAC,cAAc;QAAE,OAAO;IAE5B,MAAM,2BAA2B,CAAC,GAAG,MAAM,gBAAgB,EAAE,cAAc,CAAC,CAAC;AAC/E,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,9 @@ export { bundleServerEntry, analyzeBundle } from './bundle.js';
|
|
|
2
2
|
export { generateManifest, writeManifest, filterStaticAssets } from './manifest.js';
|
|
3
3
|
export { collectAssets } from './assets.js';
|
|
4
4
|
export { loadFunctionsAPI, buildAndIntegrateFunctions } from './functions.js';
|
|
5
|
+
export { loadEventsAPI, buildAndIntegrateEvents } from './events.js';
|
|
5
6
|
export { WORKER_POLYFILLS } from './polyfills.js';
|
|
6
|
-
export
|
|
7
|
+
export { loadMaravillaConfig, ConfigError } from './config-loader.js';
|
|
8
|
+
export type { LoadResult } from './config-loader.js';
|
|
9
|
+
export type { ManifestV2, RoutingConfig, DynamicRoutes, RouteConfig, EnvConfig, Features, FunctionsConfig, FunctionRoute, FunctionsMetadata, EventsConfig, EventHandlerDescriptor, EventTrigger, EventTriggerKv, EventTriggerDb, EventTriggerAuth, EventTriggerSchedule, EventTriggerQueue, EventTriggerChannel, EventTriggerDeploy, EventTriggerRen, AdapterOptions, BundleOptions, ManifestOptions, } from './types.js';
|
|
7
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,YAAY,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,SAAS,EACT,QAAQ,EACR,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,eAAe,GAChB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,SAAS,EACT,QAAQ,EACR,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,aAAa,EACb,eAAe,GAChB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,5 +2,7 @@ export { bundleServerEntry, analyzeBundle } from './bundle.js';
|
|
|
2
2
|
export { generateManifest, writeManifest, filterStaticAssets } from './manifest.js';
|
|
3
3
|
export { collectAssets } from './assets.js';
|
|
4
4
|
export { loadFunctionsAPI, buildAndIntegrateFunctions } from './functions.js';
|
|
5
|
+
export { loadEventsAPI, buildAndIntegrateEvents } from './events.js';
|
|
5
6
|
export { WORKER_POLYFILLS } from './polyfills.js';
|
|
7
|
+
export { loadMaravillaConfig, ConfigError } from './config-loader.js';
|
|
6
8
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/manifest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAmB9D;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAOhE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,UAAU,CAgErE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI,CAKxE"}
|
package/dist/manifest.js
CHANGED
|
@@ -6,11 +6,13 @@ const STATIC_ASSET_PATTERNS = [
|
|
|
6
6
|
'/assets/',
|
|
7
7
|
'/_nuxt/',
|
|
8
8
|
'/_build/',
|
|
9
|
+
'/static/',
|
|
9
10
|
];
|
|
10
11
|
const STATIC_ASSET_EXTENSIONS = [
|
|
11
12
|
'.txt', '.svg', '.png', '.jpg', '.jpeg', '.webp', '.gif', '.ico',
|
|
12
13
|
'.woff', '.woff2', '.ttf', '.eot',
|
|
13
14
|
'.css', '.js', '.mjs',
|
|
15
|
+
'.webmanifest', '.json',
|
|
14
16
|
];
|
|
15
17
|
/**
|
|
16
18
|
* Filter static assets from a list of all files.
|
|
@@ -28,7 +30,7 @@ export function filterStaticAssets(allAssets) {
|
|
|
28
30
|
* Generate a Maravilla manifest.json conforming to the Rust Manifest struct.
|
|
29
31
|
*/
|
|
30
32
|
export function generateManifest(options) {
|
|
31
|
-
const { adapterName, prerenderedPaths, staticAssets, include = ['/*'], exclude = [], envPrefix = 'PUBLIC_', features, extraMetadata = {}, } = options;
|
|
33
|
+
const { adapterName, prerenderedPaths, staticAssets, include = ['/*'], exclude = [], envPrefix = 'PUBLIC_', features, extraMetadata = {}, auth, database, } = options;
|
|
32
34
|
const prerendered = prerenderedPaths.map(path => {
|
|
33
35
|
if (path === '/')
|
|
34
36
|
return '/index.html';
|
|
@@ -69,6 +71,8 @@ export function generateManifest(options) {
|
|
|
69
71
|
asset_count: staticAssets.length,
|
|
70
72
|
...extraMetadata,
|
|
71
73
|
},
|
|
74
|
+
...(auth ? { auth } : {}),
|
|
75
|
+
...(database ? { database } : {}),
|
|
72
76
|
};
|
|
73
77
|
}
|
|
74
78
|
/**
|
package/dist/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxC,yEAAyE;AACzE,MAAM,qBAAqB,GAAG;IAC5B,QAAQ;IACR,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;CACX,CAAC;AAEF,MAAM,uBAAuB,GAAG;IAC9B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;IAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;IACjC,MAAM,EAAE,KAAK,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -2,6 +2,53 @@
|
|
|
2
2
|
* Manifest types matching the Rust Manifest struct in
|
|
3
3
|
* crates/server-integration/src/manifest/types.rs
|
|
4
4
|
*/
|
|
5
|
+
/**
|
|
6
|
+
* Structural copy of `@maravilla-labs/platform/config`'s `AuthConfigBlock`.
|
|
7
|
+
* Duplicated here so `adapter-core` has no runtime dependency on the platform
|
|
8
|
+
* package — adapters can build independently without a workspace resolve
|
|
9
|
+
* step. Keep this in sync with `packages/platform/src/config.ts`.
|
|
10
|
+
*/
|
|
11
|
+
export interface AuthConfigBlock {
|
|
12
|
+
resources?: Array<Record<string, unknown>>;
|
|
13
|
+
groups?: Array<Record<string, unknown>>;
|
|
14
|
+
relations?: Array<Record<string, unknown>>;
|
|
15
|
+
registration?: {
|
|
16
|
+
fields: Array<Record<string, unknown>>;
|
|
17
|
+
};
|
|
18
|
+
oauth?: Record<string, Record<string, unknown>>;
|
|
19
|
+
security?: Record<string, unknown>;
|
|
20
|
+
branding?: Record<string, unknown>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Structural copy of `@maravilla-labs/platform/config`'s `DatabaseConfigBlock`.
|
|
24
|
+
* Mirrors the Rust `DatabaseManifest` at
|
|
25
|
+
* `crates/platform/src/database/manifest.rs`. Kept permissive at this layer —
|
|
26
|
+
* deep validation happens in the Rust reconciler at boot.
|
|
27
|
+
*/
|
|
28
|
+
export interface DatabaseConfigBlock {
|
|
29
|
+
/** MongoDB-style secondary indexes. */
|
|
30
|
+
indexes?: Array<DocumentIndexDeclaration>;
|
|
31
|
+
/** sqlite-vec-backed vector indexes. */
|
|
32
|
+
vectorIndexes?: Array<VectorIndexDeclaration>;
|
|
33
|
+
}
|
|
34
|
+
export interface DocumentIndexDeclaration {
|
|
35
|
+
collection: string;
|
|
36
|
+
name?: string;
|
|
37
|
+
keys: Array<[string, 1 | -1]> | Record<string, 1 | -1>;
|
|
38
|
+
unique?: boolean;
|
|
39
|
+
sparse?: boolean;
|
|
40
|
+
partial?: Record<string, unknown>;
|
|
41
|
+
expireAfterSeconds?: number;
|
|
42
|
+
}
|
|
43
|
+
export interface VectorIndexDeclaration {
|
|
44
|
+
collection: string;
|
|
45
|
+
field: string;
|
|
46
|
+
dimensions: number;
|
|
47
|
+
metric?: 'cosine' | 'l2' | 'hamming';
|
|
48
|
+
storage?: 'float32' | 'int8' | 'bit';
|
|
49
|
+
matryoshka?: boolean;
|
|
50
|
+
multiVector?: boolean;
|
|
51
|
+
}
|
|
5
52
|
export interface ManifestV2 {
|
|
6
53
|
version: 2;
|
|
7
54
|
runtime: 'maravilla';
|
|
@@ -13,6 +60,23 @@ export interface ManifestV2 {
|
|
|
13
60
|
features: Features;
|
|
14
61
|
metadata: Record<string, unknown>;
|
|
15
62
|
functions?: FunctionsConfig;
|
|
63
|
+
/**
|
|
64
|
+
* Optional event handlers discovered from `events.ts` / `events/**\/*.ts`.
|
|
65
|
+
* Each handler is registered against a trigger (kv/db/schedule/...) and
|
|
66
|
+
* invoked by the Rust event dispatcher when matching events arrive.
|
|
67
|
+
*/
|
|
68
|
+
events?: EventsConfig;
|
|
69
|
+
/**
|
|
70
|
+
* Optional auth settings declared in the developer's `maravilla.config.*`.
|
|
71
|
+
* Reconciled into delivery on deploy activation. Missing = nothing to apply.
|
|
72
|
+
*/
|
|
73
|
+
auth?: AuthConfigBlock;
|
|
74
|
+
/**
|
|
75
|
+
* Optional database settings declared in `maravilla.config.*`.
|
|
76
|
+
* Reconciled (upsert-only) on platform boot — provisions the declared
|
|
77
|
+
* secondary indexes and vector indexes in the tenant's SQLite.
|
|
78
|
+
*/
|
|
79
|
+
database?: DatabaseConfigBlock;
|
|
16
80
|
}
|
|
17
81
|
export interface RoutingConfig {
|
|
18
82
|
prerendered: string[];
|
|
@@ -55,6 +119,73 @@ export interface FunctionsMetadata {
|
|
|
55
119
|
count: number;
|
|
56
120
|
buildTime: string;
|
|
57
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Events config emitted into the manifest. Identical shape to the
|
|
124
|
+
* standalone `events.json` produced by `@maravilla-labs/functions`
|
|
125
|
+
* `buildEvents()` — Rust deserializes both via the same type.
|
|
126
|
+
*/
|
|
127
|
+
export interface EventsConfig {
|
|
128
|
+
version: number;
|
|
129
|
+
bundle: string;
|
|
130
|
+
handlers: EventHandlerDescriptor[];
|
|
131
|
+
buildTime?: string;
|
|
132
|
+
}
|
|
133
|
+
export interface EventHandlerDescriptor {
|
|
134
|
+
/** Stable handler id (usually the export name). */
|
|
135
|
+
id: string;
|
|
136
|
+
/** Name of the exported member in the events bundle. */
|
|
137
|
+
export: string;
|
|
138
|
+
/** Source file, relative to the project root. */
|
|
139
|
+
file?: string;
|
|
140
|
+
/** Trigger configuration — the dispatcher uses this for match logic. */
|
|
141
|
+
trigger: EventTrigger;
|
|
142
|
+
}
|
|
143
|
+
export type EventTrigger = EventTriggerKv | EventTriggerDb | EventTriggerAuth | EventTriggerSchedule | EventTriggerQueue | EventTriggerChannel | EventTriggerDeploy | EventTriggerRen;
|
|
144
|
+
export interface EventTriggerKv {
|
|
145
|
+
kind: 'kv';
|
|
146
|
+
/** KV namespace (e.g. "cache", "config"). Omit to match all namespaces. */
|
|
147
|
+
namespace?: string;
|
|
148
|
+
/** Glob-style key pattern (e.g. "user:*"). Omit to match all keys. */
|
|
149
|
+
keyPattern?: string;
|
|
150
|
+
/** Operation filter; omit to match put + delete + expired. */
|
|
151
|
+
op?: 'put' | 'delete' | 'expired';
|
|
152
|
+
}
|
|
153
|
+
export interface EventTriggerDb {
|
|
154
|
+
kind: 'db';
|
|
155
|
+
collection: string;
|
|
156
|
+
op?: 'insert' | 'update' | 'delete';
|
|
157
|
+
}
|
|
158
|
+
export interface EventTriggerAuth {
|
|
159
|
+
kind: 'auth';
|
|
160
|
+
op?: 'registered' | 'logged_in' | 'logged_out' | 'logged_out_all' | 'deleted' | 'updated';
|
|
161
|
+
}
|
|
162
|
+
export interface EventTriggerSchedule {
|
|
163
|
+
kind: 'schedule';
|
|
164
|
+
cron: string;
|
|
165
|
+
}
|
|
166
|
+
export interface EventTriggerQueue {
|
|
167
|
+
kind: 'queue';
|
|
168
|
+
name: string;
|
|
169
|
+
batch?: number;
|
|
170
|
+
maxAttempts?: number;
|
|
171
|
+
}
|
|
172
|
+
export interface EventTriggerChannel {
|
|
173
|
+
kind: 'channel';
|
|
174
|
+
channel: string;
|
|
175
|
+
type?: string;
|
|
176
|
+
}
|
|
177
|
+
export interface EventTriggerDeploy {
|
|
178
|
+
kind: 'deploy';
|
|
179
|
+
phase: 'ready' | 'draining' | 'stopped';
|
|
180
|
+
}
|
|
181
|
+
export interface EventTriggerRen {
|
|
182
|
+
kind: 'ren';
|
|
183
|
+
match: {
|
|
184
|
+
r?: string;
|
|
185
|
+
t?: string;
|
|
186
|
+
ns?: string;
|
|
187
|
+
};
|
|
188
|
+
}
|
|
58
189
|
export interface AdapterOptions {
|
|
59
190
|
/** Output directory (default: '.maravilla') */
|
|
60
191
|
out?: string;
|
|
@@ -88,5 +219,16 @@ export interface ManifestOptions {
|
|
|
88
219
|
envPrefix?: string;
|
|
89
220
|
features: Partial<Features>;
|
|
90
221
|
extraMetadata?: Record<string, unknown>;
|
|
222
|
+
/**
|
|
223
|
+
* Optional auth block loaded from `maravilla.config.*` via
|
|
224
|
+
* {@link loadMaravillaConfig}. Passed through to the emitted manifest
|
|
225
|
+
* unchanged; reconciled into delivery on deploy.
|
|
226
|
+
*/
|
|
227
|
+
auth?: AuthConfigBlock;
|
|
228
|
+
/**
|
|
229
|
+
* Optional database block loaded from `maravilla.config.*`. Emitted
|
|
230
|
+
* into the manifest as-is; the Rust reconciler interprets it at boot.
|
|
231
|
+
*/
|
|
232
|
+
database?: DatabaseConfigBlock;
|
|
91
233
|
}
|
|
92
234
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,EAAE,SAAS,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maravilla-labs/adapter-core",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Shared utilities for Maravilla Runtime framework adapters",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -38,7 +38,9 @@
|
|
|
38
38
|
}
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"esbuild": "^0.25.0"
|
|
41
|
+
"esbuild": "^0.25.0",
|
|
42
|
+
"jiti": "^2.4.2",
|
|
43
|
+
"yaml": "^2.6.0"
|
|
42
44
|
},
|
|
43
45
|
"devDependencies": {
|
|
44
46
|
"@types/node": "^20.0.0",
|