@owlmeans/router 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # OwlMeans Package Template
2
+
3
+ This is a template directory for creating new packages within the OwlMeans Common Libraries ecosystem.
4
+
5
+ ## Usage
6
+
7
+ Copy this template directory when creating a new package:
8
+
9
+ ```bash
10
+ cp -r packages/_tpl packages/your-new-package
11
+ cd packages/your-new-package
12
+ ```
13
+
14
+ Then update:
15
+ - `package.json` - Change the package name and dependencies
16
+ - `README.md` - Replace with proper documentation following OwlMeans standards
17
+ - `src/index.ts` - Implement your package functionality
18
+
19
+ ## Template Structure
20
+
21
+ - **package.json** - Base package configuration with common scripts and exports
22
+ - **tsconfig.json** - TypeScript configuration aligned with OwlMeans standards
23
+ - **src/index.ts** - Entry point file
24
+ - **README.md** - This template documentation (replace with actual docs)
package/build/.gitkeep ADDED
File without changes
@@ -0,0 +1,3 @@
1
+ export declare const DEFAULT_ALIAS = "router-service";
2
+ export declare const ROUTER_SERVICE = "router-service";
3
+ //# sourceMappingURL=consts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa,mBAAmB,CAAA;AAE7C,eAAO,MAAM,cAAc,mBAAgB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export const DEFAULT_ALIAS = 'router-service';
2
+ export const ROUTER_SERVICE = DEFAULT_ALIAS;
3
+ //# sourceMappingURL=consts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAA;AAE7C,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAA"}
@@ -0,0 +1,4 @@
1
+ export type * from './types.js';
2
+ export * from './consts.js';
3
+ export * from './service.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,mBAAmB,YAAY,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA"}
package/build/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from './consts.js';
2
+ export * from './service.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { RouterService } from "./types";
2
+ export declare const makeRouterService: (alias?: string) => RouterService;
3
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,eAAO,MAAM,iBAAiB,GAAI,QAAO,MAAsB,KAAG,aAwBjE,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { createService } from "@owlmeans/context";
2
+ import { DEFAULT_ALIAS } from "./consts.js";
3
+ export const makeRouterService = (alias = DEFAULT_ALIAS) => {
4
+ const service = createService(alias, {
5
+ outlet: () => {
6
+ throw new Error('Router Outlet is not implemented');
7
+ },
8
+ provider: () => {
9
+ throw new Error('Router Provider is not implemented');
10
+ },
11
+ useParams: () => {
12
+ throw new Error('Router useParams is not implemented');
13
+ },
14
+ useLocation: () => {
15
+ throw new Error('Router useLocation is not implemented');
16
+ },
17
+ useNavigate: () => {
18
+ throw new Error('Router useNavigate is not implemented');
19
+ }
20
+ });
21
+ return service;
22
+ };
23
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAG3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAgB,aAAa,EAAiB,EAAE;IAChF,MAAM,OAAO,GAAG,aAAa,CAAgB,KAAK,EAAE;QAClD,MAAM,EAAE,GAAG,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;QACrD,CAAC;QAED,QAAQ,EAAE,GAAG,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACvD,CAAC;QAED,SAAS,EAAE,GAAG,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACxD,CAAC;QAED,WAAW,EAAE,GAAG,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;QAC1D,CAAC;QAED,WAAW,EAAE,GAAG,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;QAC1D,CAAC;KACF,CAAC,CAAA;IAEF,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
@@ -0,0 +1,44 @@
1
+ import type { InitializedService } from "@owlmeans/context";
2
+ export type { ComponentType } from 'react';
3
+ export type LibraryRouter = unknown;
4
+ export type RouteObject = unknown;
5
+ export type RouterProvider = React.ComponentType<any>;
6
+ export interface RouterService extends InitializedService {
7
+ outlet: () => React.ComponentType;
8
+ provider: () => RouterProvider;
9
+ useParams: UseParamsHook;
10
+ useLocation: UseLocationHook;
11
+ useNavigate: UseNavigateHook;
12
+ }
13
+ export type RouteParams = Record<string, string | undefined>;
14
+ export interface UseParamsHook {
15
+ <T extends RouteParams = RouteParams>(): T;
16
+ }
17
+ export interface Path {
18
+ pathname: string;
19
+ search: string;
20
+ hash: string;
21
+ }
22
+ export interface Location<State = any> extends Path {
23
+ state: State;
24
+ key: string;
25
+ }
26
+ export interface UseLocationHook {
27
+ (): Location;
28
+ }
29
+ interface NavigateOptions {
30
+ replace?: boolean;
31
+ state?: any;
32
+ preventScrollReset?: boolean;
33
+ relative?: "route" | "path";
34
+ flushSync?: boolean;
35
+ viewTransition?: boolean;
36
+ }
37
+ export interface NavigateFunction {
38
+ (to: string | Partial<Path>, options?: NavigateOptions): void | Promise<void>;
39
+ (delta: number): void | Promise<void>;
40
+ }
41
+ export interface UseNavigateHook {
42
+ (): NavigateFunction;
43
+ }
44
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,YAAY,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAE1C,MAAM,MAAM,aAAa,GAAG,OAAO,CAAA;AAEnC,MAAM,MAAM,WAAW,GAAG,OAAO,CAAA;AAEjC,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;AAErD,MAAM,WAAW,aAAc,SAAQ,kBAAkB;IACvD,MAAM,EAAE,MAAM,KAAK,CAAC,aAAa,CAAA;IACjC,QAAQ,EAAE,MAAM,cAAc,CAAA;IAC9B,SAAS,EAAE,aAAa,CAAA;IACxB,WAAW,EAAE,eAAe,CAAA;IAC5B,WAAW,EAAE,eAAe,CAAA;CAC7B;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;AAE5D,MAAM,WAAW,aAAa;IAC5B,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,KAAK,CAAC,CAAA;CAC3C;AAED,MAAM,WAAW,IAAI;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAE,SAAQ,IAAI;IACjD,KAAK,EAAE,KAAK,CAAA;IAEZ,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,QAAQ,CAAA;CACb;AAED,UAAU,eAAe;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7E,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,gBAAgB,CAAA;CACrB"}
package/build/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@owlmeans/router",
3
+ "version": "0.1.1",
4
+ "type": "module",
5
+ "scripts": {
6
+ "build": "tsc -b",
7
+ "dev": "sleep 60 && nodemon -e ts,tsx,json --watch src --exec \"tsc -p ./tsconfig.json\"",
8
+ "watch": "tsc -b -w --preserveWatchOutput --pretty"
9
+ },
10
+ "main": "build/index.js",
11
+ "module": "build/index.js",
12
+ "types": "build/index.d.ts",
13
+ "exports": {
14
+ ".": {
15
+ "import": "./build/index.js",
16
+ "require": "./build/index.js",
17
+ "default": "./build/index.js",
18
+ "module": "./build/index.js",
19
+ "types": "./build/index.d.ts"
20
+ }
21
+ },
22
+ "dependencies": {
23
+ "@owlmeans/context": "^0.1.1"
24
+ },
25
+ "peerDependencies": {
26
+ "react": "*"
27
+ },
28
+ "devDependencies": {
29
+ "@types/node": "^24.10.1",
30
+ "@types/react": "^19.2.7",
31
+ "nodemon": "^3.1.11",
32
+ "typescript": "^5.8.3"
33
+ },
34
+ "publishConfig": {
35
+ "access": "public"
36
+ }
37
+ }
package/src/consts.ts ADDED
@@ -0,0 +1,4 @@
1
+
2
+ export const DEFAULT_ALIAS = 'router-service'
3
+
4
+ export const ROUTER_SERVICE = DEFAULT_ALIAS
package/src/index.ts ADDED
@@ -0,0 +1,4 @@
1
+
2
+ export type * from './types.js'
3
+ export * from './consts.js'
4
+ export * from './service.js'
package/src/service.ts ADDED
@@ -0,0 +1,29 @@
1
+ import { createService } from "@owlmeans/context"
2
+ import { DEFAULT_ALIAS } from "./consts.js"
3
+ import type { RouterService } from "./types"
4
+
5
+ export const makeRouterService = (alias: string = DEFAULT_ALIAS): RouterService => {
6
+ const service = createService<RouterService>(alias, {
7
+ outlet: () => {
8
+ throw new Error('Router Outlet is not implemented')
9
+ },
10
+
11
+ provider: () => {
12
+ throw new Error('Router Provider is not implemented')
13
+ },
14
+
15
+ useParams: () => {
16
+ throw new Error('Router useParams is not implemented')
17
+ },
18
+
19
+ useLocation: () => {
20
+ throw new Error('Router useLocation is not implemented')
21
+ },
22
+
23
+ useNavigate: () => {
24
+ throw new Error('Router useNavigate is not implemented')
25
+ }
26
+ })
27
+
28
+ return service
29
+ }
package/src/types.ts ADDED
@@ -0,0 +1,56 @@
1
+ import type { InitializedService } from "@owlmeans/context"
2
+ export type { ComponentType } from 'react'
3
+
4
+ export type LibraryRouter = unknown
5
+
6
+ export type RouteObject = unknown
7
+
8
+ export type RouterProvider = React.ComponentType<any>
9
+
10
+ export interface RouterService extends InitializedService {
11
+ outlet: () => React.ComponentType
12
+ provider: () => RouterProvider
13
+ useParams: UseParamsHook
14
+ useLocation: UseLocationHook
15
+ useNavigate: UseNavigateHook
16
+ }
17
+
18
+ export type RouteParams = Record<string, string | undefined>
19
+
20
+ export interface UseParamsHook {
21
+ <T extends RouteParams = RouteParams>(): T
22
+ }
23
+
24
+ export interface Path {
25
+ pathname: string
26
+ search: string
27
+ hash: string
28
+ }
29
+
30
+ export interface Location<State = any> extends Path {
31
+ state: State
32
+
33
+ key: string
34
+ }
35
+
36
+ export interface UseLocationHook {
37
+ (): Location
38
+ }
39
+
40
+ interface NavigateOptions {
41
+ replace?: boolean
42
+ state?: any
43
+ preventScrollReset?: boolean
44
+ relative?: "route" | "path"
45
+ flushSync?: boolean
46
+ viewTransition?: boolean
47
+ }
48
+
49
+ export interface NavigateFunction {
50
+ (to: string | Partial<Path>, options?: NavigateOptions): void | Promise<void>
51
+ (delta: number): void | Promise<void>
52
+ }
53
+
54
+ export interface UseNavigateHook {
55
+ (): NavigateFunction
56
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,16 @@
1
+ {
2
+ "extends": [
3
+ "../tsconfig.default.json",
4
+ "../tsconfig.react.json",
5
+ ],
6
+ "compilerOptions": {
7
+ "rootDir": "./src/", /* Specify the root folder within your source files. */
8
+ "outDir": "./build/", /* Specify an output folder for all emitted files. */
9
+ "moduleResolution": "Bundler",
10
+ },
11
+ "exclude": [
12
+ "./dist/**/*",
13
+ "./build/**/*",
14
+ "./*.ts"
15
+ ]
16
+ }