@maravilla-labs/adapter-core 0.1.36 → 0.1.38

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,33 @@
1
+ import type { AuthConfigBlock } from './types.js';
2
+ export interface MaravillaConfig {
3
+ auth?: AuthConfigBlock;
4
+ }
5
+ export interface OAuthProviderDefinition {
6
+ enabled: boolean;
7
+ client_id: string;
8
+ client_secret: SecretRef;
9
+ scopes: string[];
10
+ discovery_url?: string;
11
+ }
12
+ export type SecretRef = string | {
13
+ env: string;
14
+ };
15
+ export interface LoadResult {
16
+ /** The normalized config. Empty object when no config file is present. */
17
+ config: MaravillaConfig;
18
+ /** Absolute path of the file that was loaded, or `null` if none was found. */
19
+ path: string | null;
20
+ }
21
+ export declare class ConfigError extends Error {
22
+ readonly file: string | null;
23
+ readonly field?: string | undefined;
24
+ constructor(message: string, file?: string | null, field?: string | undefined);
25
+ }
26
+ /**
27
+ * Find and load a `maravilla.config.*` file at the given project root.
28
+ * Returns an empty config (but no error) when none exists — the adapter
29
+ * should treat missing config as "no declarative auth, nothing to apply".
30
+ */
31
+ export declare function loadMaravillaConfig(projectRoot: string): Promise<LoadResult>;
32
+ export type { AuthConfigBlock } from './types.js';
33
+ //# 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,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB;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;AAoMD,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,233 @@
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
+ return out;
140
+ }
141
+ function normalizeAuth(raw, file, field) {
142
+ if (raw === null || typeof raw !== 'object') {
143
+ throw new ConfigError(`${field} must be an object`, file, field);
144
+ }
145
+ const src = raw;
146
+ const out = {};
147
+ if (src.resources !== undefined) {
148
+ out.resources = expectArray(src.resources, file, `${field}.resources`).map((r, i) => {
149
+ const path = `${field}.resources[${i}]`;
150
+ const obj = expectObject(r, file, path);
151
+ expectString(obj.name, file, `${path}.name`);
152
+ expectString(obj.title, file, `${path}.title`);
153
+ expectArrayOfStrings(obj.actions, file, `${path}.actions`);
154
+ return obj;
155
+ });
156
+ }
157
+ if (src.groups !== undefined) {
158
+ out.groups = expectArray(src.groups, file, `${field}.groups`).map((g, i) => {
159
+ const path = `${field}.groups[${i}]`;
160
+ const obj = expectObject(g, file, path);
161
+ expectString(obj.name, file, `${path}.name`);
162
+ return obj;
163
+ });
164
+ }
165
+ if (src.relations !== undefined) {
166
+ out.relations = expectArray(src.relations, file, `${field}.relations`).map((r, i) => {
167
+ const path = `${field}.relations[${i}]`;
168
+ const obj = expectObject(r, file, path);
169
+ expectString(obj.relation_name, file, `${path}.relation_name`);
170
+ expectString(obj.title, file, `${path}.title`);
171
+ return obj;
172
+ });
173
+ }
174
+ if (src.registration !== undefined) {
175
+ const obj = expectObject(src.registration, file, `${field}.registration`);
176
+ out.registration = { fields: expectArray(obj.fields, file, `${field}.registration.fields`) };
177
+ }
178
+ if (src.oauth !== undefined) {
179
+ const obj = expectObject(src.oauth, file, `${field}.oauth`);
180
+ const providers = {};
181
+ for (const [key, value] of Object.entries(obj)) {
182
+ const path = `${field}.oauth.${key}`;
183
+ const prov = expectObject(value, file, path);
184
+ expectString(prov.client_id, file, `${path}.client_id`);
185
+ validateSecretRef(prov.client_secret, file, `${path}.client_secret`);
186
+ expectArrayOfStrings(prov.scopes, file, `${path}.scopes`);
187
+ providers[key] = prov;
188
+ }
189
+ out.oauth = providers;
190
+ }
191
+ if (src.security !== undefined) {
192
+ out.security = expectObject(src.security, file, `${field}.security`);
193
+ }
194
+ if (src.branding !== undefined) {
195
+ out.branding = expectObject(src.branding, file, `${field}.branding`);
196
+ }
197
+ return out;
198
+ }
199
+ // ── Small validators ──
200
+ function expectObject(v, file, field) {
201
+ if (v === null || typeof v !== 'object' || Array.isArray(v)) {
202
+ throw new ConfigError(`expected object`, file, field);
203
+ }
204
+ return v;
205
+ }
206
+ function expectArray(v, file, field) {
207
+ if (!Array.isArray(v))
208
+ throw new ConfigError(`expected array`, file, field);
209
+ return v;
210
+ }
211
+ function expectString(v, file, field) {
212
+ if (typeof v !== 'string' || v.length === 0) {
213
+ throw new ConfigError(`expected non-empty string`, file, field);
214
+ }
215
+ }
216
+ function expectArrayOfStrings(v, file, field) {
217
+ if (!Array.isArray(v) || !v.every((x) => typeof x === 'string')) {
218
+ throw new ConfigError(`expected string[]`, file, field);
219
+ }
220
+ }
221
+ function validateSecretRef(v, file, field) {
222
+ if (typeof v === 'string')
223
+ return;
224
+ if (v !== null && typeof v === 'object' && typeof v.env === 'string')
225
+ return;
226
+ throw new ConfigError(`expected secret (string or { env: "VAR_NAME" })`, file, field);
227
+ }
228
+ function errMsg(e) {
229
+ if (e instanceof Error)
230
+ return e.message;
231
+ return String(e);
232
+ }
233
+ //# sourceMappingURL=config-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../src/config-loader.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,5 +3,7 @@ export { generateManifest, writeManifest, filterStaticAssets } from './manifest.
3
3
  export { collectAssets } from './assets.js';
