@basmilius/homey-common 0.0.9 → 0.0.11

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.
@@ -1,2 +1,3 @@
1
- export declare const colors: unknown;
2
- export declare const icons: unknown;
1
+ import type { Color, Icon } from "../types";
2
+ export declare const colors: Color[];
3
+ export declare const icons: Icon[];
package/dist/index.js.map CHANGED
@@ -6,9 +6,9 @@
6
6
  "import type { App } from './app';\nimport type { FlowActionEntity, FlowAutocompleteProvider, FlowConditionEntity, FlowTriggerEntity } from './flow';\nimport type { Action, AutocompleteProvider, Condition, Trigger } from './types';\n\nexport class Registry<TApp extends App<TApp>> {\n get actions(): FlowActionEntity<TApp>[] {\n return this.#actions;\n }\n\n get autocompleteProviders(): FlowAutocompleteProvider<TApp>[] {\n return this.#autocompleteProviders;\n }\n\n get conditions(): FlowConditionEntity<TApp>[] {\n return this.#conditions;\n }\n\n get triggers(): FlowTriggerEntity<TApp>[] {\n return this.#triggers;\n }\n\n readonly #app: TApp;\n readonly #actions: FlowActionEntity<TApp>[] = [];\n readonly #autocompleteProviders: FlowAutocompleteProvider<TApp>[] = [];\n readonly #conditions: FlowConditionEntity<TApp>[] = [];\n readonly #triggers: FlowTriggerEntity<TApp>[] = [];\n\n constructor(app: TApp) {\n this.#app = app;\n }\n\n action<TEntity extends FlowActionEntity<TApp>>(action: Action<TApp, TEntity>): void {\n this.#actions.push(new action(this.#app));\n }\n\n actionFunction<TArgs = any, TResult = any>(id: string, onRun: (args: TArgs) => TResult): void {\n const action = this.#app.homey.flow.getActionCard(id);\n action.registerRunListener(onRun);\n\n this.#app.homey.log(`Flow card actionFunction#${id} has been registered.`);\n }\n\n autocompleteProvider<TEntity extends FlowAutocompleteProvider<TApp>>(autocompleteProvider: AutocompleteProvider<TApp, TEntity>): void {\n this.#autocompleteProviders.push(new autocompleteProvider(this.#app));\n }\n\n condition<TEntity extends FlowConditionEntity<TApp>>(condition: Condition<TApp, TEntity>): void {\n this.#conditions.push(new condition(this.#app));\n }\n\n trigger<TEntity extends FlowTriggerEntity<TApp>>(trigger: Trigger<TApp, TEntity>): void {\n this.#triggers.push(new trigger(this.#app));\n }\n\n findAction<TEntity extends FlowActionEntity<TApp>>(action: Action<TApp, TEntity>): TEntity | undefined {\n return this.#actions.find(a => a instanceof action) as TEntity;\n }\n\n findAutocompleteProvider<TEntity extends FlowAutocompleteProvider<TApp>>(autocompleteProvider: AutocompleteProvider<TApp, TEntity>): TEntity | undefined {\n return this.#autocompleteProviders.find(a => a instanceof autocompleteProvider) as TEntity;\n }\n\n findCondition<TEntity extends FlowConditionEntity<TApp>>(condition: Condition<TApp, TEntity>): TEntity | undefined {\n return this.#conditions.find(a => a instanceof condition) as TEntity;\n }\n\n findTrigger<TEntity extends FlowTriggerEntity<TApp>>(trigger: Trigger<TApp, TEntity>): TEntity | undefined {\n return this.#triggers.find(a => a instanceof trigger) as TEntity;\n }\n}\n",
