@jdg-keyforge/protocol 0.6.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.
Files changed (57) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +69 -0
  3. package/dist/common.d.ts +171 -0
  4. package/dist/common.js +7 -0
  5. package/dist/envelope.d.ts +91 -0
  6. package/dist/envelope.js +7 -0
  7. package/dist/events/active_profile_changed.d.ts +16 -0
  8. package/dist/events/active_profile_changed.js +7 -0
  9. package/dist/events/input.d.ts +39 -0
  10. package/dist/events/input.js +7 -0
  11. package/dist/index.d.ts +17 -0
  12. package/dist/index.js +3 -0
  13. package/dist/methods/create_profile.d.ts +68 -0
  14. package/dist/methods/create_profile.js +7 -0
  15. package/dist/methods/delete_profile.d.ts +22 -0
  16. package/dist/methods/delete_profile.js +7 -0
  17. package/dist/methods/duplicate_profile.d.ts +72 -0
  18. package/dist/methods/duplicate_profile.js +7 -0
  19. package/dist/methods/get_auto_switch.d.ts +37 -0
  20. package/dist/methods/get_auto_switch.js +7 -0
  21. package/dist/methods/hello.d.ts +40 -0
  22. package/dist/methods/hello.js +7 -0
  23. package/dist/methods/list_actions.d.ts +69 -0
  24. package/dist/methods/list_actions.js +7 -0
  25. package/dist/methods/list_bindings.d.ts +52 -0
  26. package/dist/methods/list_bindings.js +7 -0
  27. package/dist/methods/list_devices.d.ts +76 -0
  28. package/dist/methods/list_devices.js +7 -0
  29. package/dist/methods/list_profiles.d.ts +73 -0
  30. package/dist/methods/list_profiles.js +7 -0
  31. package/dist/methods/rename_profile.d.ts +24 -0
  32. package/dist/methods/rename_profile.js +7 -0
  33. package/dist/methods/set_active_profile.d.ts +22 -0
  34. package/dist/methods/set_active_profile.js +7 -0
  35. package/dist/methods/set_auto_switch.d.ts +43 -0
  36. package/dist/methods/set_auto_switch.js +7 -0
  37. package/dist/methods/set_binding.d.ts +49 -0
  38. package/dist/methods/set_binding.js +7 -0
  39. package/package.json +48 -0
  40. package/src/common.ts +174 -0
  41. package/src/envelope.ts +94 -0
  42. package/src/events/active_profile_changed.ts +18 -0
  43. package/src/events/input.ts +42 -0
  44. package/src/index.ts +21 -0
  45. package/src/methods/create_profile.ts +71 -0
  46. package/src/methods/delete_profile.ts +24 -0
  47. package/src/methods/duplicate_profile.ts +75 -0
  48. package/src/methods/get_auto_switch.ts +39 -0
  49. package/src/methods/hello.ts +42 -0
  50. package/src/methods/list_actions.ts +71 -0
  51. package/src/methods/list_bindings.ts +55 -0
  52. package/src/methods/list_devices.ts +79 -0
  53. package/src/methods/list_profiles.ts +76 -0
  54. package/src/methods/rename_profile.ts +26 -0
  55. package/src/methods/set_active_profile.ts +24 -0
  56. package/src/methods/set_auto_switch.ts +45 -0
  57. package/src/methods/set_binding.ts +52 -0
