New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

linearcreate

Package Overview
Dependencies
Maintainers
0
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

linearcreate - npm Package Compare versions

Comparing version
1.0.12
to
1.0.13
+3
-10
package.json
{
"name": "linearcreate",
"version": "1.0.12",
"version": "1.0.13",
"description": "A CLI tool to create Linear issues and generate branch names",

@@ -11,5 +11,3 @@ "main": "dist/lc.js",

"build": "tsc",
"prepare": "npm run build",
"start": "ts-node src/lc.ts",
"prepublishOnly": "npm run build"
"prepare": "npm run build"
},

@@ -26,8 +24,3 @@ "dependencies": {

"@types/yargs": "^17.0.33",
"ts-node": "^10.9.1",
"typescript": "^5.2.2",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.1.3",
"prettier": "^3.0.0"
"typescript": "^5.2.2"
},

@@ -34,0 +27,0 @@ "files": [

#!/usr/bin/env node
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const sdk_1 = require("@linear/sdk");
const clipboardy_1 = __importDefault(require("clipboardy"));
const dotenv_1 = __importDefault(require("dotenv"));
const open_1 = __importDefault(require("open"));
const yargs_1 = __importDefault(require("yargs"));
const helpers_1 = require("yargs/helpers");
const path_1 = __importDefault(require("path"));
// Load environment variables
dotenv_1.default.config({ path: path_1.default.join(__dirname, '..', '.env') });
if (!process.env.LINEAR_API_KEY || !process.env.USER_ID || !process.env.DEFAULT_TEAM_STUB) {
console.error("Error: LINEAR_API_KEY, USER_ID, or DEFAULT_TEAM_STUB is not set in your environment variables.");
process.exit(1);
}
const linearClient = new sdk_1.LinearClient({ apiKey: process.env.LINEAR_API_KEY });
async function createIssueWithBranch(title, teamStub) {
try {
// Fetch the organization
const organization = await linearClient.organization;
// Fetch the teams
const teams = await organization.teams();
const team = teams.nodes.find((t) => t.key.toLowerCase() === teamStub.toLowerCase());
if (!team) {
throw new Error(`No team found with stub: ${teamStub}`);
}
// Create the issue
const issuePayload = await linearClient.createIssue({
title,
teamId: team.id,
assigneeId: process.env.USER_ID,
});
if (!issuePayload.success || !issuePayload.issue) {
throw new Error("Failed to create issue");
}
const issue = await issuePayload.issue;
// Generate the branch name
const sanitizedTitle = title
.toLowerCase()
.replace(/[^a-z0-9]+/g, "-")
.replace(/^-+|-+$/g, "")
.substring(0, 50); // Limit length to 50 characters
// Fetch the user
if (!process.env.USER_ID) {
throw new Error("USER_ID is not set in your environment variables.");
}
const user = await linearClient.user(process.env.USER_ID);
if (!user) {
throw new Error("Failed to fetch user");
}
const branchName = `${user.name.toLowerCase().replace(/\s+/g, '')}/${issue.identifier.toLowerCase()}-${sanitizedTitle}`;
return { issue, branchName };
}
catch (error) {
throw error;
}
}
async function main() {
const argv = await (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv))
.command("$0 <ticketName>", "Create a new Linear issue and generate a branch name", (yargs) => {
return yargs
.positional("ticketName", {
describe: "Name of the ticket",
type: "string",
demandOption: true,
})
.option("teamstub", {
alias: "t",
type: "string",
description: "Team stub (e.g., bknd, frtd)",
default: process.env.DEFAULT_TEAM_STUB,
})
.option("open", {
alias: "o",
type: "boolean",
description: "Open the ticket in Linear",
default: false,
});
})
.help()
.parse();
try {
const { issue, branchName } = await createIssueWithBranch(argv.ticketName, argv.teamstub);
if (argv.open) {
console.log(`Opening issue in Linear: ${issue.url}`);
await (0, open_1.default)(issue.url);
}
else {
await clipboardy_1.default.write(branchName);
console.log(`Branch name copied to clipboard: ${branchName}`);
}
console.log(`Issue created: ${issue.title} (${issue.identifier})`);
}
catch (error) {
console.error("Error:", error);
process.exit(1);
}
}
main();
//# sourceMappingURL=lco.js.map
{"version":3,"file":"lco.js","sourceRoot":"","sources":["../src/lco.ts"],"names":[],"mappings":";;;;;;AAEA,qCAA2C;AAC3C,4DAAoC;AACpC,oDAA4B;AAC5B,gDAAwB;AACxB,kDAA0B;AAC1B,2CAAwC;AACxC,gDAAwB;AAExB,6BAA6B;AAC7B,gBAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAE5D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;IAC1F,OAAO,CAAC,KAAK,CAAC,gGAAgG,CAAC,CAAC;IAChH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,YAAY,GAAG,IAAI,kBAAY,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;AAE9E,KAAK,UAAU,qBAAqB,CAAC,KAAa,EAAE,QAAgB;IAClE,IAAI,CAAC;QACH,yBAAyB;QACzB,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC;QAErD,kBAAkB;QAClB,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,CACtD,CAAC;QACF,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,mBAAmB;QACnB,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC;YAClD,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;SAChC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC;QAEvC,2BAA2B;QAC3B,MAAM,cAAc,GAAG,KAAK;aACzB,WAAW,EAAE;aACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;aAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;aACvB,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gCAAgC;QAErD,iBAAiB;QACjB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,cAAc,EAAE,CAAC;QAExH,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,MAAM,IAAA,eAAK,EAAC,IAAA,iBAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC5C,OAAO,CACN,iBAAiB,EACjB,sDAAsD,EACtD,CAAC,KAAU,EAAE,EAAE;QACb,OAAO,KAAK;aACT,UAAU,CAAC,YAAY,EAAE;YACxB,QAAQ,EAAE,oBAAoB;YAC9B,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,IAAI;SACnB,CAAC;aACD,MAAM,CAAC,UAAU,EAAE;YAClB,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,8BAA8B;YAC3C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;SACvC,CAAC;aACD,MAAM,CAAC,MAAM,EAAE;YACd,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,2BAA2B;YACxC,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACP,CAAC,CACF;SACA,IAAI,EAAE;SACN,KAAK,EAAE,CAAC;IAEX,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,qBAAqB,CACvD,IAAI,CAAC,UAAoB,EACzB,IAAI,CAAC,QAAkB,CACxB,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACrD,MAAM,IAAA,cAAI,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,MAAM,oBAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,oCAAoC,UAAU,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}