@dcl/asset-packs 1.2.1 → 1.2.2-20231010134915.commit-6abb6ed
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/bin/index.js +22 -27
- package/dist/action-types.js +40 -0
- package/dist/actions.js +230 -0
- package/dist/bin/index.js +22 -27
- package/dist/definitions.js +205 -0
- package/dist/events.js +16 -0
- package/dist/id.js +10 -0
- package/dist/index.js +14 -0
- package/dist/scene-entrypoint.js +17 -0
- package/dist/states.js +18 -0
- package/dist/triggers.js +191 -0
- package/package.json +2 -2
- package/dist/package.json +0 -62
- package/dist/src/action-types.js +0 -40
- package/dist/src/actions.js +0 -230
- package/dist/src/definitions.js +0 -205
- package/dist/src/events.js +0 -16
- package/dist/src/id.js +0 -10
- package/dist/src/index.js +0 -14
- package/dist/src/scene-entrypoint.js +0 -19
- package/dist/src/states.js +0 -18
- package/dist/src/triggers.js +0 -191
- /package/dist/{src/action-types.d.ts → action-types.d.ts} +0 -0
- /package/dist/{src/actions.d.ts → actions.d.ts} +0 -0
- /package/dist/{src/definitions.d.ts → definitions.d.ts} +0 -0
- /package/dist/{src/events.d.ts → events.d.ts} +0 -0
- /package/dist/{src/id.d.ts → id.d.ts} +0 -0
- /package/dist/{src/index.d.ts → index.d.ts} +0 -0
- /package/dist/{src/scene-entrypoint.d.ts → scene-entrypoint.d.ts} +0 -0
- /package/dist/{src/states.d.ts → states.d.ts} +0 -0
- /package/dist/{src/triggers.d.ts → triggers.d.ts} +0 -0
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { Schemas, } from '@dcl/sdk/ecs';
|
|
2
|
+
import { addActionType } from './action-types';
|
|
3
|
+
export * from './action-types';
|
|
4
|
+
export * from './events';
|
|
5
|
+
export * from './id';
|
|
6
|
+
export * from './states';
|
|
7
|
+
export var ComponentName;
|
|
8
|
+
(function (ComponentName) {
|
|
9
|
+
ComponentName["ACTION_TYPES"] = "asset-packs::ActionTypes";
|
|
10
|
+
ComponentName["ACTIONS"] = "asset-packs::Actions";
|
|
11
|
+
ComponentName["COUNTER"] = "asset-packs::Counter";
|
|
12
|
+
ComponentName["TRIGGERS"] = "asset-packs::Triggers";
|
|
13
|
+
ComponentName["STATES"] = "asset-packs::States";
|
|
14
|
+
})(ComponentName || (ComponentName = {}));
|
|
15
|
+
export var TweenType;
|
|
16
|
+
(function (TweenType) {
|
|
17
|
+
TweenType["MOVE_ITEM"] = "move_item";
|
|
18
|
+
TweenType["ROTATE_ITEM"] = "rotate_item";
|
|
19
|
+
TweenType["SCALE_ITEM"] = "scale_item";
|
|
20
|
+
})(TweenType || (TweenType = {}));
|
|
21
|
+
export var InterpolationType;
|
|
22
|
+
(function (InterpolationType) {
|
|
23
|
+
InterpolationType["LINEAR"] = "linear";
|
|
24
|
+
InterpolationType["EASEINQUAD"] = "easeinquad";
|
|
25
|
+
InterpolationType["EASEOUTQUAD"] = "easeoutquad";
|
|
26
|
+
InterpolationType["EASEQUAD"] = "easequad";
|
|
27
|
+
InterpolationType["EASEINSINE"] = "easeinsine";
|
|
28
|
+
InterpolationType["EASEOUTSINE"] = "easeoutsine";
|
|
29
|
+
InterpolationType["EASESINE"] = "easeinoutsine";
|
|
30
|
+
InterpolationType["EASEINEXPO"] = "easeinexpo";
|
|
31
|
+
InterpolationType["EASEOUTEXPO"] = "easeoutexpo";
|
|
32
|
+
InterpolationType["EASEEXPO"] = "easeinoutexpo";
|
|
33
|
+
InterpolationType["EASEINELASTIC"] = "easeinelastic";
|
|
34
|
+
InterpolationType["EASEOUTELASTIC"] = "easeoutelastic";
|
|
35
|
+
InterpolationType["EASEELASTIC"] = "easeinoutelastic";
|
|
36
|
+
InterpolationType["EASEINBOUNCE"] = "easeinbounce";
|
|
37
|
+
InterpolationType["EASEOUTEBOUNCE"] = "easeoutbounce";
|
|
38
|
+
InterpolationType["EASEBOUNCE"] = "easeinoutbounce";
|
|
39
|
+
})(InterpolationType || (InterpolationType = {}));
|
|
40
|
+
export var ActionType;
|
|
41
|
+
(function (ActionType) {
|
|
42
|
+
ActionType["PLAY_ANIMATION"] = "play_animation";
|
|
43
|
+
ActionType["STOP_ANIMATION"] = "stop_animation";
|
|
44
|
+
ActionType["SET_STATE"] = "set_state";
|
|
45
|
+
ActionType["START_TWEEN"] = "start_tween";
|
|
46
|
+
ActionType["SET_COUNTER"] = "set_counter";
|
|
47
|
+
ActionType["INCREMENT_COUNTER"] = "increment_counter";
|
|
48
|
+
ActionType["DECREASE_COUNTER"] = "decrease_counter";
|
|
49
|
+
ActionType["PLAY_SOUND"] = "play_sound";
|
|
50
|
+
ActionType["STOP_SOUND"] = "stop_sound";
|
|
51
|
+
ActionType["SET_VISIBILITY"] = "set_visibility";
|
|
52
|
+
ActionType["ATTACH_TO_PLAYER"] = "attach_to_player";
|
|
53
|
+
ActionType["DETACH_FROM_PLAYER"] = "detach_from_player";
|
|
54
|
+
})(ActionType || (ActionType = {}));
|
|
55
|
+
export const ActionSchemas = {
|
|
56
|
+
[ActionType.PLAY_ANIMATION]: Schemas.Map({
|
|
57
|
+
animation: Schemas.String,
|
|
58
|
+
loop: Schemas.Optional(Schemas.Boolean),
|
|
59
|
+
}),
|
|
60
|
+
[ActionType.STOP_ANIMATION]: Schemas.Map({}),
|
|
61
|
+
[ActionType.SET_STATE]: Schemas.Map({ state: Schemas.String }),
|
|
62
|
+
[ActionType.START_TWEEN]: Schemas.Map({
|
|
63
|
+
type: Schemas.EnumString(TweenType, TweenType.MOVE_ITEM),
|
|
64
|
+
end: Schemas.Vector3,
|
|
65
|
+
interpolationType: Schemas.EnumString(InterpolationType, InterpolationType.LINEAR),
|
|
66
|
+
duration: Schemas.Float,
|
|
67
|
+
relative: Schemas.Boolean,
|
|
68
|
+
}),
|
|
69
|
+
[ActionType.SET_COUNTER]: Schemas.Map({ counter: Schemas.Int }),
|
|
70
|
+
[ActionType.INCREMENT_COUNTER]: Schemas.Map({}),
|
|
71
|
+
[ActionType.DECREASE_COUNTER]: Schemas.Map({}),
|
|
72
|
+
[ActionType.PLAY_SOUND]: Schemas.Map({
|
|
73
|
+
src: Schemas.String,
|
|
74
|
+
loop: Schemas.Optional(Schemas.Boolean),
|
|
75
|
+
volume: Schemas.Optional(Schemas.Float),
|
|
76
|
+
}),
|
|
77
|
+
[ActionType.STOP_SOUND]: Schemas.Map({}),
|
|
78
|
+
[ActionType.SET_VISIBILITY]: Schemas.Map({
|
|
79
|
+
visible: Schemas.Boolean,
|
|
80
|
+
physicsCollider: Schemas.Optional(Schemas.Boolean),
|
|
81
|
+
}),
|
|
82
|
+
[ActionType.ATTACH_TO_PLAYER]: Schemas.Map({
|
|
83
|
+
anchorPointId: Schemas.Int,
|
|
84
|
+
}),
|
|
85
|
+
[ActionType.DETACH_FROM_PLAYER]: Schemas.Map({}),
|
|
86
|
+
};
|
|
87
|
+
export var TriggerType;
|
|
88
|
+
(function (TriggerType) {
|
|
89
|
+
TriggerType["ON_CLICK"] = "on_click";
|
|
90
|
+
TriggerType["ON_STATE_CHANGE"] = "on_state_change";
|
|
91
|
+
TriggerType["ON_SPAWN"] = "on_spawn";
|
|
92
|
+
TriggerType["ON_TWEEN_END"] = "on_tween_end";
|
|
93
|
+
TriggerType["ON_COUNTER_CHANGE"] = "on_counter_change";
|
|
94
|
+
TriggerType["ON_PLAYER_ENTERS_AREA"] = "on_player_enters_area";
|
|
95
|
+
TriggerType["ON_PLAYER_LEAVES_AREA"] = "on_player_leaves_area";
|
|
96
|
+
})(TriggerType || (TriggerType = {}));
|
|
97
|
+
export var TriggerConditionType;
|
|
98
|
+
(function (TriggerConditionType) {
|
|
99
|
+
TriggerConditionType["WHEN_STATE_IS"] = "when_state_is";
|
|
100
|
+
TriggerConditionType["WHEN_STATE_IS_NOT"] = "when_state_is_not";
|
|
101
|
+
TriggerConditionType["WHEN_COUNTER_EQUALS"] = "when_counter_equals";
|
|
102
|
+
TriggerConditionType["WHEN_COUNTER_IS_GREATER_THAN"] = "when_counter_is_greater_than";
|
|
103
|
+
TriggerConditionType["WHEN_COUNTER_IS_LESS_THAN"] = "when_counter_is_less_than";
|
|
104
|
+
})(TriggerConditionType || (TriggerConditionType = {}));
|
|
105
|
+
export var TriggerConditionOperation;
|
|
106
|
+
(function (TriggerConditionOperation) {
|
|
107
|
+
TriggerConditionOperation["AND"] = "and";
|
|
108
|
+
TriggerConditionOperation["OR"] = "or";
|
|
109
|
+
})(TriggerConditionOperation || (TriggerConditionOperation = {}));
|
|
110
|
+
export function getComponent(componentName, engine) {
|
|
111
|
+
try {
|
|
112
|
+
return engine.getComponent(componentName);
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
console.error(`Error using getComponent with componentName="${componentName}"`);
|
|
116
|
+
throw error;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
export function getComponents(engine) {
|
|
120
|
+
return {
|
|
121
|
+
Actions: getComponent(ComponentName.ACTIONS, engine),
|
|
122
|
+
States: getComponent(ComponentName.STATES, engine),
|
|
123
|
+
Counter: getComponent(ComponentName.COUNTER, engine),
|
|
124
|
+
Triggers: getComponent(ComponentName.TRIGGERS, engine),
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
export function createComponents(engine) {
|
|
128
|
+
const ActionTypes = engine.defineComponent(ComponentName.ACTION_TYPES, {
|
|
129
|
+
value: Schemas.Array(Schemas.Map({
|
|
130
|
+
type: Schemas.String,
|
|
131
|
+
jsonSchema: Schemas.String,
|
|
132
|
+
})),
|
|
133
|
+
});
|
|
134
|
+
const Actions = engine.defineComponent(ComponentName.ACTIONS, {
|
|
135
|
+
id: Schemas.Int,
|
|
136
|
+
value: Schemas.Array(Schemas.Map({
|
|
137
|
+
name: Schemas.String,
|
|
138
|
+
type: Schemas.String,
|
|
139
|
+
jsonPayload: Schemas.String,
|
|
140
|
+
})),
|
|
141
|
+
});
|
|
142
|
+
const Counter = engine.defineComponent(ComponentName.COUNTER, {
|
|
143
|
+
id: Schemas.Number,
|
|
144
|
+
value: Schemas.Int,
|
|
145
|
+
});
|
|
146
|
+
const Triggers = engine.defineComponent(ComponentName.TRIGGERS, {
|
|
147
|
+
value: Schemas.Array(Schemas.Map({
|
|
148
|
+
type: Schemas.EnumString(TriggerType, TriggerType.ON_CLICK),
|
|
149
|
+
conditions: Schemas.Optional(Schemas.Array(Schemas.Map({
|
|
150
|
+
id: Schemas.Optional(Schemas.Int),
|
|
151
|
+
type: Schemas.EnumString(TriggerConditionType, TriggerConditionType.WHEN_STATE_IS),
|
|
152
|
+
value: Schemas.String,
|
|
153
|
+
}))),
|
|
154
|
+
operation: Schemas.Optional(Schemas.EnumString(TriggerConditionOperation, TriggerConditionOperation.AND)),
|
|
155
|
+
actions: Schemas.Array(Schemas.Map({
|
|
156
|
+
id: Schemas.Optional(Schemas.Int),
|
|
157
|
+
name: Schemas.Optional(Schemas.String),
|
|
158
|
+
})),
|
|
159
|
+
})),
|
|
160
|
+
});
|
|
161
|
+
const States = engine.defineComponent(ComponentName.STATES, {
|
|
162
|
+
id: Schemas.Number,
|
|
163
|
+
value: Schemas.Array(Schemas.String),
|
|
164
|
+
defaultValue: Schemas.Optional(Schemas.String),
|
|
165
|
+
currentValue: Schemas.Optional(Schemas.String),
|
|
166
|
+
});
|
|
167
|
+
return {
|
|
168
|
+
ActionTypes,
|
|
169
|
+
Actions,
|
|
170
|
+
Counter,
|
|
171
|
+
Triggers,
|
|
172
|
+
States,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
export function initComponents(engine) {
|
|
176
|
+
const actionTypes = Object.values(ActionType);
|
|
177
|
+
for (const type of actionTypes) {
|
|
178
|
+
const actionType = type;
|
|
179
|
+
addActionType(engine, actionType, ActionSchemas[actionType]);
|
|
180
|
+
}
|
|
181
|
+
const Counter = engine.getComponent(ComponentName.COUNTER);
|
|
182
|
+
const counter = Counter.getOrCreateMutable(engine.RootEntity);
|
|
183
|
+
counter.value = counter.value || 0;
|
|
184
|
+
}
|
|
185
|
+
export function getConditionTypesByComponentName(componentName) {
|
|
186
|
+
switch (componentName) {
|
|
187
|
+
case ComponentName.STATES: {
|
|
188
|
+
return [
|
|
189
|
+
TriggerConditionType.WHEN_STATE_IS,
|
|
190
|
+
TriggerConditionType.WHEN_STATE_IS_NOT,
|
|
191
|
+
];
|
|
192
|
+
}
|
|
193
|
+
case ComponentName.COUNTER: {
|
|
194
|
+
return [
|
|
195
|
+
TriggerConditionType.WHEN_COUNTER_EQUALS,
|
|
196
|
+
TriggerConditionType.WHEN_COUNTER_IS_GREATER_THAN,
|
|
197
|
+
TriggerConditionType.WHEN_COUNTER_IS_LESS_THAN,
|
|
198
|
+
];
|
|
199
|
+
}
|
|
200
|
+
default: {
|
|
201
|
+
return [];
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVmaW5pdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLE9BQU8sR0FDUixNQUFNLGNBQWMsQ0FBQTtBQUNyQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFOUMsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLE1BQU0sQ0FBQTtBQUNwQixjQUFjLFVBQVUsQ0FBQTtBQUV4QixNQUFNLENBQU4sSUFBWSxhQU1YO0FBTkQsV0FBWSxhQUFhO0lBQ3ZCLDBEQUF5QyxDQUFBO0lBQ3pDLGlEQUFnQyxDQUFBO0lBQ2hDLGlEQUFnQyxDQUFBO0lBQ2hDLG1EQUFrQyxDQUFBO0lBQ2xDLCtDQUE4QixDQUFBO0FBQ2hDLENBQUMsRUFOVyxhQUFhLEtBQWIsYUFBYSxRQU14QjtBQUVELE1BQU0sQ0FBTixJQUFZLFNBSVg7QUFKRCxXQUFZLFNBQVM7SUFDbkIsb0NBQXVCLENBQUE7SUFDdkIsd0NBQTJCLENBQUE7SUFDM0Isc0NBQXlCLENBQUE7QUFDM0IsQ0FBQyxFQUpXLFNBQVMsS0FBVCxTQUFTLFFBSXBCO0FBRUQsTUFBTSxDQUFOLElBQVksaUJBaUJYO0FBakJELFdBQVksaUJBQWlCO0lBQzNCLHNDQUFpQixDQUFBO0lBQ2pCLDhDQUF5QixDQUFBO0lBQ3pCLGdEQUEyQixDQUFBO0lBQzNCLDBDQUFxQixDQUFBO0lBQ3JCLDhDQUF5QixDQUFBO0lBQ3pCLGdEQUEyQixDQUFBO0lBQzNCLCtDQUEwQixDQUFBO0lBQzFCLDhDQUF5QixDQUFBO0lBQ3pCLGdEQUEyQixDQUFBO0lBQzNCLCtDQUEwQixDQUFBO0lBQzFCLG9EQUErQixDQUFBO0lBQy9CLHNEQUFpQyxDQUFBO0lBQ2pDLHFEQUFnQyxDQUFBO0lBQ2hDLGtEQUE2QixDQUFBO0lBQzdCLHFEQUFnQyxDQUFBO0lBQ2hDLG1EQUE4QixDQUFBO0FBQ2hDLENBQUMsRUFqQlcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQWlCNUI7QUFFRCxNQUFNLENBQU4sSUFBWSxVQWFYO0FBYkQsV0FBWSxVQUFVO0lBQ3BCLCtDQUFpQyxDQUFBO0lBQ2pDLCtDQUFpQyxDQUFBO0lBQ2pDLHFDQUF1QixDQUFBO0lBQ3ZCLHlDQUEyQixDQUFBO0lBQzNCLHlDQUEyQixDQUFBO0lBQzNCLHFEQUF1QyxDQUFBO0lBQ3ZDLG1EQUFxQyxDQUFBO0lBQ3JDLHVDQUF5QixDQUFBO0lBQ3pCLHVDQUF5QixDQUFBO0lBQ3pCLCtDQUFpQyxDQUFBO0lBQ2pDLG1EQUFxQyxDQUFBO0lBQ3JDLHVEQUF5QyxDQUFBO0FBQzNDLENBQUMsRUFiVyxVQUFVLEtBQVYsVUFBVSxRQWFyQjtBQUVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUMzQixDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ3ZDLFNBQVMsRUFBRSxPQUFPLENBQUMsTUFBTTtRQUN6QixJQUFJLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0tBQ3hDLENBQUM7SUFDRixDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUM1QyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM5RCxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ3BDLElBQUksRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFZLFNBQVMsRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQ25FLEdBQUcsRUFBRSxPQUFPLENBQUMsT0FBTztRQUNwQixpQkFBaUIsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUNuQyxpQkFBaUIsRUFDakIsaUJBQWlCLENBQUMsTUFBTSxDQUN6QjtRQUNELFFBQVEsRUFBRSxPQUFPLENBQUMsS0FBSztRQUN2QixRQUFRLEVBQUUsT0FBTyxDQUFDLE9BQU87S0FDMUIsQ0FBQztJQUNGLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQy9ELENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDL0MsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUM5QyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ25DLEdBQUcsRUFBRSxPQUFPLENBQUMsTUFBTTtRQUNuQixJQUFJLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ3ZDLE1BQU0sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7S0FDeEMsQ0FBQztJQUNGLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQ3hDLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDdkMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3hCLGVBQWUsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7S0FDbkQsQ0FBQztJQUNGLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUN6QyxhQUFhLEVBQUUsT0FBTyxDQUFDLEdBQUc7S0FDM0IsQ0FBQztJQUNGLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Q0FDakQsQ0FBQTtBQVNELE1BQU0sQ0FBTixJQUFZLFdBUVg7QUFSRCxXQUFZLFdBQVc7SUFDckIsb0NBQXFCLENBQUE7SUFDckIsa0RBQW1DLENBQUE7SUFDbkMsb0NBQXFCLENBQUE7SUFDckIsNENBQTZCLENBQUE7SUFDN0Isc0RBQXVDLENBQUE7SUFDdkMsOERBQStDLENBQUE7SUFDL0MsOERBQStDLENBQUE7QUFDakQsQ0FBQyxFQVJXLFdBQVcsS0FBWCxXQUFXLFFBUXRCO0FBRUQsTUFBTSxDQUFOLElBQVksb0JBTVg7QUFORCxXQUFZLG9CQUFvQjtJQUM5Qix1REFBK0IsQ0FBQTtJQUMvQiwrREFBdUMsQ0FBQTtJQUN2QyxtRUFBMkMsQ0FBQTtJQUMzQyxxRkFBNkQsQ0FBQTtJQUM3RCwrRUFBdUQsQ0FBQTtBQUN6RCxDQUFDLEVBTlcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQU0vQjtBQUVELE1BQU0sQ0FBTixJQUFZLHlCQUdYO0FBSEQsV0FBWSx5QkFBeUI7SUFDbkMsd0NBQVcsQ0FBQTtJQUNYLHNDQUFTLENBQUE7QUFDWCxDQUFDLEVBSFcseUJBQXlCLEtBQXpCLHlCQUF5QixRQUdwQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUksYUFBcUIsRUFBRSxNQUFlO0lBQ3BFLElBQUk7UUFDRixPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQ3hCLGFBQWEsQ0FDa0MsQ0FBQTtLQUNsRDtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxDQUFDLEtBQUssQ0FDWCxnREFBZ0QsYUFBYSxHQUFHLENBQ2pFLENBQUE7UUFDRCxNQUFNLEtBQUssQ0FBQTtLQUNaO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBZTtJQUMzQyxPQUFPO1FBQ0wsT0FBTyxFQUFFLFlBQVksQ0FBVSxhQUFhLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztRQUM3RCxNQUFNLEVBQUUsWUFBWSxDQUFTLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO1FBQzFELE9BQU8sRUFBRSxZQUFZLENBQVUsYUFBYSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7UUFDN0QsUUFBUSxFQUFFLFlBQVksQ0FBVyxhQUFhLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQztLQUNqRSxDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFlO0lBQzlDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRTtRQUNyRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUNWLElBQUksRUFBRSxPQUFPLENBQUMsTUFBTTtZQUNwQixVQUFVLEVBQUUsT0FBTyxDQUFDLE1BQU07U0FDM0IsQ0FBQyxDQUNIO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFO1FBQzVELEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBRztRQUNmLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDO1lBQ1YsSUFBSSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1lBQ3BCLElBQUksRUFBRSxPQUFPLENBQUMsTUFBTTtZQUNwQixXQUFXLEVBQUUsT0FBTyxDQUFDLE1BQU07U0FDNUIsQ0FBQyxDQUNIO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFO1FBQzVELEVBQUUsRUFBRSxPQUFPLENBQUMsTUFBTTtRQUNsQixLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUc7S0FDbkIsQ0FBQyxDQUFBO0lBRUYsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFO1FBQzlELEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDO1lBQ1YsSUFBSSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQ3RCLFdBQVcsRUFDWCxXQUFXLENBQUMsUUFBUSxDQUNyQjtZQUNELFVBQVUsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUMxQixPQUFPLENBQUMsS0FBSyxDQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUM7Z0JBQ1YsRUFBRSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFDakMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQ3RCLG9CQUFvQixFQUNwQixvQkFBb0IsQ0FBQyxhQUFhLENBQ25DO2dCQUNELEtBQUssRUFBRSxPQUFPLENBQUMsTUFBTTthQUN0QixDQUFDLENBQ0gsQ0FDRjtZQUNELFNBQVMsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUN6QixPQUFPLENBQUMsVUFBVSxDQUNoQix5QkFBeUIsRUFDekIseUJBQXlCLENBQUMsR0FBRyxDQUM5QixDQUNGO1lBQ0QsT0FBTyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUM7Z0JBQ1YsRUFBRSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFDakMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQzthQUN2QyxDQUFDLENBQ0g7U0FDRixDQUFDLENBQ0g7S0FDRixDQUFDLENBQUE7SUFFRixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7UUFDMUQsRUFBRSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1FBQ2xCLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDcEMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUM5QyxZQUFZLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0tBQy9DLENBQUMsQ0FBQTtJQUVGLE9BQU87UUFDTCxXQUFXO1FBQ1gsT0FBTztRQUNQLE9BQU87UUFDUCxRQUFRO1FBQ1IsTUFBTTtLQUNQLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUFlO0lBRTVDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDN0MsS0FBSyxNQUFNLElBQUksSUFBSSxXQUFXLEVBQUU7UUFDOUIsTUFBTSxVQUFVLEdBQUcsSUFBa0IsQ0FBQTtRQUNyQyxhQUFhLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtLQUM3RDtJQUdELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQ2pDLGFBQWEsQ0FBQyxPQUFPLENBQ2dDLENBQUE7SUFDdkQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUM3RCxPQUFPLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFBO0FBQ3BDLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0NBQWdDLENBQUMsYUFBNEI7SUFDM0UsUUFBUSxhQUFhLEVBQUU7UUFDckIsS0FBSyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekIsT0FBTztnQkFDTCxvQkFBb0IsQ0FBQyxhQUFhO2dCQUNsQyxvQkFBb0IsQ0FBQyxpQkFBaUI7YUFDdkMsQ0FBQTtTQUNGO1FBQ0QsS0FBSyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUIsT0FBTztnQkFDTCxvQkFBb0IsQ0FBQyxtQkFBbUI7Z0JBQ3hDLG9CQUFvQixDQUFDLDRCQUE0QjtnQkFDakQsb0JBQW9CLENBQUMseUJBQXlCO2FBQy9DLENBQUE7U0FDRjtRQUNELE9BQU8sQ0FBQyxDQUFDO1lBQ1AsT0FBTyxFQUFFLENBQUE7U0FDVjtLQUNGO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElFbmdpbmUsXG4gIElTY2hlbWEsXG4gIExhc3RXcml0ZVdpbkVsZW1lbnRTZXRDb21wb25lbnREZWZpbml0aW9uLFxuICBTY2hlbWFzLFxufSBmcm9tICdAZGNsL3Nkay9lY3MnXG5pbXBvcnQgeyBhZGRBY3Rpb25UeXBlIH0gZnJvbSAnLi9hY3Rpb24tdHlwZXMnXG5cbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uLXR5cGVzJ1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudHMnXG5leHBvcnQgKiBmcm9tICcuL2lkJ1xuZXhwb3J0ICogZnJvbSAnLi9zdGF0ZXMnXG5cbmV4cG9ydCBlbnVtIENvbXBvbmVudE5hbWUge1xuICBBQ1RJT05fVFlQRVMgPSAnYXNzZXQtcGFja3M6OkFjdGlvblR5cGVzJyxcbiAgQUNUSU9OUyA9ICdhc3NldC1wYWNrczo6QWN0aW9ucycsXG4gIENPVU5URVIgPSAnYXNzZXQtcGFja3M6OkNvdW50ZXInLFxuICBUUklHR0VSUyA9ICdhc3NldC1wYWNrczo6VHJpZ2dlcnMnLFxuICBTVEFURVMgPSAnYXNzZXQtcGFja3M6OlN0YXRlcycsXG59XG5cbmV4cG9ydCBlbnVtIFR3ZWVuVHlwZSB7XG4gIE1PVkVfSVRFTSA9ICdtb3ZlX2l0ZW0nLFxuICBST1RBVEVfSVRFTSA9ICdyb3RhdGVfaXRlbScsXG4gIFNDQUxFX0lURU0gPSAnc2NhbGVfaXRlbScsXG59XG5cbmV4cG9ydCBlbnVtIEludGVycG9sYXRpb25UeXBlIHtcbiAgTElORUFSID0gJ2xpbmVhcicsXG4gIEVBU0VJTlFVQUQgPSAnZWFzZWlucXVhZCcsXG4gIEVBU0VPVVRRVUFEID0gJ2Vhc2VvdXRxdWFkJyxcbiAgRUFTRVFVQUQgPSAnZWFzZXF1YWQnLFxuICBFQVNFSU5TSU5FID0gJ2Vhc2VpbnNpbmUnLFxuICBFQVNFT1VUU0lORSA9ICdlYXNlb3V0c2luZScsXG4gIEVBU0VTSU5FID0gJ2Vhc2Vpbm91dHNpbmUnLFxuICBFQVNFSU5FWFBPID0gJ2Vhc2VpbmV4cG8nLFxuICBFQVNFT1VURVhQTyA9ICdlYXNlb3V0ZXhwbycsXG4gIEVBU0VFWFBPID0gJ2Vhc2Vpbm91dGV4cG8nLFxuICBFQVNFSU5FTEFTVElDID0gJ2Vhc2VpbmVsYXN0aWMnLFxuICBFQVNFT1VURUxBU1RJQyA9ICdlYXNlb3V0ZWxhc3RpYycsXG4gIEVBU0VFTEFTVElDID0gJ2Vhc2Vpbm91dGVsYXN0aWMnLFxuICBFQVNFSU5CT1VOQ0UgPSAnZWFzZWluYm91bmNlJyxcbiAgRUFTRU9VVEVCT1VOQ0UgPSAnZWFzZW91dGJvdW5jZScsXG4gIEVBU0VCT1VOQ0UgPSAnZWFzZWlub3V0Ym91bmNlJyxcbn1cblxuZXhwb3J0IGVudW0gQWN0aW9uVHlwZSB7XG4gIFBMQVlfQU5JTUFUSU9OID0gJ3BsYXlfYW5pbWF0aW9uJyxcbiAgU1RPUF9BTklNQVRJT04gPSAnc3RvcF9hbmltYXRpb24nLFxuICBTRVRfU1RBVEUgPSAnc2V0X3N0YXRlJyxcbiAgU1RBUlRfVFdFRU4gPSAnc3RhcnRfdHdlZW4nLFxuICBTRVRfQ09VTlRFUiA9ICdzZXRfY291bnRlcicsXG4gIElOQ1JFTUVOVF9DT1VOVEVSID0gJ2luY3JlbWVudF9jb3VudGVyJyxcbiAgREVDUkVBU0VfQ09VTlRFUiA9ICdkZWNyZWFzZV9jb3VudGVyJyxcbiAgUExBWV9TT1VORCA9ICdwbGF5X3NvdW5kJyxcbiAgU1RPUF9TT1VORCA9ICdzdG9wX3NvdW5kJyxcbiAgU0VUX1ZJU0lCSUxJVFkgPSAnc2V0X3Zpc2liaWxpdHknLFxuICBBVFRBQ0hfVE9fUExBWUVSID0gJ2F0dGFjaF90b19wbGF5ZXInLFxuICBERVRBQ0hfRlJPTV9QTEFZRVIgPSAnZGV0YWNoX2Zyb21fcGxheWVyJyxcbn1cblxuZXhwb3J0IGNvbnN0IEFjdGlvblNjaGVtYXMgPSB7XG4gIFtBY3Rpb25UeXBlLlBMQVlfQU5JTUFUSU9OXTogU2NoZW1hcy5NYXAoe1xuICAgIGFuaW1hdGlvbjogU2NoZW1hcy5TdHJpbmcsXG4gICAgbG9vcDogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLkJvb2xlYW4pLFxuICB9KSxcbiAgW0FjdGlvblR5cGUuU1RPUF9BTklNQVRJT05dOiBTY2hlbWFzLk1hcCh7fSksXG4gIFtBY3Rpb25UeXBlLlNFVF9TVEFURV06IFNjaGVtYXMuTWFwKHsgc3RhdGU6IFNjaGVtYXMuU3RyaW5nIH0pLFxuICBbQWN0aW9uVHlwZS5TVEFSVF9UV0VFTl06IFNjaGVtYXMuTWFwKHtcbiAgICB0eXBlOiBTY2hlbWFzLkVudW1TdHJpbmc8VHdlZW5UeXBlPihUd2VlblR5cGUsIFR3ZWVuVHlwZS5NT1ZFX0lURU0pLFxuICAgIGVuZDogU2NoZW1hcy5WZWN0b3IzLFxuICAgIGludGVycG9sYXRpb25UeXBlOiBTY2hlbWFzLkVudW1TdHJpbmcoXG4gICAgICBJbnRlcnBvbGF0aW9uVHlwZSxcbiAgICAgIEludGVycG9sYXRpb25UeXBlLkxJTkVBUixcbiAgICApLFxuICAgIGR1cmF0aW9uOiBTY2hlbWFzLkZsb2F0LFxuICAgIHJlbGF0aXZlOiBTY2hlbWFzLkJvb2xlYW4sXG4gIH0pLFxuICBbQWN0aW9uVHlwZS5TRVRfQ09VTlRFUl06IFNjaGVtYXMuTWFwKHsgY291bnRlcjogU2NoZW1hcy5JbnQgfSksXG4gIFtBY3Rpb25UeXBlLklOQ1JFTUVOVF9DT1VOVEVSXTogU2NoZW1hcy5NYXAoe30pLFxuICBbQWN0aW9uVHlwZS5ERUNSRUFTRV9DT1VOVEVSXTogU2NoZW1hcy5NYXAoe30pLFxuICBbQWN0aW9uVHlwZS5QTEFZX1NPVU5EXTogU2NoZW1hcy5NYXAoe1xuICAgIHNyYzogU2NoZW1hcy5TdHJpbmcsXG4gICAgbG9vcDogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLkJvb2xlYW4pLFxuICAgIHZvbHVtZTogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLkZsb2F0KSxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLlNUT1BfU09VTkRdOiBTY2hlbWFzLk1hcCh7fSksXG4gIFtBY3Rpb25UeXBlLlNFVF9WSVNJQklMSVRZXTogU2NoZW1hcy5NYXAoe1xuICAgIHZpc2libGU6IFNjaGVtYXMuQm9vbGVhbixcbiAgICBwaHlzaWNzQ29sbGlkZXI6IFNjaGVtYXMuT3B0aW9uYWwoU2NoZW1hcy5Cb29sZWFuKSxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLkFUVEFDSF9UT19QTEFZRVJdOiBTY2hlbWFzLk1hcCh7XG4gICAgYW5jaG9yUG9pbnRJZDogU2NoZW1hcy5JbnQsXG4gIH0pLFxuICBbQWN0aW9uVHlwZS5ERVRBQ0hfRlJPTV9QTEFZRVJdOiBTY2hlbWFzLk1hcCh7fSksXG59XG5cbmV4cG9ydCB0eXBlIEFjdGlvblBheWxvYWQ8VCBleHRlbmRzIEFjdGlvblR5cGUgPSBhbnk+ID1cbiAgVCBleHRlbmRzIGtleW9mIHR5cGVvZiBBY3Rpb25TY2hlbWFzXG4gICAgPyAodHlwZW9mIEFjdGlvblNjaGVtYXMpW1RdIGV4dGVuZHMgSVNjaGVtYVxuICAgICAgPyBSZXR1cm5UeXBlPCh0eXBlb2YgQWN0aW9uU2NoZW1hcylbVF1bJ2Rlc2VyaWFsaXplJ10+XG4gICAgICA6IHt9XG4gICAgOiB7fVxuXG5leHBvcnQgZW51bSBUcmlnZ2VyVHlwZSB7XG4gIE9OX0NMSUNLID0gJ29uX2NsaWNrJyxcbiAgT05fU1RBVEVfQ0hBTkdFID0gJ29uX3N0YXRlX2NoYW5nZScsXG4gIE9OX1NQQVdOID0gJ29uX3NwYXduJyxcbiAgT05fVFdFRU5fRU5EID0gJ29uX3R3ZWVuX2VuZCcsXG4gIE9OX0NPVU5URVJfQ0hBTkdFID0gJ29uX2NvdW50ZXJfY2hhbmdlJyxcbiAgT05fUExBWUVSX0VOVEVSU19BUkVBID0gJ29uX3BsYXllcl9lbnRlcnNfYXJlYScsXG4gIE9OX1BMQVlFUl9MRUFWRVNfQVJFQSA9ICdvbl9wbGF5ZXJfbGVhdmVzX2FyZWEnLFxufVxuXG5leHBvcnQgZW51bSBUcmlnZ2VyQ29uZGl0aW9uVHlwZSB7XG4gIFdIRU5fU1RBVEVfSVMgPSAnd2hlbl9zdGF0ZV9pcycsXG4gIFdIRU5fU1RBVEVfSVNfTk9UID0gJ3doZW5fc3RhdGVfaXNfbm90JyxcbiAgV0hFTl9DT1VOVEVSX0VRVUFMUyA9ICd3aGVuX2NvdW50ZXJfZXF1YWxzJyxcbiAgV0hFTl9DT1VOVEVSX0lTX0dSRUFURVJfVEhBTiA9ICd3aGVuX2NvdW50ZXJfaXNfZ3JlYXRlcl90aGFuJyxcbiAgV0hFTl9DT1VOVEVSX0lTX0xFU1NfVEhBTiA9ICd3aGVuX2NvdW50ZXJfaXNfbGVzc190aGFuJyxcbn1cblxuZXhwb3J0IGVudW0gVHJpZ2dlckNvbmRpdGlvbk9wZXJhdGlvbiB7XG4gIEFORCA9ICdhbmQnLFxuICBPUiA9ICdvcicsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb21wb25lbnQ8VD4oY29tcG9uZW50TmFtZTogc3RyaW5nLCBlbmdpbmU6IElFbmdpbmUpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZW5naW5lLmdldENvbXBvbmVudChcbiAgICAgIGNvbXBvbmVudE5hbWUsXG4gICAgKSBhcyBMYXN0V3JpdGVXaW5FbGVtZW50U2V0Q29tcG9uZW50RGVmaW5pdGlvbjxUPlxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBgRXJyb3IgdXNpbmcgZ2V0Q29tcG9uZW50IHdpdGggY29tcG9uZW50TmFtZT1cIiR7Y29tcG9uZW50TmFtZX1cImAsXG4gICAgKVxuICAgIHRocm93IGVycm9yXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbXBvbmVudHMoZW5naW5lOiBJRW5naW5lKSB7XG4gIHJldHVybiB7XG4gICAgQWN0aW9uczogZ2V0Q29tcG9uZW50PEFjdGlvbnM+KENvbXBvbmVudE5hbWUuQUNUSU9OUywgZW5naW5lKSxcbiAgICBTdGF0ZXM6IGdldENvbXBvbmVudDxTdGF0ZXM+KENvbXBvbmVudE5hbWUuU1RBVEVTLCBlbmdpbmUpLFxuICAgIENvdW50ZXI6IGdldENvbXBvbmVudDxDb3VudGVyPihDb21wb25lbnROYW1lLkNPVU5URVIsIGVuZ2luZSksXG4gICAgVHJpZ2dlcnM6IGdldENvbXBvbmVudDxUcmlnZ2Vycz4oQ29tcG9uZW50TmFtZS5UUklHR0VSUywgZW5naW5lKSxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29tcG9uZW50cyhlbmdpbmU6IElFbmdpbmUpIHtcbiAgY29uc3QgQWN0aW9uVHlwZXMgPSBlbmdpbmUuZGVmaW5lQ29tcG9uZW50KENvbXBvbmVudE5hbWUuQUNUSU9OX1RZUEVTLCB7XG4gICAgdmFsdWU6IFNjaGVtYXMuQXJyYXkoXG4gICAgICBTY2hlbWFzLk1hcCh7XG4gICAgICAgIHR5cGU6IFNjaGVtYXMuU3RyaW5nLFxuICAgICAgICBqc29uU2NoZW1hOiBTY2hlbWFzLlN0cmluZyxcbiAgICAgIH0pLFxuICAgICksXG4gIH0pXG5cbiAgY29uc3QgQWN0aW9ucyA9IGVuZ2luZS5kZWZpbmVDb21wb25lbnQoQ29tcG9uZW50TmFtZS5BQ1RJT05TLCB7XG4gICAgaWQ6IFNjaGVtYXMuSW50LFxuICAgIHZhbHVlOiBTY2hlbWFzLkFycmF5KFxuICAgICAgU2NoZW1hcy5NYXAoe1xuICAgICAgICBuYW1lOiBTY2hlbWFzLlN0cmluZyxcbiAgICAgICAgdHlwZTogU2NoZW1hcy5TdHJpbmcsXG4gICAgICAgIGpzb25QYXlsb2FkOiBTY2hlbWFzLlN0cmluZyxcbiAgICAgIH0pLFxuICAgICksXG4gIH0pXG5cbiAgY29uc3QgQ291bnRlciA9IGVuZ2luZS5kZWZpbmVDb21wb25lbnQoQ29tcG9uZW50TmFtZS5DT1VOVEVSLCB7XG4gICAgaWQ6IFNjaGVtYXMuTnVtYmVyLFxuICAgIHZhbHVlOiBTY2hlbWFzLkludCxcbiAgfSlcblxuICBjb25zdCBUcmlnZ2VycyA9IGVuZ2luZS5kZWZpbmVDb21wb25lbnQoQ29tcG9uZW50TmFtZS5UUklHR0VSUywge1xuICAgIHZhbHVlOiBTY2hlbWFzLkFycmF5KFxuICAgICAgU2NoZW1hcy5NYXAoe1xuICAgICAgICB0eXBlOiBTY2hlbWFzLkVudW1TdHJpbmc8VHJpZ2dlclR5cGU+KFxuICAgICAgICAgIFRyaWdnZXJUeXBlLFxuICAgICAgICAgIFRyaWdnZXJUeXBlLk9OX0NMSUNLLFxuICAgICAgICApLFxuICAgICAgICBjb25kaXRpb25zOiBTY2hlbWFzLk9wdGlvbmFsKFxuICAgICAgICAgIFNjaGVtYXMuQXJyYXkoXG4gICAgICAgICAgICBTY2hlbWFzLk1hcCh7XG4gICAgICAgICAgICAgIGlkOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuSW50KSxcbiAgICAgICAgICAgICAgdHlwZTogU2NoZW1hcy5FbnVtU3RyaW5nPFRyaWdnZXJDb25kaXRpb25UeXBlPihcbiAgICAgICAgICAgICAgICBUcmlnZ2VyQ29uZGl0aW9uVHlwZSxcbiAgICAgICAgICAgICAgICBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX1NUQVRFX0lTLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICB2YWx1ZTogU2NoZW1hcy5TdHJpbmcsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgICBvcGVyYXRpb246IFNjaGVtYXMuT3B0aW9uYWwoXG4gICAgICAgICAgU2NoZW1hcy5FbnVtU3RyaW5nPFRyaWdnZXJDb25kaXRpb25PcGVyYXRpb24+KFxuICAgICAgICAgICAgVHJpZ2dlckNvbmRpdGlvbk9wZXJhdGlvbixcbiAgICAgICAgICAgIFRyaWdnZXJDb25kaXRpb25PcGVyYXRpb24uQU5ELFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICAgIGFjdGlvbnM6IFNjaGVtYXMuQXJyYXkoXG4gICAgICAgICAgU2NoZW1hcy5NYXAoe1xuICAgICAgICAgICAgaWQ6IFNjaGVtYXMuT3B0aW9uYWwoU2NoZW1hcy5JbnQpLFxuICAgICAgICAgICAgbmFtZTogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLlN0cmluZyksXG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICB9KSxcbiAgICApLFxuICB9KVxuXG4gIGNvbnN0IFN0YXRlcyA9IGVuZ2luZS5kZWZpbmVDb21wb25lbnQoQ29tcG9uZW50TmFtZS5TVEFURVMsIHtcbiAgICBpZDogU2NoZW1hcy5OdW1iZXIsXG4gICAgdmFsdWU6IFNjaGVtYXMuQXJyYXkoU2NoZW1hcy5TdHJpbmcpLFxuICAgIGRlZmF1bHRWYWx1ZTogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLlN0cmluZyksXG4gICAgY3VycmVudFZhbHVlOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuU3RyaW5nKSxcbiAgfSlcblxuICByZXR1cm4ge1xuICAgIEFjdGlvblR5cGVzLFxuICAgIEFjdGlvbnMsXG4gICAgQ291bnRlcixcbiAgICBUcmlnZ2VycyxcbiAgICBTdGF0ZXMsXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRDb21wb25lbnRzKGVuZ2luZTogSUVuZ2luZSkge1xuICAvLyBBZGQgYWN0aW9ucyBmcm9tIHRoaXMgcGFja2FnZVxuICBjb25zdCBhY3Rpb25UeXBlcyA9IE9iamVjdC52YWx1ZXMoQWN0aW9uVHlwZSlcbiAgZm9yIChjb25zdCB0eXBlIG9mIGFjdGlvblR5cGVzKSB7XG4gICAgY29uc3QgYWN0aW9uVHlwZSA9IHR5cGUgYXMgQWN0aW9uVHlwZVxuICAgIGFkZEFjdGlvblR5cGUoZW5naW5lLCBhY3Rpb25UeXBlLCBBY3Rpb25TY2hlbWFzW2FjdGlvblR5cGVdKVxuICB9XG5cbiAgLy8gQWRkIGNvdW50ZXIgdG8gcm9vdCBlbnRpdHlcbiAgY29uc3QgQ291bnRlciA9IGVuZ2luZS5nZXRDb21wb25lbnQoXG4gICAgQ29tcG9uZW50TmFtZS5DT1VOVEVSLFxuICApIGFzIExhc3RXcml0ZVdpbkVsZW1lbnRTZXRDb21wb25lbnREZWZpbml0aW9uPENvdW50ZXI+XG4gIGNvbnN0IGNvdW50ZXIgPSBDb3VudGVyLmdldE9yQ3JlYXRlTXV0YWJsZShlbmdpbmUuUm9vdEVudGl0eSlcbiAgY291bnRlci52YWx1ZSA9IGNvdW50ZXIudmFsdWUgfHwgMFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29uZGl0aW9uVHlwZXNCeUNvbXBvbmVudE5hbWUoY29tcG9uZW50TmFtZTogQ29tcG9uZW50TmFtZSkge1xuICBzd2l0Y2ggKGNvbXBvbmVudE5hbWUpIHtcbiAgICBjYXNlIENvbXBvbmVudE5hbWUuU1RBVEVTOiB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX1NUQVRFX0lTLFxuICAgICAgICBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX1NUQVRFX0lTX05PVCxcbiAgICAgIF1cbiAgICB9XG4gICAgY2FzZSBDb21wb25lbnROYW1lLkNPVU5URVI6IHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fQ09VTlRFUl9FUVVBTFMsXG4gICAgICAgIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fQ09VTlRFUl9JU19HUkVBVEVSX1RIQU4sXG4gICAgICAgIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fQ09VTlRFUl9JU19MRVNTX1RIQU4sXG4gICAgICBdXG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiBbXVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgdHlwZSBDb21wb25lbnRzID0gUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlQ29tcG9uZW50cz5cblxuZXhwb3J0IHR5cGUgQWN0aW9uVHlwZXNDb21wb25lbnQgPSBDb21wb25lbnRzWydBY3Rpb25UeXBlcyddXG5leHBvcnQgdHlwZSBBY3Rpb25UeXBlcyA9IFJldHVyblR5cGU8XG4gIEFjdGlvblR5cGVzQ29tcG9uZW50WydzY2hlbWEnXVsnZGVzZXJpYWxpemUnXVxuPlxuXG5leHBvcnQgdHlwZSBBY3Rpb25zQ29tcG9uZW50ID0gQ29tcG9uZW50c1snQWN0aW9ucyddXG5leHBvcnQgdHlwZSBBY3Rpb25zID0gUmV0dXJuVHlwZTxBY3Rpb25zQ29tcG9uZW50WydzY2hlbWEnXVsnZGVzZXJpYWxpemUnXT5cbmV4cG9ydCB0eXBlIEFjdGlvbiA9IEFjdGlvbnNbJ3ZhbHVlJ11bMF1cblxuZXhwb3J0IHR5cGUgQ291bnRlckNvbXBvbmVudCA9IENvbXBvbmVudHNbJ0NvdW50ZXInXVxuZXhwb3J0IHR5cGUgQ291bnRlciA9IFJldHVyblR5cGU8Q291bnRlckNvbXBvbmVudFsnc2NoZW1hJ11bJ2Rlc2VyaWFsaXplJ10+XG5cbmV4cG9ydCB0eXBlIFRyaWdnZXJzQ29tcG9uZW50ID0gQ29tcG9uZW50c1snVHJpZ2dlcnMnXVxuZXhwb3J0IHR5cGUgVHJpZ2dlcnMgPSBSZXR1cm5UeXBlPFRyaWdnZXJzQ29tcG9uZW50WydzY2hlbWEnXVsnZGVzZXJpYWxpemUnXT5cbmV4cG9ydCB0eXBlIFRyaWdnZXIgPSBUcmlnZ2Vyc1sndmFsdWUnXVswXVxuZXhwb3J0IHR5cGUgVHJpZ2dlckFjdGlvbiA9IFRyaWdnZXJbJ2FjdGlvbnMnXVswXVxuZXhwb3J0IHR5cGUgVHJpZ2dlckNvbmRpdGlvbiA9IEV4Y2x1ZGU8VHJpZ2dlclsnY29uZGl0aW9ucyddLCB1bmRlZmluZWQ+WzBdXG5cbmV4cG9ydCB0eXBlIFN0YXRlc0NvbXBvbmVudCA9IENvbXBvbmVudHNbJ1N0YXRlcyddXG5leHBvcnQgdHlwZSBTdGF0ZXMgPSBSZXR1cm5UeXBlPFN0YXRlc0NvbXBvbmVudFsnc2NoZW1hJ11bJ2Rlc2VyaWFsaXplJ10+XG4iXX0=
|
package/dist/events.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import mitt from 'mitt';
|
|
2
|
+
const triggers = new Map();
|
|
3
|
+
const actions = new Map();
|
|
4
|
+
export function getTriggerEvents(entity) {
|
|
5
|
+
if (!triggers.has(entity)) {
|
|
6
|
+
triggers.set(entity, mitt());
|
|
7
|
+
}
|
|
8
|
+
return triggers.get(entity);
|
|
9
|
+
}
|
|
10
|
+
export function getActionEvents(entity) {
|
|
11
|
+
if (!actions.has(entity)) {
|
|
12
|
+
actions.set(entity, mitt());
|
|
13
|
+
}
|
|
14
|
+
return actions.get(entity);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2V2ZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQWlCLE1BQU0sTUFBTSxDQUFBO0FBSXBDLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxFQUE4QyxDQUFBO0FBRXRFLE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxFQUdwQixDQUFBO0FBRUgsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE1BQWM7SUFDN0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDekIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtLQUM3QjtJQUNELE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUUsQ0FBQTtBQUM5QixDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUFjO0lBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7S0FDNUI7SUFDRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFFLENBQUE7QUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtaXR0LCB7IEVtaXR0ZXIgfSBmcm9tICdtaXR0J1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnQGRjbC9zZGsvZWNzJ1xuaW1wb3J0IHsgQWN0aW9uUGF5bG9hZCwgQWN0aW9uVHlwZSwgVHJpZ2dlclR5cGUgfSBmcm9tICcuL2RlZmluaXRpb25zJ1xuXG5jb25zdCB0cmlnZ2VycyA9IG5ldyBNYXA8RW50aXR5LCBFbWl0dGVyPFJlY29yZDxUcmlnZ2VyVHlwZSwgdm9pZD4+PigpXG5cbmNvbnN0IGFjdGlvbnMgPSBuZXcgTWFwPFxuICBFbnRpdHksXG4gIEVtaXR0ZXI8UmVjb3JkPHN0cmluZywgQWN0aW9uUGF5bG9hZDxBY3Rpb25UeXBlPj4+XG4+KClcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyaWdnZXJFdmVudHMoZW50aXR5OiBFbnRpdHkpIHtcbiAgaWYgKCF0cmlnZ2Vycy5oYXMoZW50aXR5KSkge1xuICAgIHRyaWdnZXJzLnNldChlbnRpdHksIG1pdHQoKSlcbiAgfVxuICByZXR1cm4gdHJpZ2dlcnMuZ2V0KGVudGl0eSkhXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBY3Rpb25FdmVudHMoZW50aXR5OiBFbnRpdHkpIHtcbiAgaWYgKCFhY3Rpb25zLmhhcyhlbnRpdHkpKSB7XG4gICAgYWN0aW9ucy5zZXQoZW50aXR5LCBtaXR0KCkpXG4gIH1cbiAgcmV0dXJuIGFjdGlvbnMuZ2V0KGVudGl0eSkhXG59XG4iXX0=
|
package/dist/id.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ComponentName } from './definitions';
|
|
2
|
+
export function getCounterComponent(engine) {
|
|
3
|
+
return engine.getComponent(ComponentName.COUNTER);
|
|
4
|
+
}
|
|
5
|
+
export function getNextId(engine) {
|
|
6
|
+
const Counter = getCounterComponent(engine);
|
|
7
|
+
const counter = Counter.getOrCreateMutable(engine.RootEntity);
|
|
8
|
+
return ++counter.value;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLGFBQWEsRUFBVyxNQUFNLGVBQWUsQ0FBQTtBQUV0RCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBZTtJQUNqRCxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQ3hCLGFBQWEsQ0FBQyxPQUFPLENBQ2dDLENBQUE7QUFDekQsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsTUFBZTtJQUN2QyxNQUFNLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMzQyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQzdELE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFBO0FBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJRW5naW5lLFxuICBMYXN0V3JpdGVXaW5FbGVtZW50U2V0Q29tcG9uZW50RGVmaW5pdGlvbixcbn0gZnJvbSAnQGRjbC9zZGsvZWNzJ1xuaW1wb3J0IHsgQ29tcG9uZW50TmFtZSwgQ291bnRlciB9IGZyb20gJy4vZGVmaW5pdGlvbnMnXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb3VudGVyQ29tcG9uZW50KGVuZ2luZTogSUVuZ2luZSkge1xuICByZXR1cm4gZW5naW5lLmdldENvbXBvbmVudChcbiAgICBDb21wb25lbnROYW1lLkNPVU5URVIsXG4gICkgYXMgTGFzdFdyaXRlV2luRWxlbWVudFNldENvbXBvbmVudERlZmluaXRpb248Q291bnRlcj5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5leHRJZChlbmdpbmU6IElFbmdpbmUpIHtcbiAgY29uc3QgQ291bnRlciA9IGdldENvdW50ZXJDb21wb25lbnQoZW5naW5lKVxuICBjb25zdCBjb3VudGVyID0gQ291bnRlci5nZXRPckNyZWF0ZU11dGFibGUoZW5naW5lLlJvb3RFbnRpdHkpXG4gIHJldHVybiArK2NvdW50ZXIudmFsdWVcbn1cbiJdfQ==
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { engine, pointerEventsSystem, Animator, Transform, AudioSource, AvatarAttach, VisibilityComponent, GltfContainer, } from '@dcl/sdk/ecs';
|
|
2
|
+
import { initAssetPacks } from './scene-entrypoint';
|
|
3
|
+
initAssetPacks(engine, pointerEventsSystem, {
|
|
4
|
+
Animator,
|
|
5
|
+
Transform,
|
|
6
|
+
AudioSource,
|
|
7
|
+
AvatarAttach,
|
|
8
|
+
VisibilityComponent,
|
|
9
|
+
GltfContainer,
|
|
10
|
+
});
|
|
11
|
+
export function main() {
|
|
12
|
+
console.log('Scene ready');
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE1BQU0sRUFDTixtQkFBbUIsRUFDbkIsUUFBUSxFQUNSLFNBQVMsRUFDVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixhQUFhLEdBQ2QsTUFBTSxjQUFjLENBQUE7QUFDckIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBRW5ELGNBQWMsQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLEVBQUU7SUFDMUMsUUFBUTtJQUNSLFNBQVM7SUFDVCxXQUFXO0lBQ1gsWUFBWTtJQUNaLG1CQUFtQjtJQUNuQixhQUFhO0NBQ2QsQ0FBQyxDQUFBO0FBRUYsTUFBTSxVQUFVLElBQUk7SUFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZW5naW5lLFxuICBwb2ludGVyRXZlbnRzU3lzdGVtLFxuICBBbmltYXRvcixcbiAgVHJhbnNmb3JtLFxuICBBdWRpb1NvdXJjZSxcbiAgQXZhdGFyQXR0YWNoLFxuICBWaXNpYmlsaXR5Q29tcG9uZW50LFxuICBHbHRmQ29udGFpbmVyLFxufSBmcm9tICdAZGNsL3Nkay9lY3MnXG5pbXBvcnQgeyBpbml0QXNzZXRQYWNrcyB9IGZyb20gJy4vc2NlbmUtZW50cnlwb2ludCdcblxuaW5pdEFzc2V0UGFja3MoZW5naW5lLCBwb2ludGVyRXZlbnRzU3lzdGVtLCB7XG4gIEFuaW1hdG9yLFxuICBUcmFuc2Zvcm0sXG4gIEF1ZGlvU291cmNlLFxuICBBdmF0YXJBdHRhY2gsXG4gIFZpc2liaWxpdHlDb21wb25lbnQsXG4gIEdsdGZDb250YWluZXIsXG59KVxuXG5leHBvcnQgZnVuY3Rpb24gbWFpbigpIHtcbiAgY29uc29sZS5sb2coJ1NjZW5lIHJlYWR5Jylcbn1cbiJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createComponents, initComponents } from './definitions';
|
|
2
|
+
import { createActionsSystem } from './actions';
|
|
3
|
+
import { createTriggersSystem } from './triggers';
|
|
4
|
+
export function initAssetPacks(_engine, _pointerEventsSystem, components) {
|
|
5
|
+
const engine = _engine;
|
|
6
|
+
const pointerEventsSystem = _pointerEventsSystem;
|
|
7
|
+
try {
|
|
8
|
+
createComponents(engine);
|
|
9
|
+
engine.addSystem(createActionsSystem(engine, components));
|
|
10
|
+
engine.addSystem(createTriggersSystem(engine, pointerEventsSystem));
|
|
11
|
+
initComponents(engine);
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
console.error(`Error initializing Asset Packs: ${error.message}`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmUtZW50cnlwb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zY2VuZS1lbnRyeXBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVqRCxNQUFNLFVBQVUsY0FBYyxDQUM1QixPQUFZLEVBQ1osb0JBQXlCLEVBQ3pCLFVBT0M7SUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFrQixDQUFBO0lBQ2pDLE1BQU0sbUJBQW1CLEdBQUcsb0JBQTJDLENBQUE7SUFDdkUsSUFBSTtRQUNGLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3hCLE1BQU0sQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUE7UUFDekQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxDQUFBO1FBQ25FLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtLQUN2QjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQ0FBb0MsS0FBZSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7S0FDN0U7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUVuZ2luZSwgUG9pbnRlckV2ZW50c1N5c3RlbSB9IGZyb20gJ0BkY2wvc2RrL2VjcydcbmltcG9ydCB7IGNyZWF0ZUNvbXBvbmVudHMsIGluaXRDb21wb25lbnRzIH0gZnJvbSAnLi9kZWZpbml0aW9ucydcbmltcG9ydCB7IGNyZWF0ZUFjdGlvbnNTeXN0ZW0gfSBmcm9tICcuL2FjdGlvbnMnXG5pbXBvcnQgeyBjcmVhdGVUcmlnZ2Vyc1N5c3RlbSB9IGZyb20gJy4vdHJpZ2dlcnMnXG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0QXNzZXRQYWNrcyhcbiAgX2VuZ2luZTogYW55LFxuICBfcG9pbnRlckV2ZW50c1N5c3RlbTogYW55LFxuICBjb21wb25lbnRzOiB7XG4gICAgQW5pbWF0b3I6IGFueVxuICAgIFRyYW5zZm9ybTogYW55XG4gICAgQXVkaW9Tb3VyY2U6IGFueVxuICAgIEF2YXRhckF0dGFjaDogYW55XG4gICAgVmlzaWJpbGl0eUNvbXBvbmVudDogYW55XG4gICAgR2x0ZkNvbnRhaW5lcjogYW55XG4gIH0sXG4pIHtcbiAgY29uc3QgZW5naW5lID0gX2VuZ2luZSBhcyBJRW5naW5lXG4gIGNvbnN0IHBvaW50ZXJFdmVudHNTeXN0ZW0gPSBfcG9pbnRlckV2ZW50c1N5c3RlbSBhcyBQb2ludGVyRXZlbnRzU3lzdGVtXG4gIHRyeSB7XG4gICAgY3JlYXRlQ29tcG9uZW50cyhlbmdpbmUpXG4gICAgZW5naW5lLmFkZFN5c3RlbShjcmVhdGVBY3Rpb25zU3lzdGVtKGVuZ2luZSwgY29tcG9uZW50cykpXG4gICAgZW5naW5lLmFkZFN5c3RlbShjcmVhdGVUcmlnZ2Vyc1N5c3RlbShlbmdpbmUsIHBvaW50ZXJFdmVudHNTeXN0ZW0pKVxuICAgIGluaXRDb21wb25lbnRzKGVuZ2luZSlcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKGBFcnJvciBpbml0aWFsaXppbmcgQXNzZXQgUGFja3M6ICR7KGVycm9yIGFzIEVycm9yKS5tZXNzYWdlfWApXG4gIH1cbn1cbiJdfQ==
|
package/dist/states.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export function isValidState(states, value) {
|
|
2
|
+
return !!value && states.value.includes(value);
|
|
3
|
+
}
|
|
4
|
+
export function getCurrentValue(states) {
|
|
5
|
+
if (isValidState(states, states.currentValue)) {
|
|
6
|
+
return states.currentValue;
|
|
7
|
+
}
|
|
8
|
+
return getDefaultValue(states);
|
|
9
|
+
}
|
|
10
|
+
export function getDefaultValue(states) {
|
|
11
|
+
if (isValidState(states, states.defaultValue)) {
|
|
12
|
+
return states.defaultValue;
|
|
13
|
+
}
|
|
14
|
+
if (states.value.length > 0) {
|
|
15
|
+
return states.value[0];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N0YXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQWMsRUFBRSxLQUF5QjtJQUNwRSxPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDaEQsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsTUFBYztJQUM1QyxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFO1FBQzdDLE9BQU8sTUFBTSxDQUFDLFlBQWEsQ0FBQTtLQUM1QjtJQUNELE9BQU8sZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBQ2hDLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLE1BQWM7SUFDNUMsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRTtRQUM3QyxPQUFPLE1BQU0sQ0FBQyxZQUFhLENBQUE7S0FDNUI7SUFDRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUMzQixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7S0FDdkI7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGVzIH0gZnJvbSAnLi9kZWZpbml0aW9ucydcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRTdGF0ZShzdGF0ZXM6IFN0YXRlcywgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICByZXR1cm4gISF2YWx1ZSAmJiBzdGF0ZXMudmFsdWUuaW5jbHVkZXModmFsdWUpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDdXJyZW50VmFsdWUoc3RhdGVzOiBTdGF0ZXMpIHtcbiAgaWYgKGlzVmFsaWRTdGF0ZShzdGF0ZXMsIHN0YXRlcy5jdXJyZW50VmFsdWUpKSB7XG4gICAgcmV0dXJuIHN0YXRlcy5jdXJyZW50VmFsdWUhXG4gIH1cbiAgcmV0dXJuIGdldERlZmF1bHRWYWx1ZShzdGF0ZXMpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0VmFsdWUoc3RhdGVzOiBTdGF0ZXMpIHtcbiAgaWYgKGlzVmFsaWRTdGF0ZShzdGF0ZXMsIHN0YXRlcy5kZWZhdWx0VmFsdWUpKSB7XG4gICAgcmV0dXJuIHN0YXRlcy5kZWZhdWx0VmFsdWUhXG4gIH1cbiAgaWYgKHN0YXRlcy52YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIHN0YXRlcy52YWx1ZVswXVxuICB9XG59XG4iXX0=
|
package/dist/triggers.js
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { triggers, LAYER_1, NO_LAYERS } from '@dcl-sdk/utils';
|
|
2
|
+
import { ComponentName, TriggerConditionOperation, TriggerConditionType, TriggerType, getConditionTypesByComponentName, getComponents, } from './definitions';
|
|
3
|
+
import { getCurrentValue } from './states';
|
|
4
|
+
import { getActionEvents, getTriggerEvents } from './events';
|
|
5
|
+
import { getPayload } from './action-types';
|
|
6
|
+
const initedEntities = new Set();
|
|
7
|
+
const actionQueue = [];
|
|
8
|
+
export function createTriggersSystem(engine, pointerEventsSystem) {
|
|
9
|
+
const { Actions, States, Counter, Triggers } = getComponents(engine);
|
|
10
|
+
return function triggersSystem(_dt) {
|
|
11
|
+
while (actionQueue.length > 0) {
|
|
12
|
+
const { entity, action } = actionQueue.shift();
|
|
13
|
+
const actionEvents = getActionEvents(entity);
|
|
14
|
+
actionEvents.emit(action.name, getPayload(action));
|
|
15
|
+
}
|
|
16
|
+
const entitiesWithTriggers = engine.getEntitiesWith(Triggers);
|
|
17
|
+
for (const [entity, triggers] of entitiesWithTriggers) {
|
|
18
|
+
if (initedEntities.has(entity)) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
const types = triggers.value.reduce((types, trigger) => types.add(trigger.type), new Set());
|
|
22
|
+
for (const type of types) {
|
|
23
|
+
switch (type) {
|
|
24
|
+
case TriggerType.ON_CLICK: {
|
|
25
|
+
initOnClickTrigger(entity);
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
case TriggerType.ON_PLAYER_ENTERS_AREA:
|
|
29
|
+
case TriggerType.ON_PLAYER_LEAVES_AREA: {
|
|
30
|
+
initOnPlayerTriggerArea(entity);
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const triggerEvents = getTriggerEvents(entity);
|
|
36
|
+
for (const trigger of triggers.value) {
|
|
37
|
+
triggerEvents.on(trigger.type, () => {
|
|
38
|
+
if (checkConditions(trigger)) {
|
|
39
|
+
for (const triggerAction of trigger.actions) {
|
|
40
|
+
if (isValidAction(triggerAction)) {
|
|
41
|
+
const entity = getEntityByAction(triggerAction);
|
|
42
|
+
if (entity) {
|
|
43
|
+
const actions = Actions.getOrNull(entity);
|
|
44
|
+
if (actions) {
|
|
45
|
+
const action = actions.value.find(($) => $.name === triggerAction.name);
|
|
46
|
+
if (action) {
|
|
47
|
+
actionQueue.push({ entity, action });
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
triggerEvents.emit(TriggerType.ON_SPAWN);
|
|
57
|
+
initedEntities.add(entity);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
function isValidAction(action) {
|
|
61
|
+
const { id, name } = action;
|
|
62
|
+
return !!id && !!name;
|
|
63
|
+
}
|
|
64
|
+
function checkConditions(trigger) {
|
|
65
|
+
if (trigger.conditions && trigger.conditions.length > 0) {
|
|
66
|
+
const conditions = trigger.conditions.map(checkCondition);
|
|
67
|
+
const isTrue = (result) => !!result;
|
|
68
|
+
const operation = trigger.operation || TriggerConditionOperation.AND;
|
|
69
|
+
switch (operation) {
|
|
70
|
+
case TriggerConditionOperation.AND: {
|
|
71
|
+
return conditions.every(isTrue);
|
|
72
|
+
}
|
|
73
|
+
case TriggerConditionOperation.OR: {
|
|
74
|
+
return conditions.some(isTrue);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
function checkCondition(condition) {
|
|
81
|
+
const entity = getEntityByCondition(condition);
|
|
82
|
+
if (entity) {
|
|
83
|
+
try {
|
|
84
|
+
switch (condition.type) {
|
|
85
|
+
case TriggerConditionType.WHEN_STATE_IS: {
|
|
86
|
+
const states = States.getOrNull(entity);
|
|
87
|
+
if (states !== null) {
|
|
88
|
+
const currentValue = getCurrentValue(states);
|
|
89
|
+
return currentValue === condition.value;
|
|
90
|
+
}
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
case TriggerConditionType.WHEN_STATE_IS_NOT: {
|
|
94
|
+
const states = States.getOrNull(entity);
|
|
95
|
+
if (states !== null) {
|
|
96
|
+
const currentValue = getCurrentValue(states);
|
|
97
|
+
return currentValue !== condition.value;
|
|
98
|
+
}
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
case TriggerConditionType.WHEN_COUNTER_EQUALS: {
|
|
102
|
+
const counter = Counter.getOrNull(entity);
|
|
103
|
+
if (counter !== null) {
|
|
104
|
+
const numeric = Number(condition.value);
|
|
105
|
+
if (!isNaN(numeric)) {
|
|
106
|
+
return counter.value === numeric;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
case TriggerConditionType.WHEN_COUNTER_IS_GREATER_THAN: {
|
|
112
|
+
const counter = Counter.getOrNull(entity);
|
|
113
|
+
if (counter !== null) {
|
|
114
|
+
const numeric = Number(condition.value);
|
|
115
|
+
if (!isNaN(numeric)) {
|
|
116
|
+
return counter.value > numeric;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
case TriggerConditionType.WHEN_COUNTER_IS_LESS_THAN: {
|
|
122
|
+
const counter = Counter.getOrNull(entity);
|
|
123
|
+
if (counter !== null) {
|
|
124
|
+
const numeric = Number(condition.value);
|
|
125
|
+
if (!isNaN(numeric)) {
|
|
126
|
+
return counter.value < numeric;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
console.error('Error in condition', condition);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
function getEntityById(componentName, id) {
|
|
140
|
+
const Component = engine.getComponent(componentName);
|
|
141
|
+
const entities = Array.from(engine.getEntitiesWith(Component));
|
|
142
|
+
const result = entities.find(([_entity, value]) => value.id === id);
|
|
143
|
+
return Array.isArray(result) && result.length > 0 ? result[0] : null;
|
|
144
|
+
}
|
|
145
|
+
function getEntityByAction(action) {
|
|
146
|
+
if (action.id) {
|
|
147
|
+
const entity = getEntityById(ComponentName.ACTIONS, action.id);
|
|
148
|
+
if (entity) {
|
|
149
|
+
return entity;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
function getEntityByCondition(condition) {
|
|
155
|
+
const componentName = Object.values(ComponentName)
|
|
156
|
+
.map((componentName) => ({
|
|
157
|
+
componentName,
|
|
158
|
+
conditionTypes: getConditionTypesByComponentName(componentName),
|
|
159
|
+
}))
|
|
160
|
+
.reduce((result, { componentName, conditionTypes }) => conditionTypes.includes(condition.type) ? componentName : result, null);
|
|
161
|
+
if (componentName && condition.id) {
|
|
162
|
+
const entity = getEntityById(componentName, condition.id);
|
|
163
|
+
if (entity) {
|
|
164
|
+
return entity;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return null;
|
|
168
|
+
}
|
|
169
|
+
function initOnClickTrigger(entity) {
|
|
170
|
+
pointerEventsSystem.onPointerDown({
|
|
171
|
+
entity,
|
|
172
|
+
opts: {
|
|
173
|
+
button: 0,
|
|
174
|
+
hoverText: 'Click',
|
|
175
|
+
},
|
|
176
|
+
}, () => {
|
|
177
|
+
const triggerEvents = getTriggerEvents(entity);
|
|
178
|
+
triggerEvents.emit(TriggerType.ON_CLICK);
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
function initOnPlayerTriggerArea(entity) {
|
|
182
|
+
triggers.addTrigger(entity, NO_LAYERS, LAYER_1, [{ type: 'box' }], () => {
|
|
183
|
+
const triggerEvents = getTriggerEvents(entity);
|
|
184
|
+
triggerEvents.emit(TriggerType.ON_PLAYER_ENTERS_AREA);
|
|
185
|
+
}, () => {
|
|
186
|
+
const triggerEvents = getTriggerEvents(entity);
|
|
187
|
+
triggerEvents.emit(TriggerType.ON_PLAYER_LEAVES_AREA);
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpZ2dlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHJpZ2dlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDN0QsT0FBTyxFQUVMLGFBQWEsRUFJYix5QkFBeUIsRUFDekIsb0JBQW9CLEVBQ3BCLFdBQVcsRUFDWCxnQ0FBZ0MsRUFDaEMsYUFBYSxHQUNkLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFM0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQTtBQUN4QyxNQUFNLFdBQVcsR0FBeUMsRUFBRSxDQUFBO0FBRTVELE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsTUFBZSxFQUNmLG1CQUF3QztJQUV4QyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3BFLE9BQU8sU0FBUyxjQUFjLENBQUMsR0FBVztRQUV4QyxPQUFPLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzdCLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsV0FBVyxDQUFDLEtBQUssRUFBRyxDQUFBO1lBQy9DLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUM1QyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7U0FDbkQ7UUFFRCxNQUFNLG9CQUFvQixHQUFHLE1B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LFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO1FBQ3ZELENBQUMsRUFDRCxHQUFHLEVBQUU7WUFDSCxNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUM5QyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO1FBQ3ZELENBQUMsQ0FDRixDQUFBO0lBQ0gsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJRW5naW5lLFxuICBFbnRpdHksXG4gIFBvaW50ZXJFdmVudHNTeXN0ZW0sXG4gIElucHV0QWN0aW9uLFxuICBMYXN0V3JpdGVXaW5FbGVtZW50U2V0Q29tcG9uZW50RGVmaW5pdGlvbixcbiAgRGVlcFJlYWRvbmx5T2JqZWN0LFxufSBmcm9tICdAZGNsL3Nkay9lY3MnXG5pbXBvcnQgeyB0cmlnZ2VycywgTEFZRVJfMSwgTk9fTEFZRVJTIH0gZnJvbSAnQGRjbC1zZGsvdXRpbHMnXG5pbXBvcnQge1xuICBBY3Rpb24sXG4gIENvbXBvbmVudE5hbWUsXG4gIFRyaWdnZXIsXG4gIFRyaWdnZXJBY3Rpb24sXG4gIFRyaWdnZXJDb25kaXRpb24sXG4gIFRyaWdnZXJDb25kaXRpb25PcGVyYXRpb24sXG4gIFRyaWdnZXJDb25kaXRpb25UeXBlLFxuICBUcmlnZ2VyVHlwZSxcbiAgZ2V0Q29uZGl0aW9uVHlwZXNCeUNvbXBvbmVudE5hbWUsXG4gIGdldENvbXBvbmVudHMsXG59IGZyb20gJy4vZGVmaW5pdGlvbnMnXG5pbXBvcnQgeyBnZXRDdXJyZW50VmFsdWUgfSBmcm9tICcuL3N0YXRlcydcbmltcG9ydCB7IGdldEFjdGlvbkV2ZW50cywgZ2V0VHJpZ2dlckV2ZW50cyB9IGZyb20gJy4vZXZlbnRzJ1xuaW1wb3J0IHsgZ2V0UGF5bG9hZCB9IGZyb20gJy4vYWN0aW9uLXR5cGVzJ1xuXG5jb25zdCBpbml0ZWRFbnRpdGllcyA9IG5ldyBTZXQ8RW50aXR5PigpXG5jb25zdCBhY3Rpb25RdWV1ZTogeyBlbnRpdHk6IEVudGl0eTsgYWN0aW9uOiBBY3Rpb24gfVtdID0gW11cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyaWdnZXJzU3lzdGVtKFxuICBlbmdpbmU6IElFbmdpbmUsXG4gIHBvaW50ZXJFdmVudHNTeXN0ZW06IFBvaW50ZXJFdmVudHNTeXN0ZW0sXG4pIHtcbiAgY29uc3QgeyBBY3Rpb25zLCBTdGF0ZXMsIENvdW50ZXIsIFRyaWdnZXJzIH0gPSBnZXRDb21wb25lbnRzKGVuZ2luZSlcbiAgcmV0dXJuIGZ1bmN0aW9uIHRyaWdnZXJzU3lzdGVtKF9kdDogbnVtYmVyKSB7XG4gICAgLy8gcHJvY2VzcyBhY3Rpb24gcXVldWVcbiAgICB3aGlsZSAoYWN0aW9uUXVldWUubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBlbnRpdHksIGFjdGlvbiB9ID0gYWN0aW9uUXVldWUuc2hpZnQoKSFcbiAgICAgIGNvbnN0IGFjdGlvbkV2ZW50cyA9IGdldEFjdGlvbkV2ZW50cyhlbnRpdHkpXG4gICAgICBhY3Rpb25FdmVudHMuZW1pdChhY3Rpb24ubmFtZSwgZ2V0UGF5bG9hZChhY3Rpb24pKVxuICAgIH1cblxuICAgIGNvbnN0IGVudGl0aWVzV2l0aFRyaWdnZXJzID0gZW5naW5lLmdldEVudGl0aWVzV2l0aChUcmlnZ2VycylcbiAgICBmb3IgKGNvbnN0IFtlbnRpdHksIHRyaWdnZXJzXSBvZiBlbnRpdGllc1dpdGhUcmlnZ2Vycykge1xuICAgICAgaWYgKGluaXRlZEVudGl0aWVzLmhhcyhlbnRpdHkpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIC8vIGluaXRpYWxpemUgdHJpZ2dlcnMgZm9yIGdpdmVuIGVudGl0eVxuICAgICAgY29uc3QgdHlwZXMgPSB0cmlnZ2Vycy52YWx1ZS5yZWR1Y2UoXG4gICAgICAgICh0eXBlcywgdHJpZ2dlcikgPT4gdHlwZXMuYWRkKHRyaWdnZXIudHlwZSksXG4gICAgICAgIG5ldyBTZXQ8VHJpZ2dlclR5cGU+KCksXG4gICAgICApXG4gICAgICBmb3IgKGNvbnN0IHR5cGUgb2YgdHlwZXMpIHtcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyVHlwZS5PTl9DTElDSzoge1xuICAgICAgICAgICAgaW5pdE9uQ2xpY2tUcmlnZ2VyKGVudGl0eSlcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fUExBWUVSX0VOVEVSU19BUkVBOlxuICAgICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fUExBWUVSX0xFQVZFU19BUkVBOiB7XG4gICAgICAgICAgICBpbml0T25QbGF5ZXJUcmlnZ2VyQXJlYShlbnRpdHkpXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBiaW5kIHRyaWdnZXJzXG4gICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpXG4gICAgICBmb3IgKGNvbnN0IHRyaWdnZXIgb2YgdHJpZ2dlcnMudmFsdWUpIHtcbiAgICAgICAgdHJpZ2dlckV2ZW50cy5vbih0cmlnZ2VyLnR5cGUsICgpID0+IHtcbiAgICAgICAgICBpZiAoY2hlY2tDb25kaXRpb25zKHRyaWdnZXIpKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHRyaWdnZXJBY3Rpb24gb2YgdHJpZ2dlci5hY3Rpb25zKSB7XG4gICAgICAgICAgICAgIGlmIChpc1ZhbGlkQWN0aW9uKHRyaWdnZXJBY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZW50aXR5ID0gZ2V0RW50aXR5QnlBY3Rpb24odHJpZ2dlckFjdGlvbilcbiAgICAgICAgICAgICAgICBpZiAoZW50aXR5KSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBhY3Rpb25zID0gQWN0aW9ucy5nZXRPck51bGwoZW50aXR5KVxuICAgICAgICAgICAgICAgICAgaWYgKGFjdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aW9uID0gYWN0aW9ucy52YWx1ZS5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICgkKSA9PiAkLm5hbWUgPT09IHRyaWdnZXJBY3Rpb24ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICBpZiAoYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgLy8gYWN0aW9ucyBhcmUgZW5xdWV1ZWQgdG8gYmUgZXhlY3V0ZWQgb24gdGhlIG5leHQgdGljayBhZnRlciBhbGwgdGhlIHRyaWdnZXJzIGhhdmUgYmVlbiBwcm9jZXNzZWQsXG4gICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyB0byBhdm9pZCBvbmUgdHJpZ2dlciBtZXNzaW5nIHdpdGggb3RoZXIgdHJpZ2dlcidzIGNvbmRpdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25RdWV1ZS5wdXNoKHsgZW50aXR5LCBhY3Rpb24gfSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9TUEFXTilcblxuICAgICAgaW5pdGVkRW50aXRpZXMuYWRkKGVudGl0eSlcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBpc1ZhbGlkQWN0aW9uKGFjdGlvbjogVHJpZ2dlckFjdGlvbikge1xuICAgIGNvbnN0IHsgaWQsIG5hbWUgfSA9IGFjdGlvblxuICAgIHJldHVybiAhIWlkICYmICEhbmFtZVxuICB9XG5cbiAgZnVuY3Rpb24gY2hlY2tDb25kaXRpb25zKHRyaWdnZXI6IERlZXBSZWFkb25seU9iamVjdDxUcmlnZ2VyPikge1xuICAgIGlmICh0cmlnZ2VyLmNvbmRpdGlvbnMgJiYgdHJpZ2dlci5jb25kaXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGNvbmRpdGlvbnMgPSB0cmlnZ2VyLmNvbmRpdGlvbnMubWFwKGNoZWNrQ29uZGl0aW9uKVxuICAgICAgY29uc3QgaXNUcnVlID0gKHJlc3VsdD86IGJvb2xlYW4pID0+ICEhcmVzdWx0XG4gICAgICBjb25zdCBvcGVyYXRpb24gPSB0cmlnZ2VyLm9wZXJhdGlvbiB8fCBUcmlnZ2VyQ29uZGl0aW9uT3BlcmF0aW9uLkFORFxuICAgICAgc3dpdGNoIChvcGVyYXRpb24pIHtcbiAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uT3BlcmF0aW9uLkFORDoge1xuICAgICAgICAgIHJldHVybiBjb25kaXRpb25zLmV2ZXJ5KGlzVHJ1ZSlcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25PcGVyYXRpb24uT1I6IHtcbiAgICAgICAgICByZXR1cm4gY29uZGl0aW9ucy5zb21lKGlzVHJ1ZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBpZiB0aGVyZSBhcmUgbm8gY29uZGl0aW9ucywgdGhlIHRyaWdnZXIgY2FuIGNvbnRpbnVlXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGZ1bmN0aW9uIGNoZWNrQ29uZGl0aW9uKGNvbmRpdGlvbjogVHJpZ2dlckNvbmRpdGlvbikge1xuICAgIGNvbnN0IGVudGl0eSA9IGdldEVudGl0eUJ5Q29uZGl0aW9uKGNvbmRpdGlvbilcbiAgICBpZiAoZW50aXR5KSB7XG4gICAgICB0cnkge1xuICAgICAgICBzd2l0Y2ggKGNvbmRpdGlvbi50eXBlKSB7XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX1NUQVRFX0lTOiB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZXMgPSBTdGF0ZXMuZ2V0T3JOdWxsKGVudGl0eSlcbiAgICAgICAgICAgIGlmIChzdGF0ZXMgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gZ2V0Q3VycmVudFZhbHVlKHN0YXRlcylcbiAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRWYWx1ZSA9PT0gY29uZGl0aW9uLnZhbHVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fU1RBVEVfSVNfTk9UOiB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZXMgPSBTdGF0ZXMuZ2V0T3JOdWxsKGVudGl0eSlcbiAgICAgICAgICAgIGlmIChzdGF0ZXMgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gZ2V0Q3VycmVudFZhbHVlKHN0YXRlcylcbiAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRWYWx1ZSAhPT0gY29uZGl0aW9uLnZhbHVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fQ09VTlRFUl9FUVVBTFM6IHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50ZXIgPSBDb3VudGVyLmdldE9yTnVsbChlbnRpdHkpXG4gICAgICAgICAgICBpZiAoY291bnRlciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBudW1lcmljID0gTnVtYmVyKGNvbmRpdGlvbi52YWx1ZSlcbiAgICAgICAgICAgICAgaWYgKCFpc05hTihudW1lcmljKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb3VudGVyLnZhbHVlID09PSBudW1lcmljXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9DT1VOVEVSX0lTX0dSRUFURVJfVEhBTjoge1xuICAgICAgICAgICAgY29uc3QgY291bnRlciA9IENvdW50ZXIuZ2V0T3JOdWxsKGVudGl0eSlcbiAgICAgICAgICAgIGlmIChjb3VudGVyICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG51bWVyaWMgPSBOdW1iZXIoY29uZGl0aW9uLnZhbHVlKVxuICAgICAgICAgICAgICBpZiAoIWlzTmFOKG51bWVyaWMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50ZXIudmFsdWUgPiBudW1lcmljXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9DT1VOVEVSX0lTX0xFU1NfVEhBTjoge1xuICAgICAgICAgICAgY29uc3QgY291bnRlciA9IENvdW50ZXIuZ2V0T3JOdWxsKGVudGl0eSlcbiAgICAgICAgICAgIGlmIChjb3VudGVyICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG51bWVyaWMgPSBOdW1iZXIoY29uZGl0aW9uLnZhbHVlKVxuICAgICAgICAgICAgICBpZiAoIWlzTmFOKG51bWVyaWMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50ZXIudmFsdWUgPCBudW1lcmljXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBjb25kaXRpb24nLCBjb25kaXRpb24pXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0RW50aXR5QnlJZDxUIGV4dGVuZHMgeyBpZDogbnVtYmVyIH0+KFxuICAgIGNvbXBvbmVudE5hbWU6IHN0cmluZyxcbiAgICBpZDogbnVtYmVyLFxuICApIHtcbiAgICBjb25zdCBDb21wb25lbnQgPSBlbmdpbmUuZ2V0Q29tcG9uZW50KFxuICAgICAgY29tcG9uZW50TmFtZSxcbiAgICApIGFzIExhc3RXcml0ZVdpbkVsZW1lbnRTZXRDb21wb25lbnREZWZpbml0aW9uPFQ+XG4gICAgY29uc3QgZW50aXRpZXMgPSBBcnJheS5mcm9tKGVuZ2luZS5nZXRFbnRpdGllc1dpdGgoQ29tcG9uZW50KSlcbiAgICBjb25zdCByZXN1bHQgPSBlbnRpdGllcy5maW5kKChbX2VudGl0eSwgdmFsdWVdKSA9PiB2YWx1ZS5pZCA9PT0gaWQpXG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkocmVzdWx0KSAmJiByZXN1bHQubGVuZ3RoID4gMCA/IHJlc3VsdFswXSA6IG51bGxcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldEVudGl0eUJ5QWN0aW9uKGFjdGlvbjogVHJpZ2dlckFjdGlvbikge1xuICAgIGlmIChhY3Rpb24uaWQpIHtcbiAgICAgIGNvbnN0IGVudGl0eSA9IGdldEVudGl0eUJ5SWQoQ29tcG9uZW50TmFtZS5BQ1RJT05TLCBhY3Rpb24uaWQpXG4gICAgICBpZiAoZW50aXR5KSB7XG4gICAgICAgIHJldHVybiBlbnRpdHlcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldEVudGl0eUJ5Q29uZGl0aW9uKGNvbmRpdGlvbjogVHJpZ2dlckNvbmRpdGlvbikge1xuICAgIGNvbnN0IGNvbXBvbmVudE5hbWUgPSBPYmplY3QudmFsdWVzKENvbXBvbmVudE5hbWUpXG4gICAgICAubWFwKChjb21wb25lbnROYW1lKSA9PiAoe1xuICAgICAgICBjb21wb25lbnROYW1lLFxuICAgICAgICBjb25kaXRpb25UeXBlczogZ2V0Q29uZGl0aW9uVHlwZXNCeUNvbXBvbmVudE5hbWUoY29tcG9uZW50TmFtZSksXG4gICAgICB9KSlcbiAgICAgIC5yZWR1Y2U8Q29tcG9uZW50TmFtZSB8IG51bGw+KFxuICAgICAgICAocmVzdWx0LCB7IGNvbXBvbmVudE5hbWUsIGNvbmRpdGlvblR5cGVzIH0pID0+XG4gICAgICAgICAgY29uZGl0aW9uVHlwZXMuaW5jbHVkZXMoY29uZGl0aW9uLnR5cGUpID8gY29tcG9uZW50TmFtZSA6IHJlc3VsdCxcbiAgICAgICAgbnVsbCxcbiAgICAgIClcbiAgICBpZiAoY29tcG9uZW50TmFtZSAmJiBjb25kaXRpb24uaWQpIHtcbiAgICAgIGNvbnN0IGVudGl0eSA9IGdldEVudGl0eUJ5SWQoY29tcG9uZW50TmFtZSwgY29uZGl0aW9uLmlkKVxuICAgICAgaWYgKGVudGl0eSkge1xuICAgICAgICByZXR1cm4gZW50aXR5XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICAvLyBPTl9DTElDS1xuICBmdW5jdGlvbiBpbml0T25DbGlja1RyaWdnZXIoZW50aXR5OiBFbnRpdHkpIHtcbiAgICBwb2ludGVyRXZlbnRzU3lzdGVtLm9uUG9pbnRlckRvd24oXG4gICAgICB7XG4gICAgICAgIGVudGl0eSxcbiAgICAgICAgb3B0czoge1xuICAgICAgICAgIGJ1dHRvbjogSW5wdXRBY3Rpb24uSUFfUE9JTlRFUixcbiAgICAgICAgICBob3ZlclRleHQ6ICdDbGljaycsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpXG4gICAgICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9DTElDSylcbiAgICAgIH0sXG4gICAgKVxuICB9XG5cbiAgZnVuY3Rpb24gaW5pdE9uUGxheWVyVHJpZ2dlckFyZWEoZW50aXR5OiBFbnRpdHkpIHtcbiAgICB0cmlnZ2Vycy5hZGRUcmlnZ2VyKFxuICAgICAgZW50aXR5LFxuICAgICAgTk9fTEFZRVJTLFxuICAgICAgTEFZRVJfMSxcbiAgICAgIFt7IHR5cGU6ICdib3gnIH1dLFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpXG4gICAgICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9QTEFZRVJfRU5URVJTX0FSRUEpXG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpXG4gICAgICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9QTEFZRVJfTEVBVkVTX0FSRUEpXG4gICAgICB9LFxuICAgIClcbiAgfVxufSJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dcl/asset-packs",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.2-20231010134915.commit-6abb6ed",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/src/definitions.js",
|
|
6
6
|
"typings": "dist/src/definitions.d.ts",
|
|
@@ -59,5 +59,5 @@
|
|
|
59
59
|
"semi": false,
|
|
60
60
|
"printWidth": 80
|
|
61
61
|
},
|
|
62
|
-
"commit": "
|
|
62
|
+
"commit": "6abb6edf84d2b90295909ae5a91b974784d9fa4c"
|
|
63
63
|
}
|
package/dist/package.json
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@dcl/asset-packs",
|
|
3
|
-
"version": "0.0.0",
|
|
4
|
-
"description": "",
|
|
5
|
-
"main": "dist/src/definitions.js",
|
|
6
|
-
"typings": "dist/src/definitions.d.ts",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"download": "ts-node --project tsconfig.scripts.json ./scripts/download.ts",
|
|
9
|
-
"validate": "ts-node --project tsconfig.scripts.json ./scripts/validate.ts",
|
|
10
|
-
"upload": "ts-node --project tsconfig.scripts.json ./scripts/upload.ts",
|
|
11
|
-
"start": "concurrently \"npm run start:js\" \"npm run start:lib\" \"npm run start:catalog\"",
|
|
12
|
-
"start:js": "sdk-commands start --no-browser",
|
|
13
|
-
"start:lib": "npm run build:lib -- --watch",
|
|
14
|
-
"start:catalog": "nodemon --watch packs -x \"npm run build:catalog\"",
|
|
15
|
-
"build:js": "sdk-commands build",
|
|
16
|
-
"build:lib": "tsc --project tsconfig.lib.json",
|
|
17
|
-
"build:catalog": "ts-node --project tsconfig.scripts.json ./scripts/catalog.ts",
|
|
18
|
-
"build": "npm run build:js && npm run build:lib && npm run build:catalog"
|
|
19
|
-
},
|
|
20
|
-
"repository": {
|
|
21
|
-
"type": "git",
|
|
22
|
-
"url": "git+https://github.com/decentraland/asset-packs.git"
|
|
23
|
-
},
|
|
24
|
-
"keywords": [],
|
|
25
|
-
"author": "",
|
|
26
|
-
"license": "ISC",
|
|
27
|
-
"bugs": {
|
|
28
|
-
"url": "https://github.com/decentraland/asset-packs/issues"
|
|
29
|
-
},
|
|
30
|
-
"homepage": "https://github.com/decentraland/asset-packs#readme",
|
|
31
|
-
"devDependencies": {
|
|
32
|
-
"@aws-sdk/client-s3": "^3.405.0",
|
|
33
|
-
"@aws-sdk/lib-storage": "^3.405.0",
|
|
34
|
-
"@dcl/hashing": "^3.0.4",
|
|
35
|
-
"@types/mime-types": "^2.1.1",
|
|
36
|
-
"@types/node-fetch": "^2.6.4",
|
|
37
|
-
"concurrently": "^8.2.1",
|
|
38
|
-
"dotenv": "^16.3.1",
|
|
39
|
-
"fp-future": "^1.0.1",
|
|
40
|
-
"mime-types": "^2.1.35",
|
|
41
|
-
"node-fetch": "^2.7.0",
|
|
42
|
-
"nodemon": "^3.0.1",
|
|
43
|
-
"p-queue": "^7.4.1",
|
|
44
|
-
"prettier": "^3.0.2",
|
|
45
|
-
"rimraf": "^5.0.1",
|
|
46
|
-
"serve": "^14.2.1",
|
|
47
|
-
"serve-handler": "^6.1.5",
|
|
48
|
-
"ts-node": "^10.9.1",
|
|
49
|
-
"typescript": "^5.1.6"
|
|
50
|
-
},
|
|
51
|
-
"dependencies": {
|
|
52
|
-
"@dcl-sdk/utils": "^1.1.3",
|
|
53
|
-
"@dcl/js-runtime": "7.3.18",
|
|
54
|
-
"@dcl/sdk": "^7.3.18",
|
|
55
|
-
"mitt": "^3.0.1"
|
|
56
|
-
},
|
|
57
|
-
"prettier": {
|
|
58
|
-
"singleQuote": true,
|
|
59
|
-
"semi": false,
|
|
60
|
-
"printWidth": 80
|
|
61
|
-
}
|
|
62
|
-
}
|