@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.
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVmaW5pdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLE9BQU8sR0FDUixNQUFNLGNBQWMsQ0FBQTtBQUNyQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFOUMsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLE1BQU0sQ0FBQTtBQUNwQixjQUFjLFVBQVUsQ0FBQTtBQUV4QixNQUFNLENBQU4sSUFBWSxhQU1YO0FBTkQsV0FBWSxhQUFhO0lBQ3ZCLDBEQUF5QyxDQUFBO0lBQ3pDLGlEQUFnQyxDQUFBO0lBQ2hDLGlEQUFnQyxDQUFBO0lBQ2hDLG1EQUFrQyxDQUFBO0lBQ2xDLCtDQUE4QixDQUFBO0FBQ2hDLENBQUMsRUFOVyxhQUFhLEtBQWIsYUFBYSxRQU14QjtBQUVELE1BQU0sQ0FBTixJQUFZLFNBSVg7QUFKRCxXQUFZLFNBQVM7SUFDbkIsb0NBQXVCLENBQUE7SUFDdkIsd0NBQTJCLENBQUE7SUFDM0Isc0NBQXlCLENBQUE7QUFDM0IsQ0FBQyxFQUpXLFNBQVMsS0FBVCxTQUFTLFFBSXBCO0FBRUQsTUFBTSxDQUFOLElBQVksaUJBaUJYO0FBakJELFdBQVksaUJBQWlCO0lBQzNCLHNDQUFpQixDQUFBO0lBQ2pCLDhDQUF5QixDQUFBO0lBQ3pCLGdEQUEyQixDQUFBO0lBQzNCLDBDQUFxQixDQUFBO0lBQ3JCLDhDQUF5QixDQUFBO0lBQ3pCLGdEQUEyQixDQUFBO0lBQzNCLCtDQUEwQixDQUFBO0lBQzFCLDhDQUF5QixDQUFBO0lBQ3pCLGdEQUEyQixDQUFBO0lBQzNCLCtDQUEwQixDQUFBO0lBQzFCLG9EQUErQixDQUFBO0lBQy9CLHNEQUFpQyxDQUFBO0lBQ2pDLHFEQUFnQyxDQUFBO0lBQ2hDLGtEQUE2QixDQUFBO0lBQzdCLHFEQUFnQyxDQUFBO0lBQ2hD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cG9ydCB7XG4gIElFbmdpbmUsXG4gIElTY2hlbWEsXG4gIExhc3RXcml0ZVdpbkVsZW1lbnRTZXRDb21wb25lbnREZWZpbml0aW9uLFxuICBTY2hlbWFzLFxufSBmcm9tICdAZGNsL3Nkay9lY3MnXG5pbXBvcnQgeyBhZGRBY3Rpb25UeXBlIH0gZnJvbSAnLi9hY3Rpb24tdHlwZXMnXG5cbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uLXR5cGVzJ1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudHMnXG5leHBvcnQgKiBmcm9tICcuL2lkJ1xuZXhwb3J0ICogZnJvbSAnLi9zdGF0ZXMnXG5cbmV4cG9ydCBlbnVtIENvbXBvbmVudE5hbWUge1xuICBBQ1RJT05fVFlQRVMgPSAnYXNzZXQtcGFja3M6OkFjdGlvblR5cGVzJyxcbiAgQUNUSU9OUyA9ICdhc3NldC1wYWNrczo6QWN0aW9ucycsXG4gIENPVU5URVIgPSAnYXNzZXQtcGFja3M6OkNvdW50ZXInLFxuICBUUklHR0VSUyA9ICdhc3NldC1wYWNrczo6VHJpZ2dlcnMnLFxuICBTVEFURVMgPSAnYXNzZXQtcGFja3M6OlN0YXRlcycsXG59XG5cbmV4cG9ydCBlbnVtIFR3ZWVuVHlwZSB7XG4gIE1PVkVfSVRFTSA9ICdtb3ZlX2l0ZW0nLFxuICBST1RBVEVfSVRFTSA9ICdyb3RhdGVfaXRlbScsXG4gIFNDQUxFX0lURU0gPSAnc2NhbGVfaXRlbScsXG59XG5cbmV4cG9ydCBlbnVtIEludGVycG9sYXRpb25UeXBlIHtcbiAgTElORUFSID0gJ2xpbmVhcicsXG4gIEVBU0VJTlFVQUQgPSAnZWFzZWlucXVhZCcsXG4gIEVBU0VPVVRRVUFEID0gJ2Vhc2VvdXRxdWFkJyxcbiAgRUFTRVFVQUQgPSAnZWFzZXF1YWQnLFxuICBFQVNFSU5TSU5FID0gJ2Vhc2VpbnNpbmUnLFxuICBFQVNFT1VUU0lORSA9ICdlYXNlb3V0c2luZScsXG4gIEVBU0VTSU5FID0gJ2Vhc2Vpbm91dHNpbmUnLFxuICBFQVNFSU5FWFBPID0gJ2Vhc2VpbmV4cG8nLFxuICBFQVNFT1VURVhQTyA9ICdlYXNlb3V0ZXhwbycsXG4gIEVBU0VFWFBPID0gJ2Vhc2Vpbm91dGV4cG8nLFxuICBFQVNFSU5FTEFTVElDID0gJ2Vhc2VpbmVsYXN0aWMnLFxuICBFQVNFT1VURUxBU1RJQyA9ICdlYXNlb3V0ZWxhc3RpYycsXG4gIEVBU0VFTEFTVElDID0gJ2Vhc2Vpbm91dGVsYXN0aWMnLFxuICBFQVNFSU5CT1VOQ0UgPSAnZWFzZWluYm91bmNlJyxcbiAgRUFTRU9VVEVCT1VOQ0UgPSAnZWFzZW91dGJvdW5jZScsXG4gIEVBU0VCT1VOQ0UgPSAnZWFzZWlub3V0Ym91bmNlJyxcbn1cblxuZXhwb3J0IGVudW0gQWN0aW9uVHlwZSB7XG4gIFBMQVlfQU5JTUFUSU9OID0gJ3BsYXlfYW5pbWF0aW9uJyxcbiAgU1RPUF9BTklNQVRJT04gPSAnc3RvcF9hbmltYXRpb24nLFxuICBTRVRfU1RBVEUgPSAnc2V0X3N0YXRlJyxcbiAgU1RBUlRfVFdFRU4gPSAnc3RhcnRfdHdlZW4nLFxuICBTRVRfQ09VTlRFUiA9ICdzZXRfY291bnRlcicsXG4gIElOQ1JFTUVOVF9DT1VOVEVSID0gJ2luY3JlbWVudF9jb3VudGVyJyxcbiAgREVDUkVBU0VfQ09VTlRFUiA9ICdkZWNyZWFzZV9jb3VudGVyJyxcbiAgUExBWV9TT1VORCA9ICdwbGF5X3NvdW5kJyxcbiAgU1RPUF9TT1VORCA9ICdzdG9wX3NvdW5kJyxcbiAgU0VUX1ZJU0lCSUxJVFkgPSAnc2V0X3Zpc2liaWxpdHknLFxuICBBVFRBQ0hfVE9fUExBWUVSID0gJ2F0dGFjaF90b19wbGF5ZXInLFxuICBERVRBQ0hfRlJPTV9QTEFZRVIgPSAnZGV0YWNoX2Zyb21fcGxheWVyJyxcbn1cblxuZXhwb3J0IGNvbnN0IEFjdGlvblNjaGVtYXMgPSB7XG4gIFtBY3Rpb25UeXBlLlBMQVlfQU5JTUFUSU9OXTogU2NoZW1hcy5NYXAoe1xuICAgIGFuaW1hdGlvbjogU2NoZW1hcy5TdHJpbmcsXG4gICAgbG9vcDogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLkJvb2xlYW4pLFxuICB9KSxcbiAgW0FjdGlvblR5cGUuU1RPUF9BTklNQVRJT05dOiBTY2hlbWFzLk1hcCh7fSksXG4gIFtBY3Rpb25UeXBlLlNFVF9TVEFURV06IFNjaGVtYXMuTWFwKHsgc3RhdGU6IFNjaGVtYXMuU3RyaW5nIH0pLFxuICBbQWN0aW9uVHlwZS5TVEFSVF9UV0VFTl06IFNjaGVtYXMuTWFwKHtcbiAgICB0eXBlOiBTY2hlbWFzLkVudW1TdHJpbmc8VHdlZW5UeXBlPihUd2VlblR5cGUsIFR3ZWVuVHlwZS5NT1ZFX0lURU0pLFxuICAgIGVuZDogU2NoZW1hcy5WZWN0b3IzLFxuICAgIGludGVycG9sYXRpb25UeXBlOiBTY2hlbWFzLkVudW1TdHJpbmcoXG4gICAgICBJbnRlcnBvbGF0aW9uVHlwZSxcbiAgICAgIEludGVycG9sYXRpb25UeXBlLkxJTkVBUixcbiAgICApLFxuICAgIGR1cmF0aW9uOiBTY2hlbWFzLkZsb2F0LFxuICAgIHJlbGF0aXZlOiBTY2hlbWFzLkJvb2xlYW4sXG4gIH0pLFxuICBbQWN0aW9uVHlwZS5TRVRfQ09VTlRFUl06IFNjaGVtYXMuTWFwKHsgY291bnRlcjogU2NoZW1hcy5JbnQgfSksXG4gIFtBY3Rpb25UeXBlLklOQ1JFTUVOVF9DT1VOVEVSXTogU2NoZW1hcy5NYXAoe30pLFxuICBbQWN0aW9uVHlwZS5ERUNSRUFTRV9DT1VOVEVSXTogU2NoZW1hcy5NYXAoe30pLFxuICBbQWN0aW9uVHlwZS5QTEFZX1NPVU5EXTogU2NoZW1hcy5NYXAoe1xuICAgIHNyYzogU2NoZW1hcy5TdHJpbmcsXG4gICAgbG9vcDogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLkJvb2xlYW4pLFxuICAgIHZvbHVtZTogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLkZsb2F0KSxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLlNUT1BfU09VTkRdOiBTY2hlbWFzLk1hcCh7fSksXG4gIFtBY3Rpb25UeXBlLlNFVF9WSVNJQklMSVRZXTogU2NoZW1hcy5NYXAoe1xuICAgIHZpc2libGU6IFNjaGVtYXMuQm9vbGVhbixcbiAgICBwaHlzaWNzQ29sbGlkZXI6IFNjaGVtYXMuT3B0aW9uYWwoU2NoZW1hcy5Cb29sZWFuKSxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLkFUVEFDSF9UT19QTEFZRVJdOiBTY2hlbWFzLk1hcCh7XG4gICAgYW5jaG9yUG9pbnRJZDogU2NoZW1hcy5JbnQsXG4gIH0pLFxuICBbQWN0aW9uVHlwZS5ERVRBQ0hfRlJPTV9QTEFZRVJdOiBTY2hlbWFzLk1hcCh7fSksXG59XG5cbmV4cG9ydCB0eXBlIEFjdGlvblBheWxvYWQ8VCBleHRlbmRzIEFjdGlvblR5cGUgPSBhbnk+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=
@@ -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.1",
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": "4b75adb8857e57658ccce243235974cfccc70610"
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
- }