7
7
  "import type { Constructor } from './types';\n\nexport function action(id: string) {\n return <T extends Constructor>(ActionClass: T): T => {\n return class extends ActionClass {\n get actionId(): string {\n return id;\n }\n };\n };\n}\n\nexport function autocomplete(id: string) {\n return <T extends Constructor>(AutocompleteClass: T): T => {\n return class extends AutocompleteClass {\n get autocompleteId(): string {\n return id;\n }\n };\n };\n}\n\nexport function condition(id: string) {\n return <T extends Constructor>(ConditionClass: T): T => {\n return class extends ConditionClass {\n get conditionId(): string {\n return id;\n }\n };\n };\n}\n\nexport function trigger(id: string) {\n return <T extends Constructor>(TriggerClass: T): T => {\n return class extends TriggerClass {\n get triggerId(): string {\n return id;\n }\n };\n };\n}\n",
8
8
  "import type Homey from 'homey';\nimport { type App, Shortcuts } from './app';\nimport type { AutocompleteProvider, FlowCardType } from './types';\n\nexport abstract class FlowEntity<TApp extends App<TApp>, TCard extends Homey.FlowCard, TArgs = unknown, TState = unknown, TResult = unknown> extends Shortcuts<TApp> {\n get card(): TCard {\n return this.#card;\n }\n\n get id(): string {\n return this.#card.id;\n }\n\n get type(): FlowCardType {\n return this.#card.type;\n }\n\n readonly #card: TCard;\n\n constructor(app: TApp) {\n super(app);\n\n this.#card = this.#getCard();\n\n this.onInit()\n .then()\n .catch(console.error.bind(console));\n }\n\n async onInit(): Promise<void> {\n this.#card.registerRunListener(this.onRun.bind(this));\n this.#card.on('update', this.onUpdate.bind(this));\n\n this.log(`onInit() -> Flow card ${this.type}#${this.id} has been registered.`);\n }\n\n abstract onRun(args: TArgs, state: TState): Promise<TResult>;\n\n async onUpdate(): Promise<void> {\n }\n\n registerAutocomplete<TAutocomplete extends FlowAutocompleteProvider<TApp>>(name: string, autocompleteProvider: AutocompleteProvider<TApp, TAutocomplete>): void {\n const provider = this.registry.findAutocompleteProvider(autocompleteProvider);\n\n if (!provider) {\n throw new Error(`Unable to register autocomplete for ${this.type}#${this.id}. The provider was not registered.`);\n }\n\n this.#card.registerArgumentAutocompleteListener(name, provider.find.bind(provider));\n }\n\n #getCard(): TCard {\n if (this instanceof FlowActionEntity) {\n return this.flow.getActionCard((this as any).actionId) as unknown as TCard;\n }\n\n if (this instanceof FlowConditionEntity) {\n return this.flow.getConditionCard((this as any).conditionId) as unknown as TCard;\n }\n\n if (this instanceof FlowTriggerEntity) {\n return this.flow.getTriggerCard((this as any).triggerId) as unknown as TCard;\n }\n\n throw new Error(`Flow card type ${this.constructor.name} not found.`);\n }\n}\n\nexport abstract class FlowActionEntity<TApp extends App<TApp>, TArgs = unknown, TState = unknown, TResult = unknown> extends FlowEntity<TApp, Homey.FlowCardAction, TArgs, TState, TResult> {\n}\n\nexport abstract class FlowConditionEntity<TApp extends App<TApp>, TArgs = unknown, TState = unknown> extends FlowEntity<TApp, Homey.FlowCardCondition, TArgs, TState, boolean> {\n}\n\nexport abstract class FlowTriggerEntity<TApp extends App<TApp>, TArgs = unknown, TState = unknown> extends FlowEntity<TApp, Homey.FlowCardTrigger, TArgs, TState, boolean> {\n async trigger(state: TState, tokens?: Record<string, unknown>): Promise<any> {\n return this.card.trigger(tokens, state as object);\n }\n}\n\nexport abstract class FlowAutocompleteProvider<TApp extends App<TApp>> extends Shortcuts<TApp> {\n abstract find(query: string, args: Record<string, unknown>): Promise<Homey.FlowCard.ArgumentAutocompleteResults>;\n\n async update(): Promise<void> {\n }\n\n async onInit(): Promise<void> {\n this.homey.log(`onInit() -> Autocomplete provider ${(this as any).autocompleteId} has been registered.`);\n await this.update();\n }\n}\n",
