diff --git a/attw.json b/attw.json index a3518f95e212bf..2cbbaab7d85e9d 100644 --- a/attw.json +++ b/attw.json @@ -189,7 +189,6 @@ "next-nprogress", "ngreact", "node-fetch-cache", - "node-osc", "notie", "npm", "object.groupby", diff --git a/types/materialize-css/package.json b/types/materialize-css/package.json index 343223453af611..5fd9b8fda7cc1e 100644 --- a/types/materialize-css/package.json +++ b/types/materialize-css/package.json @@ -25,10 +25,6 @@ "name": "David Moniz", "githubUsername": "MonizDave" }, - { - "name": "Daniel Hoenes", - "githubUsername": "broccoliarchy" - }, { "name": "Rick Lucassen", "githubUsername": "SnowyLeopard" diff --git a/types/node-osc/index.d.cts b/types/node-osc/index.d.cts new file mode 100644 index 00000000000000..4e56a57d53240b --- /dev/null +++ b/types/node-osc/index.d.cts @@ -0,0 +1,116 @@ +/// + +import type { EventEmitter } from "events"; + +/** Represents the content of a message */ +export interface Argument { + type: string; + + value: boolean | number | string; +} + +export type ArgumentType = boolean | number | string | Argument; + +export interface RequestInfo { + address: string; + family: string; + port: number; + size: number; +} + +/** + * A message that can be sent over OSC + */ +export class Message { + constructor(address: string, ...args: ArgumentType[]); + + append(arg: ArgumentType | ArgumentType[]): void; +} + +/** Something that is or can be converted to a Message */ +export type MessageLike = + | [string, ...ArgumentType[]] + | { + address: string; + + args: ArgumentType[]; + }; + +/** + * An OSC Bundle message + * + * @warning Bundle support is Experimental and subject to change at any point. + * + * @see https://github.com/MylesBorins/node-osc#sending-osc-bundles + */ +export class Bundle { + constructor(...elements: MessageLike[]); + constructor(timetag: number, ...elements: MessageLike[]); + + append(element: MessageLike | Bundle): void; + + timetag: number; + + elements: Message[]; +} + +export type ClientSendArgs = Array; + +export type ClientSendCallback = (err: Error | null) => void; + +export type ClientCloseCallback = () => void; + +/** + * A client to send messages to an OSC server + */ +export class Client { + constructor(host: string, port: number); + + /** Close the underlying socket */ + close(cb?: ClientCloseCallback): void; + + /** Send a message to the server */ + send(addressOrMessage: string | Message | MessageLike): void; + send(address: string, ...args: ClientSendArgs): void; + send(address: string, ...args: [...ClientSendArgs, ClientSendCallback]): void; + send(...args: ClientSendArgs): void; + send(...args: [...ClientSendArgs, ClientSendCallback]): void; + + /** Send a Bundle message to the server */ + send(bundle: Bundle, callback?: ClientSendCallback): void; +} + +export type ServerCallback = () => void; + +export type ServerBundleListener = (bundle: Bundle) => void; + +export type ServerErrorListner = (error: Error) => void; + +export type ServerMessageListener = (message: [string, ...ArgumentType[]], rinfo: RequestInfo) => void; + +/** + * A server to handle OSC messages + */ +export class Server extends EventEmitter { + constructor(port: number, host: string, cb?: ServerCallback); + + close(cb?: ServerCallback): void; + + /** Listen for the listening event emitted as soon as the server is ready to receive messages */ + on(event: "listening", listener: () => void): this; + + /** + * Listen for all the bundles received by the server. + * + * @warning Bundle support is Experimental and subject to change at any point. + * + * @see https://github.com/MylesBorins/node-osc#listening-for-osc-bundles + */ + on(event: "bundle", listener: ServerBundleListener): this; + + /** Listen for errors occurred during message decoding */ + on(event: "error", listener: ServerErrorListner): this; + + /** Listen for all the messages received by the server or for a specific address */ + on(event: "message" | string, listener: ServerMessageListener): this; +} diff --git a/types/node-osc/package.json b/types/node-osc/package.json index 62bb6536ea199a..52fc08d1fb710d 100644 --- a/types/node-osc/package.json +++ b/types/node-osc/package.json @@ -1,7 +1,14 @@ { "private": true, "name": "@types/node-osc", - "version": "9.1.9999", + "version": "10.0.9999", + "type": "module", + "exports": { + ".": { + "import": "./index.d.ts", + "require": "./index.d.cts" + } + }, "projects": [ "https://github.com/MylesBorins/node-osc#readme" ], diff --git a/types/node-osc/tsconfig.json b/types/node-osc/tsconfig.json index ff72d650aaf9d5..029af0560a4884 100644 --- a/types/node-osc/tsconfig.json +++ b/types/node-osc/tsconfig.json @@ -14,6 +14,7 @@ }, "files": [ "index.d.ts", + "index.d.cts", "node-osc-tests.ts" ] } diff --git a/types/yazl/package.json b/types/yazl/package.json index 7033d7185133f0..95080e4f77f839 100644 --- a/types/yazl/package.json +++ b/types/yazl/package.json @@ -19,10 +19,6 @@ { "name": "Sean Marvi Oliver Genabe", "githubUsername": "seangenabe" - }, - { - "name": "Lucas Nørgård", - "githubUsername": "luxass" } ] }