@3dsource/angular-unreal-module 0.0.33 → 0.0.35-dev.0

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/index.d.ts CHANGED
@@ -6,7 +6,7 @@ import * as _ngrx_store from '@ngrx/store';
6
6
  import { Store } from '@ngrx/store';
7
7
  import * as rxjs from 'rxjs';
8
8
  import { Observable, Subject } from 'rxjs';
9
- import { MetaBoxCommandList, MetaBoxCommandPacket, FResetControlClampsCommand, FCameraRecenterCommand, FUnLoadAllLevelsCommand, FDragCommand, FUnselectAllProductsCommand, FPauseSequenceCommand, FStopSequenceCommand, FUnLoadAllProductsCommand, FRequestCameraPresetCommand, FLoopBackCommand, FExecuteConsoleCommandCommand, FBoolPayload, FFreezeFrameCommand, FDragSequencePayload, FDragSequenceCommand, FAlignProductsToPlanePayload, FAlignProductsToPlaneCommand, FCameraPresetPayload, FApplyCameraPresetCommand, FLoadSceneStatePayload, FLoadSceneStateCommand, FClickSnapCommand, FControlCameraModePayload, FSetControlCameraModeCommand, FCameraClampsPayload, FSetCameraControlClampsCommand, FSetPawnMovementModePayload, FSetPawnMovementModeCommand, FEnableTeleportCommand, FApplyZoomPayload, FApplyZoomCommand, FFVectorPayload, FCameraBoxCommand, FDropPayload, FDropCommand, FSelectProductByObjectNamePayload, FSelectProductByObjectNameCommand, FGizmoTypePayload, FChangeGizmoTypeCommand, FWeatherPayload, FWeatherCommand, FFitToObjectsPayload, FFitToObjectsCommand, FSetProductsLocationPayload, FSetProductsLocationCommand, FResolutionPayload, FChangeResolutionCommand, FEnableSpinnerModeCommand, FControlSensitivityPayload, FControlSensitivityCommand, FCameraSettingsPayload, FCameraSettingsCommand, FDebugModeCommand, FEnableControlsCommand, FFStringPayload, FInitSequenceByObjectNamePayload, FInitSequenceByObjectNameCommand, FPlaySequencePayload, FPlaySequenceCommand, FJumpToSequencePayload, FJumpToSequenceCommand, FMoveSelectedPayload, FMoveSelectedCommand, FRotatePayload, FRotateSelectedCommand, FRenderPayload, FTakeRenderCommand, FTakeSpinnerRenderPreviewCommand, FTakeSpinnerRenderCommand, FSetMaterialPayload, FSetMaterialCommand, FProductPayload, FLoadProductCommand, FUnLoadProductByObjectNameCommand, FLevelPayload, FLoadLevelCommand, FComposurePayload, FEnableComposureCommand, FFStringsPayload, FClampPanToProductsCommand, FSettingsSequencePayload, FSetSettingsSequenceCommand } from '@3dsource/types-unreal';
9
+ import { MetaBoxCommandList, MetaBoxCommandPacket, FResetControlClampsCommand, FCameraRecenterCommand, FUnLoadAllLevelsCommand, FDragCommand, FUnselectAllProductsCommand, FPauseSequenceCommand, FStopSequenceCommand, FUnLoadAllProductsCommand, FRequestCameraPresetCommand, FLoopBackCommand, FExecuteConsoleCommandCommand, FBoolPayload, FFreezeFrameCommand, FDragSequencePayload, FDragSequenceCommand, FAlignProductsToPlanePayload, FAlignProductsToPlaneCommand, FCameraPresetPayload, FApplyCameraPresetCommand, FLoadSceneStatePayload, FLoadSceneStateCommand, FClickSnapCommand, FControlCameraModePayload, FSetControlCameraModeCommand, FCameraClampsPayload, FSetCameraControlClampsCommand, FSetPawnMovementModePayload, FSetPawnMovementModeCommand, FEnableTeleportCommand, FEnableSceneStateCallbackCommand, FApplyZoomPayload, FApplyZoomCommand, FFVectorPayload, FCameraBoxCommand, FDropPayload, FDropCommand, FSelectProductByObjectNamePayload, FSelectProductByObjectNameCommand, FGizmoTypePayload, FChangeGizmoTypeCommand, FWeatherPayload, FWeatherCommand, FFitToObjectsPayload, FFitToObjectsCommand, FSetProductsLocationPayload, FSetProductsLocationCommand, FResolutionPayload, FChangeResolutionCommand, FEnableSpinnerModeCommand, FControlSensitivityPayload, FControlSensitivityCommand, FCameraSettingsPayload, FCameraSettingsCommand, FDebugModeCommand, FEnableControlsCommand, FFStringPayload, FInitSequenceByObjectNamePayload, FInitSequenceByObjectNameCommand, FPlaySequencePayload, FPlaySequenceCommand, FJumpToSequencePayload, FJumpToSequenceCommand, FMoveSelectedPayload, FMoveSelectedCommand, FRotatePayload, FRotateSelectedCommand, FRenderPayload, FTakeRenderCommand, FTakeSpinnerRenderPreviewCommand, FTakeSpinnerRenderCommand, FSetMaterialPayload, FSetMaterialCommand, FProductPayload, FLoadProductCommand, FUnLoadProductByObjectNameCommand, FLevelPayload, FLoadLevelCommand, FComposurePayload, FEnableComposureCommand, FFStringsPayload, FClampPanToProductsCommand, FSettingsSequencePayload, FSetSettingsSequenceCommand } from '@3dsource/types-unreal';
10
10
  import { ImageOutputValues, IKeyCode } from '@3dsource/utils';