9
- "import _colors from './colors.json';\nimport _icons from './icons.json';\n\nexport const colors = _colors;\n\nexport const icons = _icons.map(icon => ({\n id: icon[0],\n name: icon[1],\n unicode: icon[2]\n}));\n"
9
+ "import type { Color, Icon } from '../types';\nimport _colors from './colors.json';\nimport _icons from './icons.json';\n\nexport const colors: Color[] = _colors;\n\nexport const icons: Icon[] = _icons.map(icon => ({\n id: icon[0],\n name: icon[1],\n unicode: icon[2]\n}));\n"
10
10
  ],
11
- "mappings": "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",
11
+ "mappings": ";AAAA;;;ACIO,MAAM,SAAiC;AAAA,MACtC,OAAO,GAA6B;AAAA,IACpC,OAAO,KAAK;AAAA;AAAA,MAGZ,qBAAqB,GAAqC;AAAA,IAC1D,OAAO,KAAK;AAAA;AAAA,MAGZ,UAAU,GAAgC;AAAA,IAC1C,OAAO,KAAK;AAAA;AAAA,MAGZ,QAAQ,GAA8B;AAAA,IACtC,OAAO,KAAK;AAAA;AAAA,EAGP;AAAA,EACA,WAAqC,CAAC;AAAA,EACtC,yBAA2D,CAAC;AAAA,EAC5D,cAA2C,CAAC;AAAA,EAC5C,YAAuC,CAAC;AAAA,EAEjD,WAAW,CAAC,KAAW;AAAA,IACnB,KAAK,OAAO;AAAA;AAAA,EAGhB,MAA8C,CAAC,QAAqC;AAAA,IAChF,KAAK,SAAS,KAAK,IAAI,OAAO,KAAK,IAAI,CAAC;AAAA;AAAA,EAG5C,cAA0C,CAAC,IAAY,OAAuC;AAAA,IAC1F,MAAM,SAAS,KAAK,KAAK,MAAM,KAAK,cAAc,EAAE;AAAA,IACpD,OAAO,oBAAoB,KAAK;AAAA,IAEhC,KAAK,KAAK,MAAM,IAAI,4BAA4B,yBAAyB;AAAA;AAAA,EAG7E,oBAAoE,CAAC,sBAAiE;AAAA,IAClI,KAAK,uBAAuB,KAAK,IAAI,qBAAqB,KAAK,IAAI,CAAC;AAAA;AAAA,EAGxE,SAAoD,CAAC,WAA2C;AAAA,IAC5F,KAAK,YAAY,KAAK,IAAI,UAAU,KAAK,IAAI,CAAC;AAAA;AAAA,EAGlD,OAAgD,CAAC,SAAuC;AAAA,IACpF,KAAK,UAAU,KAAK,IAAI,QAAQ,KAAK,IAAI,CAAC;AAAA;AAAA,EAG9C,UAAkD,CAAC,QAAoD;AAAA,IACnG,OAAO,KAAK,SAAS,KAAK,OAAK,aAAa,MAAM;AAAA;AAAA,EAGtD,wBAAwE,CAAC,sBAAgF;AAAA,IACrJ,OAAO,KAAK,uBAAuB,KAAK,OAAK,aAAa,oBAAoB;AAAA;AAAA,EAGlF,aAAwD,CAAC,WAA0D;AAAA,IAC/G,OAAO,KAAK,YAAY,KAAK,OAAK,aAAa,SAAS;AAAA;AAAA,EAG5D,WAAoD,CAAC,SAAsD;AAAA,IACvG,OAAO,KAAK,UAAU,KAAK,OAAK,aAAa,OAAO;AAAA;AAE5D;;;ADhEO,MAAM,YAAmC,MAAM,IAAI;AAAA,MAClD,QAAQ,GAAmB;AAAA,IAC3B,OAAO,KAAK;AAAA;AAAA,EAGP;AAAA,EAET,WAAW,IAAI,MAAa;AAAA,IACxB,MAAM,GAAG,IAAI;AAAA,IAEb,KAAK,YAAY,IAAI,SAAe,IAAuB;AAAA;AAEnE;AAAA;AAEO,MAAM,UAAkC;AAAA,MACvC,GAAG,GAAS;AAAA,IACZ,OAAO,KAAK;AAAA;AAAA,MAGZ,KAAK,GAAY;AAAA,IACjB,OAAO,KAAK,IAAI;AAAA;AAAA,MAGhB,QAAQ,GAAmB;AAAA,IAC3B,OAAO,KAAK,IAAI;AAAA;AAAA,MAGhB,UAAU,GAA0B;AAAA,IACpC,OAAO,KAAK,MAAM;AAAA;AAAA,MAGlB,IAAI,GAAoB;AAAA,IACxB,OAAO,KAAK,MAAM;AAAA;AAAA,MAGlB,QAAQ,GAAwB;AAAA,IAChC,OAAO,KAAK,MAAM;AAAA;AAAA,MAGlB,QAAQ,GAAa;AAAA,IACrB,OAAO,KAAK,MAAM,KAAK,YAAY;AAAA;AAAA,EAG9B;AAAA,EAET,WAAW,CAAC,KAAW;AAAA,IACnB,KAAK,OAAO;AAAA;AAAA,OAGV,OAAM,CAAC,SAAgC;AAAA,IACzC,MAAM,KAAK,MAAM,cAAc,mBAAmB;AAAA,MAC9C,SAAS;AAAA,IACb,CAAC;AAAA;AAAA,EAGL,GAAG,IAAI,MAAmB;AAAA,IACtB,KAAK,MAAM,IAAI,GAAG,IAAI;AAAA;AAAA,EAG1B,QAAQ,CAAC,OAAe,OAAY,WAAiB;AAAA,IACjD,KAAK,MAAM,IAAI,SAAS,OAAO,IAAI;AAAA;AAAA,EAGvC,SAAS,CAAC,KAAa,MAAgD;AAAA,IACnE,OAAO,KAAK,MAAM,GAAG,KAAK,IAAI;AAAA;AAAA,EAGlC,aAAa,CAAC,UAAgC;AAAA,IAC1C,KAAK,MAAM,cAAc,QAAQ;AAAA;AAAA,EAGrC,WAAW,CAAC,UAAoB,IAA4B;AAAA,IACxD,OAAO,KAAK,MAAM,YAAY,UAAU,EAAE;AAAA;AAAA,EAG9C,YAAY,CAAC,UAAgC;AAAA,IACzC,KAAK,MAAM,aAAa,QAAQ;AAAA;AAAA,EAGpC,UAAU,CAAC,UAAoB,IAA4B;AAAA,IACvD,OAAO,KAAK,MAAM,WAAW,UAAU,EAAE;AAAA;AAEjD;;AErFO,SAAS,MAAM,CAAC,IAAY;AAAA,EAC/B,OAAO,CAAwB,gBAAsB;AAAA,IACjD,OAAO,cAAc,YAAY;AAAA,UACzB,QAAQ,GAAW;AAAA,QACnB,OAAO;AAAA;AAAA,IAEf;AAAA;AAAA;AAID,SAAS,YAAY,CAAC,IAAY;AAAA,EACrC,OAAO,CAAwB,sBAA4B;AAAA,IACvD,OAAO,cAAc,kBAAkB;AAAA,UAC/B,cAAc,GAAW;AAAA,QACzB,OAAO;AAAA;AAAA,IAEf;AAAA;AAAA;AAID,SAAS,SAAS,CAAC,IAAY;AAAA,EAClC,OAAO,CAAwB,mBAAyB;AAAA,IACpD,OAAO,cAAc,eAAe;AAAA,UAC5B,WAAW,GAAW;AAAA,QACtB,OAAO;AAAA;AAAA,IAEf;AAAA;AAAA;AAID,SAAS,OAAO,CAAC,IAAY;AAAA,EAChC,OAAO,CAAwB,iBAAuB;AAAA,IAClD,OAAO,cAAc,aAAa;AAAA,UAC1B,SAAS,GAAW;AAAA,QACpB,OAAO;AAAA;AAAA,IAEf;AAAA;AAAA;;AClCD,MAAe,mBAA+H,UAAgB;AAAA,MAC7J,IAAI,GAAU;AAAA,IACd,OAAO,KAAK;AAAA;AAAA,MAGZ,EAAE,GAAW;AAAA,IACb,OAAO,KAAK,MAAM;AAAA;AAAA,MAGlB,IAAI,GAAiB;AAAA,IACrB,OAAO,KAAK,MAAM;AAAA;AAAA,EAGb;AAAA,EAET,WAAW,CAAC,KAAW;AAAA,IACnB,MAAM,GAAG;AAAA,IAET,KAAK,QAAQ,KAAK,SAAS;AAAA,IAE3B,KAAK,OAAO,EACP,KAAK,EACL,MAAM,QAAQ,MAAM,KAAK,OAAO,CAAC;AAAA;AAAA,OAGpC,OAAM,GAAkB;AAAA,IAC1B,KAAK,MAAM,oBAAoB,KAAK,MAAM,KAAK,IAAI,CAAC;AAAA,IACpD,KAAK,MAAM,GAAG,UAAU,KAAK,SAAS,KAAK,IAAI,CAAC;AAAA,IAEhD,KAAK,IAAI,yBAAyB,KAAK,QAAQ,KAAK,yBAAyB;AAAA;AAAA,OAK3E,SAAQ,GAAkB;AAAA,EAGhC,oBAA0E,CAAC,MAAc,sBAAuE;AAAA,IAC5J,MAAM,WAAW,KAAK,SAAS,yBAAyB,oBAAoB;AAAA,IAE5E,IAAI,CAAC,UAAU;AAAA,MACX,MAAM,IAAI,MAAM,uCAAuC,KAAK,QAAQ,KAAK,sCAAsC;AAAA,IACnH;AAAA,IAEA,KAAK,MAAM,qCAAqC,MAAM,SAAS,KAAK,KAAK,QAAQ,CAAC;AAAA;AAAA,EAGtF,QAAQ,GAAU;AAAA,IACd,IAAI,gBAAgB,kBAAkB;AAAA,MAClC,OAAO,KAAK,KAAK,cAAe,KAAa,QAAQ;AAAA,IACzD;AAAA,IAEA,IAAI,gBAAgB,qBAAqB;AAAA,MACrC,OAAO,KAAK,KAAK,iBAAkB,KAAa,WAAW;AAAA,IAC/D;AAAA,IAEA,IAAI,gBAAgB,mBAAmB;AAAA,MACnC,OAAO,KAAK,KAAK,eAAgB,KAAa,SAAS;AAAA,IAC3D;AAAA,IAEA,MAAM,IAAI,MAAM,kBAAkB,KAAK,YAAY,iBAAiB;AAAA;AAE5E;AAAA;AAEO,MAAe,yBAAuG,WAA+D;AAC5L;AAAA;AAEO,MAAe,4BAAuF,WAAkE;AAC/K;AAAA;AAEO,MAAe,0BAAqF,WAAgE;AAAA,OACjK,QAAO,CAAC,OAAe,QAAgD;AAAA,IACzE,OAAO,KAAK,KAAK,QAAQ,QAAQ,KAAe;AAAA;AAExD;AAAA;AAEO,MAAe,iCAAyD,UAAgB;AAAA,OAGrF,OAAM,GAAkB;AAAA,OAGxB,OAAM,GAAkB;AAAA,IAC1B,KAAK,MAAM,IAAI,qCAAsC,KAAa,qCAAqC;AAAA,IACvG,MAAM,KAAK,OAAO;AAAA;AAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtFO,IAAM,SAAkB;AAExB,IAAM,QAAgB,cAAO,IAAI,WAAS;AAAA,EAC7C,IAAI,KAAK;AAAA,EACT,MAAM,KAAK;AAAA,EACX,SAAS,KAAK;AAClB,EAAE;",
12
12
  "debugId": "6178FFA514A4A87A64756E2164756E21",
