Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
@afp/data-driven-video-ui
Advanced tools
Main interface to make data driven videos
Made with ❤️ by AFP Graphics Team. Based on vue-webpack-template v0.2.1.
The interface wait for the template to get his config file. Then based on the config it populates the form. Then you can send a preview of your settings or generate all the videos you want.
So there is 2 config files, one for building the form, the other for manipulating the template.
The form config is divided in 2 parts:
specific
settings: divided in two parts
general
settings: codec, format, everything related to ffmpegEach input is generated by an input item model. Here is a exemple of one:
{
type: 'number', // the input type
name: videoWidth, // the future variable name
label: 'Width', // the displayed label
value: 1920 // the initial value
}
The type
value can be: text
, number
, url
, select
, textarea
, or checkbox
.
Each model is transmitted to the SettingsForm
through props or a config file. It's the SettingsForm
component who's in charge to convert those models input reactive inputs.
The SettingsForm
import the GENERAL_MODEL
array to get the main video options like dimension, number of fps, codec, etc. Thoses options are shared by all videos, that's why it' inside a config file. To be easily manipulable and maintainable. You can find the config file in src/config/index.js.
The SettingsForm
receive the specificModel through 2 props: specificOriginModel
, and specificTranslationsModel
. The models follow the same guideline as above and are exposed by the template himself via (To be defined).
The SettingsForm
loop through models entries, generate the appropriate input and bind dynamically it to his $data
.
Then a computed property called configs
generate an array of config that will be transmitted to the ddv docker server. Each config can be sent to the preview to see if the preset fit well.
config
objectThe SettingsForm
keep up to date an array of config
object. This is what will be sent to the ddv tool. Here is an exemple of one:
{
general: {
videoTitle: '',
videoWidth: 1920,
videoHeight: 1080,
fps: 25,
fileFormat: 'mov',
codec: 'prores',
hd: false,
filename: '1920_1080_25fps_prores_vo.mov'
},
data: {
locale: null, // if locale is null, then it's the original version
tweetUrl: 'https://twitter.com/realDonaldTrump/status/1008725438972211200',
traductionContent: null // So the translation items will be null too.
}
}
The template will receive an object with two keys, one named general
with the ffmpeg parameters and a seconde one data
who cares about all the data needed by the template.
# install dependencies
npm install
# serve with hot reload at localhost:8080
npm run dev
# build for production with minification
npm run build
FAQs
Main interface to generate data driven videos
The npm package @afp/data-driven-video-ui receives a total of 47 weekly downloads. As such, @afp/data-driven-video-ui popularity was classified as not popular.
We found that @afp/data-driven-video-ui demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.