@dcl/ecs 7.22.1 → 7.22.2-23601767788.commit-ff97f2f
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/dist/components/extended/AudioAnalysis.d.ts +55 -0
- package/dist/components/extended/AudioAnalysis.js +66 -0
- package/dist/components/generated/AudioAnalysis.gen.d.ts +1 -0
- package/dist/components/generated/AudioAnalysis.gen.js +25 -0
- package/dist/components/generated/AvatarLocomotionSettings.gen.d.ts +1 -0
- package/dist/components/generated/AvatarLocomotionSettings.gen.js +25 -0
- package/dist/components/generated/component-names.gen.js +2 -0
- package/dist/components/generated/global.gen.d.ts +4 -0
- package/dist/components/generated/global.gen.js +2 -0
- package/dist/components/generated/index.gen.d.ts +8 -0
- package/dist/components/generated/index.gen.js +10 -0
- package/dist/components/generated/pb/decentraland/sdk/components/audio_analysis.gen.d.ts +37 -0
- package/dist/components/generated/pb/decentraland/sdk/components/audio_analysis.gen.js +161 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_locomotion_settings.gen.d.ts +35 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_locomotion_settings.gen.js +123 -0
- package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +12 -2
- package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +11 -0
- package/dist/components/generated/pb/decentraland/sdk/components/pointer_events.gen.d.ts +5 -1
- package/dist/components/generated/pb/decentraland/sdk/components/pointer_events.gen.js +20 -1
- package/dist/components/generated/pb/decentraland/sdk/components/virtual_camera.gen.d.ts +3 -0
- package/dist/components/generated/pb/decentraland/sdk/components/virtual_camera.gen.js +10 -1
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +3 -0
- package/dist/components/types.d.ts +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1 -0
- package/dist/systems/events.d.ts +65 -0
- package/dist/systems/events.js +70 -8
- package/dist-cjs/components/extended/AudioAnalysis.d.ts +55 -0
- package/dist-cjs/components/extended/AudioAnalysis.js +70 -0
- package/dist-cjs/components/generated/AudioAnalysis.gen.d.ts +1 -0
- package/dist-cjs/components/generated/AudioAnalysis.gen.js +28 -0
- package/dist-cjs/components/generated/AvatarLocomotionSettings.gen.d.ts +1 -0
- package/dist-cjs/components/generated/AvatarLocomotionSettings.gen.js +28 -0
- package/dist-cjs/components/generated/component-names.gen.js +2 -0
- package/dist-cjs/components/generated/global.gen.d.ts +4 -0
- package/dist-cjs/components/generated/global.gen.js +4 -1
- package/dist-cjs/components/generated/index.gen.d.ts +8 -0
- package/dist-cjs/components/generated/index.gen.js +14 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/audio_analysis.gen.d.ts +37 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/audio_analysis.gen.js +167 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_locomotion_settings.gen.d.ts +35 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_locomotion_settings.gen.js +129 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +12 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +12 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/pointer_events.gen.d.ts +5 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/pointer_events.gen.js +20 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/virtual_camera.gen.d.ts +3 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/virtual_camera.gen.js +10 -1
- package/dist-cjs/components/index.d.ts +4 -0
- package/dist-cjs/components/index.js +5 -1
- package/dist-cjs/components/types.d.ts +1 -0
- package/dist-cjs/index.d.ts +2 -1
- package/dist-cjs/index.js +2 -1
- package/dist-cjs/systems/events.d.ts +65 -0
- package/dist-cjs/systems/events.js +70 -8
- package/package.json +2 -2
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.PBAvatarLocomotionSettings = void 0;
|
|
7
|
+
/* eslint-disable */
|
|
8
|
+
const minimal_1 = __importDefault(require("protobufjs/minimal"));
|
|
9
|
+
const protobufPackageSarasa = "decentraland.sdk.components";
|
|
10
|
+
function createBasePBAvatarLocomotionSettings() {
|
|
11
|
+
return {
|
|
12
|
+
walkSpeed: undefined,
|
|
13
|
+
jogSpeed: undefined,
|
|
14
|
+
runSpeed: undefined,
|
|
15
|
+
jumpHeight: undefined,
|
|
16
|
+
runJumpHeight: undefined,
|
|
17
|
+
hardLandingCooldown: undefined,
|
|
18
|
+
doubleJumpHeight: undefined,
|
|
19
|
+
glidingSpeed: undefined,
|
|
20
|
+
glidingFallingSpeed: undefined,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @public
|
|
25
|
+
*/
|
|
26
|
+
var PBAvatarLocomotionSettings;
|
|
27
|
+
(function (PBAvatarLocomotionSettings) {
|
|
28
|
+
function encode(message, writer = minimal_1.default.Writer.create()) {
|
|
29
|
+
if (message.walkSpeed !== undefined) {
|
|
30
|
+
writer.uint32(13).float(message.walkSpeed);
|
|
31
|
+
}
|
|
32
|
+
if (message.jogSpeed !== undefined) {
|
|
33
|
+
writer.uint32(21).float(message.jogSpeed);
|
|
34
|
+
}
|
|
35
|
+
if (message.runSpeed !== undefined) {
|
|
36
|
+
writer.uint32(29).float(message.runSpeed);
|
|
37
|
+
}
|
|
38
|
+
if (message.jumpHeight !== undefined) {
|
|
39
|
+
writer.uint32(37).float(message.jumpHeight);
|
|
40
|
+
}
|
|
41
|
+
if (message.runJumpHeight !== undefined) {
|
|
42
|
+
writer.uint32(45).float(message.runJumpHeight);
|
|
43
|
+
}
|
|
44
|
+
if (message.hardLandingCooldown !== undefined) {
|
|
45
|
+
writer.uint32(53).float(message.hardLandingCooldown);
|
|
46
|
+
}
|
|
47
|
+
if (message.doubleJumpHeight !== undefined) {
|
|
48
|
+
writer.uint32(61).float(message.doubleJumpHeight);
|
|
49
|
+
}
|
|
50
|
+
if (message.glidingSpeed !== undefined) {
|
|
51
|
+
writer.uint32(69).float(message.glidingSpeed);
|
|
52
|
+
}
|
|
53
|
+
if (message.glidingFallingSpeed !== undefined) {
|
|
54
|
+
writer.uint32(77).float(message.glidingFallingSpeed);
|
|
55
|
+
}
|
|
56
|
+
return writer;
|
|
57
|
+
}
|
|
58
|
+
PBAvatarLocomotionSettings.encode = encode;
|
|
59
|
+
function decode(input, length) {
|
|
60
|
+
const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
|
|
61
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
62
|
+
const message = createBasePBAvatarLocomotionSettings();
|
|
63
|
+
while (reader.pos < end) {
|
|
64
|
+
const tag = reader.uint32();
|
|
65
|
+
switch (tag >>> 3) {
|
|
66
|
+
case 1:
|
|
67
|
+
if (tag !== 13) {
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
message.walkSpeed = reader.float();
|
|
71
|
+
continue;
|
|
72
|
+
case 2:
|
|
73
|
+
if (tag !== 21) {
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
message.jogSpeed = reader.float();
|
|
77
|
+
continue;
|
|
78
|
+
case 3:
|
|
79
|
+
if (tag !== 29) {
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
message.runSpeed = reader.float();
|
|
83
|
+
continue;
|
|
84
|
+
case 4:
|
|
85
|
+
if (tag !== 37) {
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
message.jumpHeight = reader.float();
|
|
89
|
+
continue;
|
|
90
|
+
case 5:
|
|
91
|
+
if (tag !== 45) {
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
message.runJumpHeight = reader.float();
|
|
95
|
+
continue;
|
|
96
|
+
case 6:
|
|
97
|
+
if (tag !== 53) {
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
message.hardLandingCooldown = reader.float();
|
|
101
|
+
continue;
|
|
102
|
+
case 7:
|
|
103
|
+
if (tag !== 61) {
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
message.doubleJumpHeight = reader.float();
|
|
107
|
+
continue;
|
|
108
|
+
case 8:
|
|
109
|
+
if (tag !== 69) {
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
message.glidingSpeed = reader.float();
|
|
113
|
+
continue;
|
|
114
|
+
case 9:
|
|
115
|
+
if (tag !== 77) {
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
message.glidingFallingSpeed = reader.float();
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
reader.skipType(tag & 7);
|
|
125
|
+
}
|
|
126
|
+
return message;
|
|
127
|
+
}
|
|
128
|
+
PBAvatarLocomotionSettings.decode = decode;
|
|
129
|
+
})(PBAvatarLocomotionSettings = exports.PBAvatarLocomotionSettings || (exports.PBAvatarLocomotionSettings = {}));
|
package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts
CHANGED
|
@@ -15,7 +15,8 @@ export declare const enum InputAction {
|
|
|
15
15
|
IA_ACTION_3 = 10,
|
|
16
16
|
IA_ACTION_4 = 11,
|
|
17
17
|
IA_ACTION_5 = 12,
|
|
18
|
-
IA_ACTION_6 = 13
|
|
18
|
+
IA_ACTION_6 = 13,
|
|
19
|
+
IA_MODIFIER = 14
|
|
19
20
|
}
|
|
20
21
|
/** PointerEventType is a kind of interaction that can be detected. */
|
|
21
22
|
/**
|
|
@@ -25,5 +26,14 @@ export declare const enum PointerEventType {
|
|
|
25
26
|
PET_UP = 0,
|
|
26
27
|
PET_DOWN = 1,
|
|
27
28
|
PET_HOVER_ENTER = 2,
|
|
28
|
-
PET_HOVER_LEAVE = 3
|
|
29
|
+
PET_HOVER_LEAVE = 3,
|
|
30
|
+
PET_PROXIMITY_ENTER = 4,
|
|
31
|
+
PET_PROXIMITY_LEAVE = 5
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* @public
|
|
35
|
+
*/
|
|
36
|
+
export declare const enum InteractionType {
|
|
37
|
+
CURSOR = 0,
|
|
38
|
+
PROXIMITY = 1
|
|
29
39
|
}
|
package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.PointerEventType = exports.InputAction = void 0;
|
|
4
|
+
exports.InteractionType = exports.PointerEventType = exports.InputAction = void 0;
|
|
5
5
|
const protobufPackageSarasa = "decentraland.sdk.components.common";
|
|
6
6
|
/**
|
|
7
7
|
* @public
|
|
@@ -22,6 +22,7 @@ var InputAction;
|
|
|
22
22
|
InputAction[InputAction["IA_ACTION_4"] = 11] = "IA_ACTION_4";
|
|
23
23
|
InputAction[InputAction["IA_ACTION_5"] = 12] = "IA_ACTION_5";
|
|
24
24
|
InputAction[InputAction["IA_ACTION_6"] = 13] = "IA_ACTION_6";
|
|
25
|
+
InputAction[InputAction["IA_MODIFIER"] = 14] = "IA_MODIFIER";
|
|
25
26
|
})(InputAction = exports.InputAction || (exports.InputAction = {}));
|
|
26
27
|
/** PointerEventType is a kind of interaction that can be detected. */
|
|
27
28
|
/**
|
|
@@ -33,4 +34,14 @@ var PointerEventType;
|
|
|
33
34
|
PointerEventType[PointerEventType["PET_DOWN"] = 1] = "PET_DOWN";
|
|
34
35
|
PointerEventType[PointerEventType["PET_HOVER_ENTER"] = 2] = "PET_HOVER_ENTER";
|
|
35
36
|
PointerEventType[PointerEventType["PET_HOVER_LEAVE"] = 3] = "PET_HOVER_LEAVE";
|
|
37
|
+
PointerEventType[PointerEventType["PET_PROXIMITY_ENTER"] = 4] = "PET_PROXIMITY_ENTER";
|
|
38
|
+
PointerEventType[PointerEventType["PET_PROXIMITY_LEAVE"] = 5] = "PET_PROXIMITY_LEAVE";
|
|
36
39
|
})(PointerEventType = exports.PointerEventType || (exports.PointerEventType = {}));
|
|
40
|
+
/**
|
|
41
|
+
* @public
|
|
42
|
+
*/
|
|
43
|
+
var InteractionType;
|
|
44
|
+
(function (InteractionType) {
|
|
45
|
+
InteractionType[InteractionType["CURSOR"] = 0] = "CURSOR";
|
|
46
|
+
InteractionType[InteractionType["PROXIMITY"] = 1] = "PROXIMITY";
|
|
47
|
+
})(InteractionType = exports.InteractionType || (exports.InteractionType = {}));
|
package/dist-cjs/components/generated/pb/decentraland/sdk/components/pointer_events.gen.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _m0 from "protobufjs/minimal";
|
|
2
|
-
import { InputAction, PointerEventType } from "./common/input_action.gen";
|
|
2
|
+
import { InputAction, InteractionType, PointerEventType } from "./common/input_action.gen";
|
|
3
3
|
/**
|
|
4
4
|
* PointerEvents adds configurable pointer-based interactions to the attached Entity.
|
|
5
5
|
*
|
|
@@ -61,6 +61,8 @@ export interface PBPointerEvents_Info {
|
|
|
61
61
|
showHighlight?: boolean | undefined;
|
|
62
62
|
/** range of interaction from the avatar's position (default 0) */
|
|
63
63
|
maxPlayerDistance?: number | undefined;
|
|
64
|
+
/** resolution order when multiple events overlap, higher wins (default 0) */
|
|
65
|
+
priority?: number | undefined;
|
|
64
66
|
}
|
|
65
67
|
/**
|
|
66
68
|
* @public
|
|
@@ -70,6 +72,8 @@ export interface PBPointerEvents_Entry {
|
|
|
70
72
|
eventType: PointerEventType;
|
|
71
73
|
/** additional configuration for this detection */
|
|
72
74
|
eventInfo: PBPointerEvents_Info | undefined;
|
|
75
|
+
/** the type of interaction source (default 0 == CURSOR) */
|
|
76
|
+
interactionType?: InteractionType | undefined;
|
|
73
77
|
}
|
|
74
78
|
/**
|
|
75
79
|
* @public
|
|
@@ -53,6 +53,7 @@ function createBasePBPointerEvents_Info() {
|
|
|
53
53
|
showFeedback: undefined,
|
|
54
54
|
showHighlight: undefined,
|
|
55
55
|
maxPlayerDistance: undefined,
|
|
56
|
+
priority: undefined,
|
|
56
57
|
};
|
|
57
58
|
}
|
|
58
59
|
/**
|
|
@@ -79,6 +80,9 @@ var PBPointerEvents_Info;
|
|
|
79
80
|
if (message.maxPlayerDistance !== undefined) {
|
|
80
81
|
writer.uint32(53).float(message.maxPlayerDistance);
|
|
81
82
|
}
|
|
83
|
+
if (message.priority !== undefined) {
|
|
84
|
+
writer.uint32(56).uint32(message.priority);
|
|
85
|
+
}
|
|
82
86
|
return writer;
|
|
83
87
|
}
|
|
84
88
|
PBPointerEvents_Info.encode = encode;
|
|
@@ -125,6 +129,12 @@ var PBPointerEvents_Info;
|
|
|
125
129
|
}
|
|
126
130
|
message.maxPlayerDistance = reader.float();
|
|
127
131
|
continue;
|
|
132
|
+
case 7:
|
|
133
|
+
if (tag !== 56) {
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
136
|
+
message.priority = reader.uint32();
|
|
137
|
+
continue;
|
|
128
138
|
}
|
|
129
139
|
if ((tag & 7) === 4 || tag === 0) {
|
|
130
140
|
break;
|
|
@@ -136,7 +146,7 @@ var PBPointerEvents_Info;
|
|
|
136
146
|
PBPointerEvents_Info.decode = decode;
|
|
137
147
|
})(PBPointerEvents_Info = exports.PBPointerEvents_Info || (exports.PBPointerEvents_Info = {}));
|
|
138
148
|
function createBasePBPointerEvents_Entry() {
|
|
139
|
-
return { eventType: 0, eventInfo: undefined };
|
|
149
|
+
return { eventType: 0, eventInfo: undefined, interactionType: undefined };
|
|
140
150
|
}
|
|
141
151
|
/**
|
|
142
152
|
* @public
|
|
@@ -150,6 +160,9 @@ var PBPointerEvents_Entry;
|
|
|
150
160
|
if (message.eventInfo !== undefined) {
|
|
151
161
|
PBPointerEvents_Info.encode(message.eventInfo, writer.uint32(18).fork()).ldelim();
|
|
152
162
|
}
|
|
163
|
+
if (message.interactionType !== undefined) {
|
|
164
|
+
writer.uint32(24).int32(message.interactionType);
|
|
165
|
+
}
|
|
153
166
|
return writer;
|
|
154
167
|
}
|
|
155
168
|
PBPointerEvents_Entry.encode = encode;
|
|
@@ -172,6 +185,12 @@ var PBPointerEvents_Entry;
|
|
|
172
185
|
}
|
|
173
186
|
message.eventInfo = PBPointerEvents_Info.decode(reader, reader.uint32());
|
|
174
187
|
continue;
|
|
188
|
+
case 3:
|
|
189
|
+
if (tag !== 24) {
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
192
|
+
message.interactionType = reader.int32();
|
|
193
|
+
continue;
|
|
175
194
|
}
|
|
176
195
|
if ((tag & 7) === 4 || tag === 0) {
|
|
177
196
|
break;
|
package/dist-cjs/components/generated/pb/decentraland/sdk/components/virtual_camera.gen.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { CameraTransition } from "./common/camera_transition.gen";
|
|
|
6
6
|
* an 'instant' transition (like using speed/time = 0)
|
|
7
7
|
* * The lookAtEntity defines to which entity the Camera has to look at constantly (independent from
|
|
8
8
|
* the holding entity transform).
|
|
9
|
+
* * The fov defines the Field of View of the virtual camera
|
|
9
10
|
*/
|
|
10
11
|
/**
|
|
11
12
|
* @public
|
|
@@ -13,6 +14,8 @@ import { CameraTransition } from "./common/camera_transition.gen";
|
|
|
13
14
|
export interface PBVirtualCamera {
|
|
14
15
|
defaultTransition?: CameraTransition | undefined;
|
|
15
16
|
lookAtEntity?: number | undefined;
|
|
17
|
+
/** default: 60 */
|
|
18
|
+
fov?: number | undefined;
|
|
16
19
|
}
|
|
17
20
|
/**
|
|
18
21
|
* @public
|
|
@@ -9,7 +9,7 @@ const minimal_1 = __importDefault(require("protobufjs/minimal"));
|
|
|
9
9
|
const camera_transition_gen_1 = require("./common/camera_transition.gen");
|
|
10
10
|
const protobufPackageSarasa = "decentraland.sdk.components";
|
|
11
11
|
function createBasePBVirtualCamera() {
|
|
12
|
-
return { defaultTransition: undefined, lookAtEntity: undefined };
|
|
12
|
+
return { defaultTransition: undefined, lookAtEntity: undefined, fov: undefined };
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
15
|
* @public
|
|
@@ -23,6 +23,9 @@ var PBVirtualCamera;
|
|
|
23
23
|
if (message.lookAtEntity !== undefined) {
|
|
24
24
|
writer.uint32(16).uint32(message.lookAtEntity);
|
|
25
25
|
}
|
|
26
|
+
if (message.fov !== undefined) {
|
|
27
|
+
writer.uint32(29).float(message.fov);
|
|
28
|
+
}
|
|
26
29
|
return writer;
|
|
27
30
|
}
|
|
28
31
|
PBVirtualCamera.encode = encode;
|
|
@@ -45,6 +48,12 @@ var PBVirtualCamera;
|
|
|
45
48
|
}
|
|
46
49
|
message.lookAtEntity = reader.uint32();
|
|
47
50
|
continue;
|
|
51
|
+
case 3:
|
|
52
|
+
if (tag !== 29) {
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
message.fov = reader.float();
|
|
56
|
+
continue;
|
|
48
57
|
}
|
|
49
58
|
if ((tag & 7) === 4 || tag === 0) {
|
|
50
59
|
break;
|
|
@@ -2,6 +2,8 @@ import { GrowOnlyValueSetComponentDefinition, LastWriteWinElementSetComponentDef
|
|
|
2
2
|
import { IEngine } from '../engine/types';
|
|
3
3
|
import { AnimatorComponentDefinitionExtended } from './extended/Animator';
|
|
4
4
|
import { AudioSourceComponentDefinitionExtended } from './extended/AudioSource';
|
|
5
|
+
import { AudioAnalysisComponentDefinitionExtended } from './extended/AudioAnalysis';
|
|
6
|
+
import type { AudioAnalysisView } from './extended/AudioAnalysis';
|
|
5
7
|
import { MaterialComponentDefinitionExtended } from './extended/Material';
|
|
6
8
|
import { MeshColliderComponentDefinitionExtended } from './extended/MeshCollider';
|
|
7
9
|
import { MeshRendererComponentDefinitionExtended } from './extended/MeshRenderer';
|
|
@@ -25,6 +27,7 @@ export declare const Transform: LwwComponentGetter<TransformComponentExtended>;
|
|
|
25
27
|
export declare const Material: LwwComponentGetter<MaterialComponentDefinitionExtended>;
|
|
26
28
|
export declare const Animator: LwwComponentGetter<AnimatorComponentDefinitionExtended>;
|
|
27
29
|
export declare const AudioSource: LwwComponentGetter<AudioSourceComponentDefinitionExtended>;
|
|
30
|
+
export declare const AudioAnalysis: LwwComponentGetter<AudioAnalysisComponentDefinitionExtended>;
|
|
28
31
|
export declare const AudioStream: (engine: Pick<IEngine, 'defineComponentFromSchema' | 'defineValueSetComponentFromSchema'>) => AudioStreamComponentDefinitionExtended;
|
|
29
32
|
export declare const MeshRenderer: LwwComponentGetter<MeshRendererComponentDefinitionExtended>;
|
|
30
33
|
export declare const MeshCollider: LwwComponentGetter<MeshColliderComponentDefinitionExtended>;
|
|
@@ -51,3 +54,4 @@ export declare const NetworkEntity: (engine: Pick<IEngine, 'defineComponent'>) =
|
|
|
51
54
|
*/
|
|
52
55
|
export declare const NetworkParent: (engine: Pick<IEngine, 'defineComponent'>) => LastWriteWinElementSetComponentDefinition<INetowrkParentType>;
|
|
53
56
|
export { MediaState };
|
|
57
|
+
export type { AudioAnalysisView };
|
|
@@ -17,9 +17,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.MediaState = exports.NetworkParent = exports.NetworkEntity = exports.SyncComponents = exports.Tags = exports.Name = exports.TriggerArea = exports.LightSource = exports.InputModifier = exports.VirtualCamera = exports.Tween = exports.MeshCollider = exports.MeshRenderer = exports.AudioStream = exports.AudioSource = exports.Animator = exports.Material = exports.Transform = void 0;
|
|
20
|
+
exports.MediaState = exports.NetworkParent = exports.NetworkEntity = exports.SyncComponents = exports.Tags = exports.Name = exports.TriggerArea = exports.LightSource = exports.InputModifier = exports.VirtualCamera = exports.Tween = exports.MeshCollider = exports.MeshRenderer = exports.AudioStream = exports.AudioAnalysis = exports.AudioSource = exports.Animator = exports.Material = exports.Transform = void 0;
|
|
21
21
|
const Animator_1 = require("./extended/Animator");
|
|
22
22
|
const AudioSource_1 = require("./extended/AudioSource");
|
|
23
|
+
const AudioAnalysis_1 = require("./extended/AudioAnalysis");
|
|
23
24
|
const Material_1 = require("./extended/Material");
|
|
24
25
|
const MeshCollider_1 = require("./extended/MeshCollider");
|
|
25
26
|
const MeshRenderer_1 = require("./extended/MeshRenderer");
|
|
@@ -51,6 +52,9 @@ exports.Animator = Animator;
|
|
|
51
52
|
const AudioSource = (engine) => (0, AudioSource_1.defineAudioSourceComponent)(engine);
|
|
52
53
|
exports.AudioSource = AudioSource;
|
|
53
54
|
/* @__PURE__ */
|
|
55
|
+
const AudioAnalysis = (engine) => (0, AudioAnalysis_1.defineAudioAnalysisComponent)(engine);
|
|
56
|
+
exports.AudioAnalysis = AudioAnalysis;
|
|
57
|
+
/* @__PURE__ */
|
|
54
58
|
const AudioStream = (engine) => (0, AudioStream_1.defineAudioStreamComponent)(engine);
|
|
55
59
|
exports.AudioStream = AudioStream;
|
|
56
60
|
/* @__PURE__ */
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type { AnimatorComponentDefinitionExtended } from './extended/Animator';
|
|
2
2
|
export type { AudioSourceComponentDefinitionExtended } from './extended/AudioSource';
|
|
3
|
+
export type { AudioAnalysisComponentDefinitionExtended, AudioAnalysisView } from './extended/AudioAnalysis';
|
|
3
4
|
export type { AudioStreamComponentDefinitionExtended } from './extended/AudioStream';
|
|
4
5
|
export type { MeshRendererComponentDefinitionExtended } from './extended/MeshRenderer';
|
|
5
6
|
export type { MeshColliderComponentDefinitionExtended } from './extended/MeshCollider';
|
package/dist-cjs/index.d.ts
CHANGED
|
@@ -15,12 +15,13 @@ export * from './systems/triggerArea';
|
|
|
15
15
|
export * from './systems/physics';
|
|
16
16
|
export * from './engine/entity';
|
|
17
17
|
export * from './components/types';
|
|
18
|
-
import { MaterialComponentDefinitionExtended, MeshColliderComponentDefinitionExtended, MeshRendererComponentDefinitionExtended, TransformComponentExtended, AnimatorComponentDefinitionExtended, AudioSourceComponentDefinitionExtended, AudioStreamComponentDefinitionExtended, ISyncComponents, TweenComponentDefinitionExtended, INetowrkEntity, INetowrkParent, VirtualCameraComponentDefinitionExtended, InputModifierComponentDefinitionExtended, LightSourceComponentDefinitionExtended, TriggerAreaComponentDefinitionExtended } from './components/types';
|
|
18
|
+
import { MaterialComponentDefinitionExtended, MeshColliderComponentDefinitionExtended, MeshRendererComponentDefinitionExtended, TransformComponentExtended, AnimatorComponentDefinitionExtended, AudioSourceComponentDefinitionExtended, AudioAnalysisComponentDefinitionExtended, AudioStreamComponentDefinitionExtended, ISyncComponents, TweenComponentDefinitionExtended, INetowrkEntity, INetowrkParent, VirtualCameraComponentDefinitionExtended, InputModifierComponentDefinitionExtended, LightSourceComponentDefinitionExtended, TriggerAreaComponentDefinitionExtended } from './components/types';
|
|
19
19
|
import { NameComponent } from './components/manual/Name';
|
|
20
20
|
import { TagsComponentDefinitionExtended } from './components/manual/Tags';
|
|
21
21
|
export declare const Transform: TransformComponentExtended;
|
|
22
22
|
export declare const Animator: AnimatorComponentDefinitionExtended;
|
|
23
23
|
export declare const AudioSource: AudioSourceComponentDefinitionExtended;
|
|
24
|
+
export declare const AudioAnalysis: AudioAnalysisComponentDefinitionExtended;
|
|
24
25
|
export declare const AudioStream: AudioStreamComponentDefinitionExtended;
|
|
25
26
|
export declare const Material: MaterialComponentDefinitionExtended;
|
|
26
27
|
export declare const MeshRenderer: MeshRendererComponentDefinitionExtended;
|
package/dist-cjs/index.js
CHANGED
|
@@ -26,7 +26,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
26
26
|
return result;
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.NetworkParent = exports.NetworkEntity = exports.SyncComponents = exports.TriggerArea = exports.LightSource = exports.InputModifier = exports.VirtualCamera = exports.Tween = exports.Tags = exports.Name = exports.MeshCollider = exports.MeshRenderer = exports.Material = exports.AudioStream = exports.AudioSource = exports.Animator = exports.Transform = exports.components = exports.cyclicParentingChecker = void 0;
|
|
29
|
+
exports.NetworkParent = exports.NetworkEntity = exports.SyncComponents = exports.TriggerArea = exports.LightSource = exports.InputModifier = exports.VirtualCamera = exports.Tween = exports.Tags = exports.Name = exports.MeshCollider = exports.MeshRenderer = exports.Material = exports.AudioStream = exports.AudioAnalysis = exports.AudioSource = exports.Animator = exports.Transform = exports.components = exports.cyclicParentingChecker = void 0;
|
|
30
30
|
// The order of the following imports matters. Please do not auto-sort
|
|
31
31
|
__exportStar(require("./engine"), exports);
|
|
32
32
|
__exportStar(require("./schemas"), exports);
|
|
@@ -54,6 +54,7 @@ const initialization_1 = require("./runtime/initialization");
|
|
|
54
54
|
exports.Transform = components.Transform(initialization_1.engine);
|
|
55
55
|
exports.Animator = components.Animator(initialization_1.engine);
|
|
56
56
|
exports.AudioSource = components.AudioSource(initialization_1.engine);
|
|
57
|
+
exports.AudioAnalysis = components.AudioAnalysis(initialization_1.engine);
|
|
57
58
|
exports.AudioStream = components.AudioStream(initialization_1.engine);
|
|
58
59
|
exports.Material = components.Material(initialization_1.engine);
|
|
59
60
|
exports.MeshRenderer = components.MeshRenderer(initialization_1.engine);
|
|
@@ -17,6 +17,7 @@ export type EventSystemOptions = {
|
|
|
17
17
|
showFeedback?: boolean;
|
|
18
18
|
showHighlight?: boolean;
|
|
19
19
|
maxPlayerDistance?: number;
|
|
20
|
+
priority?: number;
|
|
20
21
|
};
|
|
21
22
|
export declare const getDefaultOpts: (opts?: Partial<EventSystemOptions>) => EventSystemOptions;
|
|
22
23
|
/**
|
|
@@ -47,6 +48,30 @@ export interface PointerEventsSystem {
|
|
|
47
48
|
* @param entity - Entity where the callback was attached
|
|
48
49
|
*/
|
|
49
50
|
removeOnPointerHoverLeave(entity: Entity): void;
|
|
51
|
+
/**
|
|
52
|
+
* @public
|
|
53
|
+
* Remove the callback for onProximityDown event
|
|
54
|
+
* @param entity - Entity where the callback was attached
|
|
55
|
+
*/
|
|
56
|
+
removeOnProximityDown(entity: Entity): void;
|
|
57
|
+
/**
|
|
58
|
+
* @public
|
|
59
|
+
* Remove the callback for onProximityUp event
|
|
60
|
+
* @param entity - Entity where the callback was attached
|
|
61
|
+
*/
|
|
62
|
+
removeOnProximityUp(entity: Entity): void;
|
|
63
|
+
/**
|
|
64
|
+
* @public
|
|
65
|
+
* Remove the callback for onProximityEnter event
|
|
66
|
+
* @param entity - Entity where the callback was attached
|
|
67
|
+
*/
|
|
68
|
+
removeOnProximityEnter(entity: Entity): void;
|
|
69
|
+
/**
|
|
70
|
+
* @public
|
|
71
|
+
* Remove the callback for onProximityLeave event
|
|
72
|
+
* @param entity - Entity where the callback was attached
|
|
73
|
+
*/
|
|
74
|
+
removeOnProximityLeave(entity: Entity): void;
|
|
50
75
|
/**
|
|
51
76
|
* @public
|
|
52
77
|
* Execute callback when the user press the InputButton pointing at the entity
|
|
@@ -101,6 +126,46 @@ export interface PointerEventsSystem {
|
|
|
101
126
|
entity: Entity;
|
|
102
127
|
opts?: Partial<EventSystemOptions>;
|
|
103
128
|
}, cb: EventSystemCallback): void;
|
|
129
|
+
/**
|
|
130
|
+
* @public
|
|
131
|
+
* Execute callback when the user presses the proximity button on the entity
|
|
132
|
+
* @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
|
|
133
|
+
* @param cb - Function to execute when click fires
|
|
134
|
+
*/
|
|
135
|
+
onProximityDown(pointerData: {
|
|
136
|
+
entity: Entity;
|
|
137
|
+
opts?: Partial<EventSystemOptions>;
|
|
138
|
+
}, cb: EventSystemCallback): void;
|
|
139
|
+
/**
|
|
140
|
+
* @public
|
|
141
|
+
* Execute callback when the user releases the proximity button on the entity
|
|
142
|
+
* @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
|
|
143
|
+
* @param cb - Function to execute when event fires
|
|
144
|
+
*/
|
|
145
|
+
onProximityUp(pointerData: {
|
|
146
|
+
entity: Entity;
|
|
147
|
+
opts?: Partial<EventSystemOptions>;
|
|
148
|
+
}, cb: EventSystemCallback): void;
|
|
149
|
+
/**
|
|
150
|
+
* @public
|
|
151
|
+
* Execute callback when the entity enters the proximity zone of the user
|
|
152
|
+
* @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
|
|
153
|
+
* @param cb - Function to execute when event fires
|
|
154
|
+
*/
|
|
155
|
+
onProximityEnter(pointerData: {
|
|
156
|
+
entity: Entity;
|
|
157
|
+
opts?: Partial<EventSystemOptions>;
|
|
158
|
+
}, cb: EventSystemCallback): void;
|
|
159
|
+
/**
|
|
160
|
+
* @public
|
|
161
|
+
* Execute callback when the entity leaves the proximity zone of the user
|
|
162
|
+
* @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
|
|
163
|
+
* @param cb - Function to execute when event fires
|
|
164
|
+
*/
|
|
165
|
+
onProximityLeave(pointerData: {
|
|
166
|
+
entity: Entity;
|
|
167
|
+
opts?: Partial<EventSystemOptions>;
|
|
168
|
+
}, cb: EventSystemCallback): void;
|
|
104
169
|
}
|
|
105
170
|
/**
|
|
106
171
|
* @public
|
|
@@ -45,12 +45,14 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
45
45
|
EventType[EventType["Up"] = 2] = "Up";
|
|
46
46
|
EventType[EventType["HoverEnter"] = 3] = "HoverEnter";
|
|
47
47
|
EventType[EventType["HoverLeave"] = 4] = "HoverLeave";
|
|
48
|
+
EventType[EventType["ProximityEnter"] = 5] = "ProximityEnter";
|
|
49
|
+
EventType[EventType["ProximityLeave"] = 6] = "ProximityLeave";
|
|
48
50
|
})(EventType || (EventType = {}));
|
|
49
51
|
const eventsMap = new Map();
|
|
50
52
|
function getEvent(entity) {
|
|
51
53
|
return eventsMap.get(entity) || eventsMap.set(entity, new Map()).get(entity);
|
|
52
54
|
}
|
|
53
|
-
function setPointerEvent(entity, type, opts) {
|
|
55
|
+
function setPointerEvent(entity, type, opts, interactionType = 0 /* InteractionType.CURSOR */) {
|
|
54
56
|
const pointerEvent = PointerEvents.getMutableOrNull(entity) || PointerEvents.create(entity);
|
|
55
57
|
pointerEvent.pointerEvents.push({
|
|
56
58
|
eventType: type,
|
|
@@ -60,15 +62,19 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
60
62
|
showHighlight: opts.showHighlight,
|
|
61
63
|
hoverText: opts.hoverText,
|
|
62
64
|
maxDistance: opts.maxDistance,
|
|
63
|
-
maxPlayerDistance: opts.maxPlayerDistance
|
|
64
|
-
|
|
65
|
+
maxPlayerDistance: opts.maxPlayerDistance,
|
|
66
|
+
priority: opts.priority
|
|
67
|
+
},
|
|
68
|
+
interactionType: interactionType ?? 0 /* InteractionType.CURSOR */
|
|
65
69
|
});
|
|
66
70
|
}
|
|
67
|
-
function removePointerEvent(entity, type, button) {
|
|
71
|
+
function removePointerEvent(entity, type, button, interactionType = 0 /* InteractionType.CURSOR */) {
|
|
68
72
|
const pointerEvent = PointerEvents.getMutableOrNull(entity);
|
|
69
73
|
if (!pointerEvent)
|
|
70
74
|
return;
|
|
71
|
-
pointerEvent.pointerEvents = pointerEvent.pointerEvents.filter((pointer) => !(pointer.eventInfo?.button === button &&
|
|
75
|
+
pointerEvent.pointerEvents = pointerEvent.pointerEvents.filter((pointer) => !(pointer.eventInfo?.button === button &&
|
|
76
|
+
pointer.eventType === type &&
|
|
77
|
+
pointer.interactionType === interactionType));
|
|
72
78
|
}
|
|
73
79
|
function getPointerEvent(eventType) {
|
|
74
80
|
if (eventType === EventType.Up) {
|
|
@@ -80,9 +86,15 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
80
86
|
else if (eventType === EventType.HoverEnter) {
|
|
81
87
|
return 2 /* PointerEventType.PET_HOVER_ENTER */;
|
|
82
88
|
}
|
|
89
|
+
else if (eventType === EventType.ProximityEnter) {
|
|
90
|
+
return 4 /* PointerEventType.PET_PROXIMITY_ENTER */;
|
|
91
|
+
}
|
|
92
|
+
else if (eventType === EventType.ProximityLeave) {
|
|
93
|
+
return 5 /* PointerEventType.PET_PROXIMITY_LEAVE */;
|
|
94
|
+
}
|
|
83
95
|
return 1 /* PointerEventType.PET_DOWN */;
|
|
84
96
|
}
|
|
85
|
-
function removeEvent(entity, type) {
|
|
97
|
+
function removeEvent(entity, type, interactionType = 0 /* InteractionType.CURSOR */) {
|
|
86
98
|
const event = getEvent(entity);
|
|
87
99
|
const pointerEvent = event.get(type);
|
|
88
100
|
if (pointerEvent?.opts.hoverText) {
|
|
@@ -105,7 +117,9 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
105
117
|
if (eventType === EventType.Down ||
|
|
106
118
|
eventType === EventType.Up ||
|
|
107
119
|
eventType === EventType.HoverEnter ||
|
|
108
|
-
eventType === EventType.HoverLeave
|
|
120
|
+
eventType === EventType.HoverLeave ||
|
|
121
|
+
eventType === EventType.ProximityEnter ||
|
|
122
|
+
eventType === EventType.ProximityLeave) {
|
|
109
123
|
const command = inputSystem.getInputCommand(opts.button, getPointerEvent(eventType), entity);
|
|
110
124
|
if (command) {
|
|
111
125
|
(0, invariant_1.checkNotThenable)(cb(command), 'Event handler returned a thenable. Only synchronous functions are allowed');
|
|
@@ -152,6 +166,38 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
152
166
|
getEvent(entity).set(EventType.HoverLeave, { cb, opts: options });
|
|
153
167
|
setPointerEvent(entity, 3 /* PointerEventType.PET_HOVER_LEAVE */, options);
|
|
154
168
|
};
|
|
169
|
+
const onProximityDown = (...args) => {
|
|
170
|
+
const [data, cb] = args;
|
|
171
|
+
const { entity, opts } = data;
|
|
172
|
+
const options = (0, exports.getDefaultOpts)(opts);
|
|
173
|
+
removeEvent(entity, EventType.Down, 1 /* InteractionType.PROXIMITY */);
|
|
174
|
+
getEvent(entity).set(EventType.Down, { cb, opts: options });
|
|
175
|
+
setPointerEvent(entity, 1 /* PointerEventType.PET_DOWN */, options, 1 /* InteractionType.PROXIMITY */);
|
|
176
|
+
};
|
|
177
|
+
const onProximityUp = (...args) => {
|
|
178
|
+
const [data, cb] = args;
|
|
179
|
+
const { entity, opts } = data;
|
|
180
|
+
const options = (0, exports.getDefaultOpts)(opts);
|
|
181
|
+
removeEvent(entity, EventType.Up, 1 /* InteractionType.PROXIMITY */);
|
|
182
|
+
getEvent(entity).set(EventType.Up, { cb, opts: options });
|
|
183
|
+
setPointerEvent(entity, 0 /* PointerEventType.PET_UP */, options, 1 /* InteractionType.PROXIMITY */);
|
|
184
|
+
};
|
|
185
|
+
const onProximityEnter = (...args) => {
|
|
186
|
+
const [data, cb] = args;
|
|
187
|
+
const { entity, opts } = data;
|
|
188
|
+
const options = (0, exports.getDefaultOpts)(opts);
|
|
189
|
+
removeEvent(entity, EventType.ProximityEnter, 1 /* InteractionType.PROXIMITY */);
|
|
190
|
+
getEvent(entity).set(EventType.ProximityEnter, { cb, opts: options });
|
|
191
|
+
setPointerEvent(entity, 4 /* PointerEventType.PET_PROXIMITY_ENTER */, options, 1 /* InteractionType.PROXIMITY */);
|
|
192
|
+
};
|
|
193
|
+
const onProximityLeave = (...args) => {
|
|
194
|
+
const [data, cb] = args;
|
|
195
|
+
const { entity, opts } = data;
|
|
196
|
+
const options = (0, exports.getDefaultOpts)(opts);
|
|
197
|
+
removeEvent(entity, EventType.ProximityLeave, 1 /* InteractionType.PROXIMITY */);
|
|
198
|
+
getEvent(entity).set(EventType.ProximityLeave, { cb, opts: options });
|
|
199
|
+
setPointerEvent(entity, 5 /* PointerEventType.PET_PROXIMITY_LEAVE */, options, 1 /* InteractionType.PROXIMITY */);
|
|
200
|
+
};
|
|
155
201
|
return {
|
|
156
202
|
removeOnClick(entity) {
|
|
157
203
|
removeEvent(entity, EventType.Click);
|
|
@@ -168,6 +214,18 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
168
214
|
removeOnPointerHoverLeave(entity) {
|
|
169
215
|
removeEvent(entity, EventType.HoverLeave);
|
|
170
216
|
},
|
|
217
|
+
removeOnProximityDown(entity) {
|
|
218
|
+
removeEvent(entity, EventType.Down, 1 /* InteractionType.PROXIMITY */);
|
|
219
|
+
},
|
|
220
|
+
removeOnProximityUp(entity) {
|
|
221
|
+
removeEvent(entity, EventType.Up, 1 /* InteractionType.PROXIMITY */);
|
|
222
|
+
},
|
|
223
|
+
removeOnProximityEnter(entity) {
|
|
224
|
+
removeEvent(entity, EventType.ProximityEnter, 1 /* InteractionType.PROXIMITY */);
|
|
225
|
+
},
|
|
226
|
+
removeOnProximityLeave(entity) {
|
|
227
|
+
removeEvent(entity, EventType.ProximityLeave, 1 /* InteractionType.PROXIMITY */);
|
|
228
|
+
},
|
|
171
229
|
onClick(value, cb) {
|
|
172
230
|
const { entity } = value;
|
|
173
231
|
const options = (0, exports.getDefaultOpts)(value.opts);
|
|
@@ -180,7 +238,11 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
180
238
|
onPointerDown,
|
|
181
239
|
onPointerUp,
|
|
182
240
|
onPointerHoverEnter,
|
|
183
|
-
onPointerHoverLeave
|
|
241
|
+
onPointerHoverLeave,
|
|
242
|
+
onProximityDown,
|
|
243
|
+
onProximityUp,
|
|
244
|
+
onProximityEnter,
|
|
245
|
+
onProximityLeave
|
|
184
246
|
};
|
|
185
247
|
}
|
|
186
248
|
exports.createPointerEventsSystem = createPointerEventsSystem;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dcl/ecs",
|
|
3
3
|
"description": "Decentraland ECS",
|
|
4
|
-
"version": "7.22.
|
|
4
|
+
"version": "7.22.2-23601767788.commit-ff97f2f",
|
|
5
5
|
"author": "DCL",
|
|
6
6
|
"bugs": "https://github.com/decentraland/ecs/issues",
|
|
7
7
|
"files": [
|
|
@@ -34,5 +34,5 @@
|
|
|
34
34
|
"dependencies": {},
|
|
35
35
|
"types": "./dist/index.d.ts",
|
|
36
36
|
"typings": "./dist/index.d.ts",
|
|
37
|
-
"commit": "
|
|
37
|
+
"commit": "ff97f2f45a5d3f23080fb3f22de85711b15f0858"
|
|
38
38
|
}
|