@decaf-ts/ui-decorators 0.17.11 → 0.19.0
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 +15 -1
- package/dist/ui-decorators.cjs +1 -1
- package/dist/ui-decorators.cjs.map +1 -1
- package/dist/ui-decorators.js +1 -1
- package/dist/ui-decorators.js.map +1 -1
- package/lib/cjs/graph/constants.cjs +28 -1
- package/lib/cjs/graph/constants.cjs.map +1 -1
- package/lib/cjs/index.cjs +3 -3
- package/lib/cjs/ui/Rendering.cjs +36 -6
- package/lib/cjs/ui/Rendering.cjs.map +1 -1
- package/lib/cjs/ui/constants.cjs +3 -0
- package/lib/cjs/ui/constants.cjs.map +1 -1
- package/lib/cjs/ui/decorators.cjs +28 -0
- package/lib/cjs/ui/decorators.cjs.map +1 -1
- package/lib/cjs/user-requests/UserRequestHandler.cjs +190 -0
- package/lib/cjs/user-requests/UserRequestHandler.cjs.map +1 -0
- package/lib/cjs/user-requests/constants.cjs +22 -0
- package/lib/cjs/user-requests/constants.cjs.map +1 -0
- package/lib/cjs/user-requests/decorators.cjs +41 -0
- package/lib/cjs/user-requests/decorators.cjs.map +1 -0
- package/lib/cjs/user-requests/errors.cjs +26 -0
- package/lib/cjs/user-requests/errors.cjs.map +1 -0
- package/lib/cjs/user-requests/index.cjs +33 -0
- package/lib/cjs/user-requests/index.cjs.map +1 -0
- package/lib/cjs/user-requests/types.cjs +4 -0
- package/lib/cjs/user-requests/types.cjs.map +1 -0
- package/lib/esm/graph/constants.js +26 -0
- package/lib/esm/graph/constants.js.map +1 -1
- package/lib/esm/index.js +3 -3
- package/lib/esm/ui/Rendering.js +36 -6
- package/lib/esm/ui/Rendering.js.map +1 -1
- package/lib/esm/ui/constants.js +3 -0
- package/lib/esm/ui/constants.js.map +1 -1
- package/lib/esm/ui/decorators.js +25 -0
- package/lib/esm/ui/decorators.js.map +1 -1
- package/lib/esm/user-requests/UserRequestHandler.js +185 -0
- package/lib/esm/user-requests/UserRequestHandler.js.map +1 -0
- package/lib/esm/user-requests/constants.js +18 -0
- package/lib/esm/user-requests/constants.js.map +1 -0
- package/lib/esm/user-requests/decorators.js +37 -0
- package/lib/esm/user-requests/decorators.js.map +1 -0
- package/lib/esm/user-requests/errors.js +21 -0
- package/lib/esm/user-requests/errors.js.map +1 -0
- package/lib/esm/user-requests/index.js +16 -0
- package/lib/esm/user-requests/index.js.map +1 -0
- package/lib/esm/user-requests/types.js +8 -0
- package/lib/esm/user-requests/types.js.map +1 -0
- package/lib/types/graph/constants.d.cts +66 -0
- package/lib/types/graph/constants.d.mts +66 -0
- package/lib/types/index.d.cts +3 -3
- package/lib/types/index.d.mts +3 -3
- package/lib/types/ui/constants.d.cts +3 -0
- package/lib/types/ui/constants.d.mts +3 -0
- package/lib/types/ui/decorators.d.cts +15 -0
- package/lib/types/ui/decorators.d.mts +15 -0
- package/lib/types/user-requests/UserRequestHandler.d.cts +117 -0
- package/lib/types/user-requests/UserRequestHandler.d.mts +117 -0
- package/lib/types/user-requests/constants.d.cts +17 -0
- package/lib/types/user-requests/constants.d.mts +17 -0
- package/lib/types/user-requests/decorators.d.cts +22 -0
- package/lib/types/user-requests/decorators.d.mts +22 -0
- package/lib/types/user-requests/errors.d.cts +18 -0
- package/lib/types/user-requests/errors.d.mts +18 -0
- package/lib/types/user-requests/index.d.cts +15 -0
- package/lib/types/user-requests/index.d.mts +15 -0
- package/lib/types/user-requests/types.d.cts +36 -0
- package/lib/types/user-requests/types.d.mts +36 -0
- package/package.json +22 -4
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ui-decorators/user-requests
|
|
3
|
+
* @summary Backend binding surface for the User Request Resolution Engine.
|
|
4
|
+
* @description Framework-agnostic core of the engine: no Angular or DOM
|
|
5
|
+
* imports, safe for pure-Node (backend) bundles. Handlers are registered via
|
|
6
|
+
* `@userRequest(reference)` (metadata) and resolved/dispatched through the
|
|
7
|
+
* static `UserRequestHandler` methods; example handlers and rendering-engine
|
|
8
|
+
* mocks live only in the test tree, never under `src`. Frontend bindings live
|
|
9
|
+
* in `for-angular`.
|
|
10
|
+
*/
|
|
11
|
+
export * from "./constants.d.mts";
|
|
12
|
+
export * from "./errors.d.mts";
|
|
13
|
+
export * from "./types.d.mts";
|
|
14
|
+
export * from "./UserRequestHandler.d.mts";
|
|
15
|
+
export * from "./decorators.d.mts";
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ui-decorators/user-requests/types
|
|
3
|
+
* @summary Framework-agnostic contracts for the User Request Resolution Engine.
|
|
4
|
+
* @description No Angular or DOM imports are allowed here so the `user-requests`
|
|
5
|
+
* entry point stays consumable from pure-Node (backend) bundles.
|
|
6
|
+
*/
|
|
7
|
+
import type { RenderingEngine } from "../ui/Rendering.d.cts";
|
|
8
|
+
/**
|
|
9
|
+
* @description A user request payload. `id` identifies the request instance,
|
|
10
|
+
* `type` is the keyed handler reference used for resolution — handlers are
|
|
11
|
+
* dispatched via `UserRequestHandler.handle(request, renderingEngine)`, which
|
|
12
|
+
* resolves the registered handler class by `request.type || request.id` — and
|
|
13
|
+
* `payload` carries optional request data.
|
|
14
|
+
* @template T The shape of the optional request data.
|
|
15
|
+
*/
|
|
16
|
+
export interface UserRequest<T = unknown> {
|
|
17
|
+
id: string;
|
|
18
|
+
type: string;
|
|
19
|
+
payload?: T;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @description The rendering-engine surface a user request handler needs.
|
|
23
|
+
* Exposes exactly the four real `RenderingEngine` methods a handler drives
|
|
24
|
+
* (modal, toast, spinner and router); no duplicated rendering types.
|
|
25
|
+
* @summary The four real `RenderingEngine` methods handed to handlers.
|
|
26
|
+
*/
|
|
27
|
+
export type RenderingFacade = Pick<RenderingEngine, "getModal" | "getToast" | "getSpinner" | "router">;
|
|
28
|
+
/**
|
|
29
|
+
* @description Metadata recorded by `@userRequest(reference)` on a handler
|
|
30
|
+
* class and read back via `UserRequestHandler.getMetadata(target)`. `reference`
|
|
31
|
+
* is the request id/type the handler is registered for.
|
|
32
|
+
* @summary Metadata recorded on a `@userRequest`-decorated handler class.
|
|
33
|
+
*/
|
|
34
|
+
export interface UserRequestHandlerMetadata {
|
|
35
|
+
reference: string;
|
|
36
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ui-decorators/user-requests/types
|
|
3
|
+
* @summary Framework-agnostic contracts for the User Request Resolution Engine.
|
|
4
|
+
* @description No Angular or DOM imports are allowed here so the `user-requests`
|
|
5
|
+
* entry point stays consumable from pure-Node (backend) bundles.
|
|
6
|
+
*/
|
|
7
|
+
import type { RenderingEngine } from "../ui/Rendering.d.mts";
|
|
8
|
+
/**
|
|
9
|
+
* @description A user request payload. `id` identifies the request instance,
|
|
10
|
+
* `type` is the keyed handler reference used for resolution — handlers are
|
|
11
|
+
* dispatched via `UserRequestHandler.handle(request, renderingEngine)`, which
|
|
12
|
+
* resolves the registered handler class by `request.type || request.id` — and
|
|
13
|
+
* `payload` carries optional request data.
|
|
14
|
+
* @template T The shape of the optional request data.
|
|
15
|
+
*/
|
|
16
|
+
export interface UserRequest<T = unknown> {
|
|
17
|
+
id: string;
|
|
18
|
+
type: string;
|
|
19
|
+
payload?: T;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @description The rendering-engine surface a user request handler needs.
|
|
23
|
+
* Exposes exactly the four real `RenderingEngine` methods a handler drives
|
|
24
|
+
* (modal, toast, spinner and router); no duplicated rendering types.
|
|
25
|
+
* @summary The four real `RenderingEngine` methods handed to handlers.
|
|
26
|
+
*/
|
|
27
|
+
export type RenderingFacade = Pick<RenderingEngine, "getModal" | "getToast" | "getSpinner" | "router">;
|
|
28
|
+
/**
|
|
29
|
+
* @description Metadata recorded by `@userRequest(reference)` on a handler
|
|
30
|
+
* class and read back via `UserRequestHandler.getMetadata(target)`. `reference`
|
|
31
|
+
* is the request id/type the handler is registered for.
|
|
32
|
+
* @summary Metadata recorded on a `@userRequest`-decorated handler class.
|
|
33
|
+
*/
|
|
34
|
+
export interface UserRequestHandlerMetadata {
|
|
35
|
+
reference: string;
|
|
36
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decaf-ts/ui-decorators",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "Extension of decorator validation to ui elements to allow for web integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -25,6 +25,17 @@
|
|
|
25
25
|
"default": "./lib/cjs/graph/index.cjs"
|
|
26
26
|
},
|
|
27
27
|
"default": "./lib/esm/graph/index.js"
|
|
28
|
+
},
|
|
29
|
+
"./user-requests": {
|
|
30
|
+
"import": {
|
|
31
|
+
"types": "./lib/types/user-requests/index.d.mts",
|
|
32
|
+
"default": "./lib/esm/user-requests/index.js"
|
|
33
|
+
},
|
|
34
|
+
"require": {
|
|
35
|
+
"types": "./lib/types/user-requests/index.d.cts",
|
|
36
|
+
"default": "./lib/cjs/user-requests/index.cjs"
|
|
37
|
+
},
|
|
38
|
+
"default": "./lib/esm/user-requests/index.js"
|
|
28
39
|
}
|
|
29
40
|
},
|
|
30
41
|
"types": "./lib/types/index.d.mts",
|
|
@@ -47,7 +58,7 @@
|
|
|
47
58
|
"lint": "eslint .",
|
|
48
59
|
"lint-fix": "eslint --fix .",
|
|
49
60
|
"prepare-pr": "npm run lint-fix && npm run build:prod && npm run coverage && npm run docs",
|
|
50
|
-
"prepare-release": "npm run lint-fix && npm run build:prod && npm run coverage
|
|
61
|
+
"prepare-release": "npm run lint-fix && npm run build:prod && npm run coverage",
|
|
51
62
|
"release": "./bin/tag-release.sh",
|
|
52
63
|
"clean-publish": "npx clean-publish",
|
|
53
64
|
"drawings": "for FILE in workdocs/drawings/*.drawio; do echo \"converting $FILE to image...\" && docker run --rm -v $(pwd):/data rlespinasse/drawio-export --format png $FILE; done && cp -rf workdocs/drawings/export/* workdocs/resources/",
|
|
@@ -108,9 +119,12 @@
|
|
|
108
119
|
"@types/jest": "^30.0.0"
|
|
109
120
|
},
|
|
110
121
|
"dependencies": {
|
|
122
|
+
"@decaf-ts/core": "latest",
|
|
111
123
|
"@decaf-ts/db-decorators": "latest",
|
|
112
124
|
"@decaf-ts/decoration": "latest",
|
|
113
|
-
"@decaf-ts/decorator-validation": "latest"
|
|
125
|
+
"@decaf-ts/decorator-validation": "latest",
|
|
126
|
+
"better-docs": "^2.7.3",
|
|
127
|
+
"taffydb": "^2.7.3"
|
|
114
128
|
},
|
|
115
129
|
"main": "./lib/cjs/index.cjs",
|
|
116
130
|
"module": "./lib/esm/index.js",
|
|
@@ -123,5 +137,9 @@
|
|
|
123
137
|
"./lib/cjs/graph/overrides/index.cjs",
|
|
124
138
|
"./lib/cjs/graph/overrides/overrides.cjs",
|
|
125
139
|
"./lib/cjs/model/overrides.cjs"
|
|
126
|
-
]
|
|
140
|
+
],
|
|
141
|
+
"overrides": {
|
|
142
|
+
"test-exclude": "^7.0.2",
|
|
143
|
+
"brace-expansion": "^5.0.8"
|
|
144
|
+
}
|
|
127
145
|
}
|