@maravilla-labs/functions 0.2.0 → 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.
@@ -0,0 +1,21 @@
1
+ import type { BuildEventsOptions, EventsManifest } from './types.js';
2
+ /**
3
+ * Build the events bundle and emit `events.js` + `events.json` into the
4
+ * output directory. Returns the manifest (or null if no events present).
5
+ *
6
+ * Single-bundle strategy:
7
+ * 1. Discover event source files.
8
+ * 2. Generate a temp entry that imports them, builds a registry, and exposes
9
+ * both `globalThis.handleEvent` (for the Deno isolate) and a named
10
+ * `__maravilla_handlers_list` export (for Node introspection).
11
+ * 3. esbuild it once, ESM, platform-neutral, inlining the pure factory
12
+ * helpers from `@maravilla-labs/platform/events`.
13
+ * 4. Dynamic `import()` the produced bundle to read the handlers list and
14
+ * emit `events.json`.
15
+ */
16
+ export declare function buildEvents(options?: BuildEventsOptions): Promise<EventsManifest | null>;
17
+ /** Merge the events manifest into an existing `manifest.json`. The
18
+ * embedded shape mirrors the standalone `events.json` so the Rust
19
+ * platform::events::EventsManifest deserializer accepts both. */
20
+ export declare function integrateEventsWithManifest(manifestPath: string, eventsManifest: EventsManifest | null): Promise<void>;
21
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/events/build.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAA0B,MAAM,YAAY,CAAC;AAE7F;;;;;;;;;;;;;GAaG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CA+ElG;AAqCD;;kEAEkE;AAClE,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,cAAc,GAAG,IAAI,GACpC,OAAO,CAAC,IAAI,CAAC,CAQf"}
@@ -0,0 +1,122 @@
1
+ import { promises as fs } from 'node:fs';
2
+ import { join, resolve } from 'node:path';
3
+ import { pathToFileURL } from 'node:url';
4
+ import * as esbuild from 'esbuild';
5
+ import { discoverEventSources } from './discover.js';
6
+ import { generateEventsEntry } from './generator.js';
7
+ /**
8
+ * Build the events bundle and emit `events.js` + `events.json` into the
9
+ * output directory. Returns the manifest (or null if no events present).
10
+ *
11
+ * Single-bundle strategy:
12
+ * 1. Discover event source files.
13
+ * 2. Generate a temp entry that imports them, builds a registry, and exposes
14
+ * both `globalThis.handleEvent` (for the Deno isolate) and a named
15
+ * `__maravilla_handlers_list` export (for Node introspection).
16
+ * 3. esbuild it once, ESM, platform-neutral, inlining the pure factory
17
+ * helpers from `@maravilla-labs/platform/events`.
18
+ * 4. Dynamic `import()` the produced bundle to read the handlers list and
19
+ * emit `events.json`.
20
+ */
21
+ export async function buildEvents(options = {}) {
22
+ const { projectDir = process.cwd(), outputDir = '.maravilla', minify = false, sourcemap = false, production = false, } = options;
23
+ const resolvedProject = resolve(projectDir);
24
+ const resolvedOut = resolve(outputDir);
25
+ const sources = await discoverEventSources(resolvedProject);
26
+ if (sources.length === 0)
27
+ return null;
28
+ console.log(`🔔 Building events (${sources.length} source file${sources.length === 1 ? '' : 's'}):`);
29
+ for (const s of sources)
30
+ console.log(` ${s.relPath}`);
31
+ await fs.mkdir(resolvedOut, { recursive: true });
32
+ const tempDir = join(resolvedOut, '.temp');
33
+ await fs.mkdir(tempDir, { recursive: true });
34
+ const entryPath = join(tempDir, 'events-entry.mjs');
35
+ await fs.writeFile(entryPath, generateEventsEntry(sources));
36
+ const iifeBundlePath = join(resolvedOut, 'events.js');
37
+ const esmIntrospectPath = join(tempDir, 'events.introspect.mjs');
38
+ const sharedOpts = {
39
+ entryPoints: [entryPath],
40
+ bundle: true,
41
+ platform: 'neutral',
42
+ target: 'es2022',
43
+ absWorkingDir: resolvedProject,
44
+ minify: minify || production,
45
+ sourcemap,
46
+ external: ['node:*'],
47
+ define: { 'process.env.NODE_ENV': production ? '"production"' : '"development"' },
48
+ mainFields: ['module', 'main'],
49
+ conditions: ['import', 'module'],
50
+ };
51
+ // (1) IIFE bundle — consumed by the Deno worker pool, which wraps
52
+ // bundle code in an outer IIFE and looks for globalThis.handleRequest.
53
+ await esbuild.build({
54
+ ...sharedOpts,
55
+ format: 'iife',
56
+ globalName: '__maravilla_events',
57
+ outfile: iifeBundlePath,
58
+ });
59
+ // (2) ESM bundle — only used here, for Node-side introspection of
60
+ // __maravilla_handlers_list. Deleted after introspection.
61
+ await esbuild.build({
62
+ ...sharedOpts,
63
+ format: 'esm',
64
+ outfile: esmIntrospectPath,
65
+ });
66
+ const handlers = await introspectHandlers(esmIntrospectPath, sources);
67
+ await fs.rm(tempDir, { recursive: true, force: true });
68
+ const manifest = {
69
+ version: 1,
70
+ bundle: 'events.js',
71
+ handlers,
72
+ buildTime: new Date().toISOString(),
73
+ };
74
+ await fs.writeFile(join(resolvedOut, 'events.json'), JSON.stringify(manifest, null, 2));
75
+ console.log(`✅ Events build completed: ${handlers.length} handler${handlers.length === 1 ? '' : 's'}`);
76
+ for (const h of handlers)
77
+ console.log(` ${h.id} (${h.trigger.kind})`);
78
+ return manifest;
79
+ }
80
+ /** Dynamic-import the produced ESM bundle and read `__maravilla_handlers_list`. */
81
+ async function introspectHandlers(bundlePath, sources) {
82
+ const url = pathToFileURL(bundlePath).href + `?t=${Date.now()}`;
83
+ let mod;
84
+ try {
85
+ mod = (await import(url));
86
+ }
87
+ catch (err) {
88
+ console.warn(`⚠️ Failed to introspect events bundle: ${err.message}`);
89
+ return [];
90
+ }
91
+ const list = mod.__maravilla_handlers_list;
92
+ if (!Array.isArray(list)) {
93
+ console.warn('⚠️ Events bundle missing __maravilla_handlers_list');
94
+ return [];
95
+ }
96
+ // Enrich with source file hints (best-effort — we don't know which file a
97
+ // given export came from without walking the metafile; we attribute to the
98
+ // first file as a pragmatic default).
99
+ const defaultFile = sources[0]?.relPath;
100
+ return list.map((entry) => {
101
+ const e = entry;
102
+ return {
103
+ id: e.id,
104
+ export: e.export,
105
+ file: defaultFile,
106
+ trigger: e.trigger,
107
+ };
108
+ });
109
+ }
110
+ /** Merge the events manifest into an existing `manifest.json`. The
111
+ * embedded shape mirrors the standalone `events.json` so the Rust
112
+ * platform::events::EventsManifest deserializer accepts both. */
113
+ export async function integrateEventsWithManifest(manifestPath, eventsManifest) {
114
+ if (!eventsManifest)
115
+ return;
116
+ const raw = await fs.readFile(manifestPath, 'utf-8');
117
+ const manifest = JSON.parse(raw);
118
+ manifest.events = eventsManifest;
119
+ await fs.writeFile(manifestPath, JSON.stringify(manifest, null, 2));
120
+ console.log('📝 Updated manifest.json with events configuration');
121
+ }
122
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/events/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGrD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,UAA8B,EAAE;IAChE,MAAM,EACJ,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,EAC1B,SAAS,GAAG,YAAY,EACxB,MAAM,GAAG,KAAK,EACd,SAAS,GAAG,KAAK,EACjB,UAAU,GAAG,KAAK,GACnB,GAAG,OAAO,CAAC;IAEZ,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvC,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,eAAe,CAAC,CAAC;IAC5D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,OAAO,CAAC,GAAG,CAAC,uBAAuB,OAAO,CAAC,MAAM,eAAe,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACrG,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAEvD,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACpD,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5D,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACtD,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IAEjE,MAAM,UAAU,GAAG;QACjB,WAAW,EAAE,CAAC,SAAS,CAAC;QACxB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,SAAkB;QAC5B,MAAM,EAAE,QAAQ;QAChB,aAAa,EAAE,eAAe;QAC9B,MAAM,EAAE,MAAM,IAAI,UAAU;QAC5B,SAAS;QACT,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,MAAM,EAAE,EAAE,sBAAsB,EAAE,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,EAAE;QACjF,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC9B,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;KACjC,CAAC;IAEF,kEAAkE;IAClE,2EAA2E;IAC3E,MAAM,OAAO,CAAC,KAAK,CAAC;QAClB,GAAG,UAAU;QACb,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,oBAAoB;QAChC,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IAEH,kEAAkE;IAClE,8DAA8D;IAC9D,MAAM,OAAO,CAAC,KAAK,CAAC;QAClB,GAAG,UAAU;QACb,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,iBAAiB;KAC3B,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAEtE,MAAM,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvD,MAAM,QAAQ,GAAmB;QAC/B,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,WAAW;QACnB,QAAQ;QACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IAEF,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,EAChC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAClC,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,6BAA6B,QAAQ,CAAC,MAAM,WAAW,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACvG,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;IAEvE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,mFAAmF;AACnF,KAAK,UAAU,kBAAkB,CAC/B,UAAkB,EAClB,OAA8B;IAE9B,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAChE,IAAI,GAA4B,CAAC;IACjC,IAAI,CAAC;QACH,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,CAA4B,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,2CAA4C,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAClF,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,yBAAyB,CAAC;IAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACpE,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,0EAA0E;IAC1E,2EAA2E;IAC3E,sCAAsC;IACtC,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACxB,MAAM,CAAC,GAAG,KAAyD,CAAC;QACpE,OAAO;YACL,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,CAAC,CAAC,OAA4C;SACxD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;kEAEkE;AAClE,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,YAAoB,EACpB,cAAqC;IAErC,IAAI,CAAC,cAAc;QAAE,OAAO;IAE5B,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,QAAQ,CAAC,MAAM,GAAG,cAAc,CAAC;IACjC,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;AACpE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { DiscoveredEventSource } from './types.js';
2
+ /**
3
+ * Discover event handler files: `events.ts|js` at the project root and
4
+ * anything under `events/`. Falls back to empty list if neither exists.
5
+ */
6
+ export declare function discoverEventSources(projectDir: string): Promise<DiscoveredEventSource[]>;
7
+ //# sourceMappingURL=discover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/events/discover.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAkB/F"}
@@ -0,0 +1,51 @@
1
+ import { promises as fs } from 'node:fs';
2
+ import { join, relative, resolve } from 'node:path';
3
+ /**
4
+ * Discover event handler files: `events.ts|js` at the project root and
5
+ * anything under `events/`. Falls back to empty list if neither exists.
6
+ */
7
+ export async function discoverEventSources(projectDir) {
8
+ const root = resolve(projectDir);
9
+ const sources = [];
10
+ for (const name of ['events.ts', 'events.js', 'events.mjs']) {
11
+ const p = join(root, name);
12
+ if (await exists(p)) {
13
+ sources.push({ absPath: p, relPath: relative(root, p) });
14
+ break;
15
+ }
16
+ }
17
+ const dir = join(root, 'events');
18
+ if (await exists(dir)) {
19
+ await walk(dir, root, sources);
20
+ }
21
+ return sources;
22
+ }
23
+ async function walk(dir, root, out) {
24
+ const entries = await fs.readdir(dir, { withFileTypes: true });
25
+ for (const entry of entries) {
26
+ if (entry.name.startsWith('.') || entry.name === 'node_modules' || entry.name === 'dist')
27
+ continue;
28
+ const full = join(dir, entry.name);
29
+ if (entry.isDirectory()) {
30
+ await walk(full, root, out);
31
+ continue;
32
+ }
33
+ if (!entry.isFile())
34
+ continue;
35
+ if (!/\.(ts|js|mjs)$/.test(entry.name))
36
+ continue;
37
+ if (/\.(test|spec)\./.test(entry.name) || entry.name.endsWith('.d.ts'))
38
+ continue;
39
+ out.push({ absPath: full, relPath: relative(root, full) });
40
+ }
41
+ }
42
+ async function exists(p) {
43
+ try {
44
+ await fs.access(p);
45
+ return true;
46
+ }
47
+ catch {
48
+ return false;
49
+ }
50
+ }
51
+ //# sourceMappingURL=discover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/events/discover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,UAAkB;IAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACjC,MAAM,OAAO,GAA4B,EAAE,CAAC;IAE5C,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;QAC5D,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3B,IAAI,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACzD,MAAM;QACR,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjC,IAAI,MAAM,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,GAAW,EAAE,IAAY,EAAE,GAA4B;IACzE,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS;QACnG,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YAC5B,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAAE,SAAS;QAC9B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QACjD,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAS;QACjF,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,CAAS;IAC7B,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { DiscoveredEventSource } from './types.js';
2
+ /**
3
+ * Generate the events entry module. Imports each discovered source file
4
+ * as a namespace, collects exports that carry the `__maravilla_trigger`
5
+ * marker, and exposes:
6
+ *
7
+ * - `globalThis.handleEvent(id, event)` — direct dispatcher call
8
+ * - `globalThis.handleRequest(request)` — synthetic HTTP adapter so the
9
+ * existing Maravilla worker pool (which invokes `handleRequest`) can
10
+ * drive events the same way it drives functions. The dispatcher POSTs
11
+ * `{ id, event }` as JSON and gets `{ result }` back.
12
+ * - `__maravilla_handlers_list` (ESM export, build-time only) — triggers
13
+ * for emitting `events.json`.
14
+ *
15
+ * Emitted as an ESM entry; the build pipeline produces both an IIFE
16
+ * bundle (for the Deno isolate) and an ESM bundle (for Node
17
+ * introspection) from the same source.
18
+ */
19
+ export declare function generateEventsEntry(sources: DiscoveredEventSource[]): string;
20
+ //# sourceMappingURL=generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/events/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAwF5E"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Generate the events entry module. Imports each discovered source file
3
+ * as a namespace, collects exports that carry the `__maravilla_trigger`
4
+ * marker, and exposes:
5
+ *
6
+ * - `globalThis.handleEvent(id, event)` — direct dispatcher call
7
+ * - `globalThis.handleRequest(request)` — synthetic HTTP adapter so the
8
+ * existing Maravilla worker pool (which invokes `handleRequest`) can
9
+ * drive events the same way it drives functions. The dispatcher POSTs
10
+ * `{ id, event }` as JSON and gets `{ result }` back.
11
+ * - `__maravilla_handlers_list` (ESM export, build-time only) — triggers
12
+ * for emitting `events.json`.
13
+ *
14
+ * Emitted as an ESM entry; the build pipeline produces both an IIFE
15
+ * bundle (for the Deno isolate) and an ESM bundle (for Node
16
+ * introspection) from the same source.
17
+ */
18
+ export function generateEventsEntry(sources) {
19
+ const imports = sources
20
+ .map((src, i) => `import * as mod_${i} from ${JSON.stringify(src.absPath)};`)
21
+ .join('\n');
22
+ const modsArray = sources.map((_, i) => `mod_${i}`).join(', ');
23
+ return `// Maravilla Events Entry - auto-generated, do not edit
24
+ ${imports}
25
+
26
+ const MODULES = [${modsArray}];
27
+ const TRIGGER_KEY = '__maravilla_trigger';
28
+ const REGISTRY = {};
29
+
30
+ for (const mod of MODULES) {
31
+ for (const [name, val] of Object.entries(mod)) {
32
+ if (val && typeof val === 'object' && TRIGGER_KEY in val && typeof val.handler === 'function') {
33
+ REGISTRY[name] = { trigger: val[TRIGGER_KEY], handler: val.handler };
34
+ }
35
+ }
36
+ }
37
+
38
+ function buildCtx(handlerId) {
39
+ const platform = (typeof globalThis !== 'undefined' && globalThis.platform) || {};
40
+ return {
41
+ env: platform.env || {},
42
+ kv: platform.kv,
43
+ db: platform.db,
44
+ storage: platform.storage,
45
+ queue: platform.queue,
46
+ ren: platform.ren,
47
+ tenant: platform.tenant || 'default',
48
+ traceId: (globalThis.crypto?.randomUUID?.() || String(Date.now())),
49
+ handlerId,
50
+ };
51
+ }
52
+
53
+ async function handleEvent(id, event) {
54
+ const entry = REGISTRY[id];
55
+ if (!entry) {
56
+ throw new Error('Event handler not registered: ' + id);
57
+ }
58
+ return entry.handler(event, buildCtx(id));
59
+ }
60
+
61
+ // Synthetic HTTP adapter — lets the existing worker pool (which expects
62
+ // globalThis.handleRequest) drive events. Dispatcher sends:
63
+ // POST <anything>
64
+ // body: { "id": "<handler>", "event": { ... } }
65
+ async function handleRequest(request) {
66
+ try {
67
+ const bodyText = await request.text();
68
+ const parsed = bodyText ? JSON.parse(bodyText) : {};
69
+ const id = parsed.id;
70
+ const event = parsed.event;
71
+ if (!id) {
72
+ return new Response(
73
+ JSON.stringify({ error: 'missing handler id' }),
74
+ { status: 400, headers: { 'content-type': 'application/json' } },
75
+ );
76
+ }
77
+ const result = await handleEvent(id, event);
78
+ return new Response(
79
+ JSON.stringify({ ok: true, result: result === undefined ? null : result }),
80
+ { status: 200, headers: { 'content-type': 'application/json' } },
81
+ );
82
+ } catch (err) {
83
+ console.error('[events] handler invocation failed:', err && err.message || err);
84
+ return new Response(
85
+ JSON.stringify({ ok: false, error: String(err && err.message || err) }),
86
+ { status: 500, headers: { 'content-type': 'application/json' } },
87
+ );
88
+ }
89
+ }
90
+
91
+ if (typeof globalThis !== 'undefined') {
92
+ globalThis.handleEvent = handleEvent;
93
+ globalThis.handleRequest = handleRequest;
94
+ globalThis.__maravilla_event_registry = REGISTRY;
95
+ }
96
+
97
+ // Node-side introspection: adapter build reads this to emit events.json
98
+ export const __maravilla_handlers_list = Object.entries(REGISTRY).map(
99
+ ([id, entry]) => ({ id, export: id, trigger: entry.trigger }),
100
+ );
101
+
102
+ export { handleEvent, handleRequest };
103
+ `;
104
+ }
105
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/events/generator.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgC;IAClE,MAAM,OAAO,GAAG,OAAO;SACpB,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;SAC5E,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE/D,OAAO;EACP,OAAO;;mBAEU,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6E3B,CAAC;AACF,CAAC"}
@@ -0,0 +1,66 @@
1
+ /** Local copy of the trigger shapes — kept structurally in sync with
2
+ * `@maravilla-labs/platform/events` and `@maravilla-labs/adapter-core`.
3
+ * Duplicated so this build package has zero runtime dep on either. */
4
+ export type EventTrigger = {
5
+ kind: 'kv';
6
+ namespace?: string;
7
+ keyPattern?: string;
8
+ op?: 'put' | 'delete' | 'expired';
9
+ } | {
10
+ kind: 'db';
11
+ collection: string;
12
+ op?: 'insert' | 'update' | 'delete';
13
+ } | {
14
+ kind: 'auth';
15
+ op?: 'registered' | 'logged_in' | 'logged_out' | 'logged_out_all' | 'deleted' | 'updated';
16
+ } | {
17
+ kind: 'schedule';
18
+ cron: string;
19
+ } | {
20
+ kind: 'queue';
21
+ name: string;
22
+ batch?: number;
23
+ maxAttempts?: number;
24
+ } | {
25
+ kind: 'channel';
26
+ channel: string;
27
+ type?: string;
28
+ } | {
29
+ kind: 'deploy';
30
+ phase: 'ready' | 'draining' | 'stopped';
31
+ } | {
32
+ kind: 'ren';
33
+ match: {
34
+ r?: string;
35
+ t?: string;
36
+ ns?: string;
37
+ };
38
+ };
39
+ export interface EventHandlerDescriptor {
40
+ id: string;
41
+ export: string;
42
+ file?: string;
43
+ trigger: EventTrigger;
44
+ }
45
+ export interface EventsManifest {
46
+ version: 1;
47
+ bundle: string;
48
+ handlers: EventHandlerDescriptor[];
49
+ buildTime: string;
50
+ }
51
+ export interface BuildEventsOptions {
52
+ /** Project root. Discovery looks for `events.ts` and `events/**\/*.ts` here. */
53
+ projectDir?: string;
54
+ /** Output directory (default: `.maravilla`). */
55
+ outputDir?: string;
56
+ minify?: boolean;
57
+ sourcemap?: boolean;
58
+ production?: boolean;
59
+ }
60
+ export interface DiscoveredEventSource {
61
+ /** Absolute path on disk. */
62
+ absPath: string;
63
+ /** Path relative to the project root. */
64
+ relPath: string;
65
+ }
66
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"AAAA;;uEAEuE;AAEvE,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAA;CAAE,GAC1F;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,YAAY,GAAG,gBAAgB,GAAG,SAAS,GAAG,SAAS,CAAA;CAAE,GAC3G;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACrE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEpE,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,5 @@
1
+ /** Local copy of the trigger shapes — kept structurally in sync with
2
+ * `@maravilla-labs/platform/events` and `@maravilla-labs/adapter-core`.
3
+ * Duplicated so this build package has zero runtime dep on either. */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"AAAA;;uEAEuE"}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,9 @@ import type { FunctionManifest, BuildOptions } from './types.js';
2
2
  export { discoverFunctions } from './discover.js';