4
4
  export { loadFunctionsAPI, buildAndIntegrateFunctions } from './functions.js';
5
5
  export { WORKER_POLYFILLS } from './polyfills.js';
6
+ export { loadMaravillaConfig, ConfigError } from './config-loader.js';
7
+ export type { LoadResult } from './config-loader.js';
6
8
  export type { ManifestV2, RoutingConfig, DynamicRoutes, RouteConfig, EnvConfig, Features, FunctionsConfig, FunctionRoute, FunctionsMetadata, AdapterOptions, BundleOptions, ManifestOptions, } from './types.js';
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -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,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,cAAc,EACd,aAAa,EACb,eAAe,GAChB,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -3,4 +3,5 @@ export { generateManifest, writeManifest, filterStaticAssets } from './manifest.
3
3
  export { collectAssets } from './assets.js';
4
4
  export { loadFunctionsAPI, buildAndIntegrateFunctions } from './functions.js';
5
5
  export { WORKER_POLYFILLS } from './polyfills.js';
6
+ export { loadMaravillaConfig, ConfigError } from './config-loader.js';
6
7
  //# 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,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
@@ -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;AAiB9D;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAOhE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,UAAU,CA2DrE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI,CAKxE"}
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;AAiB9D;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAOhE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,UAAU,CA8DrE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI,CAKxE"}
package/dist/manifest.js CHANGED
@@ -28,7 +28,7 @@ export function filterStaticAssets(allAssets) {
28
28
  * Generate a Maravilla manifest.json conforming to the Rust Manifest struct.
29
29
  */
30
30
  export function generateManifest(options) {
31
- const { adapterName, prerenderedPaths, staticAssets, include = ['/*'], exclude = [], envPrefix = 'PUBLIC_', features, extraMetadata = {}, } = options;
31
+ const { adapterName, prerenderedPaths, staticAssets, include = ['/*'], exclude = [], envPrefix = 'PUBLIC_', features, extraMetadata = {}, auth, } = options;
32
32
  const prerendered = prerenderedPaths.map(path => {
33
33
  if (path === '/')
34
34
  return '/index.html';
@@ -69,6 +69,7 @@ export function generateManifest(options) {
69
69
  asset_count: staticAssets.length,
70
70
  ...extraMetadata,
71
71
  },
72
+ ...(auth ? { auth } : {}),
72
73
  };
73
74
  }
74
75
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
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,23 @@
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
+ }
5
22
  export interface ManifestV2 {
6
23
  version: 2;
7
24
  runtime: 'maravilla';
@@ -13,6 +30,11 @@ export interface ManifestV2 {
13
30
  features: Features;
14
31
  metadata: Record<string, unknown>;
15
32
  functions?: FunctionsConfig;
33
+ /**
34
+ * Optional auth settings declared in the developer's `maravilla.config.*`.
35
+ * Reconciled into delivery on deploy activation. Missing = nothing to apply.
36
+ */
37
+ auth?: AuthConfigBlock;
16
38
  }
17
39
  export interface RoutingConfig {
18
40
  prerendered: string[];
@@ -88,5 +110,11 @@ export interface ManifestOptions {
88
110
  envPrefix?: string;
89
111
  features: Partial<Features>;
90
112
  extraMetadata?: Record<string, unknown>;
113
+ /**
114
+ * Optional auth block loaded from `maravilla.config.*` via
115
+ * {@link loadMaravillaConfig}. Passed through to the emitted manifest
116
+ * unchanged; reconciled into delivery on deploy.
117
+ */
118
+ auth?: AuthConfigBlock;
91
119
  }
92
120
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
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.1.36",
3
+ "version": "0.1.38",
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",