13
13
  "names": []
14
14
  }
@@ -0,0 +1,52 @@
1
+ import type Homey from 'homey/lib/Homey';
2
+ import type { App } from './app';
3
+ import type { FlowActionEntity, FlowAutocompleteProvider, FlowConditionEntity, FlowTriggerEntity } from './flow';
4
+
5
+ export type Constructor<T = {}> = new (...args: any[]) => T;
6
+
7
+ export type Action<TApp extends App<TApp>, TEntity extends FlowActionEntity<TApp>> = new (app: TApp) => TEntity;
8
+ export type AutocompleteProvider<TApp extends App<TApp>, TEntity extends FlowAutocompleteProvider<TApp>> = new (app: TApp) => TEntity;
9
+ export type Condition<TApp extends App<TApp>, TEntity extends FlowConditionEntity<TApp>> = new (app: TApp) => TEntity;
10
+ export type Trigger<TApp extends App<TApp>, TEntity extends FlowTriggerEntity<TApp>> = new (app: TApp) => TEntity;
11
+
12
+ export type FlowCardType =
13
+ | 'action'
14
+ | 'condition'
15
+ | 'trigger';
16
+
17
+ export type Color = {
18
+ readonly hex: string;
19
+ readonly label: string;
20
+ };
21
+
22
+ export type Icon = {
23
+ readonly id: string;
24
+ readonly name: string;
25
+ readonly unicode: string;
26
+ };
27
+
28
+ export type Language =
29
+ | 'en'
30
+ | 'nl'
31
+ | 'de'
32
+ | 'es'
33
+ | 'fr'
34
+ | 'it'
35
+ | 'ko'
36
+ | 'no'
37
+ | 'pl'
38
+ | 'ru'
39
+ | 'sv';
40
+
41
+ export type ApiRequest<TApp> = {
42
+ readonly homey: Homey & {
43
+ readonly app: TApp;
44
+ };
45
+ readonly body: any;
46
+ readonly params: Record<string, unknown>;
47
+ readonly query: Record<string, string>;
48
+ };
49
+
50
+ export type WidgetApiRequest<TApp> = ApiRequest<TApp> & {
51
+ readonly widgetInstanceId: string;
52
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@basmilius/homey-common",
3
3
  "description": "Common code shared across my Homey apps.",
4
- "version": "0.0.9",
4
+ "version": "0.0.11",
5
5
  "license": "MIT",
6
6
  "funding": "https://github.com/sponsors/basmilius",
7
7
  "author": {
@@ -44,7 +44,7 @@
44
44
  "./*": "./*"
45
45
  },
46
46
  "devDependencies": {
47
- "@basmilius/tools": "^2.13.0",
47
+ "@basmilius/tools": "^2.15.0",
48
48
  "@tsconfig/node18": "^18.2.6",
49
49
  "@types/bun": "^1.3.2",
50
50
  "@types/homey": "npm:homey-apps-sdk-v3-types@^0.3.12",
package/src/data/index.ts CHANGED
@@ -1,9 +1,10 @@
1
+ import type { Color, Icon } from '../types';
1
2
  import _colors from './colors.json';
2
3
  import _icons from './icons.json';
3
4
 
4
- export const colors = _colors;
5
+ export const colors: Color[] = _colors;
5
6
 
6
- export const icons = _icons.map(icon => ({
7
+ export const icons: Icon[] = _icons.map(icon => ({
7
8
  id: icon[0],
8
9
  name: icon[1],
9
10
  unicode: icon[2]