11
11
  import { SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';
12
12
  import * as _ngrx_effects from '@ngrx/effects';
@@ -270,7 +270,7 @@ declare function OnCloseHandler(this: SignallingService, e: CloseEvent): void;
270
270
 
271
271
  declare function OnErrorHandler(this: SignallingService, e: Event): void;
272
272
 
273
- declare function OnMessageHandler(this: SignallingService, e: MessageEvent<string>): void;
273
+ declare function OnMessageHandler(this: SignallingService, e: MessageEvent<string | Blob>): void;
274
274
 
275
275
  declare function OnOpenHandler(this: SignallingService): void;
276
276
 
@@ -438,6 +438,7 @@ declare const getSetControlCameraModeCommand: (payload: FControlCameraModePayloa
438
438
  declare const getSetCameraControlClampsCommand: (payload: FCameraClampsPayload) => FSetCameraControlClampsCommand;
439
439
  declare const getSetPawnMovementModeCommand: (payload: FSetPawnMovementModePayload) => FSetPawnMovementModeCommand;
440
440
  declare const getEnableTeleportCommand: (payload: FBoolPayload) => FEnableTeleportCommand;
441
+ declare const getEnableSceneStateCallbackCommand: (payload: FBoolPayload) => FEnableSceneStateCallbackCommand;
441
442
  declare const getApplyZoomCommand: (payload: FApplyZoomPayload) => FApplyZoomCommand;
442
443
  declare const getCameraBoxCommand: (payload: FFVectorPayload) => FCameraBoxCommand;
443
444
  declare const getDropCommand: (payload?: FDropPayload) => FDropCommand;
@@ -886,8 +887,12 @@ interface PlayerCountMessage extends MessageBase {
886
887
  type: 'playerCount';
887
888
  playerCount: number;
888
889
  }
890
+ interface StreamerListMessage extends MessageBase {
891
+ type: 'streamerList';
892
+ ids: string[];
893
+ }
889
894
  interface AnswerMessage extends RTCSessionDescriptionInit {
890
- type: RTCSdpType;
895
+ type: 'answer';
891
896
  }
892
897
  interface ConfigMessage extends MessageBase, UnknownFields {
893
898
  type: 'config';
@@ -902,8 +907,13 @@ interface PingMessage extends MessageBase {
902
907
  playerId: string;
903
908
  appConnectionCounter: number;
904
909
  }
910
+ interface OfferMessage extends RTCSessionDescriptionInit {
911
+ type: 'offer';
912
+ }
905
913
  type UnknownFields = Record<string, unknown>;
906
914
  declare const OrchestrationMessageTypes: {
915
+ readonly streamerList: "streamerList";
916
+ readonly listStreamers: "listStreamers";
907
917
  readonly requestReservation: "requestReservation";
908
918
  readonly instanceReady: "instanceReady";
909
919
  readonly instanceReserved: "instanceReserved";
@@ -913,8 +923,10 @@ declare const OrchestrationMessageTypes: {
913
923
  readonly iceCandidate: "iceCandidate";
914
924
  readonly ping: "ping";
915
925
  readonly config: "config";
926
+ readonly offer: "offer";
916
927
  };
917
928
  interface SignalingMessageMap {
929
+ [OrchestrationMessageTypes.streamerList]: StreamerListMessage;
918
930
  [OrchestrationMessageTypes.ssInfo]: SSInfo;
919
931
  [OrchestrationMessageTypes.playerCount]: PlayerCountMessage;
920
932
  [OrchestrationMessageTypes.answer]: AnswerMessage;
@@ -923,6 +935,7 @@ interface SignalingMessageMap {
923
935
  [OrchestrationMessageTypes.instanceReady]: InstanceReady;
924
936
  [OrchestrationMessageTypes.instanceReserved]: InstanceReserved;
925
937
  [OrchestrationMessageTypes.ping]: PingMessage;
938
+ [OrchestrationMessageTypes.offer]: OfferMessage;
926
939
  }
927
940
  type OrchestrationMessageType = keyof SignalingMessageMap;
928
941
  type SignalingMessageHandler<T extends keyof SignalingMessageMap> = (msg: SignalingMessageMap[T]) => void;
@@ -1035,6 +1048,7 @@ interface AwsInstance {
1035
1048
  declare class SignallingService extends SubService {
1036
1049
  private readonly httpClient;
1037
1050
  private readonly regionsPingService;
1051
+ onOffer$: Subject<OfferMessage>;
1038
1052
  onConfig$: Subject<ConfigMessage>;
1039
1053
  onWebRtcIce$: Subject<RTCIceCandidate>;
1040
1054
  onWebRtcAnswer$: Subject<RTCSessionDescriptionInit | null>;
@@ -1636,5 +1650,5 @@ declare class SafePipe implements PipeTransform {
1636
1650
  static ɵpipe: i0.ɵɵPipeDeclaration<SafePipe, "safe", true>;
1637
1651
  }
1638
1652
 
1639
- export { AFKService, AfkRestartScreenLockerComponent, AggregatorService, AnswerHandler, CONSOLE_COMMAND_DISABLE_MESSAGES, CONSOLE_COMMAND_ENABLE_MESSAGES, CONSOLE_COMMAND_PIXEL_QUALITY, ClickableOverlayComponent, CommandTelemetryService, ConfigHandler, ConsoleExtensionsService, DATA_CHANNEL_CONNECTION_TIMEOUT, DEBOUNCE_TO_MANY_RESIZE_CALLS, DEFAULT_TIMEOUT_PERIOD, DEFAULT_WARN_TIMEOUT, DataFlowMonitor, DevModeService, DisconnectReason, EControlSchemeType, EMessageType, EToClientMessageType, FULL_HD_HEIGHT, FULL_HD_WIDTH, FilterSettingsComponent, FreezeFrameComponent, FreezeFrameService, IceCandidateHandler, InputOptions, InputService, InstanceReadyHandler, InstanceReservedHandler, KalmanFilter1D, LatencyTimings, LowBandwidthDetectorComponent, LowBandwidthModalComponent, MINIMAL_FPS, MouseButton, MouseButtonsMask, OnCloseHandler, OnErrorHandler, OnMessageHandler, OnOpenHandler, OrchestrationMessageTypes, PingHandler, PlayerCountHandler, RegionsPingService, ResetTelemetry, SAME_SIZE_THRESHOLD, SCREEN_LOCKER_CONTAINER_ID, SSInfoHandler, STREAMING_VIDEO_ID, SafePipe, SignallingService, SpecialKeyCodes, StatGraphComponent, StreamStatusTelemetryService, SubService, TelemetryStart, TelemetryStop, UNREAL_CONFIG, UnrealCommunicatorService, UnrealEffects, UnrealInternalSignalEvents, UnrealSceneComponent, UnrealStatusMessage, VideoLockerComponent, VideoRecorder, VideoService, VideoStatsComponent, VideoStreamStatusService, WSCloseCode_NORMAL_AFK_TIMEOUT, WSCloseCode_NORMAL_CIRRUS_CLOSED, WSCloseCode_NORMAL_CLOSURE, WSCloseCode_NORMAL_MANUAL_DISCONNECT, WSCloseCodes, WS_OPEN_STATE, WS_TIMEOUT, WebRtcPlayerService, WebrtcErrorModalComponent, alignProductsToPlaneCommand, changeLowBandwidth, changeStatusMainVideoOnScene, changeStreamResolutionAction, changeStreamResolutionSuccessAction, clampAndKeepMaxPercents, clampPanToProductsCommand, commandCompleted, commandStarted, decodeData, destroyConnectionsAndResetState, destroyRemoteConnections, dispatchResize, filteredLogs, floatToSmoothPercents, forceResizeUnrealVideo, fromResizeObserver, fromSignal, fromUnrealCallBackSignal, getActiveUrl, getApplyCameraPresetCommand, getApplyZoomCommand, getCameraBoxCommand, getCameraRecenterCommand, getCameraSettingsCommand, getChangeGizmoTypeCommand, getChangeResolutionCommand, getClickSnapCommand, getControlSensitivityCommand, getDebugModeCommand, getDragCommand, getDragSequenceCommand, getDropCommand, getEnableComposureCommand, getEnableControlsCommand, getEnableSpinnerModeCommand, getEnableTeleportCommand, getExecuteConsoleCommand, getFitToObjectsCommand, getFreezeFrameCommand, getImageFromVideoStream, getInitSequenceByObjectNameCommand, getJumpToSequenceCommand, getLoadLevelCommand, getLoadProductCommand, getLoadSceneStateCommand, getLoopBackCommand, getMoveSelectedCommand, getPauseSequenceCommand, getPlaySequenceCommand, getRequestCameraPresetCommand, getResetControlClampsCommand, getRotateSelectedCommand, getRtcErrorMessage, getSelectProductByObjectNameCommand, getSetCameraControlClampsCommand, getSetControlCameraModeCommand, getSetFpsCommand, getSetMaterialCommand, getSetPawnMovementModeCommand, getSetSettingsSequenceCommand, getStopSequenceCommand, getTakeRenderCommand, getTakeSpinnerRenderCommand, getTakeSpinnerRenderPreviewCommand, getUnLoadAllProductsCommand, getUnLoadProductByObjectNameCommand, getUnselectAllProductsCommand, getWeatherCommand, initSignalling, initialState, mapQpToQuality, observeCommandResponse, removeExileCommands, resetAfk, resetAfkAction, resetConfig, resetIntroSrc, resetUnrealState, resetUnrealStateAction, resetWarnTimeout, selectCommandProgress, selectCommandsInProgress, selectFreezeFrameCombinedDataUrl, selectFreezeFrameDataUrl, selectFreezeFrameDataUrlFromVideo, selectFreezeFrameProgressMessageFromVideo, selectIsAutostart, selectIsFreezeFrameLoading, selectIsVideoPlayingAndDataChannelConnected, selectLastCommandInProgress, selectLoaderCommands, selectMatchUrls, selectShowLoader, selectShowReconnectPopup, selectSignalingParameters, selectStreamConfig, selectTotalProgress, selectWarnTimeout, selectWsUrl, sendSignal, setAwsInstance, setCirrusConnected, setCirrusDisconnected, setConfig, setDataChannelConnected, setErrorMessage, setEstablishingConnection, setFreezeFrame, setFreezeFrameFromVideo, setIntroImageSrc, setIntroVideoSrc, setLoadingImageSrc, setLoopBackCommandIsCompleted, setMatchUrls, setMaxFps, setProductsLocationCommand, setSignalingName, setStatusMessage, setStatusPercentSignallingServer, setStreamClientCompanyId, setStreamViewId, setViewportReady, showUnrealErrorMessage, trackMixpanelEvent, unLoadAllLevelsCommand, unrealFeature, unrealReducer, updateCirrusInfo };
1640
- export type { AnswerMessage, AwsInstance, CandidateMessage, CloseReason, CommandsLoaderState, ConfigMessage, DataFlowCheckResult, DisconnectType, EControlSchemeTypeValues, EMessageTypeValues, FreezeFrameMessage, IAggregatedStat, InboundVideoStats, InputProps, InstanceReady, InstanceReserved, LBMStats, MessageBase, NormalizeAndQuantizeSignedValue, NormalizeAndQuantizeUnsignedValue, ObservedCallbackResponse, OrchestrationMessageType, PingMessage, PlayerCountMessage, PollingOrchestrationMessage, Quality, SSInfo, SignalDescriptor, SignalingData, SignalingMessageHandler, SignalingMessageMap, StreamConfig, StreamResolutionProps, TelemetryType, UnknownFields, UnquantizeAndDenormalizeUnsignedValue, UnrealCallBackJson, UnrealError, UnrealErrorType, UnrealInitialConfig, UnrealState, WSCloseCodesValues, WrappedMetaBoxCommandPacket };
1653
+ export { AFKService, AfkRestartScreenLockerComponent, AggregatorService, AnswerHandler, CONSOLE_COMMAND_DISABLE_MESSAGES, CONSOLE_COMMAND_ENABLE_MESSAGES, CONSOLE_COMMAND_PIXEL_QUALITY, ClickableOverlayComponent, CommandTelemetryService, ConfigHandler, ConsoleExtensionsService, DATA_CHANNEL_CONNECTION_TIMEOUT, DEBOUNCE_TO_MANY_RESIZE_CALLS, DEFAULT_TIMEOUT_PERIOD, DEFAULT_WARN_TIMEOUT, DataFlowMonitor, DevModeService, DisconnectReason, EControlSchemeType, EMessageType, EToClientMessageType, FULL_HD_HEIGHT, FULL_HD_WIDTH, FilterSettingsComponent, FreezeFrameComponent, FreezeFrameService, IceCandidateHandler, InputOptions, InputService, InstanceReadyHandler, InstanceReservedHandler, KalmanFilter1D, LatencyTimings, LowBandwidthDetectorComponent, LowBandwidthModalComponent, MINIMAL_FPS, MouseButton, MouseButtonsMask, OnCloseHandler, OnErrorHandler, OnMessageHandler, OnOpenHandler, OrchestrationMessageTypes, PingHandler, PlayerCountHandler, RegionsPingService, ResetTelemetry, SAME_SIZE_THRESHOLD, SCREEN_LOCKER_CONTAINER_ID, SSInfoHandler, STREAMING_VIDEO_ID, SafePipe, SignallingService, SpecialKeyCodes, StatGraphComponent, StreamStatusTelemetryService, SubService, TelemetryStart, TelemetryStop, UNREAL_CONFIG, UnrealCommunicatorService, UnrealEffects, UnrealInternalSignalEvents, UnrealSceneComponent, UnrealStatusMessage, VideoLockerComponent, VideoRecorder, VideoService, VideoStatsComponent, VideoStreamStatusService, WSCloseCode_NORMAL_AFK_TIMEOUT, WSCloseCode_NORMAL_CIRRUS_CLOSED, WSCloseCode_NORMAL_CLOSURE, WSCloseCode_NORMAL_MANUAL_DISCONNECT, WSCloseCodes, WS_OPEN_STATE, WS_TIMEOUT, WebRtcPlayerService, WebrtcErrorModalComponent, alignProductsToPlaneCommand, changeLowBandwidth, changeStatusMainVideoOnScene, changeStreamResolutionAction, changeStreamResolutionSuccessAction, clampAndKeepMaxPercents, clampPanToProductsCommand, commandCompleted, commandStarted, decodeData, destroyConnectionsAndResetState, destroyRemoteConnections, dispatchResize, filteredLogs, floatToSmoothPercents, forceResizeUnrealVideo, fromResizeObserver, fromSignal, fromUnrealCallBackSignal, getActiveUrl, getApplyCameraPresetCommand, getApplyZoomCommand, getCameraBoxCommand, getCameraRecenterCommand, getCameraSettingsCommand, getChangeGizmoTypeCommand, getChangeResolutionCommand, getClickSnapCommand, getControlSensitivityCommand, getDebugModeCommand, getDragCommand, getDragSequenceCommand, getDropCommand, getEnableComposureCommand, getEnableControlsCommand, getEnableSceneStateCallbackCommand, getEnableSpinnerModeCommand, getEnableTeleportCommand, getExecuteConsoleCommand, getFitToObjectsCommand, getFreezeFrameCommand, getImageFromVideoStream, getInitSequenceByObjectNameCommand, getJumpToSequenceCommand, getLoadLevelCommand, getLoadProductCommand, getLoadSceneStateCommand, getLoopBackCommand, getMoveSelectedCommand, getPauseSequenceCommand, getPlaySequenceCommand, getRequestCameraPresetCommand, getResetControlClampsCommand, getRotateSelectedCommand, getRtcErrorMessage, getSelectProductByObjectNameCommand, getSetCameraControlClampsCommand, getSetControlCameraModeCommand, getSetFpsCommand, getSetMaterialCommand, getSetPawnMovementModeCommand, getSetSettingsSequenceCommand, getStopSequenceCommand, getTakeRenderCommand, getTakeSpinnerRenderCommand, getTakeSpinnerRenderPreviewCommand, getUnLoadAllProductsCommand, getUnLoadProductByObjectNameCommand, getUnselectAllProductsCommand, getWeatherCommand, initSignalling, initialState, mapQpToQuality, observeCommandResponse, removeExileCommands, resetAfk, resetAfkAction, resetConfig, resetIntroSrc, resetUnrealState, resetUnrealStateAction, resetWarnTimeout, selectCommandProgress, selectCommandsInProgress, selectFreezeFrameCombinedDataUrl, selectFreezeFrameDataUrl, selectFreezeFrameDataUrlFromVideo, selectFreezeFrameProgressMessageFromVideo, selectIsAutostart, selectIsFreezeFrameLoading, selectIsVideoPlayingAndDataChannelConnected, selectLastCommandInProgress, selectLoaderCommands, selectMatchUrls, selectShowLoader, selectShowReconnectPopup, selectSignalingParameters, selectStreamConfig, selectTotalProgress, selectWarnTimeout, selectWsUrl, sendSignal, setAwsInstance, setCirrusConnected, setCirrusDisconnected, setConfig, setDataChannelConnected, setErrorMessage, setEstablishingConnection, setFreezeFrame, setFreezeFrameFromVideo, setIntroImageSrc, setIntroVideoSrc, setLoadingImageSrc, setLoopBackCommandIsCompleted, setMatchUrls, setMaxFps, setProductsLocationCommand, setSignalingName, setStatusMessage, setStatusPercentSignallingServer, setStreamClientCompanyId, setStreamViewId, setViewportReady, showUnrealErrorMessage, trackMixpanelEvent, unLoadAllLevelsCommand, unrealFeature, unrealReducer, updateCirrusInfo };
1654
+ export type { AnswerMessage, AwsInstance, CandidateMessage, CloseReason, CommandsLoaderState, ConfigMessage, DataFlowCheckResult, DisconnectType, EControlSchemeTypeValues, EMessageTypeValues, FreezeFrameMessage, IAggregatedStat, InboundVideoStats, InputProps, InstanceReady, InstanceReserved, LBMStats, MessageBase, NormalizeAndQuantizeSignedValue, NormalizeAndQuantizeUnsignedValue, ObservedCallbackResponse, OfferMessage, OrchestrationMessageType, PingMessage, PlayerCountMessage, PollingOrchestrationMessage, Quality, SSInfo, SignalDescriptor, SignalingData, SignalingMessageHandler, SignalingMessageMap, StreamConfig, StreamResolutionProps, StreamerListMessage, TelemetryType, UnknownFields, UnquantizeAndDenormalizeUnsignedValue, UnrealCallBackJson, UnrealError, UnrealErrorType, UnrealInitialConfig, UnrealState, WSCloseCodesValues, WrappedMetaBoxCommandPacket };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@3dsource/angular-unreal-module",
3
- "version": "0.0.33",
3
+ "version": "0.0.35-dev.0",
4
4
  "description": "Angular Unreal module for connect with unreal engine stream",
5
5
  "keywords": [
6
6
  "3dsource",
@@ -10,7 +10,7 @@
10
10
  ],
11
11
  "repository": {
12
12
  "type": "git",
13
- "url": "private"
13
+ "url": "git@bitbucket.org:dreamsoft/sourceui.git"
14
14
  },
15
15
  "license": "UNLICENSED",
16
16
  "author": "3dsource",