tjbot-ce 3.0.1
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 +202 -0
- package/README.md +382 -0
- package/dist/camera/camera.d.ts +62 -0
- package/dist/camera/camera.d.ts.map +1 -0
- package/dist/camera/camera.js +155 -0
- package/dist/camera/camera.js.map +1 -0
- package/dist/camera/index.d.ts +18 -0
- package/dist/camera/index.d.ts.map +1 -0
- package/dist/camera/index.js +18 -0
- package/dist/camera/index.js.map +1 -0
- package/dist/config/config-types.d.ts +75 -0
- package/dist/config/config-types.d.ts.map +1 -0
- package/dist/config/config-types.generated.d.ts +495 -0
- package/dist/config/config-types.generated.d.ts.map +1 -0
- package/dist/config/config-types.generated.js +2 -0
- package/dist/config/config-types.generated.js.map +1 -0
- package/dist/config/config-types.js +175 -0
- package/dist/config/config-types.js.map +1 -0
- package/dist/config/index.d.ts +20 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +19 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/tjbot-config.d.ts +98 -0
- package/dist/config/tjbot-config.d.ts.map +1 -0
- package/dist/config/tjbot-config.js +309 -0
- package/dist/config/tjbot-config.js.map +1 -0
- package/dist/config/vendor/colors.yaml +61 -0
- package/dist/config/vendor/model-registry.yaml +275 -0
- package/dist/config/vendor/tjbot-config.schema.yaml +792 -0
- package/dist/config/vendor/tjbot.default.toml +452 -0
- package/dist/led/index.d.ts +20 -0
- package/dist/led/index.d.ts.map +1 -0
- package/dist/led/index.js +20 -0
- package/dist/led/index.js.map +1 -0
- package/dist/led/led-common-anode.d.ts +38 -0
- package/dist/led/led-common-anode.d.ts.map +1 -0
- package/dist/led/led-common-anode.js +79 -0
- package/dist/led/led-common-anode.js.map +1 -0
- package/dist/led/led-neopixel-spi.d.ts +60 -0
- package/dist/led/led-neopixel-spi.d.ts.map +1 -0
- package/dist/led/led-neopixel-spi.js +216 -0
- package/dist/led/led-neopixel-spi.js.map +1 -0
- package/dist/led/led-neopixel-ws281x.js +186 -0
- package/dist/led/led-neopixel.d.ts +57 -0
- package/dist/led/led-neopixel.d.ts.map +1 -0
- package/dist/led/led-neopixel.js +235 -0
- package/dist/led/led-neopixel.js.map +1 -0
- package/dist/microphone/index.d.ts +18 -0
- package/dist/microphone/index.d.ts.map +1 -0
- package/dist/microphone/index.js +18 -0
- package/dist/microphone/index.js.map +1 -0
- package/dist/microphone/microphone.d.ts +65 -0
- package/dist/microphone/microphone.d.ts.map +1 -0
- package/dist/microphone/microphone.js +179 -0
- package/dist/microphone/microphone.js.map +1 -0
- package/dist/rpi-drivers/index.d.ts +22 -0
- package/dist/rpi-drivers/index.d.ts.map +1 -0
- package/dist/rpi-drivers/index.js +22 -0
- package/dist/rpi-drivers/index.js.map +1 -0
- package/dist/rpi-drivers/rpi-detect.d.ts +24 -0
- package/dist/rpi-drivers/rpi-detect.d.ts.map +1 -0
- package/dist/rpi-drivers/rpi-detect.js +49 -0
- package/dist/rpi-drivers/rpi-detect.js.map +1 -0
- package/dist/rpi-drivers/rpi-driver.d.ts +116 -0
- package/dist/rpi-drivers/rpi-driver.d.ts.map +1 -0
- package/dist/rpi-drivers/rpi-driver.js +261 -0
- package/dist/rpi-drivers/rpi-driver.js.map +1 -0
- package/dist/rpi-drivers/rpi3-driver.d.ts +47 -0
- package/dist/rpi-drivers/rpi3-driver.d.ts.map +1 -0
- package/dist/rpi-drivers/rpi3-driver.js +145 -0
- package/dist/rpi-drivers/rpi3-driver.js.map +1 -0
- package/dist/rpi-drivers/rpi4-driver.d.ts +35 -0
- package/dist/rpi-drivers/rpi4-driver.d.ts.map +1 -0
- package/dist/rpi-drivers/rpi4-driver.js +101 -0
- package/dist/rpi-drivers/rpi4-driver.js.map +1 -0
- package/dist/rpi-drivers/rpi5-driver.d.ts +33 -0
- package/dist/rpi-drivers/rpi5-driver.d.ts.map +1 -0
- package/dist/rpi-drivers/rpi5-driver.js +78 -0
- package/dist/rpi-drivers/rpi5-driver.js.map +1 -0
- package/dist/servo/index.d.ts +19 -0
- package/dist/servo/index.d.ts.map +1 -0
- package/dist/servo/index.js +19 -0
- package/dist/servo/index.js.map +1 -0
- package/dist/servo/servo-constants.d.ts +33 -0
- package/dist/servo/servo-constants.d.ts.map +1 -0
- package/dist/servo/servo-constants.js +34 -0
- package/dist/servo/servo-constants.js.map +1 -0
- package/dist/servo/servo-lgpio.d.ts +82 -0
- package/dist/servo/servo-lgpio.d.ts.map +1 -0
- package/dist/servo/servo-lgpio.js +178 -0
- package/dist/servo/servo-lgpio.js.map +1 -0
- package/dist/speaker/audio-player.d.ts +30 -0
- package/dist/speaker/audio-player.d.ts.map +1 -0
- package/dist/speaker/audio-player.js +68 -0
- package/dist/speaker/audio-player.js.map +1 -0
- package/dist/speaker/index.d.ts +18 -0
- package/dist/speaker/index.d.ts.map +1 -0
- package/dist/speaker/index.js +18 -0
- package/dist/speaker/index.js.map +1 -0
- package/dist/speaker/speaker.d.ts +53 -0
- package/dist/speaker/speaker.d.ts.map +1 -0
- package/dist/speaker/speaker.js +125 -0
- package/dist/speaker/speaker.js.map +1 -0
- package/dist/stt/backends/azure-stt.d.ts +32 -0
- package/dist/stt/backends/azure-stt.d.ts.map +1 -0
- package/dist/stt/backends/azure-stt.js +227 -0
- package/dist/stt/backends/azure-stt.js.map +1 -0
- package/dist/stt/backends/google-cloud-stt.d.ts +31 -0
- package/dist/stt/backends/google-cloud-stt.d.ts.map +1 -0
- package/dist/stt/backends/google-cloud-stt.js +371 -0
- package/dist/stt/backends/google-cloud-stt.js.map +1 -0
- package/dist/stt/backends/ibm-watson-stt.d.ts +32 -0
- package/dist/stt/backends/ibm-watson-stt.d.ts.map +1 -0
- package/dist/stt/backends/ibm-watson-stt.js +190 -0
- package/dist/stt/backends/ibm-watson-stt.js.map +1 -0
- package/dist/stt/backends/sherpa-onnx-stt.d.ts +117 -0
- package/dist/stt/backends/sherpa-onnx-stt.d.ts.map +1 -0
- package/dist/stt/backends/sherpa-onnx-stt.js +694 -0
- package/dist/stt/backends/sherpa-onnx-stt.js.map +1 -0
- package/dist/stt/index.d.ts +20 -0
- package/dist/stt/index.d.ts.map +1 -0
- package/dist/stt/index.js +21 -0
- package/dist/stt/index.js.map +1 -0
- package/dist/stt/stt-engine.d.ts +68 -0
- package/dist/stt/stt-engine.d.ts.map +1 -0
- package/dist/stt/stt-engine.js +99 -0
- package/dist/stt/stt-engine.js.map +1 -0
- package/dist/stt/stt-utils.d.ts +36 -0
- package/dist/stt/stt-utils.d.ts.map +1 -0
- package/dist/stt/stt-utils.js +112 -0
- package/dist/stt/stt-utils.js.map +1 -0
- package/dist/stt/stt.d.ts +52 -0
- package/dist/stt/stt.d.ts.map +1 -0
- package/dist/stt/stt.js +100 -0
- package/dist/stt/stt.js.map +1 -0
- package/dist/tjbot.d.ts +317 -0
- package/dist/tjbot.d.ts.map +1 -0
- package/dist/tjbot.js +736 -0
- package/dist/tjbot.js.map +1 -0
- package/dist/tts/backends/azure-tts.d.ts +30 -0
- package/dist/tts/backends/azure-tts.d.ts.map +1 -0
- package/dist/tts/backends/azure-tts.js +92 -0
- package/dist/tts/backends/azure-tts.js.map +1 -0
- package/dist/tts/backends/google-cloud-tts.d.ts +38 -0
- package/dist/tts/backends/google-cloud-tts.d.ts.map +1 -0
- package/dist/tts/backends/google-cloud-tts.js +116 -0
- package/dist/tts/backends/google-cloud-tts.js.map +1 -0
- package/dist/tts/backends/ibm-watson-tts.d.ts +42 -0
- package/dist/tts/backends/ibm-watson-tts.d.ts.map +1 -0
- package/dist/tts/backends/ibm-watson-tts.js +99 -0
- package/dist/tts/backends/ibm-watson-tts.js.map +1 -0
- package/dist/tts/backends/sherpa-onnx-tts.d.ts +80 -0
- package/dist/tts/backends/sherpa-onnx-tts.d.ts.map +1 -0
- package/dist/tts/backends/sherpa-onnx-tts.js +237 -0
- package/dist/tts/backends/sherpa-onnx-tts.js.map +1 -0
- package/dist/tts/index.d.ts +19 -0
- package/dist/tts/index.d.ts.map +1 -0
- package/dist/tts/index.js +20 -0
- package/dist/tts/index.js.map +1 -0
- package/dist/tts/tts-engine.d.ts +67 -0
- package/dist/tts/tts-engine.d.ts.map +1 -0
- package/dist/tts/tts-engine.js +109 -0
- package/dist/tts/tts-engine.js.map +1 -0
- package/dist/tts/tts.d.ts +47 -0
- package/dist/tts/tts.d.ts.map +1 -0
- package/dist/tts/tts.js +101 -0
- package/dist/tts/tts.js.map +1 -0
- package/dist/utils/colors.d.ts +39 -0
- package/dist/utils/colors.d.ts.map +1 -0
- package/dist/utils/colors.js +155 -0
- package/dist/utils/colors.js.map +1 -0
- package/dist/utils/constants.d.ts +41 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +43 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/credentials.d.ts +43 -0
- package/dist/utils/credentials.d.ts.map +1 -0
- package/dist/utils/credentials.js +121 -0
- package/dist/utils/credentials.js.map +1 -0
- package/dist/utils/errors.d.ts +26 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +32 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/index.d.ts +25 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +23 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logging.d.ts +44 -0
- package/dist/utils/logging.d.ts.map +1 -0
- package/dist/utils/logging.js +113 -0
- package/dist/utils/logging.js.map +1 -0
- package/dist/utils/model-registry.d.ts +142 -0
- package/dist/utils/model-registry.d.ts.map +1 -0
- package/dist/utils/model-registry.js +391 -0
- package/dist/utils/model-registry.js.map +1 -0
- package/dist/utils/utils.d.ts +33 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/utils/utils.js +50 -0
- package/dist/utils/utils.js.map +1 -0
- package/dist/vision/backends/azure-vision.d.ts +33 -0
- package/dist/vision/backends/azure-vision.d.ts.map +1 -0
- package/dist/vision/backends/azure-vision.js +151 -0
- package/dist/vision/backends/azure-vision.js.map +1 -0
- package/dist/vision/backends/google-cloud-vision.d.ts +32 -0
- package/dist/vision/backends/google-cloud-vision.d.ts.map +1 -0
- package/dist/vision/backends/google-cloud-vision.js +193 -0
- package/dist/vision/backends/google-cloud-vision.js.map +1 -0
- package/dist/vision/backends/onnx.d.ts +116 -0
- package/dist/vision/backends/onnx.d.ts.map +1 -0
- package/dist/vision/backends/onnx.js +781 -0
- package/dist/vision/backends/onnx.js.map +1 -0
- package/dist/vision/index.d.ts +19 -0
- package/dist/vision/index.d.ts.map +1 -0
- package/dist/vision/index.js +20 -0
- package/dist/vision/index.js.map +1 -0
- package/dist/vision/vision-engine.d.ts +131 -0
- package/dist/vision/vision-engine.d.ts.map +1 -0
- package/dist/vision/vision-engine.js +97 -0
- package/dist/vision/vision-engine.js.map +1 -0
- package/dist/vision/vision.d.ts +48 -0
- package/dist/vision/vision.d.ts.map +1 -0
- package/dist/vision/vision.js +83 -0
- package/dist/vision/vision.js.map +1 -0
- package/package.json +124 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpi3-driver.js","sourceRoot":"","sources":["../../src/rpi-drivers/rpi3-driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 IBM Corp. All Rights Reserved.
|
|
3
|
+
* Copyright 2026-present TJBot Contributors. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { ShineConfig, WaveConfig } from '../config/index.js';
|
|
18
|
+
import { ServoPosition } from '../servo/index.js';
|
|
19
|
+
import { RPiBaseHardwareDriver } from './rpi-driver.js';
|
|
20
|
+
declare class RPi4Driver extends RPiBaseHardwareDriver {
|
|
21
|
+
private commonAnodeLed;
|
|
22
|
+
private neopixelLed;
|
|
23
|
+
private useGRBFormat;
|
|
24
|
+
private servo;
|
|
25
|
+
constructor();
|
|
26
|
+
setupLEDCommonAnode(config: ShineConfig['commonanode']): void;
|
|
27
|
+
setupLEDNeopixel(config: ShineConfig['neopixel']): Promise<void>;
|
|
28
|
+
setupServo(config: WaveConfig): void;
|
|
29
|
+
renderLEDCommonAnode(rgbColor: [number, number, number]): void;
|
|
30
|
+
renderLEDNeopixel(hexColor: string): Promise<void>;
|
|
31
|
+
cleanup(): Promise<void>;
|
|
32
|
+
renderServoPosition(position: ServoPosition): void;
|
|
33
|
+
}
|
|
34
|
+
export default RPi4Driver;
|
|
35
|
+
//# sourceMappingURL=rpi4-driver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpi4-driver.d.ts","sourceRoot":"","sources":["../../src/rpi-drivers/rpi4-driver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,EAAwB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAIxD,cAAM,UAAW,SAAQ,qBAAqB;IAC1C,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,KAAK,CAAmC;;IAQhD,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,IAAI;IAWvD,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAStE,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAOpC,oBAAoB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAQxD,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBlD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9B,mBAAmB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;CAOrD;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 IBM Corp. All Rights Reserved.
|
|
3
|
+
* Copyright 2026-present TJBot Contributors. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { getLogger } from '../utils/logging.js';
|
|
18
|
+
import { LEDCommonAnode, LEDNeopixel } from '../led/index.js';
|
|
19
|
+
import { LGPIOServoController } from '../servo/index.js';
|
|
20
|
+
import { Hardware } from '../utils/index.js';
|
|
21
|
+
import { RPiBaseHardwareDriver } from './rpi-driver.js';
|
|
22
|
+
const logger = getLogger(import.meta.url);
|
|
23
|
+
class RPi4Driver extends RPiBaseHardwareDriver {
|
|
24
|
+
commonAnodeLed;
|
|
25
|
+
neopixelLed;
|
|
26
|
+
useGRBFormat;
|
|
27
|
+
servo;
|
|
28
|
+
constructor() {
|
|
29
|
+
super();
|
|
30
|
+
logger.debug('initializing RPi4 hardware driver');
|
|
31
|
+
this.useGRBFormat = true;
|
|
32
|
+
}
|
|
33
|
+
setupLEDCommonAnode(config) {
|
|
34
|
+
const redPin = config?.redPin ?? 19;
|
|
35
|
+
const greenPin = config?.greenPin ?? 13;
|
|
36
|
+
const bluePin = config?.bluePin ?? 12;
|
|
37
|
+
logger.verbose(`initializing Common Anode LED on RED PIN ${redPin}, GREEN PIN ${greenPin}, and BLUE PIN ${bluePin}`);
|
|
38
|
+
this.commonAnodeLed = new LEDCommonAnode(redPin, greenPin, bluePin);
|
|
39
|
+
this.initializedHardware.add(Hardware.LED);
|
|
40
|
+
}
|
|
41
|
+
async setupLEDNeopixel(config) {
|
|
42
|
+
const pin = config?.gpioPin ?? 18;
|
|
43
|
+
logger.verbose(`initializing NeoPixel LED on pin ${pin}`);
|
|
44
|
+
this.neopixelLed = new LEDNeopixel(pin);
|
|
45
|
+
await this.neopixelLed.initialize();
|
|
46
|
+
this.useGRBFormat = config?.useGRBFormat ?? true;
|
|
47
|
+
this.initializedHardware.add(Hardware.LED);
|
|
48
|
+
}
|
|
49
|
+
setupServo(config) {
|
|
50
|
+
const pin = config.servoPin ?? 18;
|
|
51
|
+
logger.verbose(`initializing ${Hardware.SERVO} on PIN ${pin}`);
|
|
52
|
+
this.servo = new LGPIOServoController(0, pin);
|
|
53
|
+
this.initializedHardware.add(Hardware.SERVO);
|
|
54
|
+
}
|
|
55
|
+
renderLEDCommonAnode(rgbColor) {
|
|
56
|
+
if (this.commonAnodeLed) {
|
|
57
|
+
this.commonAnodeLed.render(rgbColor);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
logger.warn('attempted to render on an uninitialized Common Anode LED');
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async renderLEDNeopixel(hexColor) {
|
|
64
|
+
if (this.neopixelLed) {
|
|
65
|
+
const c = hexColor.startsWith('#') ? hexColor.slice(1) : hexColor;
|
|
66
|
+
if (c.length !== 6) {
|
|
67
|
+
logger.warn(`Invalid NeoPixel color '${hexColor}'`);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if (this.useGRBFormat) {
|
|
71
|
+
const grbStr = `0x${c[2]}${c[3]}${c[0]}${c[1]}${c[4]}${c[5]}`;
|
|
72
|
+
const grb = parseInt(grbStr, 16);
|
|
73
|
+
await this.neopixelLed.render(grb);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
const rgbStr = `0x${c}`;
|
|
77
|
+
const rgb = parseInt(rgbStr, 16);
|
|
78
|
+
await this.neopixelLed.render(rgb);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
logger.warn('attempted to render on an uninitialized Neopixel LED');
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async cleanup() {
|
|
86
|
+
if (this.neopixelLed) {
|
|
87
|
+
await this.neopixelLed.cleanup();
|
|
88
|
+
}
|
|
89
|
+
await super.cleanup();
|
|
90
|
+
}
|
|
91
|
+
renderServoPosition(position) {
|
|
92
|
+
if (this.servo) {
|
|
93
|
+
this.servo.setPosition(position);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
logger.warn('attempted to render on an uninitialized servo');
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
export default RPi4Driver;
|
|
101
|
+
//# sourceMappingURL=rpi4-driver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpi4-driver.js","sourceRoot":"","sources":["../../src/rpi-drivers/rpi4-driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 IBM Corp. All Rights Reserved.
|
|
3
|
+
* Copyright 2026-present TJBot Contributors. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { ShineConfig, WaveConfig } from '../config/index.js';
|
|
18
|
+
import { ServoPosition } from '../servo/index.js';
|
|
19
|
+
import { RPiBaseHardwareDriver } from './rpi-driver.js';
|
|
20
|
+
declare class RPi5Driver extends RPiBaseHardwareDriver {
|
|
21
|
+
private commonAnodeLed;
|
|
22
|
+
private neopixelLed;
|
|
23
|
+
private servo;
|
|
24
|
+
constructor();
|
|
25
|
+
setupLEDCommonAnode(config: ShineConfig['commonanode']): void;
|
|
26
|
+
setupLEDNeopixel(config: ShineConfig['neopixel']): Promise<void>;
|
|
27
|
+
setupServo(config: WaveConfig): void;
|
|
28
|
+
renderLEDCommonAnode(rgbColor: [number, number, number]): void;
|
|
29
|
+
renderLEDNeopixel(hexColor: string): Promise<void>;
|
|
30
|
+
renderServoPosition(position: ServoPosition): void;
|
|
31
|
+
}
|
|
32
|
+
export default RPi5Driver;
|
|
33
|
+
//# sourceMappingURL=rpi5-driver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpi5-driver.d.ts","sourceRoot":"","sources":["../../src/rpi-drivers/rpi5-driver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,EAAwB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAIxD,cAAM,UAAW,SAAQ,qBAAqB;IAC1C,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,KAAK,CAAmC;;IAOhD,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,IAAI;IAWvD,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtE,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAOpC,oBAAoB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAQxD,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxD,mBAAmB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;CAOrD;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 IBM Corp. All Rights Reserved.
|
|
3
|
+
* Copyright 2026-present TJBot Contributors. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { getLogger } from '../utils/logging.js';
|
|
18
|
+
import { LEDCommonAnode, LEDNeopixelSPI } from '../led/index.js';
|
|
19
|
+
import { LGPIOServoController } from '../servo/index.js';
|
|
20
|
+
import { Hardware } from '../utils/index.js';
|
|
21
|
+
import { RPiBaseHardwareDriver } from './rpi-driver.js';
|
|
22
|
+
const logger = getLogger(import.meta.url);
|
|
23
|
+
class RPi5Driver extends RPiBaseHardwareDriver {
|
|
24
|
+
commonAnodeLed;
|
|
25
|
+
neopixelLed;
|
|
26
|
+
servo;
|
|
27
|
+
constructor() {
|
|
28
|
+
super();
|
|
29
|
+
logger.debug('initializing RPi5 hardware driver');
|
|
30
|
+
}
|
|
31
|
+
setupLEDCommonAnode(config) {
|
|
32
|
+
const redPin = config?.redPin ?? 19;
|
|
33
|
+
const greenPin = config?.greenPin ?? 13;
|
|
34
|
+
const bluePin = config?.bluePin ?? 12;
|
|
35
|
+
logger.verbose(`initializing Common Anode LED on RED PIN ${redPin}, GREEN PIN ${greenPin}, and BLUE PIN ${bluePin}`);
|
|
36
|
+
this.commonAnodeLed = new LEDCommonAnode(redPin, greenPin, bluePin);
|
|
37
|
+
this.initializedHardware.add(Hardware.LED);
|
|
38
|
+
}
|
|
39
|
+
async setupLEDNeopixel(config) {
|
|
40
|
+
const spiInterface = config?.spiInterface ?? '/dev/spidev0.0';
|
|
41
|
+
const useGRBFormat = config?.useGRBFormat ?? false;
|
|
42
|
+
logger.verbose(`initializing NeoPixel LED on SPI ${spiInterface}`);
|
|
43
|
+
this.neopixelLed = new LEDNeopixelSPI(spiInterface, useGRBFormat);
|
|
44
|
+
this.initializedHardware.add(Hardware.LED);
|
|
45
|
+
}
|
|
46
|
+
setupServo(config) {
|
|
47
|
+
const pin = config.servoPin ?? 18;
|
|
48
|
+
const chipNumber = 0; // GPIO chip 0 (standard Raspberry Pi configuration)
|
|
49
|
+
this.servo = new LGPIOServoController(chipNumber, pin);
|
|
50
|
+
this.initializedHardware.add(Hardware.SERVO);
|
|
51
|
+
}
|
|
52
|
+
renderLEDCommonAnode(rgbColor) {
|
|
53
|
+
if (this.commonAnodeLed) {
|
|
54
|
+
this.commonAnodeLed.render(rgbColor);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
logger.warn('attempted to render on an uninitialized Common Anode LED');
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async renderLEDNeopixel(hexColor) {
|
|
61
|
+
if (this.neopixelLed) {
|
|
62
|
+
await this.neopixelLed.render(hexColor);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
logger.warn('attempted to render on an uninitialized Neopixel LED');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
renderServoPosition(position) {
|
|
69
|
+
if (this.servo) {
|
|
70
|
+
this.servo.setPosition(position);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
logger.warn('attempted to render on an uninitialized servo');
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
export default RPi5Driver;
|
|
78
|
+
//# sourceMappingURL=rpi5-driver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpi5-driver.js","sourceRoot":"","sources":["../../src/rpi-drivers/rpi5-driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 IBM Corp. All Rights Reserved.
|
|
3
|
+
* Copyright 2026-present TJBot Contributors. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
export { LGPIOServoController } from './servo-lgpio.js';
|
|
18
|
+
export { MAX_PULSE_MS, MID_PULSE_MS, MIN_PULSE_MS, ServoPosition } from './servo-constants.js';
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/servo/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 IBM Corp. All Rights Reserved.
|
|
3
|
+
* Copyright 2026-present TJBot Contributors. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
export { LGPIOServoController } from './servo-lgpio.js';
|
|
18
|
+
export { MAX_PULSE_MS, MID_PULSE_MS, MIN_PULSE_MS, ServoPosition } from './servo-constants.js';
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/servo/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 IBM Corp. All Rights Reserved.
|
|
3
|
+
* Copyright 2026-present TJBot Contributors. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* TJBot servo motor stop positions
|
|
19
|
+
* @readonly
|
|
20
|
+
* @enum {int}
|
|
21
|
+
*/
|
|
22
|
+
export declare enum ServoPosition {
|
|
23
|
+
ARM_BACK = 700,
|
|
24
|
+
ARM_UP = 1400,
|
|
25
|
+
ARM_DOWN = 2300
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Servo pulse widths in milliseconds.
|
|
29
|
+
*/
|
|
30
|
+
export declare const MIN_PULSE_MS = 0.5;
|
|
31
|
+
export declare const MID_PULSE_MS = 1.5;
|
|
32
|
+
export declare const MAX_PULSE_MS = 2.5;
|
|
33
|
+
//# sourceMappingURL=servo-constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"servo-constants.d.ts","sourceRoot":"","sources":["../../src/servo/servo-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;GAIG;AACH,oBAAY,aAAa;IACrB,QAAQ,MAAM;IACd,MAAM,OAAO;IACb,QAAQ,OAAO;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,eAAO,MAAM,YAAY,MAAM,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 IBM Corp. All Rights Reserved.
|
|
3
|
+
* Copyright 2026-present TJBot Contributors. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* TJBot servo motor stop positions
|
|
19
|
+
* @readonly
|
|
20
|
+
* @enum {int}
|
|
21
|
+
*/
|
|
22
|
+
export var ServoPosition;
|
|
23
|
+
(function (ServoPosition) {
|
|
24
|
+
ServoPosition[ServoPosition["ARM_BACK"] = 700] = "ARM_BACK";
|
|
25
|
+
ServoPosition[ServoPosition["ARM_UP"] = 1400] = "ARM_UP";
|
|
26
|
+
ServoPosition[ServoPosition["ARM_DOWN"] = 2300] = "ARM_DOWN";
|
|
27
|
+
})(ServoPosition || (ServoPosition = {}));
|
|
28
|
+
/**
|
|
29
|
+
* Servo pulse widths in milliseconds.
|
|
30
|
+
*/
|
|
31
|
+
export const MIN_PULSE_MS = 0.5;
|
|
32
|
+
export const MID_PULSE_MS = 1.5;
|
|
33
|
+
export const MAX_PULSE_MS = 2.5;
|
|
34
|
+
//# sourceMappingURL=servo-constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"servo-constants.js","sourceRoot":"","sources":["../../src/servo/servo-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;GAIG;AACH,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,2DAAc,CAAA;IACd,wDAAa,CAAA;IACb,4DAAe,CAAA;AACnB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAChC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAChC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 IBM Corp. All Rights Reserved.
|
|
3
|
+
* Copyright 2026-present TJBot Contributors. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { ServoPosition } from './servo-constants.js';
|
|
18
|
+
/**
|
|
19
|
+
* Servo controller using lgpio on Raspberry Pi GPIO character devices
|
|
20
|
+
*/
|
|
21
|
+
export declare class LGPIOServoController {
|
|
22
|
+
private chipNumber;
|
|
23
|
+
private pin;
|
|
24
|
+
private freq;
|
|
25
|
+
private chipHandle?;
|
|
26
|
+
private claimed;
|
|
27
|
+
private currentPulseMs;
|
|
28
|
+
private running;
|
|
29
|
+
private autoStopTimer?;
|
|
30
|
+
private autoStopDelayMs;
|
|
31
|
+
/**
|
|
32
|
+
* Create a LGPIOServoController instance
|
|
33
|
+
* @param chipNumber GPIO chip number (usually 0)
|
|
34
|
+
* @param pin GPIO pin number (BCM)
|
|
35
|
+
* @param freq PWM frequency in Hz (default 50 for standard servos)
|
|
36
|
+
*/
|
|
37
|
+
constructor(chipNumber: number, pin: number, freq?: number, autoStopDelayMs?: number);
|
|
38
|
+
/**
|
|
39
|
+
* Set the servo to a specific position.
|
|
40
|
+
* @param position Servo position in microseconds (500-2500 for standard servos)
|
|
41
|
+
*/
|
|
42
|
+
setPosition(position: ServoPosition): void;
|
|
43
|
+
private ensureStarted;
|
|
44
|
+
private setServoPulse;
|
|
45
|
+
/**
|
|
46
|
+
* Start the servo controller worker
|
|
47
|
+
*/
|
|
48
|
+
start(): void;
|
|
49
|
+
/**
|
|
50
|
+
* Stop the servo controller and clean up resources
|
|
51
|
+
*/
|
|
52
|
+
stop(): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Set pulse width in milliseconds
|
|
55
|
+
* Valid range is 0.5-2.5ms for standard servos
|
|
56
|
+
* @param pulseMs Pulse width in milliseconds
|
|
57
|
+
*/
|
|
58
|
+
setPulseWidth(pulseMs: number): void;
|
|
59
|
+
/**
|
|
60
|
+
* Set servo angle (0-180 degrees)
|
|
61
|
+
* 0° = 0.5ms pulse, 90° = 1.5ms pulse, 180° = 2.5ms pulse
|
|
62
|
+
* @param angle Angle in degrees (0-180)
|
|
63
|
+
*/
|
|
64
|
+
setAngle(angle: number): void;
|
|
65
|
+
/**
|
|
66
|
+
* Get the current pulse width
|
|
67
|
+
*/
|
|
68
|
+
getPulseWidth(): number;
|
|
69
|
+
/**
|
|
70
|
+
* Get the current angle (approximately)
|
|
71
|
+
*/
|
|
72
|
+
getAngle(): number;
|
|
73
|
+
/**
|
|
74
|
+
* Check if the controller is running
|
|
75
|
+
*/
|
|
76
|
+
isRunning(): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Cleanup and stop the controller
|
|
79
|
+
*/
|
|
80
|
+
cleanup(): Promise<void>;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=servo-lgpio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"servo-lgpio.d.ts","sourceRoot":"","sources":["../../src/servo/servo-lgpio.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAA4C,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAsB/F;;GAEG;AACH,qBAAa,oBAAoB;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,aAAa,CAAC,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAS;IAEhC;;;;;OAKG;gBACS,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,SAAK,EAAE,eAAe,SAAO;IAc9E;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAM1C,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,aAAa;IAarB;;OAEG;IACH,KAAK;IAUL;;OAEG;IACG,IAAI;IAuBV;;;;OAIG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM;IAe7B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM;IAMtB;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACG,OAAO;CAIhB"}
|