@lakutata/dbus 2.1.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/CHANGELOG.md ADDED
@@ -0,0 +1,11 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file.
4
+ See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
+
6
+ # 2.1.0 (2025-07-24)
7
+
8
+
9
+ ### Features
10
+
11
+ * **dbus:** add DBus SDK package with client provider and test setup ([0bc9cd9](https://github.com/lakutata/lakutata-packages/commit/0bc9cd9f99374a57f3250ee9f540ace18be67f9c))
package/README.md ADDED
@@ -0,0 +1,38 @@
1
+ <div align="center">
2
+
3
+ ![lakutata](https://socialify.git.ci/lakutata/lakutata/image?description=1&descriptionEditable=An%20IoC-based%20universal%20application%20framework&font=Source%20Code%20Pro&forks=1&language=1&logo=https%3A%2F%2Fraw.githubusercontent.com%2Flakutata%2Flakutata%2Fmain%2Fassets%2Flogo.svg&name=1&pattern=Circuit%20Board&stargazers=1&theme=Auto)
4
+
5
+ </div>
6
+
7
+ <div align="center">
8
+
9
+ ![node-lts](https://img.shields.io/node/v-lts/lakutata?style=for-the-badge&logo=nodedotjs&color=rgb(128%2C189%2C65))
10
+ ![npm](https://img.shields.io/npm/v/lakutata?style=for-the-badge&logo=npm&color=rgb(128%2C189%2C65))
11
+ ![npm](https://img.shields.io/npm/dm/lakutata?style=for-the-badge&logo=npm&color=rgb(128%2C189%2C65))
12
+ ![NPM](https://img.shields.io/npm/l/lakutata?style=for-the-badge&logo=github&color=rgb(128%2C189%2C65))
13
+ ![Codacy grade](https://img.shields.io/codacy/grade/0f16d1c355494415ad7733f8f22f7d36?style=for-the-badge&logo=codacy)
14
+
15
+ </div>
16
+
17
+ ## 💫 Description
18
+
19
+ Lakutata is a generic development framework written in TypeScript and designed with IoC principles. Its main objective
20
+ is to provide a universal, efficient, and stable development framework. The design goals of Lakutata are not limited to
21
+ web application development; it aims to serve as a foundational framework for desktop applications, embedded systems
22
+ applications, and web applications. The framework primarily adopts an OOP (Object-Oriented Programming) approach and
23
+ encapsulates functionalities such as subprocesses, threads, permission management, and database ORM, enabling the
24
+ framework to be used out of the box.
25
+
26
+ In addition, Lakutata also supports the integration of third-party libraries into the application, allowing developers
27
+ to freely encapsulate and call third-party modules using Lakutata's dependency injection.
28
+
29
+ ## ✨ Getting started
30
+
31
+ - Install lakutata DBus SDK
32
+ ```shell
33
+ npm install @lakutata/dbus
34
+ ```
35
+
36
+ ## 🌎 License
37
+
38
+ Lakutata is [MIT licensed](LICENSE).
@@ -0,0 +1,2 @@
1
+ export { DBusInterface, DBusObject, DBusService, LocalInterface, LocalObject, LocalService, CreateDBusError, DBusBufferEncoder, DBusBufferDecoder, DBusMessage, DBusSignalEmitter, DBusSignedValue, Signature, DBusMessageEndianness, DBusMessageFlags, DBusMessageType, DBusPropertyAccess, RequestNameFlags, RequestNameResultCode, DBusArray, DBusBoolean, DBusByte, DBusDictEntry, DBusDouble, DBusInt16, DBusInt32, DBusInt64, DBusObjectPath, DBusSignature, DBusString, DBusStruct, DBusUint16, DBusUint32, DBusUint64, DBusUnixFD, DBusVariant, IntrospectableInterface, PeerInterface, ObjectManagerInterface, PropertiesInterface, type BusAddressConnectOpts, type BusNameBasicInfo, type ConnectOpts, type CreateConnectOpts, type CreateSignalEmitterOpts, type DataType, type Types, type DBusInterfaceOpts, type DBusMessageHeader, type DBusObjectOpts, type DBusServiceOpts, type DefineMethodArgumentOpts, type DefineMethodOpts, type DefinePropertyOpts, type emitPropertiesChangedOpts, type DefineSignalOpts, type EmitSignalOpts, type GetPropertyValueOpts, type HandshakeOpts, type IntrospectInterface, type IntrospectMethod, type IntrospectMethodArgument, type IntrospectNode, type IntrospectProperty, type IntrospectSignal, type IntrospectSignalArgument, type InvokeOpts, type NoReplyModeMethodCall, type PropertyOperation, type ReplyModeMethodCall, type ReplyOpts, type ServiceBasicInfo, type SetPropertyValueOpts, type SocketConnectOpts, type StreamConnectOpts, type TCPConnectOpts } from 'dbus-sdk';
2
+ //# sourceMappingURL=CommonExports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommonExports.d.ts","sourceRoot":"","sources":["../src/CommonExports.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EACb,UAAU,EACV,WAAW,EACX,cAAc,EACd,WAAW,EACX,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,SAAS,EACT,WAAW,EACX,QAAQ,EACR,aAAa,EACb,UAAU,EACV,SAAS,EACT,SAAS,EACT,SAAS,EACT,cAAc,EACd,aAAa,EACb,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,uBAAuB,EACvB,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,QAAQ,EACb,KAAK,KAAK,EACV,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACtB,MAAM,UAAU,CAAA"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PropertiesInterface = exports.ObjectManagerInterface = exports.PeerInterface = exports.IntrospectableInterface = exports.DBusVariant = exports.DBusUnixFD = exports.DBusUint64 = exports.DBusUint32 = exports.DBusUint16 = exports.DBusStruct = exports.DBusString = exports.DBusSignature = exports.DBusObjectPath = exports.DBusInt64 = exports.DBusInt32 = exports.DBusInt16 = exports.DBusDouble = exports.DBusDictEntry = exports.DBusByte = exports.DBusBoolean = exports.DBusArray = exports.RequestNameResultCode = exports.RequestNameFlags = exports.DBusPropertyAccess = exports.DBusMessageType = exports.DBusMessageFlags = exports.DBusMessageEndianness = exports.Signature = exports.DBusSignedValue = exports.DBusSignalEmitter = exports.DBusMessage = exports.DBusBufferDecoder = exports.DBusBufferEncoder = exports.CreateDBusError = exports.LocalService = exports.LocalObject = exports.LocalInterface = exports.DBusService = exports.DBusObject = exports.DBusInterface = void 0;
4
+ var dbus_sdk_1 = require("dbus-sdk");
5
+ Object.defineProperty(exports, "DBusInterface", { enumerable: true, get: function () { return dbus_sdk_1.DBusInterface; } });
6
+ Object.defineProperty(exports, "DBusObject", { enumerable: true, get: function () { return dbus_sdk_1.DBusObject; } });
7
+ Object.defineProperty(exports, "DBusService", { enumerable: true, get: function () { return dbus_sdk_1.DBusService; } });
8
+ Object.defineProperty(exports, "LocalInterface", { enumerable: true, get: function () { return dbus_sdk_1.LocalInterface; } });
9
+ Object.defineProperty(exports, "LocalObject", { enumerable: true, get: function () { return dbus_sdk_1.LocalObject; } });
10
+ Object.defineProperty(exports, "LocalService", { enumerable: true, get: function () { return dbus_sdk_1.LocalService; } });
11
+ Object.defineProperty(exports, "CreateDBusError", { enumerable: true, get: function () { return dbus_sdk_1.CreateDBusError; } });
12
+ Object.defineProperty(exports, "DBusBufferEncoder", { enumerable: true, get: function () { return dbus_sdk_1.DBusBufferEncoder; } });
13
+ Object.defineProperty(exports, "DBusBufferDecoder", { enumerable: true, get: function () { return dbus_sdk_1.DBusBufferDecoder; } });
14
+ Object.defineProperty(exports, "DBusMessage", { enumerable: true, get: function () { return dbus_sdk_1.DBusMessage; } });
15
+ Object.defineProperty(exports, "DBusSignalEmitter", { enumerable: true, get: function () { return dbus_sdk_1.DBusSignalEmitter; } });
16
+ Object.defineProperty(exports, "DBusSignedValue", { enumerable: true, get: function () { return dbus_sdk_1.DBusSignedValue; } });
17
+ Object.defineProperty(exports, "Signature", { enumerable: true, get: function () { return dbus_sdk_1.Signature; } });
18
+ Object.defineProperty(exports, "DBusMessageEndianness", { enumerable: true, get: function () { return dbus_sdk_1.DBusMessageEndianness; } });
19
+ Object.defineProperty(exports, "DBusMessageFlags", { enumerable: true, get: function () { return dbus_sdk_1.DBusMessageFlags; } });
20
+ Object.defineProperty(exports, "DBusMessageType", { enumerable: true, get: function () { return dbus_sdk_1.DBusMessageType; } });
21
+ Object.defineProperty(exports, "DBusPropertyAccess", { enumerable: true, get: function () { return dbus_sdk_1.DBusPropertyAccess; } });
22
+ Object.defineProperty(exports, "RequestNameFlags", { enumerable: true, get: function () { return dbus_sdk_1.RequestNameFlags; } });
23
+ Object.defineProperty(exports, "RequestNameResultCode", { enumerable: true, get: function () { return dbus_sdk_1.RequestNameResultCode; } });
24
+ Object.defineProperty(exports, "DBusArray", { enumerable: true, get: function () { return dbus_sdk_1.DBusArray; } });
25
+ Object.defineProperty(exports, "DBusBoolean", { enumerable: true, get: function () { return dbus_sdk_1.DBusBoolean; } });
26
+ Object.defineProperty(exports, "DBusByte", { enumerable: true, get: function () { return dbus_sdk_1.DBusByte; } });
27
+ Object.defineProperty(exports, "DBusDictEntry", { enumerable: true, get: function () { return dbus_sdk_1.DBusDictEntry; } });
28
+ Object.defineProperty(exports, "DBusDouble", { enumerable: true, get: function () { return dbus_sdk_1.DBusDouble; } });
29
+ Object.defineProperty(exports, "DBusInt16", { enumerable: true, get: function () { return dbus_sdk_1.DBusInt16; } });
30
+ Object.defineProperty(exports, "DBusInt32", { enumerable: true, get: function () { return dbus_sdk_1.DBusInt32; } });
31
+ Object.defineProperty(exports, "DBusInt64", { enumerable: true, get: function () { return dbus_sdk_1.DBusInt64; } });
32
+ Object.defineProperty(exports, "DBusObjectPath", { enumerable: true, get: function () { return dbus_sdk_1.DBusObjectPath; } });
33
+ Object.defineProperty(exports, "DBusSignature", { enumerable: true, get: function () { return dbus_sdk_1.DBusSignature; } });
34
+ Object.defineProperty(exports, "DBusString", { enumerable: true, get: function () { return dbus_sdk_1.DBusString; } });
35
+ Object.defineProperty(exports, "DBusStruct", { enumerable: true, get: function () { return dbus_sdk_1.DBusStruct; } });
36
+ Object.defineProperty(exports, "DBusUint16", { enumerable: true, get: function () { return dbus_sdk_1.DBusUint16; } });
37
+ Object.defineProperty(exports, "DBusUint32", { enumerable: true, get: function () { return dbus_sdk_1.DBusUint32; } });
38
+ Object.defineProperty(exports, "DBusUint64", { enumerable: true, get: function () { return dbus_sdk_1.DBusUint64; } });
39
+ Object.defineProperty(exports, "DBusUnixFD", { enumerable: true, get: function () { return dbus_sdk_1.DBusUnixFD; } });
40
+ Object.defineProperty(exports, "DBusVariant", { enumerable: true, get: function () { return dbus_sdk_1.DBusVariant; } });
41
+ Object.defineProperty(exports, "IntrospectableInterface", { enumerable: true, get: function () { return dbus_sdk_1.IntrospectableInterface; } });
42
+ Object.defineProperty(exports, "PeerInterface", { enumerable: true, get: function () { return dbus_sdk_1.PeerInterface; } });
43
+ Object.defineProperty(exports, "ObjectManagerInterface", { enumerable: true, get: function () { return dbus_sdk_1.ObjectManagerInterface; } });
44
+ Object.defineProperty(exports, "PropertiesInterface", { enumerable: true, get: function () { return dbus_sdk_1.PropertiesInterface; } });
@@ -0,0 +1,2 @@
1
+ export { DBusClientComponent } from './components/DBusClientComponent';
2
+ //# sourceMappingURL=ComponentExports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentExports.d.ts","sourceRoot":"","sources":["../src/ComponentExports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAA"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DBusClientComponent = void 0;
4
+ var DBusClientComponent_1 = require("./components/DBusClientComponent");
5
+ Object.defineProperty(exports, "DBusClientComponent", { enumerable: true, get: function () { return DBusClientComponent_1.DBusClientComponent; } });
@@ -0,0 +1,2 @@
1
+ export { DBusClientProvider } from './providers/DBusClientProvider';
2
+ //# sourceMappingURL=ProviderExports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProviderExports.d.ts","sourceRoot":"","sources":["../src/ProviderExports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAA"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DBusClientProvider = void 0;
4
+ var DBusClientProvider_1 = require("./providers/DBusClientProvider");
5
+ Object.defineProperty(exports, "DBusClientProvider", { enumerable: true, get: function () { return DBusClientProvider_1.DBusClientProvider; } });
@@ -0,0 +1,75 @@
1
+ import { BusNameBasicInfo, DBus, DBusInterface, DBusMessage, DBusObject, DBusService, DBusSignalEmitter, InvokeOpts, ServiceBasicInfo } from 'dbus-sdk';
2
+ import { Component, ProviderOptionsBuilder } from 'lakutata';
3
+ import { DBusClientOptions } from '../interfaces/DBusClientOptions';
4
+ export declare const buildDBusClientOptions: ProviderOptionsBuilder<DBusClientOptions>;
5
+ export declare class DBusClientComponent extends Component {
6
+ protected readonly busAddress: string;
7
+ protected readonly timeout: number;
8
+ protected readonly advancedResponse: boolean;
9
+ protected readonly convertBigIntToNumber: boolean;
10
+ protected dbus: DBus;
11
+ get uniqueName(): string;
12
+ /**
13
+ * Initializer
14
+ * @protected
15
+ */
16
+ protected init(): Promise<void>;
17
+ /**
18
+ * Destroyer
19
+ * @protected
20
+ */
21
+ protected destroy(): Promise<void>;
22
+ invoke(opts: InvokeOpts, noReply: true): void;
23
+ invoke(opts: InvokeOpts, noReply: false): Promise<any[]>;
24
+ invoke(opts: InvokeOpts): Promise<any[]>;
25
+ on(eventName: 'online', listener: (name: string) => void): this;
26
+ on(eventName: 'offline', listener: (name: string) => void): this;
27
+ on(eventName: 'replaced', listener: (name: string) => void): this;
28
+ on(eventName: 'methodCall', listener: (message: DBusMessage) => void): this;
29
+ on(eventName: 'NameOwnerChanged', listener: (name: string, oldOwner: string, newOwner: string) => void): this;
30
+ on(eventName: 'NameLost', listener: (name: string) => void): this;
31
+ on(eventName: 'NameAcquired', listener: (name: string) => void): this;
32
+ on(eventName: 'connectionClose', listener: () => void): this;
33
+ on(eventName: 'connectionError', listener: (error: Error) => void): this;
34
+ once(eventName: 'online', listener: (name: string) => void): this;
35
+ once(eventName: 'offline', listener: (name: string) => void): this;
36
+ once(eventName: 'replaced', listener: (name: string) => void): this;
37
+ once(eventName: 'methodCall', listener: (message: DBusMessage) => void): this;
38
+ once(eventName: 'NameOwnerChanged', listener: (name: string, oldOwner: string, newOwner: string) => void): this;
39
+ once(eventName: 'NameLost', listener: (name: string) => void): this;
40
+ once(eventName: 'NameAcquired', listener: (name: string) => void): this;
41
+ once(eventName: 'connectionClose', listener: () => void): this;
42
+ once(eventName: 'connectionError', listener: (error: Error) => void): this;
43
+ off(eventName: 'online', listener: (name: string) => void): this;
44
+ off(eventName: 'offline', listener: (name: string) => void): this;
45
+ off(eventName: 'replaced', listener: (name: string) => void): this;
46
+ off(eventName: 'methodCall', listener: (message: DBusMessage) => void): this;
47
+ off(eventName: 'NameOwnerChanged', listener: (name: string, oldOwner: string, newOwner: string) => void): this;
48
+ off(eventName: 'NameLost', listener: (name: string) => void): this;
49
+ off(eventName: 'NameAcquired', listener: (name: string) => void): this;
50
+ off(eventName: 'connectionClose', listener: () => void): this;
51
+ off(eventName: 'connectionError', listener: (error: Error) => void): this;
52
+ removeListener(eventName: 'online', listener: (name: string) => void): this;
53
+ removeListener(eventName: 'offline', listener: (name: string) => void): this;
54
+ removeListener(eventName: 'replaced', listener: (name: string) => void): this;
55
+ removeListener(eventName: 'methodCall', listener: (message: DBusMessage) => void): this;
56
+ removeListener(eventName: 'NameOwnerChanged', listener: (name: string, oldOwner: string, newOwner: string) => void): this;
57
+ removeListener(eventName: 'NameLost', listener: (name: string) => void): this;
58
+ removeListener(eventName: 'NameAcquired', listener: (name: string) => void): this;
59
+ removeListener(eventName: 'connectionClose', listener: () => void): this;
60
+ removeListener(eventName: 'connectionError', listener: (error: Error) => void): this;
61
+ addMatch(rule: string): void;
62
+ removeMatch(rule: string): void;
63
+ getNameOwner(name: string): Promise<string | undefined>;
64
+ listActivatableNames(): Promise<string[]>;
65
+ listNames(): Promise<string[]>;
66
+ nameHasOwner(name: string): Promise<boolean>;
67
+ listBusNames(): Promise<BusNameBasicInfo[]>;
68
+ listServices(): Promise<ServiceBasicInfo[]>;
69
+ services(): Promise<DBusService[]>;
70
+ service(service: string): Promise<DBusService>;
71
+ object(service: string, objectPath: string): Promise<DBusObject>;
72
+ interface(service: string, objectPath: string, iface: string): Promise<DBusInterface>;
73
+ interfaceSignal(service: string, objectPath: string, iface: string): Promise<DBusSignalEmitter>;
74
+ }
75
+ //# sourceMappingURL=DBusClientComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DBusClientComponent.d.ts","sourceRoot":"","sources":["../../src/components/DBusClientComponent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DBusClientComponent = exports.buildDBusClientOptions = void 0;
13
+ const dbus_sdk_1 = require("dbus-sdk");
14
+ const lakutata_1 = require("lakutata");
15
+ const di_1 = require("lakutata/decorator/di");
16
+ const buildDBusClientOptions = (options) => ({
17
+ class: DBusClientComponent,
18
+ busAddress: options.busAddress,
19
+ timeout: options.timeout,
20
+ advancedResponse: options.advancedResponse,
21
+ convertBigIntToNumber: options.convertBigIntToNumber
22
+ });
23
+ exports.buildDBusClientOptions = buildDBusClientOptions;
24
+ class DBusClientComponent extends lakutata_1.Component {
25
+ get uniqueName() {
26
+ return this.dbus.uniqueName;
27
+ }
28
+ /**
29
+ * Initializer
30
+ * @protected
31
+ */
32
+ async init() {
33
+ this.dbus = await dbus_sdk_1.DBus.connect({
34
+ busAddress: this.busAddress,
35
+ timeout: this.timeout,
36
+ advancedResponse: this.advancedResponse,
37
+ convertBigIntToNumber: this.convertBigIntToNumber
38
+ });
39
+ }
40
+ /**
41
+ * Destroyer
42
+ * @protected
43
+ */
44
+ async destroy() {
45
+ await this.dbus.disconnect();
46
+ }
47
+ invoke(opts, noReply = false) {
48
+ if (noReply)
49
+ return this.dbus.invoke(opts, true);
50
+ return this.dbus.invoke(opts, false);
51
+ }
52
+ on(eventName, listener) {
53
+ this.dbus.on(eventName, listener);
54
+ return this;
55
+ }
56
+ once(eventName, listener) {
57
+ this.dbus.once(eventName, listener);
58
+ return this;
59
+ }
60
+ off(eventName, listener) {
61
+ this.dbus.off(eventName, listener);
62
+ return this;
63
+ }
64
+ removeListener(eventName, listener) {
65
+ this.dbus.removeListener(eventName, listener);
66
+ return this;
67
+ }
68
+ addMatch(rule) {
69
+ return this.dbus.addMatch(rule);
70
+ }
71
+ removeMatch(rule) {
72
+ return this.dbus.removeMatch(rule);
73
+ }
74
+ async getNameOwner(name) {
75
+ return this.dbus.getNameOwner(name);
76
+ }
77
+ async listActivatableNames() {
78
+ return this.dbus.listActivatableNames();
79
+ }
80
+ async listNames() {
81
+ return this.dbus.listNames();
82
+ }
83
+ async nameHasOwner(name) {
84
+ return this.dbus.nameHasOwner(name);
85
+ }
86
+ async listBusNames() {
87
+ return this.dbus.listBusNames();
88
+ }
89
+ async listServices() {
90
+ return this.dbus.listServices();
91
+ }
92
+ async services() {
93
+ return this.dbus.getServices();
94
+ }
95
+ async service(service) {
96
+ return this.dbus.getService(service);
97
+ }
98
+ async object(service, objectPath) {
99
+ return this.dbus.getObject(service, objectPath);
100
+ }
101
+ async interface(service, objectPath, iface) {
102
+ return this.dbus.getInterface(service, objectPath, iface);
103
+ }
104
+ async interfaceSignal(service, objectPath, iface) {
105
+ const dbusIface = await this.dbus.getInterface(service, objectPath, iface);
106
+ return dbusIface.signal;
107
+ }
108
+ }
109
+ exports.DBusClientComponent = DBusClientComponent;
110
+ __decorate([
111
+ (0, di_1.Configurable)(lakutata_1.DTO.String().required()),
112
+ __metadata("design:type", String)
113
+ ], DBusClientComponent.prototype, "busAddress", void 0);
114
+ __decorate([
115
+ (0, di_1.Configurable)(lakutata_1.DTO.Number().positive().integer().optional()),
116
+ __metadata("design:type", Number)
117
+ ], DBusClientComponent.prototype, "timeout", void 0);
118
+ __decorate([
119
+ (0, di_1.Configurable)(lakutata_1.DTO.Boolean().optional().default(false)),
120
+ __metadata("design:type", Boolean)
121
+ ], DBusClientComponent.prototype, "advancedResponse", void 0);
122
+ __decorate([
123
+ (0, di_1.Configurable)(lakutata_1.DTO.Boolean().optional().default(true)),
124
+ __metadata("design:type", Boolean)
125
+ ], DBusClientComponent.prototype, "convertBigIntToNumber", void 0);
@@ -0,0 +1,7 @@
1
+ export interface DBusClientOptions {
2
+ busAddress: string;
3
+ timeout?: number;
4
+ advancedResponse?: boolean;
5
+ convertBigIntToNumber?: boolean;
6
+ }
7
+ //# sourceMappingURL=DBusClientOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DBusClientOptions.d.ts","sourceRoot":"","sources":["../../src/interfaces/DBusClientOptions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAClC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,75 @@
1
+ import { BusNameBasicInfo, DBus, DBusInterface, DBusMessage, DBusObject, DBusService, DBusSignalEmitter, InvokeOpts, ServiceBasicInfo } from 'dbus-sdk';
2
+ import { Provider, ProviderOptionsBuilder } from 'lakutata';
3
+ import { DBusClientOptions } from '../interfaces/DBusClientOptions';
4
+ export declare const buildDBusClientOptions: ProviderOptionsBuilder<DBusClientOptions>;
5
+ export declare class DBusClientProvider extends Provider {
6
+ protected readonly busAddress: string;
7
+ protected readonly timeout: number;
8
+ protected readonly advancedResponse: boolean;
9
+ protected readonly convertBigIntToNumber: boolean;
10
+ protected dbus: DBus;
11
+ get uniqueName(): string;
12
+ /**
13
+ * Initializer
14
+ * @protected
15
+ */
16
+ protected init(): Promise<void>;
17
+ /**
18
+ * Destroyer
19
+ * @protected
20
+ */
21
+ protected destroy(): Promise<void>;
22
+ invoke(opts: InvokeOpts, noReply: true): void;
23
+ invoke(opts: InvokeOpts, noReply: false): Promise<any[]>;
24
+ invoke(opts: InvokeOpts): Promise<any[]>;
25
+ on(eventName: 'online', listener: (name: string) => void): this;
26
+ on(eventName: 'offline', listener: (name: string) => void): this;
27
+ on(eventName: 'replaced', listener: (name: string) => void): this;
28
+ on(eventName: 'methodCall', listener: (message: DBusMessage) => void): this;
29
+ on(eventName: 'NameOwnerChanged', listener: (name: string, oldOwner: string, newOwner: string) => void): this;
30
+ on(eventName: 'NameLost', listener: (name: string) => void): this;
31
+ on(eventName: 'NameAcquired', listener: (name: string) => void): this;
32
+ on(eventName: 'connectionClose', listener: () => void): this;
33
+ on(eventName: 'connectionError', listener: (error: Error) => void): this;
34
+ once(eventName: 'online', listener: (name: string) => void): this;
35
+ once(eventName: 'offline', listener: (name: string) => void): this;
36
+ once(eventName: 'replaced', listener: (name: string) => void): this;
37
+ once(eventName: 'methodCall', listener: (message: DBusMessage) => void): this;
38
+ once(eventName: 'NameOwnerChanged', listener: (name: string, oldOwner: string, newOwner: string) => void): this;
39
+ once(eventName: 'NameLost', listener: (name: string) => void): this;
40
+ once(eventName: 'NameAcquired', listener: (name: string) => void): this;
41
+ once(eventName: 'connectionClose', listener: () => void): this;
42
+ once(eventName: 'connectionError', listener: (error: Error) => void): this;
43
+ off(eventName: 'online', listener: (name: string) => void): this;
44
+ off(eventName: 'offline', listener: (name: string) => void): this;
45
+ off(eventName: 'replaced', listener: (name: string) => void): this;
46
+ off(eventName: 'methodCall', listener: (message: DBusMessage) => void): this;
47
+ off(eventName: 'NameOwnerChanged', listener: (name: string, oldOwner: string, newOwner: string) => void): this;
48
+ off(eventName: 'NameLost', listener: (name: string) => void): this;
49
+ off(eventName: 'NameAcquired', listener: (name: string) => void): this;
50
+ off(eventName: 'connectionClose', listener: () => void): this;
51
+ off(eventName: 'connectionError', listener: (error: Error) => void): this;
52
+ removeListener(eventName: 'online', listener: (name: string) => void): this;
53
+ removeListener(eventName: 'offline', listener: (name: string) => void): this;
54
+ removeListener(eventName: 'replaced', listener: (name: string) => void): this;
55
+ removeListener(eventName: 'methodCall', listener: (message: DBusMessage) => void): this;
56
+ removeListener(eventName: 'NameOwnerChanged', listener: (name: string, oldOwner: string, newOwner: string) => void): this;
57
+ removeListener(eventName: 'NameLost', listener: (name: string) => void): this;
58
+ removeListener(eventName: 'NameAcquired', listener: (name: string) => void): this;
59
+ removeListener(eventName: 'connectionClose', listener: () => void): this;
60
+ removeListener(eventName: 'connectionError', listener: (error: Error) => void): this;
61
+ addMatch(rule: string): void;
62
+ removeMatch(rule: string): void;
63
+ getNameOwner(name: string): Promise<string | undefined>;
64
+ listActivatableNames(): Promise<string[]>;
65
+ listNames(): Promise<string[]>;
66
+ nameHasOwner(name: string): Promise<boolean>;
67
+ listBusNames(): Promise<BusNameBasicInfo[]>;
68
+ listServices(): Promise<ServiceBasicInfo[]>;
69
+ services(): Promise<DBusService[]>;
70
+ service(service: string): Promise<DBusService>;
71
+ object(service: string, objectPath: string): Promise<DBusObject>;
72
+ interface(service: string, objectPath: string, iface: string): Promise<DBusInterface>;
73
+ interfaceSignal(service: string, objectPath: string, iface: string): Promise<DBusSignalEmitter>;
74
+ }
75
+ //# sourceMappingURL=DBusClientProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DBusClientProvider.d.ts","sourceRoot":"","sources":["../../src/providers/DBusClientProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DBusClientProvider = exports.buildDBusClientOptions = void 0;
13
+ const dbus_sdk_1 = require("dbus-sdk");
14
+ const lakutata_1 = require("lakutata");
15
+ const di_1 = require("lakutata/decorator/di");
16
+ const buildDBusClientOptions = (options) => ({
17
+ class: DBusClientProvider,
18
+ busAddress: options.busAddress,
19
+ timeout: options.timeout,
20
+ advancedResponse: options.advancedResponse,
21
+ convertBigIntToNumber: options.convertBigIntToNumber
22
+ });
23
+ exports.buildDBusClientOptions = buildDBusClientOptions;
24
+ class DBusClientProvider extends lakutata_1.Provider {
25
+ get uniqueName() {
26
+ return this.dbus.uniqueName;
27
+ }
28
+ /**
29
+ * Initializer
30
+ * @protected
31
+ */
32
+ async init() {
33
+ this.dbus = await dbus_sdk_1.DBus.connect({
34
+ busAddress: this.busAddress,
35
+ timeout: this.timeout,
36
+ advancedResponse: this.advancedResponse,
37
+ convertBigIntToNumber: this.convertBigIntToNumber
38
+ });
39
+ }
40
+ /**
41
+ * Destroyer
42
+ * @protected
43
+ */
44
+ async destroy() {
45
+ await this.dbus.disconnect();
46
+ }
47
+ invoke(opts, noReply = false) {
48
+ if (noReply)
49
+ return this.dbus.invoke(opts, true);
50
+ return this.dbus.invoke(opts, false);
51
+ }
52
+ on(eventName, listener) {
53
+ this.dbus.on(eventName, listener);
54
+ return this;
55
+ }
56
+ once(eventName, listener) {
57
+ this.dbus.once(eventName, listener);
58
+ return this;
59
+ }
60
+ off(eventName, listener) {
61
+ this.dbus.off(eventName, listener);
62
+ return this;
63
+ }
64
+ removeListener(eventName, listener) {
65
+ this.dbus.removeListener(eventName, listener);
66
+ return this;
67
+ }
68
+ addMatch(rule) {
69
+ return this.dbus.addMatch(rule);
70
+ }
71
+ removeMatch(rule) {
72
+ return this.dbus.removeMatch(rule);
73
+ }
74
+ async getNameOwner(name) {
75
+ return this.dbus.getNameOwner(name);
76
+ }
77
+ async listActivatableNames() {
78
+ return this.dbus.listActivatableNames();
79
+ }
80
+ async listNames() {
81
+ return this.dbus.listNames();
82
+ }
83
+ async nameHasOwner(name) {
84
+ return this.dbus.nameHasOwner(name);
85
+ }
86
+ async listBusNames() {
87
+ return this.dbus.listBusNames();
88
+ }
89
+ async listServices() {
90
+ return this.dbus.listServices();
91
+ }
92
+ async services() {
93
+ return this.dbus.getServices();
94
+ }
95
+ async service(service) {
96
+ return this.dbus.getService(service);
97
+ }
98
+ async object(service, objectPath) {
99
+ return this.dbus.getObject(service, objectPath);
100
+ }
101
+ async interface(service, objectPath, iface) {
102
+ return this.dbus.getInterface(service, objectPath, iface);
103
+ }
104
+ async interfaceSignal(service, objectPath, iface) {
105
+ const dbusIface = await this.dbus.getInterface(service, objectPath, iface);
106
+ return dbusIface.signal;
107
+ }
108
+ }
109
+ exports.DBusClientProvider = DBusClientProvider;
110
+ __decorate([
111
+ (0, di_1.Configurable)(lakutata_1.DTO.String().required()),
112
+ __metadata("design:type", String)
113
+ ], DBusClientProvider.prototype, "busAddress", void 0);
114
+ __decorate([
115
+ (0, di_1.Configurable)(lakutata_1.DTO.Number().positive().integer().optional()),
116
+ __metadata("design:type", Number)
117
+ ], DBusClientProvider.prototype, "timeout", void 0);
118
+ __decorate([
119
+ (0, di_1.Configurable)(lakutata_1.DTO.Boolean().optional().default(false)),
120
+ __metadata("design:type", Boolean)
121
+ ], DBusClientProvider.prototype, "advancedResponse", void 0);
122
+ __decorate([
123
+ (0, di_1.Configurable)(lakutata_1.DTO.Boolean().optional().default(true)),
124
+ __metadata("design:type", Boolean)
125
+ ], DBusClientProvider.prototype, "convertBigIntToNumber", void 0);
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DBusTest.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DBusTest.spec.d.ts","sourceRoot":"","sources":["../../src/tests/DBusTest.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const lakutata_1 = require("lakutata");
4
+ const helper_1 = require("lakutata/helper");
5
+ const DBusClientProvider_1 = require("../providers/DBusClientProvider");
6
+ const Test_1 = require("./Test");
7
+ lakutata_1.Application.run({
8
+ id: 'dbus.test',
9
+ name: 'DBusTest',
10
+ providers: {
11
+ client: (0, DBusClientProvider_1.buildDBusClientOptions)({
12
+ busAddress: 'tcp:host=192.168.1.127,port=44444'
13
+ })
14
+ },
15
+ components: {
16
+ test: {
17
+ class: Test_1.Test
18
+ }
19
+ },
20
+ bootstrap: [
21
+ 'test'
22
+ ]
23
+ })
24
+ .onLaunched((app, logger) => logger.info('The application %s has successfully started in %s mode.', app.appName, app.mode()))
25
+ .onFatalException((error, logger) => logger.error('A fatal error occurred in the program: %s', error.message))
26
+ .onUncaughtException((error, logger) => error.code === 'EPIPE' ? (0, helper_1.DevNull)(error) : logger.error('UncaughtError occurred: %s', error.message));
@@ -0,0 +1,9 @@
1
+ import { Component } from 'lakutata';
2
+ import { DBusClientProvider } from '../providers/DBusClientProvider';
3
+ import { DBusSignalEmitter } from 'dbus-sdk';
4
+ export declare class Test extends Component {
5
+ protected readonly dbus: DBusClientProvider;
6
+ protected readonly padServPropSignal: DBusSignalEmitter;
7
+ protected init(): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=Test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Test.d.ts","sourceRoot":"","sources":["../../src/tests/Test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,UAAU,CAAA;AAGlC,OAAO,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAC,iBAAiB,EAAC,MAAM,UAAU,CAAA;AAE1C,qBAAa,IAAK,SAAQ,SAAS;IAG/B,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IAI3C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAA;cAIvC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAwBxC"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ var __metadata = (this && this.__metadata) || function (k, v) {
32
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.Test = void 0;
36
+ const lakutata_1 = require("lakutata");
37
+ const console = __importStar(require("node:console"));
38
+ const di_1 = require("lakutata/decorator/di");
39
+ const DBusClientProvider_1 = require("../providers/DBusClientProvider");
40
+ const dbus_sdk_1 = require("dbus-sdk");
41
+ class Test extends lakutata_1.Component {
42
+ // protected readonly client: DBusService
43
+ async init() {
44
+ const serv = await this.dbus.service('org.ptswitch.pad');
45
+ const obj = await serv.getObject('/slot1/port1/stc');
46
+ const iface = await obj.getInterface('pad.stc');
47
+ // iface.method.xxx()
48
+ console.log(JSON.stringify(iface.listMethods(), null, 2));
49
+ // const obj=await this.client.getObject('/')
50
+ // const inf=await obj.getInterface('org.freedesktop.DBus.Properties')
51
+ this.padServPropSignal.on('PropertiesChanged', async (a, b, c) => {
52
+ const serv = await this.dbus.service('org.ptswitch.pad');
53
+ console.log(await serv.listObjects());
54
+ });
55
+ console.log('hello!!!');
56
+ // console.log(this.client)
57
+ // setInterval(async () => {
58
+ // try {
59
+ // const objs = await this.client.getObjects()
60
+ // console.log(objs.map(obj => obj.name))
61
+ // } catch (e: any) {
62
+ // console.warn(e.message)
63
+ // }
64
+ // }, 1000)
65
+ // this.dbus.on('')
66
+ }
67
+ }
68
+ exports.Test = Test;
69
+ __decorate([
70
+ (0, di_1.Inject)('client'),
71
+ __metadata("design:type", DBusClientProvider_1.DBusClientProvider)
72
+ ], Test.prototype, "dbus", void 0);
73
+ __decorate([
74
+ (0, di_1.Inject)('client', async (dbusClient) => (await dbusClient.interface('org.ptswitch.pad', '/', 'org.freedesktop.DBus.Properties')).signal)
75
+ // @Inject('client',async (dbusClient:DBusClient)=>dbusClient.uniqueName)
76
+ ,
77
+ __metadata("design:type", dbus_sdk_1.DBusSignalEmitter
78
+ // protected readonly client: DBusService
79
+ )
80
+ ], Test.prototype, "padServPropSignal", void 0);
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@lakutata/dbus",
3
+ "version": "2.1.0",
4
+ "description": "Lakutata DBus SDK",
5
+ "keywords": [
6
+ "lakutata",
7
+ "dbus",
8
+ "sdk"
9
+ ],
10
+ "author": "myq1991 <myq1991@gmail.com>",
11
+ "homepage": "https://github.com/lakutata/lakutata-packages",
12
+ "license": "MIT",
13
+ "exports": {
14
+ ".": {
15
+ "types": "./dist/CommonExports.d.ts",
16
+ "require": "./dist/CommonExports.js"
17
+ },
18
+ "./com": {
19
+ "types": "./dist/ComponentExports.d.ts",
20
+ "require": "./dist/ComponentExports.js"
21
+ },
22
+ "./provider": {
23
+ "types": "./dist/ProviderExports.d.ts",
24
+ "require": "./dist/ProviderExports.js"
25
+ }
26
+ },
27
+ "publishConfig": {
28
+ "access": "public"
29
+ },
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "git+https://github.com/lakutata/lakutata-packages.git"
33
+ },
34
+ "scripts": {
35
+ "clean": "shx rm -rf ./dist",
36
+ "build": "tsc",
37
+ "rebuild": "npm run clean && npm run build",
38
+ "test": "bun src/tests/DBusTest.spec.ts"
39
+ },
40
+ "bugs": {
41
+ "url": "https://github.com/lakutata/lakutata-packages/issues"
42
+ },
43
+ "dependencies": {
44
+ "dbus-sdk": "^1.0.13",
45
+ "lakutata": "^2.0.53"
46
+ },
47
+ "devDependencies": {
48
+ "@types/degit": "^2.8.6"
49
+ },
50
+ "gitHead": "4ab1f85513872334dd45de0fdeff71cf0d58fe36"
51
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "extends": "../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "rootDir": "src",
5
+ "outDir": "dist"
6
+ }
7
+ }