3
3
  export { developmentServer } from './dev.js';
4
4
  export type { FunctionManifest, FunctionRoute, BuildOptions } from './types.js';
5
+ export { buildEvents, integrateEventsWithManifest } from './events/build.js';
6
+ export { discoverEventSources } from './events/discover.js';
7
+ export type { EventTrigger, EventHandlerDescriptor, EventsManifest, BuildEventsOptions, DiscoveredEventSource, } from './events/types.js';
5
8
  export declare function buildFunctions(options?: BuildOptions): Promise<FunctionManifest | null>;
6
9
  export declare function integrateWithManifest(manifestPath: string, functionsManifest: FunctionManifest | null): Promise<void>;
7
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAiB,YAAY,EAAE,MAAM,YAAY,CAAC;AAEhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEhF,wBAAsB,cAAc,CAAC,OAAO,GAAE,YAAiB,oCAyG9D;AAwCD,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,gBAAgB,GAAG,IAAI,iBA2C3C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAiB,YAAY,EAAE,MAAM,YAAY,CAAC;AAEhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGhF,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,YAAY,EACV,YAAY,EACZ,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,wBAAsB,cAAc,CAAC,OAAO,GAAE,YAAiB,oCAyG9D;AAwCD,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,gBAAgB,GAAG,IAAI,iBA2C3C"}
package/dist/index.js CHANGED
@@ -5,6 +5,9 @@ import { discoverFunctions } from './discover.js';
5
5
  import { generateEntryFile } from './generator.js';
