
Research
/Security News
Intercom’s npm Package Compromised in Ongoing Mini Shai-Hulud Worm Attack
Compromised intercom-client@7.0.4 npm package is tied to the ongoing Mini Shai-Hulud worm attack targeting developer and CI/CD secrets.
@timebutt/ics-js
Advanced tools
Create ICS files in ES6. Works in Node.js or in the browser.
NOTE: Please check out immutable-ics for a better JavaScript ICS solution.
npm install --save ics-js
Import the module:
import * as ICS from 'ics-js';
Or import just what is needed:
import { VCALENDAR, VEVENT } from 'ics-js';
const cal = new ICS.VCALENDAR();
The following components are implenented:
VCALENDARVEVENTVALARMVTODO/**
* Component#addProp(name, value, props = {}, skipTransformer = false)
*
* @param {string} name - Name of the property (e.g. DTSTAMP).
* @param {*} [value] - Value of the property.
* @param {Object} [props={}] - Object of properties for the property. Object keys and values are directly injected.
* @param {boolean} [skipTransformer=false] - Explicitly determine if the property's value is transformed.
*/
cal.addProp('VERSION', 2) // Number(2) is converted to '2.0'
cal.addProp('PRODID', 'XYZ Corp');
Each component contains a list of property validations. Only valid properties can be added according to the RFC 5545 spec.
The following properties are implemented:
| Name | Input | Output |
|---|---|---|
CATEGORIES | Array<String> | Array items separated by , |
CREATED | Date | Formatted date to spec |
DTEND | Date | Formatted date to spec |
DTSTAMP | Date | Formatted date to spec |
DTSTART | Date | Formatted date to spec |
DUE | Date | Formatted date to spec |
EXDATE | Array<Date> | Array items separated by , formatted to spec |
GEO | Array<Float> | Array items separated by ; (should be [x, y]) |
LAST-MODIFIED | Date | Formatted date to spec |
RDATE | Date | Formatted date to spec |
TRANSP | Boolean | TRANSPARENT if true, OPAQUE if false |
UID | String or none | If no input is provided, generates a random GUID |
VERSION | Number | Float with 1 decimal to spec |
All other properties (e.g. SUMMARY, LOCATION) are stored as-is without
transformations.
const event = new ICS.VEVENT();
event.addProp('UID');
event.addProp('DTSTAMP', new Date('2015-07-18 10:00:00'), { VALUE: 'DATE-TIME' });
event.addProp('ATTENDEE', null, {
CN: 'Sample Company',
RSVP: 'FALSE:mailto:foo@example.com'
})
cal.addComponent(event);
Each component contains a list of valid nested components. Only valid components can be nested according to the RFC 5545 spec.
cal.toString(); // Returns a string
cal.toBlob(); // Returns a Blob (or throws IncompatiblePlatform if Blob is undefined)
cal.toBase64(); // Returns a base64 encoded string
FAQs
Create ICS files in ES6
The npm package @timebutt/ics-js receives a total of 3 weekly downloads. As such, @timebutt/ics-js popularity was classified as not popular.
We found that @timebutt/ics-js demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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.

Research
/Security News
Compromised intercom-client@7.0.4 npm package is tied to the ongoing Mini Shai-Hulud worm attack targeting developer and CI/CD secrets.

Research
Socket detected a malicious supply chain attack on PyPI package lightning versions 2.6.2 and 2.6.3, which execute credential-stealing malware on import.

Research
A brand-squatted TanStack npm package used postinstall scripts to steal .env files and exfiltrate developer secrets to an attacker-controlled endpoint.