@owlmeans/client 0.1.10 → 0.1.14

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.
@@ -7,7 +7,7 @@ applyTo: "**/*.ts, **/*.tsx"
7
7
  # @owlmeans/client
8
8
 
9
9
  **Layer:** Client
10
- **Install:** `"@owlmeans/client": "^0.1.10"` in `dependencies`
10
+ **Install:** `"@owlmeans/client": "^0.1.14"` in `dependencies`
11
11
 
12
12
  ## Key Exports
13
13
 
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "package": "@owlmeans/client",
4
- "version": "0.1.10",
5
- "generatedAt": "2026-06-17T09:37:28.175Z",
4
+ "version": "0.1.14",
5
+ "generatedAt": "2026-08-05T16:56:53.379Z",
6
6
  "canonicalRepo": "https://github.com/owlmeans/common",
7
7
  "entries": [
8
8
  {
@@ -8,7 +8,7 @@ user-invocable: false
8
8
  # @owlmeans/client
9
9
 
10
10
  **Layer:** Client
11
- **Install:** `"@owlmeans/client": "^0.1.10"` in `dependencies`
11
+ **Install:** `"@owlmeans/client": "^0.1.14"` in `dependencies`
12
12
 
13
13
  ## Key Exports
14
14
 
package/build/app.js CHANGED
@@ -2,9 +2,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from 'react';
3
3
  import { Context } from './context.js';
4
4
  import { Router } from './router.js';
5
- export const App = ({ context, provide, children }) => {
5
+ export const App = ({ context, provide, noRouter, children }) => {
6
6
  const [render, rerender] = useState(0);
7
7
  useEffect(() => context.registerRerenderer(() => rerender(render + 1)), []);
8
- return _jsxs(Context, { value: context, children: [children, provide != null ? _jsx(Router, { provide: provide }) : undefined] });
8
+ return _jsxs(Context, { value: context, children: [children, noRouter !== true ? _jsx(Router, { provide: provide }) : undefined] });
9
9
  };
10
10
  //# sourceMappingURL=app.js.map
package/build/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,CAAC,MAAM,GAAG,GAAiB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAEtC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAE3E,OAAO,MAAC,OAAO,IAAC,KAAK,EAAE,OAAO,aAC3B,QAAQ,EACR,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,KAAC,MAAM,IAAC,OAAO,EAAE,OAAO,GAAI,CAAC,CAAC,CAAC,SAAS,IACnD,CAAA;AACZ,CAAC,CAAA"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,CAAC,MAAM,GAAG,GAAiB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC5E,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAEtC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAE3E,OAAO,MAAC,OAAO,IAAC,KAAK,EAAE,OAAO,aAC3B,QAAQ,EACR,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,KAAC,MAAM,IAAC,OAAO,EAAE,OAAO,GAAI,CAAC,CAAC,CAAC,SAAS,IACrD,CAAA;AACZ,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAc1D,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,WAAW,CA0BlC,CAAA;AAED,eAAO,MAAM,eAAe,QAAO,WAgClC,CAAA"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAkB,MAAM,YAAY,CAAA;AAc1E,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,WAAW,CAkClC,CAAA;AAED,eAAO,MAAM,eAAe,QAAO,WAgClC,CAAA"}
package/build/router.js CHANGED
@@ -6,15 +6,22 @@ import { assertContext } from '@owlmeans/context';
6
6
  export const Router = ({ provide }) => {
7
7
  const progress = useRef(false);
8
8
  const context = useContext();
9
- const [router, setRouter] = useState((typeof provide === 'function' ? undefined : provide));
9
+ // Default to the active router plugin's compiler when no explicit provider is
10
+ // passed — this is the standard OwlMeans routing path.
11
+ const provideFn = typeof provide === 'function'
12
+ ? provide
13
+ : provide == null
14
+ ? (routes => context.router().compile(routes))
15
+ : undefined;
16
+ const [router, setRouter] = useState((provideFn != null ? undefined : provide));
10
17
  // @TODO We expect that this use memo will do the trick and we don't need to useEffect
11
18
  // @TODO Show debug only in debug mode
12
19
  useEffect(() => {
13
20
  if (!progress.current && !context.cfg.ready) {
14
21
  progress.current = true;
15
- if (typeof provide === 'function') {
16
- initializeRouter(context).then(router => provide(router))
17
- .then(routes => setRouter(routes));
22
+ if (provideFn != null) {
23
+ initializeRouter(context).then(routes => provideFn(routes))
24
+ .then(router => setRouter(router));
18
25
  }
19
26
  }
20
27
  }, []);
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAOjD,MAAM,CAAC,MAAM,MAAM,GAAoB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAE5B,8EAA8E;IAC9E,uDAAuD;IACvD,MAAM,SAAS,GAA+B,OAAO,OAAO,KAAK,UAAU;QACzE,CAAC,CAAE,OAA0B;QAC7B,CAAC,CAAC,OAAO,IAAI,IAAI;YACf,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC,CAAC,SAAS,CAAA;IAEf,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAClC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAkB,CAC3D,CAAA;IACD,sFAAsF;IACtF,sCAAsC;IACtC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YAC5C,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAA;YAEvB,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;gBACtB,gBAAgB,CAAC,OAAc,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;qBAC/D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;YACtC,CAAC;QACH,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,mDAAmD;IACnD,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;AAC/D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,GAAgB,EAAE;IAC/C,MAAM,QAAQ,GAAG,eAAe,CAAA;IAChC,MAAM,KAAK,GAAgB;QACzB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACrB,MAAM,OAAO,GAAG,aAAa,CAAkB,GAAc,EAAE,QAAQ,CAAC,CAAA;YACxE,MAAM,UAAU,GAAG,eAAe,CAAC,OAAkB,CAAC,CAAA;YAEtD,MAAM,WAAW,GAAkB,MAAM,eAAe,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;gBAC9F,MAAM,GAAG,GAAG,aAAa,CACvB,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,CAA8B,EAAE,QAAQ,CAC/D,CAAA;gBACD,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBAE/B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI;oBACpC,CAAC,CAAC,EAAE,SAAS,EAAE,mBAAmB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE;oBAC3F,CAAC,CAAC,SAAS,CAAA;gBAEb,MAAM,KAAK,GAAgB;oBACzB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAS,CAAC,CAAC,CAAC,SAAS,CAAC;oBACpE,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;oBACvF,GAAG,QAAQ;iBACZ,CAAA;gBAED,OAAO,KAAK,CAAA;YACd,CAAC,CAAC,CAAA;YAEF,OAAO,KAAK,CAAC,MAAM,GAAG,WAAW,CAAA;QACnC,CAAC;KACF,CAAA;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
package/build/types.d.ts CHANGED
@@ -15,11 +15,19 @@ export interface RouterProvider {
15
15
  (routes: RouteObject[]): LibraryRouter | Promise<LibraryRouter>;
16
16
  }
17
17
  export interface RouterProps {
18
- provide: RouterProvider | LibraryRouter;
18
+ /**
19
+ * How to turn the resolved route IR into a library router. When omitted, the
20
+ * active router plugin's `compile` (via `context.router().compile`) is used —
21
+ * the default OwlMeans routing path. A function receives the routes; a value is
22
+ * treated as an already-built library router.
23
+ */
24
+ provide?: RouterProvider | LibraryRouter;
19
25
  }
20
26
  export interface AppProps extends PropsWithChildren {
21
27
  context: ClientContext<any>;
22
28
  provide?: RouterProvider | LibraryRouter;
29
+ /** Opt out of mounting the router (e.g. when routing is hosted elsewhere). */
30
+ noRouter?: boolean;
23
31
  }
24
32
  export interface RoutedComponent<ExtraProps = {}> extends FC<PropsWithChildren<ModuleContextParams & ExtraProps>> {
25
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AACjG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACnF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAG7G,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,OAAO,EAAE,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;CACpG;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;CAChE;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,cAAc,GAAG,aAAa,CAAA;CACxC;AAED,MAAM,WAAW,QAAS,SAAQ,iBAAiB;IACjD,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;IAC3B,OAAO,CAAC,EAAE,cAAc,GAAG,aAAa,CAAA;CACzC;AAED,MAAM,WAAW,eAAe,CAAC,UAAU,GAAG,EAAE,CAAE,SAAQ,EAAE,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,UAAU,CAAC,CAAC;CAChH;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE;IACpD,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,aAAa,CAAA;CACvB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC,EACjG,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB;IAClB,kBAAkB,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,MAAM,IAAI,CAAA;IAC9D,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,MAAM,EAAE,MAAM,aAAa,CAAA;CAC5B;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAC7E,SAAQ,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,gBAAgB,CAAA;IAC3B,QAAQ,EAAE,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9H,EAAE,EAAE,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpF,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,SAAS,EAAE,MAAM,MAAM,IAAI,CAAA;IAC3B,KAAK,EAAE,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,MAAM,IAAI,CAAA;IACpF,QAAQ,EAAE,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAA;CAC/D;AAED,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,CAAA;IACX,IAAI,CAAC,EAAE,cAAc,CAAA;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ interface Context<C extends Config = Config> extends ClientContext<C> {
6
6
  }
7
7
  export declare const buildModuleTree: <R, C extends Config = Config, T extends Context<C> = Context<C>>(context: T) => ModuleTree<R>;
8
8
  export declare const visitModuleTree: <T, R>(tree: ModuleTree<T>, visitor: ModuleTreeVisitor<T, R>) => Promise<R[]>;
9
- export declare const initializeRouter: (context: Context) => Promise<unknown[]>;
9
+ export declare const initializeRouter: (context: Context) => Promise<import("@owlmeans/router").RouteObject[]>;
10
10
  export interface ModuleTreeVisitor<T, R> {
11
11
  (module: ClientEntrypoint<T>, children: R[], alone: boolean): Promise<R>;
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/utils/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAGnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,KAAK,MAAM,GAAG,YAAY,CAAA;AAC1B,UAAU,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;CAAI;AAEzE,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,KAAG,UAAU,CAAC,CAAC,CA2BzH,CAAA;AAED,eAAO,MAAM,eAAe,GAAU,CAAC,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,EAAE,CAKpF,CAAA;AAE3B,eAAO,MAAM,gBAAgB,GAAU,SAAS,OAAO,uBAOtD,CAAA;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC;IACrC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CACzE;AAED,UAAU,UAAU,CAAC,CAAC,CAAE,SAAQ,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACtE"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/utils/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAGnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,KAAK,MAAM,GAAG,YAAY,CAAA;AAC1B,UAAU,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;CAAI;AAEzE,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,KAAG,UAAU,CAAC,CAAC,CA2BzH,CAAA;AAED,eAAO,MAAM,eAAe,GAAU,CAAC,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,EAAE,CAKpF,CAAA;AAE3B,eAAO,MAAM,gBAAgB,GAAU,SAAS,OAAO,sDAOtD,CAAA;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC;IACrC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CACzE;AAED,UAAU,UAAU,CAAC,CAAC,CAAE,SAAQ,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACtE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@owlmeans/client",
3
- "version": "0.1.10",
3
+ "version": "0.1.14",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -28,17 +28,17 @@
28
28
  }
29
29
  },
30
30
  "dependencies": {
31
- "@owlmeans/auth": "^0.1.10",
32
- "@owlmeans/client-context": "^0.1.10",
33
- "@owlmeans/client-entrypoint": "^0.1.10",
34
- "@owlmeans/client-resource": "^0.1.10",
35
- "@owlmeans/config": "^0.1.10",
36
- "@owlmeans/context": "^0.1.10",
37
- "@owlmeans/error": "^0.1.10",
38
- "@owlmeans/entrypoint": "^0.1.10",
39
- "@owlmeans/resource": "^0.1.10",
40
- "@owlmeans/router": "^0.1.10",
41
- "@owlmeans/state": "^0.1.10"
31
+ "@owlmeans/auth": "^0.1.14",
32
+ "@owlmeans/client-context": "^0.1.14",
33
+ "@owlmeans/client-entrypoint": "^0.1.14",
34
+ "@owlmeans/client-resource": "^0.1.14",
35
+ "@owlmeans/config": "^0.1.14",
36
+ "@owlmeans/context": "^0.1.14",
37
+ "@owlmeans/error": "^0.1.14",
38
+ "@owlmeans/entrypoint": "^0.1.14",
39
+ "@owlmeans/resource": "^0.1.14",
40
+ "@owlmeans/router": "^0.1.14",
41
+ "@owlmeans/state": "^0.1.14"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "@remix-run/router": "*",
@@ -51,10 +51,9 @@
51
51
  },
52
52
  "devDependencies": {
53
53
  "@owlmeans/dep-config": "workspace:*",
54
- "@types/react": "^19.2.7",
55
- "nodemon": "^3.1.11",
56
- "npm-check": "^6.0.1",
57
- "typescript": "^6.0.2"
54
+ "@types/react": "^19.2.17",
55
+ "nodemon": "^3.1.14",
56
+ "typescript": "^6.0.3"
58
57
  },
59
58
  "publishConfig": {
60
59
  "access": "public"
package/src/app.tsx CHANGED
@@ -5,13 +5,13 @@ import { useEffect, useState } from 'react'
5
5
  import { Context } from './context.js'
6
6
  import { Router } from './router.js'
7
7
 
8
- export const App: FC<AppProps> = ({ context, provide, children }) => {
8
+ export const App: FC<AppProps> = ({ context, provide, noRouter, children }) => {
9
9
  const [render, rerender] = useState(0)
10
10
 
11
11
  useEffect(() => context.registerRerenderer(() => rerender(render + 1)), [])
12
12
 
13
13
  return <Context value={context}>
14
14
  {children}
15
- {provide != null ? <Router provide={provide} /> : undefined}
15
+ {noRouter !== true ? <Router provide={provide} /> : undefined}
16
16
  </Context>
17
17
  }
package/src/router.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { FC } from 'react'
2
- import type { RouterModel, RouterProps } from './types.js'
2
+ import type { RouterModel, RouterProps, RouterProvider } from './types.js'
3
3
  import { createElement, useEffect, useRef, useState } from 'react'
4
4
  import { buildModuleTree, initializeRouter, visitModuleTree } from './utils/router.js'
5
5
  import { createRouteRenderer } from './utils/route.js'
@@ -17,8 +17,16 @@ export const Router: FC<RouterProps> = ({ provide }) => {
17
17
  const progress = useRef(false)
18
18
  const context = useContext()
19
19
 
20
+ // Default to the active router plugin's compiler when no explicit provider is
21
+ // passed — this is the standard OwlMeans routing path.
22
+ const provideFn: RouterProvider | undefined = typeof provide === 'function'
23
+ ? (provide as RouterProvider)
24
+ : provide == null
25
+ ? (routes => context.router().compile(routes))
26
+ : undefined
27
+
20
28
  const [router, setRouter] = useState<LibraryRouter>(
21
- (typeof provide === 'function' ? undefined : provide) as LibraryRouter
29
+ (provideFn != null ? undefined : provide) as LibraryRouter
22
30
  )
23
31
  // @TODO We expect that this use memo will do the trick and we don't need to useEffect
24
32
  // @TODO Show debug only in debug mode
@@ -26,9 +34,9 @@ export const Router: FC<RouterProps> = ({ provide }) => {
26
34
  if (!progress.current && !context.cfg.ready) {
27
35
  progress.current = true
28
36
 
29
- if (typeof provide === 'function') {
30
- initializeRouter(context as any).then(router => provide(router))
31
- .then(routes => setRouter(routes))
37
+ if (provideFn != null) {
38
+ initializeRouter(context as any).then(routes => provideFn(routes))
39
+ .then(router => setRouter(router))
32
40
  }
33
41
  }
34
42
  }, [])
package/src/types.ts CHANGED
@@ -19,12 +19,20 @@ export interface RouterProvider {
19
19
  }
20
20
 
21
21
  export interface RouterProps {
22
- provide: RouterProvider | LibraryRouter
22
+ /**
23
+ * How to turn the resolved route IR into a library router. When omitted, the
24
+ * active router plugin's `compile` (via `context.router().compile`) is used —
25
+ * the default OwlMeans routing path. A function receives the routes; a value is
26
+ * treated as an already-built library router.
27
+ */
28
+ provide?: RouterProvider | LibraryRouter
23
29
  }
24
30
 
25
31
  export interface AppProps extends PropsWithChildren {
26
32
  context: ClientContext<any>
27
33
  provide?: RouterProvider | LibraryRouter
34
+ /** Opt out of mounting the router (e.g. when routing is hosted elsewhere). */
35
+ noRouter?: boolean
28
36
  }
29
37
 
30
38
  export interface RoutedComponent<ExtraProps = {}> extends FC<PropsWithChildren<ModuleContextParams & ExtraProps>> {