@moku-labs/web 0.1.0-alpha.1 → 0.1.0-alpha.4

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.
Files changed (33) hide show
  1. package/README.md +36 -1
  2. package/dist/bin/moku.cjs +575 -1
  3. package/dist/bin/moku.mjs +576 -2
  4. package/dist/chunk-DQk6qfdC.mjs +18 -0
  5. package/dist/{factory-CixCpR9C.cjs → factory-CMOo4n6a.cjs} +13 -1
  6. package/dist/{factory-BBVQO5ZG.d.mts → factory-DRFGSslp.d.mts} +26 -2
  7. package/dist/{factory-DwpBwjDk.mjs → factory-DiKypQqs.mjs} +2 -2
  8. package/dist/{factory-D0m7Xil2.d.cts → factory-k-YoScgB.d.cts} +26 -2
  9. package/dist/{index-CWdZdegx.d.mts → index-DH3jlpNi.d.mts} +215 -61
  10. package/dist/{route-builder-Lv6HUVvP.d.cts → index-DaY7vTuo.d.cts} +215 -61
  11. package/dist/index.cjs +75 -3
  12. package/dist/index.d.cts +41 -40
  13. package/dist/index.d.mts +41 -40
  14. package/dist/index.mjs +6 -5
  15. package/dist/plugins/head/build.d.cts +1 -1
  16. package/dist/plugins/head/build.d.mts +1 -1
  17. package/dist/plugins/head/build.mjs +1 -1
  18. package/dist/plugins/spa/index.cjs +1 -1
  19. package/dist/plugins/spa/index.d.cts +1 -1
  20. package/dist/plugins/spa/index.d.mts +1 -1
  21. package/dist/plugins/spa/index.mjs +1 -1
  22. package/dist/{primitives-BBo4wxUL.d.cts → primitives-DKgZfRAO.d.mts} +4 -2
  23. package/dist/{primitives-kuZFxqV7.d.mts → primitives-yZqQkOVR.d.cts} +4 -2
  24. package/dist/{project-C1vtMxE8.cjs → project-B8z4jeMC.cjs} +307 -5
  25. package/dist/{project-BTNUWbGQ.mjs → project-guCYpUeD.mjs} +232 -8
  26. package/dist/test.cjs +2 -2
  27. package/dist/test.d.cts +1 -1
  28. package/dist/test.d.mts +1 -1
  29. package/dist/test.mjs +2 -2
  30. package/dist/wrangler-BlZWVmX9.mjs +369 -0
  31. package/dist/wrangler-Bomk9mU-.cjs +423 -0
  32. package/package.json +9 -1
  33. /package/dist/{primitives-gO5i1tD8.mjs → primitives-Dhko-oLM.mjs} +0 -0
@@ -1,4 +1,6 @@
1
- //#region src/plugins/spa/types.d.ts
1
+ declare namespace types_d_exports {
2
+ export { ComponentDef, ComponentHooks, ComponentInstance, ComponentMap, ComponentsSubApi, EventBus, EventBusListener, HeadSubApi, LifecycleEventMap, MountContext, NavEndContext, NavStartContext, PageData, ProgressSubApi, RouterHandlers, RouterSubApi, SpaApi, SpaConfig, SpaRuntime, SpaState, UnMountContext };
3
+ }
2
4
  /** @file spa plugin shared types — config envelope, composed state, composed API, ComponentDef. */
