@digital-alchemy/hass 0.2.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/LICENSE +21 -0
- package/dist/dynamic.d.ts +1126 -0
- package/dist/dynamic.js +153 -0
- package/dist/dynamic.js.map +1 -0
- package/dist/extensions/call-proxy.extension.d.ts +4 -0
- package/dist/extensions/call-proxy.extension.js +88 -0
- package/dist/extensions/call-proxy.extension.js.map +1 -0
- package/dist/extensions/config.extension.d.ts +2 -0
- package/dist/extensions/config.extension.js +53 -0
- package/dist/extensions/config.extension.js.map +1 -0
- package/dist/extensions/entity-manager.extension.d.ts +61 -0
- package/dist/extensions/entity-manager.extension.js +212 -0
- package/dist/extensions/entity-manager.extension.js.map +1 -0
- package/dist/extensions/fetch-api.extension.d.ts +29 -0
- package/dist/extensions/fetch-api.extension.js +174 -0
- package/dist/extensions/fetch-api.extension.js.map +1 -0
- package/dist/extensions/index.d.ts +6 -0
- package/dist/extensions/index.js +10 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/utilities.extension.d.ts +9 -0
- package/dist/extensions/utilities.extension.js +43 -0
- package/dist/extensions/utilities.extension.js.map +1 -0
- package/dist/extensions/websocket-api.extension.d.ts +39 -0
- package/dist/extensions/websocket-api.extension.js +363 -0
- package/dist/extensions/websocket-api.extension.js.map +1 -0
- package/dist/hass.module.d.ts +80 -0
- package/dist/hass.module.js +83 -0
- package/dist/hass.module.js.map +1 -0
- package/dist/helpers/backup.helper.d.ts +11 -0
- package/dist/helpers/backup.helper.js +3 -0
- package/dist/helpers/backup.helper.js.map +1 -0
- package/dist/helpers/constants.helper.d.ts +54 -0
- package/dist/helpers/constants.helper.js +63 -0
- package/dist/helpers/constants.helper.js.map +1 -0
- package/dist/helpers/entity-state.helper.d.ts +45 -0
- package/dist/helpers/entity-state.helper.js +9 -0
- package/dist/helpers/entity-state.helper.js.map +1 -0
- package/dist/helpers/fetch/calendar.d.ts +54 -0
- package/dist/helpers/fetch/calendar.js +3 -0
- package/dist/helpers/fetch/calendar.js.map +1 -0
- package/dist/helpers/fetch/configuration.d.ts +34 -0
- package/dist/helpers/fetch/configuration.js +3 -0
- package/dist/helpers/fetch/configuration.js.map +1 -0
- package/dist/helpers/fetch/index.d.ts +4 -0
- package/dist/helpers/fetch/index.js +8 -0
- package/dist/helpers/fetch/index.js.map +1 -0
- package/dist/helpers/fetch/server-log.d.ts +10 -0
- package/dist/helpers/fetch/server-log.js +20 -0
- package/dist/helpers/fetch/server-log.js.map +1 -0
- package/dist/helpers/fetch/service-list.d.ts +51 -0
- package/dist/helpers/fetch/service-list.js +3 -0
- package/dist/helpers/fetch/service-list.js.map +1 -0
- package/dist/helpers/index.d.ts +7 -0
- package/dist/helpers/index.js +11 -0
- package/dist/helpers/index.js.map +1 -0
- package/dist/helpers/metrics.helper.d.ts +13 -0
- package/dist/helpers/metrics.helper.js +30 -0
- package/dist/helpers/metrics.helper.js.map +1 -0
- package/dist/helpers/utility.helper.d.ts +53 -0
- package/dist/helpers/utility.helper.js +30 -0
- package/dist/helpers/utility.helper.js.map +1 -0
- package/dist/helpers/websocket.helper.d.ts +129 -0
- package/dist/helpers/websocket.helper.js +3 -0
- package/dist/helpers/websocket.helper.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Counter, Summary } from "prom-client";
|
|
2
|
+
/**
|
|
3
|
+
* Tracks the number of times a socket event callback has been executed.
|
|
4
|
+
*/
|
|
5
|
+
export declare const SOCKET_EVENT_EXECUTION_COUNT: Counter<"event" | "context" | "label">;
|
|
6
|
+
/**
|
|
7
|
+
* Counts the number of errors occurred during socket event callback executions.
|
|
8
|
+
*/
|
|
9
|
+
export declare const SOCKET_EVENT_ERRORS: Counter<"event" | "context" | "label">;
|
|
10
|
+
/**
|
|
11
|
+
* Summary for Execution Time
|
|
12
|
+
*/
|
|
13
|
+
export declare const SOCKET_EVENT_EXECUTION_TIME: Summary<"event" | "context" | "label">;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SOCKET_EVENT_EXECUTION_TIME = exports.SOCKET_EVENT_ERRORS = exports.SOCKET_EVENT_EXECUTION_COUNT = void 0;
|
|
4
|
+
const prom_client_1 = require("prom-client");
|
|
5
|
+
/**
|
|
6
|
+
* Tracks the number of times a socket event callback has been executed.
|
|
7
|
+
*/
|
|
8
|
+
exports.SOCKET_EVENT_EXECUTION_COUNT = new prom_client_1.Counter({
|
|
9
|
+
help: "Counts the number of times a socket event callback has been executed",
|
|
10
|
+
labelNames: ["context", "label", "event"],
|
|
11
|
+
name: "digital_alchemy_home_assistant_socket_event_callback_execution_count",
|
|
12
|
+
});
|
|
13
|
+
/**
|
|
14
|
+
* Counts the number of errors occurred during socket event callback executions.
|
|
15
|
+
*/
|
|
16
|
+
exports.SOCKET_EVENT_ERRORS = new prom_client_1.Counter({
|
|
17
|
+
help: "Counts the number of errors during socket event callback executions",
|
|
18
|
+
labelNames: ["context", "label", "event"],
|
|
19
|
+
name: "digital_alchemy_home_assistant_socket_event_callback_errors",
|
|
20
|
+
});
|
|
21
|
+
/**
|
|
22
|
+
* Summary for Execution Time
|
|
23
|
+
*/
|
|
24
|
+
exports.SOCKET_EVENT_EXECUTION_TIME = new prom_client_1.Summary({
|
|
25
|
+
help: "Measures the duration of each socket event callback execution",
|
|
26
|
+
labelNames: ["context", "label", "event"],
|
|
27
|
+
name: "digital_alchemy_home_assistant_socket_event_callback_execution_time",
|
|
28
|
+
percentiles: [0.5, 0.9, 0.99],
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=metrics.helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.helper.js","sourceRoot":"","sources":["../../src/helpers/metrics.helper.ts"],"names":[],"mappings":";;;AAAA,6CAA+C;AAE/C;;GAEG;AACU,QAAA,4BAA4B,GAAG,IAAI,qBAAO,CAAC;IACtD,IAAI,EAAE,sEAAsE;IAC5E,UAAU,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAU;IAClD,IAAI,EAAE,sEAAsE;CAC7E,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,mBAAmB,GAAG,IAAI,qBAAO,CAAC;IAC7C,IAAI,EAAE,qEAAqE;IAC3E,UAAU,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAU;IAClD,IAAI,EAAE,6DAA6D;CACpE,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,2BAA2B,GAAG,IAAI,qBAAO,CAAC;IACrD,IAAI,EAAE,+DAA+D;IACrE,UAAU,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAU;IAClD,IAAI,EAAE,qEAAqE;IAC3E,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;CAC9B,CAAC,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { TBlackHole } from "@digital-alchemy/core";
|
|
2
|
+
import { Get } from "type-fest";
|
|
3
|
+
import { ENTITY_SETUP, iCallService } from "../dynamic";
|
|
4
|
+
import { HassEntityContext } from ".";
|
|
5
|
+
/**
|
|
6
|
+
* Pick any valid entity, optionally limiting by domain
|
|
7
|
+
*/
|
|
8
|
+
export type PICK_ENTITY<DOMAIN extends ALL_DOMAINS = ALL_DOMAINS> = {
|
|
9
|
+
[key in DOMAIN]: `${key}.${keyof (typeof ENTITY_SETUP)[key] & string}`;
|
|
10
|
+
}[DOMAIN];
|
|
11
|
+
/**
|
|
12
|
+
* Pick any valid entity, optionally limiting by domain
|
|
13
|
+
*/
|
|
14
|
+
export type PICK_SERVICE<DOMAIN extends ALL_SERVICE_DOMAINS = ALL_SERVICE_DOMAINS> = {
|
|
15
|
+
[key in DOMAIN]: `${key}.${keyof iCallService[key] & string}`;
|
|
16
|
+
}[DOMAIN];
|
|
17
|
+
export type PICK_SERVICE_PARAMETERS<SERVICE extends PICK_SERVICE> = Get<iCallService, SERVICE> extends (serviceParams: infer ServiceParams) => TBlackHole ? ServiceParams : never;
|
|
18
|
+
export declare function entity_split(entity: {
|
|
19
|
+
entity_id: PICK_ENTITY;
|
|
20
|
+
} | PICK_ENTITY): [ALL_DOMAINS, string];
|
|
21
|
+
/**
|
|
22
|
+
* Extract the domain from an entity with type safety
|
|
23
|
+
*/
|
|
24
|
+
export declare function domain(entity: {
|
|
25
|
+
entity_id: PICK_ENTITY;
|
|
26
|
+
} | PICK_ENTITY): ALL_DOMAINS;
|
|
27
|
+
/**
|
|
28
|
+
* Type definitions to match a specific entity.
|
|
29
|
+
*/
|
|
30
|
+
export type ENTITY_STATE<ENTITY_ID extends PICK_ENTITY> = Omit<Get<typeof ENTITY_SETUP, ENTITY_ID>, "state" | "context" | "last_changed" | "last_updated"> & {
|
|
31
|
+
last_changed: string;
|
|
32
|
+
last_updated: string;
|
|
33
|
+
state: string;
|
|
34
|
+
context: HassEntityContext;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Union of all domains that contain entities
|
|
38
|
+
*/
|
|
39
|
+
export type ALL_DOMAINS = keyof typeof ENTITY_SETUP;
|
|
40
|
+
/**
|
|
41
|
+
* Union of all services with callable methods
|
|
42
|
+
*/
|
|
43
|
+
export type ALL_SERVICE_DOMAINS = keyof iCallService;
|
|
44
|
+
export type GetDomain<ENTITY extends PICK_ENTITY> = ENTITY extends `${infer domain}.${string}` ? domain : never;
|
|
45
|
+
declare module "@digital-alchemy/core" {
|
|
46
|
+
interface IsIt {
|
|
47
|
+
domain: <DOMAIN extends ALL_DOMAINS>(entity: string, domain: DOMAIN) => entity is PICK_ENTITY<DOMAIN>;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export declare const PostConfigPriorities: {
|
|
51
|
+
readonly FETCH: 1;
|
|
52
|
+
readonly VALIDATE: 2;
|
|
53
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PostConfigPriorities = exports.domain = exports.entity_split = void 0;
|
|
4
|
+
const core_1 = require("@digital-alchemy/core");
|
|
5
|
+
function entity_split(entity) {
|
|
6
|
+
if (core_1.is.object(entity)) {
|
|
7
|
+
entity = entity.entity_id;
|
|
8
|
+
}
|
|
9
|
+
return entity.split(".");
|
|
10
|
+
}
|
|
11
|
+
exports.entity_split = entity_split;
|
|
12
|
+
/**
|
|
13
|
+
* Extract the domain from an entity with type safety
|
|
14
|
+
*/
|
|
15
|
+
function domain(entity) {
|
|
16
|
+
if (core_1.is.object(entity)) {
|
|
17
|
+
entity = entity.entity_id;
|
|
18
|
+
}
|
|
19
|
+
return entity_split(entity).shift();
|
|
20
|
+
}
|
|
21
|
+
exports.domain = domain;
|
|
22
|
+
core_1.is.domain = (entity, domain) => {
|
|
23
|
+
const [test] = entity.split(".");
|
|
24
|
+
return test === domain;
|
|
25
|
+
};
|
|
26
|
+
exports.PostConfigPriorities = {
|
|
27
|
+
FETCH: 1,
|
|
28
|
+
VALIDATE: 2,
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=utility.helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utility.helper.js","sourceRoot":"","sources":["../../src/helpers/utility.helper.ts"],"names":[],"mappings":";;;AAAA,gDAAuD;AA6BvD,SAAgB,YAAY,CAC1B,MAAgD;IAEhD,IAAI,SAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;IAC5B,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAA0B,CAAC;AACpD,CAAC;AAPD,oCAOC;AACD;;GAEG;AACH,SAAgB,MAAM,CACpB,MAAgD;IAEhD,IAAI,SAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;IAC5B,CAAC;IACD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,EAAiB,CAAC;AACrD,CAAC;AAPD,wBAOC;AA4BD,SAAE,CAAC,MAAM,GAAG,CACV,MAAc,EACd,MAAc,EACiB,EAAE;IACjC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,IAAI,KAAK,MAAM,CAAC;AACzB,CAAC,CAAC;AAUW,QAAA,oBAAoB,GAAG;IAClC,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,CAAC;CACH,CAAC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { TBlackHole, TContext } from "@digital-alchemy/core";
|
|
2
|
+
import { Dayjs } from "dayjs";
|
|
3
|
+
import { HASSIO_WS_COMMAND, HassSocketMessageTypes } from "./constants.helper";
|
|
4
|
+
import { EntityUpdateEvent } from "./entity-state.helper";
|
|
5
|
+
import { ALL_DOMAINS, ENTITY_STATE, PICK_ENTITY } from "./utility.helper";
|
|
6
|
+
export interface AreaDTO {
|
|
7
|
+
area_id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
}
|
|
10
|
+
export interface EntityRegistryItem {
|
|
11
|
+
area_id: string;
|
|
12
|
+
config_entry_id: string;
|
|
13
|
+
device_id: string;
|
|
14
|
+
disabled_by: string;
|
|
15
|
+
entity_id: string;
|
|
16
|
+
icon: string;
|
|
17
|
+
name: string;
|
|
18
|
+
platform: string;
|
|
19
|
+
}
|
|
20
|
+
export interface DeviceListItemDTO {
|
|
21
|
+
area_id: string;
|
|
22
|
+
config_entries: string[];
|
|
23
|
+
connections: string[][];
|
|
24
|
+
disabled_by: null;
|
|
25
|
+
entry_type: null;
|
|
26
|
+
id: string;
|
|
27
|
+
identifiers: string[];
|
|
28
|
+
manufacturer: string;
|
|
29
|
+
model: string;
|
|
30
|
+
name: string;
|
|
31
|
+
name_by_user: null;
|
|
32
|
+
sw_version: string;
|
|
33
|
+
via_device_id: null;
|
|
34
|
+
}
|
|
35
|
+
export interface HassNotificationDTO {
|
|
36
|
+
created_at: string;
|
|
37
|
+
message: string;
|
|
38
|
+
notification_id: string;
|
|
39
|
+
status: "unread";
|
|
40
|
+
title: string;
|
|
41
|
+
}
|
|
42
|
+
export interface SignRequestResponse {
|
|
43
|
+
path: string;
|
|
44
|
+
}
|
|
45
|
+
export interface SocketMessageDTO {
|
|
46
|
+
error?: Record<string, unknown>;
|
|
47
|
+
event?: EntityUpdateEvent;
|
|
48
|
+
id: string;
|
|
49
|
+
message?: string;
|
|
50
|
+
result?: Record<string, unknown>;
|
|
51
|
+
type: HassSocketMessageTypes;
|
|
52
|
+
}
|
|
53
|
+
export interface SendSocketMessageDTO {
|
|
54
|
+
access_token?: string;
|
|
55
|
+
disabled_by?: "user";
|
|
56
|
+
domain?: string;
|
|
57
|
+
hidden_by?: "user";
|
|
58
|
+
service?: string;
|
|
59
|
+
service_data?: unknown;
|
|
60
|
+
type: HASSIO_WS_COMMAND | `${HASSIO_WS_COMMAND}`;
|
|
61
|
+
}
|
|
62
|
+
export interface UpdateEntityMessageDTO<DOMAIN extends ALL_DOMAINS = ALL_DOMAINS> {
|
|
63
|
+
area_id?: string;
|
|
64
|
+
disabled_by?: "user";
|
|
65
|
+
entity_id: PICK_ENTITY<DOMAIN>;
|
|
66
|
+
hidden_by?: "user";
|
|
67
|
+
icon?: string;
|
|
68
|
+
name: string;
|
|
69
|
+
new_entity_id: PICK_ENTITY<DOMAIN>;
|
|
70
|
+
type: HASSIO_WS_COMMAND.registry_update;
|
|
71
|
+
}
|
|
72
|
+
export interface RemoveEntityMessageDTO {
|
|
73
|
+
entity_id: PICK_ENTITY;
|
|
74
|
+
type: HASSIO_WS_COMMAND.entity_remove;
|
|
75
|
+
}
|
|
76
|
+
export interface FindRelatedDTO {
|
|
77
|
+
item_id: string;
|
|
78
|
+
item_type: string;
|
|
79
|
+
type: HASSIO_WS_COMMAND.search_related;
|
|
80
|
+
}
|
|
81
|
+
export interface RegistryGetDTO {
|
|
82
|
+
entity_id: string;
|
|
83
|
+
type: HASSIO_WS_COMMAND.registry_get;
|
|
84
|
+
}
|
|
85
|
+
export interface RenderTemplateDTO {
|
|
86
|
+
template: string;
|
|
87
|
+
timeout: number;
|
|
88
|
+
type: HASSIO_WS_COMMAND.render_template;
|
|
89
|
+
}
|
|
90
|
+
export interface SubscribeTriggerDTO {
|
|
91
|
+
trigger: Record<string, unknown>;
|
|
92
|
+
type: HASSIO_WS_COMMAND.subscribe_trigger;
|
|
93
|
+
}
|
|
94
|
+
export interface UnsubscribeEventsDTO {
|
|
95
|
+
subscription: number;
|
|
96
|
+
type: HASSIO_WS_COMMAND.unsubscribe_events;
|
|
97
|
+
}
|
|
98
|
+
export interface SignPathDTO {
|
|
99
|
+
path: string;
|
|
100
|
+
type: HASSIO_WS_COMMAND.download_backup;
|
|
101
|
+
}
|
|
102
|
+
export interface RemoveBackupDTO {
|
|
103
|
+
slug: string;
|
|
104
|
+
type: HASSIO_WS_COMMAND.remove_backup;
|
|
105
|
+
}
|
|
106
|
+
export interface EntityHistoryDTO<ENTITIES extends PICK_ENTITY[] = PICK_ENTITY[]> {
|
|
107
|
+
end_time: Date | string | Dayjs;
|
|
108
|
+
entity_ids: ENTITIES;
|
|
109
|
+
minimal_response?: boolean;
|
|
110
|
+
no_attributes?: boolean;
|
|
111
|
+
start_time: Date | string | Dayjs;
|
|
112
|
+
type: HASSIO_WS_COMMAND.history_during_period;
|
|
113
|
+
}
|
|
114
|
+
export type EntityHistoryResult<ENTITY extends PICK_ENTITY = PICK_ENTITY, ATTRIBUTES extends object = object> = Pick<ENTITY_STATE<ENTITY> & {
|
|
115
|
+
attributes: ATTRIBUTES;
|
|
116
|
+
}, "attributes" | "state"> & {
|
|
117
|
+
date: Date;
|
|
118
|
+
};
|
|
119
|
+
export type SOCKET_MESSAGES = {
|
|
120
|
+
id?: number;
|
|
121
|
+
} & (FindRelatedDTO | RegistryGetDTO | RemoveBackupDTO | RenderTemplateDTO | RemoveEntityMessageDTO | SendSocketMessageDTO | SignPathDTO | SubscribeTriggerDTO | UnsubscribeEventsDTO | UpdateEntityMessageDTO | EntityHistoryDTO);
|
|
122
|
+
export type OnHassEventCallback<T = object> = (event: T) => TBlackHole;
|
|
123
|
+
export type OnHassEventOptions<T = object> = {
|
|
124
|
+
context: TContext;
|
|
125
|
+
label?: string;
|
|
126
|
+
exec: OnHassEventCallback<T>;
|
|
127
|
+
event: string;
|
|
128
|
+
once?: boolean;
|
|
129
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket.helper.js","sourceRoot":"","sources":["../../src/helpers/websocket.helper.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./dynamic"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./extensions"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./hass.module"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./helpers"), exports);
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,uDAA6B;AAC7B,wDAA8B;AAC9B,oDAA0B"}
|
package/package.json
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@digital-alchemy/hass",
|
|
3
|
+
"repository": "https://github.com/Digital-Alchemy-TS/hass",
|
|
4
|
+
"version": "0.2.0",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"build": "tsc",
|
|
7
|
+
"lint": "eslint src",
|
|
8
|
+
"prepublishOnly": "npm run build",
|
|
9
|
+
"upgrade": "ncu -u; npm i"
|
|
10
|
+
},
|
|
11
|
+
"author": {
|
|
12
|
+
"url": "https://github.com/zoe-codez",
|
|
13
|
+
"name": "Zoe Codez"
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist/**/*"
|
|
17
|
+
],
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=20"
|
|
20
|
+
},
|
|
21
|
+
"exports": {
|
|
22
|
+
".": "./dist/index.js"
|
|
23
|
+
},
|
|
24
|
+
"license": "MIT",
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"@digital-alchemy/core": "^0.2.0",
|
|
27
|
+
"dayjs": "^1.11.10",
|
|
28
|
+
"prom-client": "^15.1.0",
|
|
29
|
+
"ws": "^8.16.0"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@cspell/eslint-plugin": "^8.6.0",
|
|
33
|
+
"@types/figlet": "^1.5.8",
|
|
34
|
+
"@types/jest": "^29.5.12",
|
|
35
|
+
"@types/js-yaml": "^4.0.9",
|
|
36
|
+
"@types/minimist": "^1.2.5",
|
|
37
|
+
"@types/mute-stream": "^0.0.4",
|
|
38
|
+
"@types/node": "^20.11.25",
|
|
39
|
+
"@types/uuid": "^9.0.8",
|
|
40
|
+
"@types/ws": "^8.5.10",
|
|
41
|
+
"@typescript-eslint/eslint-plugin": "7.1.1",
|
|
42
|
+
"@typescript-eslint/parser": "7.1.1",
|
|
43
|
+
"eslint": "8.57.0",
|
|
44
|
+
"eslint-config-prettier": "9.1.0",
|
|
45
|
+
"eslint-plugin-import": "^2.29.1",
|
|
46
|
+
"eslint-plugin-jsonc": "^2.13.0",
|
|
47
|
+
"eslint-plugin-no-unsanitized": "^4.0.2",
|
|
48
|
+
"eslint-plugin-prettier": "^5.1.3",
|
|
49
|
+
"eslint-plugin-security": "^2.1.1",
|
|
50
|
+
"eslint-plugin-simple-import-sort": "^12.0.0",
|
|
51
|
+
"eslint-plugin-sonarjs": "^0.24.0",
|
|
52
|
+
"eslint-plugin-sort-keys-fix": "^1.1.2",
|
|
53
|
+
"eslint-plugin-unicorn": "^51.0.1",
|
|
54
|
+
"jest": "^29.7.0",
|
|
55
|
+
"jest-environment-node": "^29.7.0",
|
|
56
|
+
"npm-check-updates": "^16.14.15",
|
|
57
|
+
"prettier": "^3.2.5",
|
|
58
|
+
"ts-jest": "^29.1.2",
|
|
59
|
+
"tsx": "^4.7.1",
|
|
60
|
+
"type-fest": "^4.12.0",
|
|
61
|
+
"typescript": "^5.4.2"
|
|
62
|
+
}
|
|
63
|
+
}
|