@@ -0,0 +1,37 @@
1
+ /**
2
+ * This file was automatically generated by json-schema-to-typescript.
3
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
4
+ * and run json-schema-to-typescript to regenerate this file.
5
+ */
6
+ /**
7
+ * Returns the current auto-switch configuration: the master toggle and the full set of app-to-profile rules. The daemon uses these to switch the active profile based on the foreground application.
8
+ */
9
+ export interface MethodGetAutoSwitch {
10
+ /**
11
+ * No parameters in v1.
12
+ */
13
+ params: {};
14
+ result: {
15
+ /**
16
+ * Master toggle. When false, the daemon ignores the rules and never auto-switches.
17
+ */
18
+ enabled: boolean;
19
+ /**
20
+ * App-to-profile rules currently configured.
21
+ */
22
+ rules: AutoSwitchRule[];
23
+ };
24
+ }
25
+ /**
26
+ * Maps a foreground application to the profile that should become active while that app is frontmost. When the frontmost app matches no rule, the active profile is left unchanged (sticky behavior); there is no fallback profile.
27
+ */
28
+ export interface AutoSwitchRule {
29
+ /**
30
+ * OS-native application identifier: bundle id on macOS, executable name on Linux/Windows. Opaque string, not portable across OSes; the daemon matches it verbatim against the frontmost app.
31
+ */
32
+ app: string;
33
+ /**
34
+ * Identifier of the profile to activate when this app is frontmost.
35
+ */
36
+ profile_id: string;
37
+ }
@@ -0,0 +1,7 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+ export {};
@@ -0,0 +1,40 @@
1
+ /**
2
+ * This file was automatically generated by json-schema-to-typescript.
3
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
4
+ * and run json-schema-to-typescript to regenerate this file.
5
+ */
6
+ /**
7
+ * Mandatory first request after a WebSocket connection is established. The client declares the protocol_version it speaks. The server either accepts (Response.ok=true with its own identification) or closes the connection with an UNSUPPORTED_PROTOCOL_VERSION error. After a successful hello no further version negotiation happens; the contract is fixed for the session.
8
+ */
9
+ export interface MethodHello {
10
+ params: {
11
+ /**
12
+ * Major version of the protocol the client implements. Currently '1'.
13
+ */
14
+ protocol_version: "1";
15
+ client: PeerInfo;
16
+ };
17
+ result: {
18
+ /**
19
+ * Protocol version the server agrees to speak for this session.
20
+ */
21
+ protocol_version: "1";
22
+ server: PeerInfo;
23
+ };
24
+ }
25
+ /**
26
+ * Self-identification of a protocol peer (client or server).
27
+ *
28
+ * This interface was referenced by `MethodHello`'s JSON-Schema
29
+ * via the `definition` "PeerInfo".
30
+ */
31
+ export interface PeerInfo {
32
+ /**
33
+ * Stable identifier of the peer implementation.
34
+ */
35
+ name: string;
36
+ /**
37
+ * Semver version of the peer build.
38
+ */
39
+ version: string;
40
+ }
@@ -0,0 +1,7 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+ export {};
@@ -0,0 +1,69 @@
1
+ /**
2
+ * This file was automatically generated by json-schema-to-typescript.
3
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
4
+ * and run json-schema-to-typescript to regenerate this file.
5
+ */
6
+ /**
7
+ * Returns the catalog of actions the daemon can bind to inputs, including the param shape each action needs so a client can render a config form. No params in v1.
8
+ */
9
+ export interface MethodListActions {
10
+ /**
11
+ * No parameters in v1.
12
+ */
13
+ params: {};
14
+ result: {
15
+ /**
16
+ * All actions available to bind. Built-ins plus any registered plugin actions.
17
+ */
18
+ actions: ActionDescriptor[];
19
+ };
20
+ }
21
+ /**
22
+ * Describes a bindable action type and the params it accepts.
23
+ *
24
+ * This interface was referenced by `MethodListActions`'s JSON-Schema
25
+ * via the `definition` "ActionDescriptor".
26
+ */
27
+ export interface ActionDescriptor {
28
+ /**
29
+ * Action type, as used in Action.type (e.g. 'launch_app').
30
+ */
31
+ type: string;
32
+ /**
33
+ * Human-friendly action name for the UI.
34
+ */
35
+ name: string;
36
+ /**
37
+ * Optional longer description of what the action does.
38
+ */
39
+ description?: string;
40
+ /**
41
+ * Params this action accepts, in display order.
42
+ */
43
+ params: ParamSpec[];
44
+ }
45
+ /**
46
+ * Describes one action parameter so a client can render an input for it.
47
+ *
48
+ * This interface was referenced by `MethodListActions`'s JSON-Schema
49
+ * via the `definition` "ParamSpec".
50
+ */
51
+ export interface ParamSpec {
52
+ /**
53
+ * Param key written into Action.params.
54
+ */
55
+ name: string;
56
+ /**
57
+ * Human-friendly field label.
58
+ */
59
+ label: string;
60
+ /**
61
+ * Param value type. Only 'string' in v1.
62
+ */
63
+ type: "string";
64
+ required: boolean;
65
+ /**
66
+ * Optional placeholder/example shown in the input.
67
+ */
68
+ placeholder?: string;
69
+ }
@@ -0,0 +1,7 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+ export {};
@@ -0,0 +1,52 @@
1
+ /**
2
+ * This file was automatically generated by json-schema-to-typescript.
3
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
4
+ * and run json-schema-to-typescript to regenerate this file.
5
+ */
6
+ /**
7
+ * Stable identifier for a HID device. Format: VID_<hex>_PID_<hex>[_<serial>].
8
+ */
9
+ export type DeviceID = string;
10
+ /**
11
+ * What happened on the input.
12
+ */
13
+ export type InputAction = "press" | "release" | "rotate_cw" | "rotate_ccw" | "click";
14
+ /**
15
+ * Returns all bindings the daemon currently has configured. Read-side counterpart of set_binding. No filters in v1; clients filter client-side if needed.
16
+ */
17
+ export interface MethodListBindings {
18
+ /**
19
+ * No parameters in v1.
20
+ */
21
+ params: {};
22
+ result: {
23
+ /**
24
+ * All currently configured bindings.
25
+ */
26
+ bindings: Binding[];
27
+ };
28
+ }
29
+ /**
30
+ * Maps an input on a specific device to an action.
31
+ */
32
+ export interface Binding {
33
+ device_id: DeviceID;
34
+ input_id: string;
35
+ trigger: InputAction;
36
+ action: Action;
37
+ }
38
+ /**
39
+ * An executable action bound to an input.
40
+ */
41
+ export interface Action {
42
+ /**
43
+ * Action type. Built-ins are well-known; plugin actions use 'plugin.<plugin_id>.<action_id>'.
44
+ */
45
+ type: string;
46
+ /**
47
+ * Action-specific parameters. Schema depends on 'type'.
48
+ */
49
+ params?: {
50
+ [k: string]: unknown;
51
+ };
52
+ }
@@ -0,0 +1,7 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+ export {};
@@ -0,0 +1,76 @@
1
+ /**
2
+ * This file was automatically generated by json-schema-to-typescript.
3
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
4
+ * and run json-schema-to-typescript to regenerate this file.
5
+ */
6
+ /**
7
+ * Stable identifier for a HID device. Format: VID_<hex>_PID_<hex>[_<serial>].
8
+ */
9
+ export type DeviceID = string;
10
+ /**
11
+ * Kind of physical input.
12
+ */
13
+ export type InputKind = "key" | "encoder";
14
+ /**
15
+ * Returns the HID devices currently known to the daemon. No filters in v1; clients filter client-side if needed.
16
+ */
17
+ export interface MethodListDevices {
18
+ /**
19
+ * No parameters in v1.
20
+ */
21
+ params: {};
22
+ result: {
23
+ /**
24
+ * All currently enumerated HID devices.
25
+ */
26
+ devices: Device[];
27
+ };
28
+ }
29
+ /**
30
+ * A HID device known to the daemon. Returned by list_devices.
31
+ */
32
+ export interface Device {
33
+ id: DeviceID;
34
+ /**
35
+ * USB Vendor ID as a 4-digit hexadecimal string (lowercase or uppercase, no '0x' prefix).
36
+ */
37
+ vendor_id: string;
38
+ /**
39
+ * USB Product ID as a 4-digit hexadecimal string (lowercase or uppercase, no '0x' prefix).
40
+ */
41
+ product_id: string;
42
+ /**
43
+ * Manufacturer string from the HID descriptor. May be missing on cheap/clone devices.
44
+ */
45
+ manufacturer?: string;
46
+ /**
47
+ * Product name string from the HID descriptor.
48
+ */
49
+ product?: string;
50
+ /**
51
+ * Serial number string from the HID descriptor. Not all HID devices expose one.
52
+ */
53
+ serial_number?: string;
54
+ /**
55
+ * OS-opaque path used by the HID library to (re)open the device. Format varies per OS; clients should treat it as an opaque token.
56
+ */
57
+ path: string;
58
+ /**
59
+ * Inputs (keys/encoders) the daemon knows this device exposes. Empty for unrecognized devices the daemon can't map.
60
+ */
61
+ inputs: Input[];
62
+ }
63
+ /**
64
+ * A single physical input exposed by a device (a key or an encoder).
65
+ */
66
+ export interface Input {
67
+ /**
68
+ * Logical identifier of the input within the device (e.g. 'key_0x04', 'encoder_0'). Matches InputEvent.input_id and Binding.input_id.
69
+ */
70
+ id: string;
71
+ kind: InputKind;
72
+ /**
73
+ * Human-friendly label for the input (e.g. 'Key 1', 'Encoder'). Optional; clients fall back to id.
74
+ */
75
+ label?: string;
76
+ }
@@ -0,0 +1,7 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+ export {};
@@ -0,0 +1,73 @@
1
+ /**
2
+ * This file was automatically generated by json-schema-to-typescript.
3
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
4
+ * and run json-schema-to-typescript to regenerate this file.
5
+ */
6
+ /**
7
+ * Stable identifier for a HID device. Format: VID_<hex>_PID_<hex>[_<serial>].
8
+ */
9
+ export type DeviceID = string;
10
+ /**
11
+ * What happened on the input.
12
+ */
13
+ export type InputAction = "press" | "release" | "rotate_cw" | "rotate_ccw" | "click";
14
+ /**
15
+ * Returns all profiles the daemon currently has, along with the id of the active one. The active profile id is tracked at the daemon level and only exposed here.
16
+ */
17
+ export interface MethodListProfiles {
18
+ /**
19
+ * No parameters in v1.
20
+ */
21
+ params: {};
22
+ result: {
23
+ /**
24
+ * All profiles known to the daemon.
25
+ */
26
+ profiles: Profile[];
27
+ /**
28
+ * Identifier of the currently active profile. Always references one of the profiles in the array.
29
+ */
30
+ active_profile_id: string;
31
+ };
32
+ }
33
+ /**
34
+ * A named set of bindings. The daemon keeps exactly one profile active at a time; switching profiles swaps the active binding set.
35
+ */
36
+ export interface Profile {
37
+ /**
38
+ * Stable server-generated identifier for the profile.
39
+ */
40
+ id: string;
41
+ /**
42
+ * Human-friendly profile name.
43
+ */
44
+ name: string;
45
+ /**
46
+ * Bindings that belong to this profile.
47
+ */
48
+ bindings: Binding[];
49
+ }
50
+ /**
51
+ * Maps an input on a specific device to an action.
52
+ */
53
+ export interface Binding {
54
+ device_id: DeviceID;
55
+ input_id: string;
56
+ trigger: InputAction;
57
+ action: Action;
58
+ }
59
+ /**
60
+ * An executable action bound to an input.
61
+ */
62
+ export interface Action {
63
+ /**
64
+ * Action type. Built-ins are well-known; plugin actions use 'plugin.<plugin_id>.<action_id>'.
65
+ */
66
+ type: string;
67
+ /**
68
+ * Action-specific parameters. Schema depends on 'type'.
69
+ */
70
+ params?: {
71
+ [k: string]: unknown;
72
+ };
73
+ }
@@ -0,0 +1,7 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+ export {};
@@ -0,0 +1,24 @@
1
+ /**
2
+ * This file was automatically generated by json-schema-to-typescript.
3
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
4
+ * and run json-schema-to-typescript to regenerate this file.
5
+ */
6
+ /**
7
+ * Renames an existing profile. Does not affect its bindings or the active profile.
8
+ */
9
+ export interface MethodRenameProfile {
10
+ params: {
11
+ /**
12
+ * Identifier of the profile to rename.
13
+ */
14
+ id: string;
15
+ /**
16
+ * New human-friendly name for the profile.
17
+ */
18
+ name: string;
19
+ };
20
+ /**
21
+ * Empty acknowledgement object. Reserved for future fields without breaking the schema.
22
+ */
23
+ result: {};
24
+ }
@@ -0,0 +1,7 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+ export {};
@@ -0,0 +1,22 @@
1
+ /**
2
+ * This file was automatically generated by json-schema-to-typescript.
3
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
4
+ * and run json-schema-to-typescript to regenerate this file.
5
+ */
6
+ /**
7
+ * Sets which profile is active. The active profile is the one the binding editor reads and writes; switching it swaps the live binding set.
8
+ */
9
+ export interface MethodSetActiveProfile {
10
+ params: {
11
+ /**
12
+ * Identifier of the profile to activate.
13
+ */
14
+ id: string;
15
+ };
16
+ result: {
17
+ /**
18
+ * Identifier of the now-active profile. Echoes the requested id on success.
19
+ */
20
+ active_profile_id: string;
21
+ };
22
+ }
@@ -0,0 +1,7 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+ export {};
@@ -0,0 +1,43 @@
1
+ /**
2
+ * This file was automatically generated by json-schema-to-typescript.
3
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
4
+ * and run json-schema-to-typescript to regenerate this file.
5
+ */
6
+ /**
7
+ * Replaces the entire auto-switch configuration in one shot (bulk set, not per-rule CRUD): the master toggle and the full rule set. The result echoes the persisted state.
8
+ */
9
+ export interface MethodSetAutoSwitch {
10
+ params: {
11
+ /**
12
+ * Master toggle. When false, the daemon ignores the rules and never auto-switches.
13
+ */
14
+ enabled: boolean;
15
+ /**
16
+ * Full replacement set of app-to-profile rules. Any previously stored rules are discarded.
17
+ */
18
+ rules: AutoSwitchRule[];
19
+ };
20
+ result: {
21
+ /**
22
+ * Master toggle as persisted. Echoes the requested value on success.
23
+ */
24
+ enabled: boolean;
25
+ /**
26
+ * Rules as persisted. Echoes the requested set on success.
27
+ */
28
+ rules: AutoSwitchRule[];
29
+ };
30
+ }
31
+ /**
32
+ * Maps a foreground application to the profile that should become active while that app is frontmost. When the frontmost app matches no rule, the active profile is left unchanged (sticky behavior); there is no fallback profile.
33
+ */
34
+ export interface AutoSwitchRule {
35
+ /**
36
+ * OS-native application identifier: bundle id on macOS, executable name on Linux/Windows. Opaque string, not portable across OSes; the daemon matches it verbatim against the frontmost app.
37
+ */
38
+ app: string;
39
+ /**
40
+ * Identifier of the profile to activate when this app is frontmost.
41
+ */
42
+ profile_id: string;
43
+ }
@@ -0,0 +1,7 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+ export {};
@@ -0,0 +1,49 @@
1
+ /**
2
+ * This file was automatically generated by json-schema-to-typescript.
3
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
4
+ * and run json-schema-to-typescript to regenerate this file.
5
+ */
6
+ /**
7
+ * Stable identifier for a HID device. Format: VID_<hex>_PID_<hex>[_<serial>].
8
+ */
9
+ export type DeviceID = string;
10
+ /**
11
+ * What happened on the input.
12
+ */
13
+ export type InputAction = "press" | "release" | "rotate_cw" | "rotate_ccw" | "click";
14
+ /**
15
+ * Creates or updates a binding (input -> action) on a device. The pair (device_id, input_id, trigger) is the unique key; calling this method with an existing key replaces the previous action.
16
+ */
17
+ export interface MethodSetBinding {
18
+ params: {
19
+ binding: Binding;
20
+ };
21
+ /**
22
+ * Empty acknowledgement object. Reserved for future fields (e.g. server-assigned binding id) without breaking the schema.
23
+ */
24
+ result: {};
25
+ }
26
+ /**
27
+ * Maps an input on a specific device to an action.
28
+ */
29
+ export interface Binding {
30
+ device_id: DeviceID;
31
+ input_id: string;
32
+ trigger: InputAction;
33
+ action: Action;
34
+ }
35
+ /**
36
+ * An executable action bound to an input.
37
+ */
38
+ export interface Action {
39
+ /**
40
+ * Action type. Built-ins are well-known; plugin actions use 'plugin.<plugin_id>.<action_id>'.
41
+ */
42
+ type: string;
43
+ /**
44
+ * Action-specific parameters. Schema depends on 'type'.
45
+ */
46
+ params?: {
47
+ [k: string]: unknown;
48
+ };
49
+ }
@@ -0,0 +1,7 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+ export {};
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "@jdg-keyforge/protocol",
3
+ "version": "0.6.0",
4
+ "description": "TypeScript types for the KeyForge WebSocket protocol, generated from the canonical JSON Schema contracts.",
5
+ "keywords": ["keyforge", "protocol", "types", "json-schema", "websocket"],
6
+ "license": "Apache-2.0",
7
+ "author": "Jonathan Daniel Gomez <jonathan.d.gomez98@gmail.com>",
8
+ "homepage": "https://github.com/JoniDG/keyforge-protocol",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/JoniDG/keyforge-protocol.git",
12
+ "directory": "ts"
13
+ },
14
+ "bugs": {
15
+ "url": "https://github.com/JoniDG/keyforge-protocol/issues"
16
+ },
17
+ "type": "module",
18
+ "main": "./dist/index.js",
19
+ "types": "./dist/index.d.ts",
20
+ "exports": {
21
+ ".": {
22
+ "types": "./dist/index.d.ts",
23
+ "import": "./dist/index.js",
24
+ "default": "./dist/index.js"
25
+ }
26
+ },
27
+ "files": [
28
+ "dist",
29
+ "src",
30
+ "README.md",
31
+ "LICENSE"
32
+ ],
33
+ "sideEffects": false,
34
+ "scripts": {
35
+ "build": "tsc",
36
+ "typecheck": "tsc --noEmit",
37
+ "clean": "rm -rf dist"
38
+ },
39
+ "devDependencies": {
40
+ "typescript": "^5.6.3"
41
+ },
42
+ "engines": {
43
+ "node": ">=18"
44
+ },
45
+ "publishConfig": {
46
+ "access": "public"
47
+ }
48
+ }