6
6
  export { discoverFunctions } from './discover.js';
7
7
  export { developmentServer } from './dev.js';
8
+ // Events pipeline (events.ts + events/**/*.ts)
9
+ export { buildEvents, integrateEventsWithManifest } from './events/build.js';
10
+ export { discoverEventSources } from './events/discover.js';
8
11
  export async function buildFunctions(options = {}) {
9
12
  const { functionsDir = 'functions', outputDir = '.maravilla', minify = false, sourcemap = false, production = false, } = options;
10
13
  const resolvedFunctionsDir = resolve(functionsDir);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAqB,MAAM,WAAW,CAAC;AAC7D,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG7C,+CAA+C;AAC/C,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAS5D,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAAwB,EAAE;IAC7D,MAAM,EACJ,YAAY,GAAG,WAAW,EAC1B,SAAS,GAAG,YAAY,EACxB,MAAM,GAAG,KAAK,EACd,SAAS,GAAG,KAAK,EACjB,UAAU,GAAG,KAAK,GACnB,GAAG,OAAO,CAAC;IAEZ,MAAM,oBAAoB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACnD,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAE7C,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,0BAA0B,oBAAoB,EAAE,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,uBAAuB,iBAAiB,EAAE,CAAC,CAAC;IAExD,sCAAsC;IACtC,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IAE/F,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wDAAwD;IACxD,MAAM,2BAA2B,CAAC,oBAAoB,CAAC,CAAC;IAExD,yBAAyB;IACzB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;IAE5E,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,aAAa,CAAC,CAAC;IACpE,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxE,CAAC;IAED,0BAA0B;IAC1B,MAAM,EAAE,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvD,kCAAkC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,sBAAsB;IACtB,MAAM,YAAY,GAAG,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IACtD,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAE5C,sBAAsB;IACtB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC;QACjC,WAAW,EAAE,CAAC,SAAS,CAAC;QACxB,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAC;QAChD,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,aAAa;QACzB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,MAAM,IAAI,UAAU;QAC5B,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE;YACR,wCAAwC;YACxC,qBAAqB;SACtB;QACD,MAAM,EAAE;YACN,sBAAsB,EAAE,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe;SACtE;QACD,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,0BAA0B;IAC1B,MAAM,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvD,8BAA8B;IAC9B,MAAM,iBAAiB,GAAqB;QAC1C,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM;QACxC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACpD,IAAI;YACJ,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,YAAY;SACxB,CAAC,CAAC;QACH,MAAM,EAAE,cAAc;QACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IAEF,2BAA2B;IAC3B,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,EACzC,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,CAC3C,CAAC;IAEF,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAEzD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,2BAA2B,CAAC,YAAoB;IAC7D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAExE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/C,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;gBAEtD,qCAAqC;gBACrC,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;gBAE5F,IAAI,cAAc,EAAE,CAAC;oBACnB,+BAA+B;oBAC/B,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;oBACtD,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;oBAE5F,IAAI,CAAC,cAAc,EAAE,CAAC;wBACpB,OAAO,CAAC,GAAG,CAAC,8CAA8C,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;wBACxE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;wBAC/C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;wBAC3C,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;wBAElC,IAAI,CAAC;4BACH,wCAAwC;4BACxC,MAAM,SAAS,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;wBACnD,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,OAAO,CAAC,IAAI,CAAC,mDAAmD,KAAK,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;wBACxF,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,uDAAuD,EAAE,KAAK,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,YAAoB,EACpB,iBAA0C;IAE1C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,yBAAyB;IACzB,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAE7C,oCAAoC;IACpC,QAAQ,CAAC,SAAS,GAAG;QACnB,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,iBAAiB,CAAC,MAAM;QAChC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7C,GAAG,KAAK;YACR,6CAA6C;YAC7C,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE;SACvE,CAAC,CAAC;QACH,QAAQ,EAAE;YACR,KAAK,EAAE,iBAAiB,CAAC,SAAS;YAClC,SAAS,EAAE,iBAAiB,CAAC,SAAS;SACvC;KACF,CAAC;IAEF,sCAAsC;IACtC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtB,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,gDAAgD;IAChD,QAAQ,CAAC,OAAO,CAAC,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE;QACtE,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,UAAU;KACpB,CAAC,CAAC,CAAC;IAEJ,yBAAyB;IACzB,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEpE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;AACvE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maravilla-labs/functions",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Maravilla Edge Functions bundler and development tools",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",