@ray-js/lock-sdk 1.2.4-beta.1 → 1.2.4-beta.3

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.
@@ -28,6 +28,7 @@ export const createTempCustomForRuntime = parallelOnlyForRuntime(async function
28
28
  });
29
29
  if (!useNear) {
30
30
  try {
31
+ await isValidPassword(baseData);
31
32
  const res = await createTemporaryPassword({
32
33
  ...baseData,
33
34
  sn: 0,
@@ -1,4 +1,4 @@
1
- import { offBleChange, offDeviceInfoUpdated, offDpDataChange, offMqttMessage, offOnlineChange, offResetMemberName, offResetMemberRole, onAppHide, onAppShow, onBleChange, onDeviceInfoUpdated, onDpDataChange, onMqttMessage, onOnlineChange, onResetMemberName, onResetMemberRole, registerBleStatus, registerDevice, registerMQTTDeviceListener, registerMQTTProtocolListener, } from "../../platform/device";
1
+ import { offBleChange, offDeviceInfoUpdated, offDpDataChange, offMqttMessage, offOnlineChange, offReceiveMessage, offResetMemberName, offResetMemberRole, onAppHide, onAppShow, onBleChange, onDeviceInfoUpdated, onDpDataChange, onMqttMessage, onOnlineChange, onReceiveMessage, onResetMemberName, onResetMemberRole, registerBleStatus, registerChannel, registerDevice, registerMQTTDeviceListener, registerMQTTProtocolListener, } from "../../platform/device";
2
2
  import { getRuntimeByDevId, listRegisteredRuntimes, } from "../../runtime/registry";
3
3
  import emitter from "../../utils/event";
4
4
  import { getWiFiSignalChangeEvent } from "../misc/signal";
@@ -14,6 +14,7 @@ import { syncDeleteUsersWithRuntime } from "../user/sync-user";
14
14
  import { fetchDeviceProperties } from "./remote-permissions";
15
15
  import { checkOfflineDpUpdateForRuntime } from "../offline-dps";
16
16
  import { sdkLog } from "../../utils/sdk-log";
17
+ import { ipc } from "../../platform";
17
18
  const subscribedDevIds = new Set();
18
19
  let globalPlatformListenersInstalled = false;
19
20
  let mqttProtocolListenerRegistered = false;
@@ -118,6 +119,27 @@ const globalHandleResetMemberName = ({ memberId }) => {
118
119
  };
119
120
  const globalHandleResetMemberRole = ({ memberId }) => {
120
121
  };
122
+ const globalHandleReceiveMessage = (data) => {
123
+ if (!data || !data.eventName) {
124
+ return;
125
+ }
126
+ sdkLog("info", "platform", "onReceiveMessage", {
127
+ data: { eventName: data.eventName, type: data.event?.type },
128
+ });
129
+ const { eventName, event } = data;
130
+ if (eventName === "LOCK_SETTINGS_EVENT") {
131
+ const { type, deviceId, data } = event;
132
+ if (type === "talk_mode_changed") {
133
+ const rt = getRuntimeByDevId(deviceId);
134
+ if (rt) {
135
+ ipc.getCurrentSupportedTalkMode(deviceId).then((modeRes) => {
136
+ rt.config.isTwoWayTalk = modeRes.talkbackMode === 2;
137
+ });
138
+ }
139
+ }
140
+ }
141
+ };
142
+ let settingsChannelManager;
121
143
  export const addEvents = (runtime) => {
122
144
  if (!globalPlatformListenersInstalled) {
123
145
  globalPlatformListenersInstalled = true;
@@ -130,6 +152,8 @@ export const addEvents = (runtime) => {
130
152
  onAppHide(globalHandleAppHide);
131
153
  onResetMemberName(globalHandleResetMemberName);
132
154
  onResetMemberRole(globalHandleResetMemberRole);
155
+ settingsChannelManager = registerChannel("LOCK_SETTINGS_EVENT");
156
+ onReceiveMessage(globalHandleReceiveMessage);
133
157
  }
134
158
  if (runtime.infra.eventsRegistered) {
135
159
  return;
@@ -161,4 +185,6 @@ export const removeEvents = () => {
161
185
  for (const rt of listRegisteredRuntimes()) {
162
186
  rt.infra.eventsRegistered = false;
163
187
  }
188
+ settingsChannelManager && settingsChannelManager.unRegisterChannel({});
189
+ offReceiveMessage(globalHandleReceiveMessage);
164
190
  };
@@ -9,7 +9,7 @@ import { updateUserTimeSchedule, addNormalUser, removeNormalUser, } from "../../
9
9
  import { validConfigDpMap } from "../../config/dp-map/common";
10
10
  import { isUseNearChannelForRuntime } from "../misc/is-use-near-channel-for-runtime";
11
11
  import { getUnlockMethodTypeByDpCodeForRuntime } from "../utils";
12
- import { formatTimestampToMilliseconds, formatWeek, isAdmin, parseWeek, validateEffectiveConfig, } from "../../utils";
12
+ import { formatTimestampToMilliseconds, formatWeek, isAdmin, isHarmony, parseWeek, validateEffectiveConfig, } from "../../utils";
13
13
  import { getCurrentHomeInfo, isSupportShortLink } from "../../platform/device";
14
14
  import { LoopTypes } from "../../utils/constant";
15
15
  import { getCurrentUserForRuntime } from "./current-user";
@@ -337,8 +337,8 @@ export const openAddFamilyUser = async () => {
337
337
  if (!link) {
338
338
  link = await isSupportShortLink("thingsh_family_add_member_rn");
339
339
  }
340
- if (link) {
341
- const url = `tuyaSmart://${link}?homeId=${homeInfo.homeId}`;
340
+ if (link || isHarmony()) {
341
+ const url = `tuyaSmart://${isHarmony() ? "thingsh_family_add_member_rn" : link}?homeId=${homeInfo.homeId}`;
342
342
  return new Promise((resolve, reject) => {
343
343
  ty.router({
344
344
  url: url,
@@ -369,7 +369,7 @@ export async function openFamilyUserDetailForRuntime(rt, userId) {
369
369
  const { userType: currentUserType } = await getCurrentUserForRuntime(rt);
370
370
  const role = userTypeMap[currentUserType];
371
371
  let link = await isSupportShortLink("member_info");
372
- if (link) {
372
+ if (link || isHarmony()) {
373
373
  const url = `tuyaSmart://member_info?homeId=${homeId}&memberId=${userId}&role=${role}`;
374
374
  ty.router({
375
375
  url: url,
@@ -228,4 +228,7 @@ export declare const getAppUserInfo: () => Promise<{
228
228
  phoneCode: string;
229
229
  isTemporaryUser: boolean;
230
230
  }>;
231
+ export declare const registerChannel: (eventName: string) => ReturnType<typeof ty.registerChannel>;
232
+ export declare const onReceiveMessage: (cb: (data: any) => void) => void;
233
+ export declare const offReceiveMessage: (cb: (data: any) => void) => void;
231
234
  export {};
@@ -552,3 +552,14 @@ export const getAppUserInfo = () => {
552
552
  });
553
553
  });
554
554
  };
555
+ export const registerChannel = (eventName) => {
556
+ return ty.registerChannel({
557
+ eventName,
558
+ });
559
+ };
560
+ export const onReceiveMessage = (cb) => {
561
+ return ty.onReceiveMessage(cb);
562
+ };
563
+ export const offReceiveMessage = (cb) => {
564
+ return ty.offReceiveMessage(cb);
565
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ray-js/lock-sdk",
3
- "version": "1.2.4-beta.1",
3
+ "version": "1.2.4-beta.3",
4
4
  "files": [
5
5
  "lib",
6
6
  "LICENSE.md"