3
5
  type ComponentHooks = {
4
6
  onCreate?(element: Element): void;
@@ -39,6 +41,7 @@ type SpaConfig = {
39
41
  config: SpaRuntime;
40
42
  components: ComponentDef[];
41
43
  };
44
+ type ComponentMap = ComponentDef[];
42
45
  type EventBusListener = (payload: unknown) => void;
43
46
  type EventBus = {
44
47
  on(event: string, listener: EventBusListener): () => void;
@@ -83,8 +86,29 @@ type SpaApi = {
83
86
  progress: ProgressSubApi;
84
87
  components: ComponentsSubApi;
85
88
  };
89
+ type MountContext = {
90
+ container: Element;
91
+ pageData?: unknown;
92
+ url: string;
93
+ };
94
+ type NavStartContext = {
95
+ url: string;
96
+ fromUrl: string;
97
+ };
98
+ type NavEndContext = {
99
+ url: string;
100
+ pageData?: unknown;
101
+ doc?: Document;
102
+ };
103
+ type UnMountContext = {
104
+ reason: 'navigation' | 'destroy';
105
+ element: Element;
106
+ };
107
+ type PageData = unknown;
108
+ type RouterHandlers = unknown;
109
+ type LifecycleEventMap = unknown;
86
110
  //#endregion
87
111
  //#region src/plugins/spa/components/factory.d.ts
88
112
  declare const createComponent: (name: string, hooks: ComponentHooks) => ComponentDef;
89
113
  //#endregion
90
- export { SpaConfig as a, SpaApi as i, ComponentDef as n, SpaState as o, ComponentHooks as r, createComponent as t };
114
+ export { SpaConfig as a, SpaApi as i, ComponentDef as n, SpaState as o, ComponentHooks as r, types_d_exports as s, createComponent as t };
@@ -1,4 +1,4 @@
1
- import { a as meta, i as jsonLd, n as feedLink, o as og, r as hreflang, s as twitter, t as canonical } from "./primitives-gO5i1tD8.mjs";
1
+ import { a as meta, i as jsonLd, n as feedLink, o as og, r as hreflang, s as twitter, t as canonical } from "./primitives-Dhko-oLM.mjs";
2
2
  import { buildArticleHead } from "./plugins/head/build.mjs";
3
3
  import { createCoreConfig, createCorePlugin } from "@moku-labs/core";
4
4
 
@@ -1599,4 +1599,4 @@ const createComponent = (name, hooks) => {
1599
1599
  };
1600
1600
 
1601
1601
  //#endregion
1602
- export { createEnvState as _, createSpaApi as a, route as c, coreConfig as d, createCore as f, validateSchema as g, createLogApi as h, createClientRuntime as i, site as l, createLogState as m, createSpaState as n, head as o, createPlugin as p, registerSpaEvents as r, router as s, createComponent as t, i18n as u, createEnvApi as v };
1602
+ export { env as _, createSpaApi as a, createEnvApi as b, route as c, coreConfig as d, createCore as f, createLogApi as g, createLogState as h, createClientRuntime as i, site as l, log as m, createSpaState as n, head as o, createPlugin as p, registerSpaEvents as r, router as s, createComponent as t, i18n as u, validateSchema as v, createEnvState as y };
@@ -1,4 +1,6 @@
1
- //#region src/plugins/spa/types.d.ts
1
+ declare namespace types_d_exports {
2
+ export { ComponentDef, ComponentHooks, ComponentInstance, ComponentMap, ComponentsSubApi, EventBus, EventBusListener, HeadSubApi, LifecycleEventMap, MountContext, NavEndContext, NavStartContext, PageData, ProgressSubApi, RouterHandlers, RouterSubApi, SpaApi, SpaConfig, SpaRuntime, SpaState, UnMountContext };
3
+ }
2
4
  /** @file spa plugin shared types — config envelope, composed state, composed API, ComponentDef. */
3
5
  type ComponentHooks = {
4
6
  onCreate?(element: Element): void;
@@ -39,6 +41,7 @@ type SpaConfig = {
39
41
  config: SpaRuntime;
40
42
  components: ComponentDef[];
41
43
  };
44
+ type ComponentMap = ComponentDef[];
42
45
  type EventBusListener = (payload: unknown) => void;
43
46
  type EventBus = {
44
47
  on(event: string, listener: EventBusListener): () => void;
@@ -83,8 +86,29 @@ type SpaApi = {
83
86
  progress: ProgressSubApi;
84
87
  components: ComponentsSubApi;
85
88
  };
89
+ type MountContext = {
90
+ container: Element;
91
+ pageData?: unknown;
92
+ url: string;
93
+ };
94
+ type NavStartContext = {
95
+ url: string;
96
+ fromUrl: string;
97
+ };
98
+ type NavEndContext = {
99
+ url: string;
100
+ pageData?: unknown;
101
+ doc?: Document;
102
+ };
103
+ type UnMountContext = {
104
+ reason: 'navigation' | 'destroy';
105
+ element: Element;
106
+ };
107
+ type PageData = unknown;
108
+ type RouterHandlers = unknown;
109
+ type LifecycleEventMap = unknown;
86
110
  //#endregion
87
111
  //#region src/plugins/spa/components/factory.d.ts
88
112
  declare const createComponent: (name: string, hooks: ComponentHooks) => ComponentDef;
89
113
  //#endregion
90
- export { SpaConfig as a, SpaApi as i, ComponentDef as n, SpaState as o, ComponentHooks as r, createComponent as t };
114
+ export { SpaConfig as a, SpaApi as i, ComponentDef as n, SpaState as o, ComponentHooks as r, types_d_exports as s, createComponent as t };
@@ -1,8 +1,12 @@
1
- import { p as OGImageConfig } from "./primitives-kuZFxqV7.mjs";
2
- import { n as ComponentDef } from "./factory-BBVQO5ZG.mjs";
1
+ import { d as HeadPluginConfig, f as HeadState, l as HeadApi, p as OGImageConfig } from "./primitives-DKgZfRAO.mjs";
2
+ import { n as ComponentDef } from "./factory-DRFGSslp.mjs";
3
+ import * as _moku_labs_core0 from "@moku-labs/core";
3
4
  import { Processor } from "unified";
4
5
 
5
6
  //#region src/plugins/log/types.d.ts
7
+ declare namespace types_d_exports$7 {
8
+ export { ExpectChain, LogApi, LogConfig, LogEntry, LogLevel, LogSink, LogState };
9
+ }
6
10
  /** @file log plugin types — LogEntry, LogSink, ExpectChain, LogState, LogApi. */
7
11
  type LogLevel = 'debug' | 'info' | 'warn' | 'error';
8
12
  type LogEntry = {
@@ -24,6 +28,10 @@ type LogState = {
24
28
  entries: LogEntry[];
25
29
  sinks: LogSink[];
26
30
  };
31
+ type LogConfig = {
32
+ level: LogLevel;
33
+ mode: 'auto' | 'production' | 'test' | 'dev';
34
+ };
27
35
  type LogApi = {
28
36
  info(event: string, data?: unknown): void;
29
37
  debug(event: string, data?: unknown): void;
@@ -34,8 +42,9 @@ type LogApi = {
34
42
  addSink(sink: LogSink): void;
35
43
  reset(): void;
36
44
  };
37
- //#endregion
38
- //#region src/plugins/env/types.d.ts
45
+ declare namespace types_d_exports$6 {
46
+ export { EnvApi, EnvConfig, EnvProvider, EnvState, EnvVarSpec };
47
+ }
39
48
  /** @file env plugin types — schema, provider, EnvApi. */
40
49
  type EnvVarSpec = {
41
50
  public: boolean;
@@ -110,8 +119,24 @@ type Events = {
110
119
  url: string;
111
120
  };
112
121
  };
113
- //#endregion
114
- //#region src/plugins/site/types.d.ts
122
+ declare const createPlugin: _moku_labs_core0.BoundCreatePluginFunction<Config, Events, _moku_labs_core0.CoreApisFromTuple<[_moku_labs_core0.CorePluginInstance<"log", {
123
+ level: "info";
124
+ mode: "auto";
125
+ }, LogState, LogApi>, _moku_labs_core0.CorePluginInstance<"env", {
126
+ schema: {};
127
+ providers: never[];
128
+ publicPrefix: string;
129
+ }, EnvState, EnvApi>]>>, createCore: _moku_labs_core0.BoundCreateCoreFunction<Config, Events, [_moku_labs_core0.CorePluginInstance<"log", {
130
+ level: "info";
131
+ mode: "auto";
132
+ }, LogState, LogApi>, _moku_labs_core0.CorePluginInstance<"env", {
133
+ schema: {};
134
+ providers: never[];
135
+ publicPrefix: string;
136
+ }, EnvState, EnvApi>]>;
137
+ declare namespace types_d_exports$5 {
138
+ export { SiteApi, SiteConfig, SiteState };
139
+ }
115
140
  /** @file site plugin types — SiteConfig + SiteState + SiteApi. */
116
141
  type SiteConfig = {
117
142
  /** Display name of the site. */name: string; /** Base URL of the site (no trailing slash). */
@@ -129,8 +154,9 @@ type SiteApi = {
129
154
  author(): string;
130
155
  description(): string;
131
156
  };
132
- //#endregion
133
- //#region src/plugins/i18n/types.d.ts
157
+ declare namespace types_d_exports$4 {
158
+ export { I18nApi, I18nConfig, I18nState };
159
+ }
134
160
  /** @file i18n plugin types — I18nConfig (generic over locale tuple), I18nState, I18nApi. */
135
161
  type I18nConfig<TLocales extends readonly string[] = readonly string[]> = {
136
162
  /** Active locale codes (literal tuple preserved). */locales: TLocales; /** Default locale (must be member of locales). */
@@ -149,8 +175,58 @@ type I18nApi<TLocales extends readonly string[] = readonly string[]> = {
149
175
  ogLocale(locale: TLocales[number]): string;
150
176
  t(locale: TLocales[number], key: string): string;
151
177
  };
152
- //#endregion
153
- //#region src/plugins/router/types.d.ts
178
+ declare namespace types_d_exports$3 {
179
+ export { Article, ComputedFields, ContentApi, ContentConfig, ContentState, Frontmatter, RehypePluginEntry, RemarkPluginEntry };
180
+ }
181
+ type Frontmatter = {
182
+ title: string;
183
+ date: string;
184
+ description: string;
185
+ tags: string[];
186
+ language: string;
187
+ author?: string;
188
+ draft?: boolean;
189
+ [key: string]: unknown;
190
+ };
191
+ type ComputedFields = {
192
+ contentId: string;
193
+ readingTimeMinutes: number;
194
+ wordCount: number;
195
+ };
196
+ type Article = {
197
+ slug: string;
198
+ locale: string;
199
+ frontmatter: Frontmatter;
200
+ html: string;
201
+ computed: ComputedFields;
202
+ };
203
+ type RehypePluginEntry = readonly [unknown, Record<string, unknown>?];
204
+ type RemarkPluginEntry = readonly [unknown, Record<string, unknown>?];
205
+ type ContentConfig = {
206
+ dir: string;
207
+ defaultAuthor?: string;
208
+ trustedContent: boolean;
209
+ rehypePlugins?: RehypePluginEntry[];
210
+ remarkPlugins?: RemarkPluginEntry[];
211
+ };
212
+ type ContentState = {
213
+ processor: Processor | null;
214
+ articles: Map<string, Map<string, Article>>;
215
+ slugs: string[] | null;
216
+ lastPaths: Set<string>; /** Paths marked stale by `invalidate()` — re-read on next `loadAll()` then cleared. */
217
+ dirtyPaths: Set<string>;
218
+ };
219
+ type ContentApi = {
220
+ loadAll(): Promise<Map<string, Article[]>>;
221
+ load(slug: string, locale: string): Promise<Article | null>;
222
+ discoverSlugs(): Promise<string[]>;
223
+ render(markdown: string): Promise<string>;
224
+ invalidate(paths: string[]): void;
225
+ reset(): void;
226
+ };
227
+ declare namespace types_d_exports$2 {
228
+ export { HeadConfig, LayoutComponent, RenderContext, RouteBuilder, RouteEntry, RouteSpec, RouterApi, RouterConfig, RouterState, VNode };
229
+ }
154
230
  /** @file router plugin types — RouteSpec (non-accumulating), RouteBuilder, RouterApi. */
155
231
  /** Render context passed to route handlers. */
156
232
  type RenderContext = {
@@ -221,56 +297,11 @@ type RouterApi<Routes extends Record<string, RouteSpec> = Record<string, RouteSp
221
297
  } | null;
222
298
  entries(): ReadonlyArray<RouteEntry>;
223
299
  };
224
- //#endregion
225
- //#region src/plugins/content/types.d.ts
226
- type Frontmatter = {
227
- title: string;
228
- date: string;
229
- description: string;
230
- tags: string[];
231
- language: string;
232
- author?: string;
233
- draft?: boolean;
234
- [key: string]: unknown;
235
- };
236
- type ComputedFields = {
237
- contentId: string;
238
- readingTimeMinutes: number;
239
- wordCount: number;
240
- };
241
- type Article = {
242
- slug: string;
243
- locale: string;
244
- frontmatter: Frontmatter;
245
- html: string;
246
- computed: ComputedFields;
247
- };
248
- type RehypePluginEntry = readonly [unknown, Record<string, unknown>?];
249
- type RemarkPluginEntry = readonly [unknown, Record<string, unknown>?];
250
- type ContentConfig = {
251
- dir: string;
252
- defaultAuthor?: string;
253
- trustedContent: boolean;
254
- rehypePlugins?: RehypePluginEntry[];
255
- remarkPlugins?: RemarkPluginEntry[];
256
- };
257
- type ContentState = {
258
- processor: Processor | null;
259
- articles: Map<string, Map<string, Article>>;
260
- slugs: string[] | null;
261
- lastPaths: Set<string>; /** Paths marked stale by `invalidate()` — re-read on next `loadAll()` then cleared. */
262
- dirtyPaths: Set<string>;
263
- };
264
- type ContentApi = {
265
- loadAll(): Promise<Map<string, Article[]>>;
266
- load(slug: string, locale: string): Promise<Article | null>;
267
- discoverSlugs(): Promise<string[]>;
268
- render(markdown: string): Promise<string>;
269
- invalidate(paths: string[]): void;
270
- reset(): void;
271
- };
272
- //#endregion
273
- //#region src/plugins/build/types.d.ts
300
+ declare namespace types_d_exports$1 {
301
+ export { BuildApi, BuildConfig, BuildPhase, BuildResult, BuildState, BundleManifest };
302
+ }
303
+ /** @file build plugin types — BuildConfig, BuildState, BuildApi, BundleManifest, BuildResult. */
304
+ type BuildPhase = 'bundle' | 'content' | 'pages' | 'feeds' | 'sitemap' | 'og' | 'images';
274
305
  type BuildConfig = {
275
306
  outdir: string;
276
307
  mode: 'production' | 'development';
@@ -298,6 +329,71 @@ type BuildApi = {
298
329
  run(): Promise<BuildResult>;
299
330
  getManifest(): Readonly<BundleManifest> | null;
300
331
  };
332
+ declare namespace types_d_exports {
333
+ export { DeployApi, DeployConfig, DeployResult, DeployState, DeployTarget, RunOptions };
334
+ }
335
+ /** @file deploy plugin types — DeployConfig, DeployState, DeployResult, RunOptions, DeployApi. */
336
+ /**
337
+ * Deployment target. Phase 1 ships `'pages'` only; `'workers'` is reserved
338
+ * for the Workers Static Assets expansion path and `buildWranglerArgs`
339
+ * throws "not implemented in Phase 1" if invoked with it.
340
+ */
341
+ type DeployTarget = 'pages' | 'workers';
342
+ /**
343
+ * deploy plugin config.
344
+ *
345
+ * `outdir` precedence at deploy time: `wrangler.jsonc#pages_build_output_dir`
346
+ * (written by `moku deploy init`) — this is the deploy-time single source of
347
+ * truth, NOT `DeployConfig.outdir`. The config field is the *init-time* default;
348
+ * once `wrangler.jsonc` exists, it owns the value.
349
+ *
350
+ * Forbidden: reading the `build` plugin's config via `ctx.has(build)` /
351
+ * `ctx.require(build).config.outdir`. The core `HasFunction` takes a name
352
+ * string and returns a non-narrowing boolean; `RequireFunction` returns the
353
+ * API surface only (`BuildApi = { run, getManifest }`). The optional coupling
354
+ * is a `ctx.log.warn` at init time when divergence is detectable through the
355
+ * directly-imported `build` plugin instance, never via the core API.
356
+ */
357
+ type DeployConfig = {
358
+ /** Deployment target. Default: `'pages'`. */target: DeployTarget; /** Build output directory used at init only. Default: `'dist'` (matches build plugin default). */
359
+ outdir: string; /** Production branch name. Default: `'main'`. Overwritten by `init` via `git symbolic-ref`. */
360
+ productionBranch: string; /** Optional explicit override for the Cloudflare Pages project name. Default: derived from `site.name`. */
361
+ projectName?: string;
362
+ };
363
+ /**
364
+ * In-memory deploy plugin state.
365
+ *
366
+ * `lastDeployment` is reset per `createApp()` call and captures the most
367
+ * recent deploy's metadata (URL, deployment ID, branch, duration). Used by
368
+ * the future REST-API-based rollback command (deferred from Phase 1).
369
+ */
370
+ type DeployState = {
371
+ lastDeployment: DeployResult | null;
372
+ };
373
+ /** Result of a successful `app.deploy.run()` invocation. */
374
+ type DeployResult = {
375
+ /** Production URL (e.g., `https://<project>.pages.dev`) or branch-alias preview URL. */url: string; /** Cloudflare deployment ID — captured for future rollback support. */
376
+ deploymentId: string; /** Branch the deploy was published to. */
377
+ branch: string; /** Total subprocess duration in milliseconds (init + upload + finalize). */
378
+ durationMs: number;
379
+ };
380
+ /**
381
+ * Options accepted by `app.deploy.run()`.
382
+ *
383
+ * `branch` overrides the production branch from wrangler.jsonc (defaults to
384
+ * `DeployConfig.productionBranch`). `build` runs `app.build.run()` first
385
+ * when true — used only for local convenience; the generated CI workflow
386
+ * always issues the two-step `moku build` then `moku deploy` pattern.
387
+ */
388
+ type RunOptions = {
389
+ /** Override the production branch for this deploy. */branch?: string; /** Run `app.build.run()` first (local convenience). Default: `false`. */
390
+ build?: boolean;
391
+ };
392
+ /** Public deploy plugin API surface, attached as `app.deploy`. */
393
+ type DeployApi = {
394
+ /** Run a deploy. Reads outdir from wrangler.jsonc; errors if missing. */run(options?: RunOptions): Promise<DeployResult>; /** Read the last deployment result without re-running. */
395
+ getLastDeployment(): Readonly<DeployResult> | null;
396
+ };
301
397
  //#endregion
302
398
  //#region src/project.d.ts
303
399
  /**
@@ -328,6 +424,49 @@ type WebAppConfig<Routes extends Record<string, RouteBuilder>> = {
328
424
  trustedContent?: boolean;
329
425
  };
330
426
  //#endregion
427
+ //#region src/plugins/build/index.d.ts
428
+ declare const build: _moku_labs_core0.PluginInstance<"build", BuildConfig, BuildState, BuildApi, {
429
+ 'build:phase': {
430
+ phase: "bundle" | "content" | "pages" | "feeds" | "sitemap" | "og" | "images";
431
+ };
432
+ 'build:complete': {
433
+ pages: number;
434
+ durationMs: number;
435
+ };
436
+ }> & Record<never, never>;
437
+ //#endregion
438
+ //#region src/plugins/content/index.d.ts
439
+ declare const content: _moku_labs_core0.PluginInstance<"content", ContentConfig, ContentState, ContentApi, {
440
+ 'content:ready': {
441
+ articles: Map<string, Article[]>;
442
+ };
443
+ 'content:invalidated': {
444
+ paths: string[];
445
+ };
446
+ }> & Record<never, never>;
447
+ //#endregion
448
+ //#region src/plugins/deploy/index.d.ts
449
+ declare const deploy: _moku_labs_core0.PluginInstance<"deploy", DeployConfig, DeployState, DeployApi, {}> & Record<never, never>;
450
+ //#endregion
451
+ //#region src/plugins/env/index.d.ts
452
+ declare const env: _moku_labs_core0.CorePluginInstance<"env", {
453
+ schema: {};
454
+ providers: never[];
455
+ publicPrefix: string;
456
+ }, EnvState, EnvApi>;
457
+ //#endregion
458
+ //#region src/plugins/head/index.d.ts
459
+ declare const head: _moku_labs_core0.PluginInstance<"head", HeadPluginConfig, HeadState, HeadApi, {}> & Record<never, never>;
460
+ //#endregion
461
+ //#region src/plugins/i18n/index.d.ts
462
+ declare const i18n: _moku_labs_core0.PluginInstance<"i18n", I18nConfig, I18nState<readonly string[]>, I18nApi<readonly string[]>, {}> & Record<never, never>;
463
+ //#endregion
464
+ //#region src/plugins/log/index.d.ts
465
+ declare const log: _moku_labs_core0.CorePluginInstance<"log", {
466
+ level: "info";
467
+ mode: "auto";
468
+ }, LogState, LogApi>;
469
+ //#endregion
331
470
  //#region src/plugins/router/route-builder.d.ts
332
471
  /**
333
472
  * Build a `RouteSpec` via a fluent, non-accumulating builder.
@@ -346,4 +485,19 @@ type WebAppConfig<Routes extends Record<string, RouteBuilder>> = {
346
485
  */
347
486
  declare function route(pattern: string): RouteBuilder;
348
487
  //#endregion
349
- export { EnvApi as C, EnvVarSpec as D, EnvState as E, LogApi as O, Events as S, EnvProvider as T, I18nConfig as _, BuildConfig as a, SiteState as b, ContentApi as c, RouteBuilder as d, RouteSpec as f, I18nApi as g, RouterState as h, BuildApi as i, LogState as k, ContentConfig as l, RouterConfig as m, RouteSpecMap as n, BuildState as o, RouterApi as p, WebAppConfig as r, Article as s, route as t, ContentState as u, I18nState as v, EnvConfig as w, Config as x, SiteApi as y };
488
+ //#region src/plugins/router/index.d.ts
489
+ declare const router: _moku_labs_core0.PluginInstance<"router", RouterConfig, RouterState, RouterApi, {
490
+ 'router:registered': {
491
+ routeCount: number;
492
+ };
493
+ }> & Record<never, never>;
494
+ //#endregion
495
+ //#region src/plugins/site/index.d.ts
496
+ declare const site: _moku_labs_core0.PluginInstance<"site", {
497
+ name: string;
498
+ url: string;
499
+ author: string;
500
+ description: string;
501
+ }, SiteState, SiteApi, {}> & Record<never, never>;
502
+ //#endregion
503
+ export { ContentState as A, Events as B, RouterApi as C, Article as D, types_d_exports$2 as E, types_d_exports$4 as F, EnvState as G, EnvApi as H, SiteApi as I, LogApi as J, EnvVarSpec as K, SiteState as L, I18nApi as M, I18nConfig as N, ContentApi as O, I18nState as P, types_d_exports$5 as R, RouteSpec as S, RouterState as T, EnvConfig as U, createPlugin as V, EnvProvider as W, types_d_exports$7 as X, LogState as Y, BuildApi as _, i18n as a, types_d_exports$1 as b, deploy as c, RouteSpecMap as d, WebAppConfig as f, types_d_exports as g, DeployState as h, log as i, types_d_exports$3 as j, ContentConfig as k, content as l, DeployConfig as m, router as n, head as o, DeployApi as p, types_d_exports$6 as q, route as r, env as s, site as t, build as u, BuildConfig as v, RouterConfig as w, RouteBuilder as x, BuildState as y, Config as z };