Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@circleci/circleci-config-sdk

Package Overview
Dependencies
Maintainers
144
Versions
61
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@circleci/circleci-config-sdk - npm Package Compare versions

Comparing version 0.3.1 to 0.4.0

dist/src/lib/Components/Commands/Native/AddSSHKeys.d.ts

5

dist/src/index.d.ts

@@ -1,7 +0,8 @@

export * as Command from './lib/Components/Commands';
export * as commands from './lib/Components/Commands';
export { Job } from './lib/Components/Job';
export { Workflow } from './lib/Components/Workflow';
export { WorkflowJob } from './lib/Components/Workflow/WorkflowJob';
export { Config } from './lib/Config';
export { Pipeline } from './lib/Config/Pipeline/index';
export * as Executor from './lib/Components/Executor';
export * as executor from './lib/Components/Executor';
//# sourceMappingURL=index.d.ts.map

12

dist/src/lib/Components/Commands/Command.d.ts

@@ -10,3 +10,7 @@ import { ParameterTypes } from '../../Config/Parameters';

constructor(name: string);
abstract generate(): CommandSchema;
}
/**
* Parameter definitions for the command.
*/
export interface CommandParameters {

@@ -16,8 +20,6 @@ /**

*/
name?: string;
[key: string]: ParameterTypes;
readonly name?: string;
readonly [key: string]: ParameterTypes;
}
export declare type CommandSchema = {
[key: string]: CommandParameters;
};
export declare type CommandSchema = Record<string, CommandParameters>;
//# sourceMappingURL=Command.d.ts.map
export { Run } from './Native/Run';
export { Checkout } from './Native/Checkout';
export * as Cache from './Native/Cache';
export * as Workspace from './Native/Workspace';
export * as cache from './Native/Cache';
export * as workspace from './Native/Workspace';
export { StoreTestResults } from './Native/StoreTestResults';
export { StoreArtifacts } from './Native/StoreArtifacts';
export { SetupRemoteDocker } from './Native/SetupRemoteDocker';
export { AddSSHKeys } from './Native/AddSSHKeys';
//# sourceMappingURL=index.d.ts.map
import { CommandSchema, Command, CommandParameters } from '../../Command';
/**
* Restores a previously saved cache based on a key. Cache needs to have been saved first for this key using save_cache step. Learn more in the caching documentation.
* Restores a previously saved cache based on a key..cache needs to have been saved first for this key using save_cache step. Learn more in the caching documentation.
*/

@@ -9,7 +9,10 @@ export declare class Restore extends Command {

/**
* Generate Restore Cache Command schema.
* @returns The generated JSON for the Restore Cache Command.
* Generate Restore.cache Command schema.
* @returns The generated JSON for the Restore.cache Commands.
*/
generate(): RestoreCacheCommandSchema;
}
/**
* Command parameters for the RestoreCache command
*/
export interface RestoreCacheParameters extends CommandParameters {

@@ -19,7 +22,11 @@ /**

*/
keys: string[];
readonly keys: string[];
}
export interface RestoreCacheCommandSchema extends CommandSchema {
/**
* JSON Schema for the RestoreCache command.
*/
interface RestoreCacheCommandSchema extends CommandSchema {
restore_cache: RestoreCacheParameters;
}
export {};
//# sourceMappingURL=Restore.d.ts.map

@@ -10,6 +10,9 @@ import { CommandSchema, Command, CommandParameters } from '../../Command';

* Generate Save Cache Command schema.
* @returns The generated JSON for the Save Cache Command.
* @returns The generated JSON for the Save Cache Commands.
*/
generate(): SaveCacheCommandSchema;
}
/**
* Command parameters for the SaveCache command
*/
export interface SaveCacheParameters extends CommandParameters {

@@ -29,2 +32,5 @@ /**

}
/**
* JSON Schema for the SaveCache command.
*/
export interface SaveCacheCommandSchema extends CommandSchema {

@@ -31,0 +37,0 @@ save_cache: SaveCacheParameters;

@@ -12,6 +12,9 @@ import { Command, CommandParameters, CommandSchema } from '../Command';

* Generate Checkout Command schema.
* @returns The generated JSON for the Checkout Command.
* @returns The generated JSON for the Checkout Commands.
*/
generate(): CheckoutCommandSchema;
}
/**
* Command parameters for the Checkout command
*/
export interface CheckoutParameters extends CommandParameters {

@@ -24,7 +27,5 @@ /**

}
export interface CheckoutCommandSchemaObject extends CommandSchema {
export interface CheckoutCommandSchema extends CommandSchema {
checkout: CheckoutParameters;
}
export declare type CheckoutCommandSchemaString = 'checkout';
export declare type CheckoutCommandSchema = CheckoutCommandSchemaObject | CheckoutCommandSchemaString;
//# sourceMappingURL=Checkout.d.ts.map

@@ -11,6 +11,9 @@ import { Command, CommandParameters, CommandSchema } from '../Command';

* Generate Run Command schema.
* @returns The generated JSON for the Run Command.
* @returns The generated JSON for the Run Commands.
*/
generate(): RunCommandSchema;
}
/**
* Command parameters for the Run command
*/
export interface RunParameters extends CommandParameters {

@@ -36,7 +39,7 @@ /**

*/
workingDirectory?: string;
working_directory?: string;
/**
* Elapsed time the command can run without output. The string is a decimal with unit suffix, such as “20m”, “1.25h”, “5s” (default: 10 minutes)
*/
noOutputTimeout?: string;
no_output_timeout?: string;
/**

@@ -47,2 +50,5 @@ * Specify when to enable or disable the step. (default: on_success)

}
/**
* JSON Schema for the Run command.
*/
export interface RunCommandSchema extends CommandSchema {

@@ -49,0 +55,0 @@ run: RunParameters;

@@ -12,6 +12,9 @@ import { Command, CommandParameters, CommandSchema } from '../Command';

* Generate SetupRemoteDocker Command schema.
* @returns The generated JSON for the SetupRemoteDocker Command.
* @returns The generated JSON for the SetupRemoteDocker Commands.
*/
generate(): SetupRemoteDockerCommandSchema;
}
/**
* Command parameters for the SetupRemoteDocker command
*/
export interface SetupRemoteDockerParameters extends CommandParameters {

@@ -24,2 +27,5 @@ /**

}
/**
* JSON Schema for the SetupRemoteDocker command.
*/
export interface SetupRemoteDockerCommandSchema extends CommandSchema {

@@ -26,0 +32,0 @@ setup_remote_docker: SetupRemoteDockerParameters;

@@ -11,6 +11,9 @@ import { Command, CommandParameters, CommandSchema } from '../Command';

* Generate StoreArtifacts Command schema.
* @returns The generated JSON for the StoreArtifacts Command.
* @returns The generated JSON for the StoreArtifacts Commands.
*/
generate(): StoreArtifactsCommandSchema;
}
/**
* Command parameters for the StoreArtifacts command
*/
export interface StoreArtifactsParameters extends CommandParameters {

@@ -26,2 +29,5 @@ /**

}
/**
* JSON Schema for the StoreArtifacts command.
*/
export interface StoreArtifactsCommandSchema extends CommandSchema {

@@ -28,0 +34,0 @@ store_artifacts: StoreArtifactsParameters;

@@ -11,6 +11,9 @@ import { Command, CommandParameters, CommandSchema } from '../Command';

* Generate StoreTestResults Command schema.
* @returns The generated JSON for the StoreTestResults Command.
* @returns The generated JSON for the StoreTestResults Commands.
*/
generate(): StoreTestResultsCommandSchema;
}
/**
* Command parameters for the StoreTestResults command
*/
export interface StoreTestResultsParameters extends CommandParameters {

@@ -22,2 +25,5 @@ /**

}
/**
* JSON Schema for the StoreTestResults command.
*/
export interface StoreTestResultsCommandSchema extends CommandSchema {

@@ -24,0 +30,0 @@ store_test_results: StoreTestResultsParameters;

@@ -9,10 +9,16 @@ import { Command, CommandParameters, CommandSchema } from '../../Command';

/**
* Generate Save Cache Command schema.
* @returns The generated JSON for the Save Cache Command.
* Generate Save.cache Command schema.
* @returns The generated JSON for the Save.cache Commands.
*/
generate(): AttachCommandSchema;
}
/**
* JSON Schema for the Attach command.
*/
export interface AttachCommandSchema extends CommandSchema {
attach_workspace: AttachParameters;
}
/**
* Command parameters for the Attach command
*/
export interface AttachParameters extends CommandParameters {

@@ -19,0 +25,0 @@ /**

@@ -9,10 +9,16 @@ import { Command, CommandParameters, CommandSchema } from '../../Command';

/**
* Generate Save Cache Command schema.
* @returns The generated JSON for the Save Cache Command.
* Generate Save.cache Command schema.
* @returns The generated JSON for the Save.cache Commands.
*/
generate(): PersistCommandSchema;
}
/**
* JSON Schema for the Persist command.
*/
export interface PersistCommandSchema extends CommandSchema {
persist_to_workspace: PersistParameters;
}
/**
* Command parameters for the Persist command
*/
export interface PersistParameters extends CommandParameters {

@@ -19,0 +25,0 @@ /**

@@ -11,6 +11,3 @@ import { AbstractExecutor } from '../../Components/Executor/Executor';

* The name of a custom Docker image to use.
* @example
* ```
* "cimg/base:stable"
* ```
* @example "cimg/base:stable"
*/

@@ -17,0 +14,0 @@ image: DockerImage;

import { DockerImageSchema } from './DockerImage';
/**
* A JSON representation of the Docker Executor Schema
* To be converted to YAML
*/
export interface DockerExecutorSchema {

@@ -3,0 +7,0 @@ docker: DockerImageSchema[];

@@ -0,1 +1,5 @@

/**
* A JSON representation of the MacOS Executor Schema
* To be converted to YAML
*/
export interface MacOSExecutorSchema {

@@ -2,0 +6,0 @@ macos: {

@@ -0,1 +1,5 @@

/**
* A JSON representation of the Windows Executor Schema
* To be converted to YAML
*/
export interface WindowsExecutorSchema {

@@ -2,0 +6,0 @@ machine: {

@@ -0,4 +1,7 @@

/**
* @internal
*/
export declare abstract class Component {
/**
* Generate the CircleCI YAML equivelant JSON for config compilation
* Generate the CircleCI YAML equivalent JSON for config compilation
*/

@@ -5,0 +8,0 @@ abstract generate(): unknown;

@@ -33,3 +33,3 @@ import { Command } from '../Commands/Command';

*/
generate(): JobSchema;
generate(): unknown;
/**

@@ -36,0 +36,0 @@ * Add steps to the current Job. Chainable.

import { Job } from '../Job';
import { WorkflowJobParameters, WorkflowSchema } from './Workflow';
import { WorkflowJobParameters } from './Workflow';
import { WorkflowJob } from './WorkflowJob';

@@ -19,3 +19,3 @@ /**

* @param name - Name your workflow. Must be unique.
* @param jobs - A list of jobs to executute as part of your Workflow.
* @param jobs - A list of jobs to be executed as part of your Workflow.
*/

@@ -27,6 +27,5 @@ constructor(name: string, jobs?: Job[]);

*/
generate(): WorkflowSchema;
generate(): unknown;
/**
* Add a Job to the current Workflow. Chainable
* @param workflowJob - Injectable Job with parameters
*/

@@ -33,0 +32,0 @@ addJob(job: Job, parameters?: WorkflowJobParameters): this;

@@ -12,17 +12,17 @@ import { ParameterTypes } from '../../Config/Parameters';

*/
requires?: string[];
name?: string;
context?: string[];
readonly requires?: string[];
readonly name?: string;
readonly context?: string[];
/**
* {@link https://circleci.com/docs/2.0/configuration-reference/#filters} Filter workflow job's execution by branch or git tag.
*/
filters?: WorkflowFilterSchema;
readonly filters?: WorkflowFilterSchema;
/**
* {@link https://circleci.com/docs/2.0/configuration-reference/#matrix-requires-version-21} The matrix stanza allows you to run a parameterized job multiple times with different arguments.
*/
matrix?: WorkflowMatrixSchema;
readonly matrix?: WorkflowMatrixSchema;
/**
* An "approval" type job is a special job which pauses the workflow. This "job" is not defined outside of the workflow, you may enter any potential name for the job name. As long as the parameter of "type" is present and equal to "approval" this job will act as a placeholder that awaits user input to continue.
*/
type?: 'approval';
readonly jobType?: 'approval';
[key: string]: WorkflowParameterTypes;

@@ -34,3 +34,3 @@ }

context?: string[];
type?: 'approval';
jobType?: 'approval';
filters?: WorkflowFilterSchema;

@@ -37,0 +37,0 @@ matrix?: WorkflowMatrixSchema;

@@ -5,3 +5,6 @@ import { Component } from '../index';

/**
* Assign Parameters and Filters to a Job within a Workflow
* Assign Parameters and Filters to a Job within a Workflow.
* Utility class for assigning parameters to a job.
* Should only be instantiated for specific use cases.
* @see {@link Workflow.addJob} for general use.
*/

@@ -8,0 +11,0 @@ export declare class WorkflowJob extends Component {

@@ -1,6 +0,4 @@

import { Command, CommandSchema } from '../Components/Commands/Command';
import { Command } from '../Components/Commands/Command';
import { Job } from '../Components/Job';
import { JobSchema } from '../Components/Job/index';
import { Workflow } from '../Components/Workflow';
import { WorkflowSchema } from '../Components/Workflow/Workflow';
import { Pipeline } from './Pipeline';

@@ -58,8 +56,10 @@ /**

}
export declare type ConfigVersion = 2 | 2.1;
export interface ConfigOrbImport {
orbAlias: string;
orbImport: string;
}
export interface CircleCIConfigObject {
/**
* Selected config version
*/
declare type ConfigVersion = 2 | 2.1;
/**
* CircleCI configuration object
*/
interface CircleCIConfigObject {
version: ConfigVersion;

@@ -70,10 +70,3 @@ jobs?: Job[];

}
export interface CircleCIConfigSchema {
version: ConfigVersion;
setup: boolean;
orbs?: ConfigOrbImport[];
jobs: JobSchema;
commands?: CommandSchema;
workflows: WorkflowSchema;
}
export {};
//# sourceMappingURL=index.d.ts.map
export declare class Git {
private _isLocal;
_isLocal: boolean;
constructor(isLocal: boolean);

@@ -4,0 +4,0 @@ /**

import { EnumParameter } from '../Parameters';
/**
* A Pipeline Parameter
* @see {@link https://circleci.com/docs/2.0/pipeline-variables/#pipeline-parameters-in-configuration}
*/
export declare class PipelineParameter<ParameterType> {
name: string;
defaultValue: PipelineParameterValueTypes;
type: ParameterTypeLiteral;
parameterType: ParameterTypeLiteral;
enumValues: EnumParameter;
constructor(name: string, defaultValue: ParameterType, enumValues?: EnumParameter);
get value(): ParameterType;
generate(): PipelineParameterSchema;
generate(): unknown;
private validateEnum;

@@ -15,3 +19,3 @@ }

[parameterName: string]: {
type: ParameterTypeLiteral;
parameterType: ParameterTypeLiteral;
default: string | number | boolean;

@@ -18,0 +22,0 @@ enum?: string[];

@@ -0,1 +1,4 @@

/**
* Pipeline Project level information
*/
export declare class Project {

@@ -11,4 +14,4 @@ private _isLocal;

*/
get type(): 'bitbucket' | 'github' | 'local';
get vcs(): 'bitbucket' | 'github' | 'local';
}
//# sourceMappingURL=Project.d.ts.map
{
"name": "@circleci/circleci-config-sdk",
"version": "0.3.1",
"version": "0.4.0",
"description": "An SDK for building CircleCI Configuration files with JavaScript.",

@@ -8,3 +8,3 @@ "main": "dist/circleci-config-sdk.js",

"scripts": {
"test": "jest && npm run build:docs",
"test": "npx jest && npm run build:docs",
"lint": "eslint . --ext .js,.jsx,.ts,.tsx --max-warnings 0",

@@ -15,3 +15,3 @@ "prettier": "prettier --write .",

"build": "rm -rf ./dist && npx webpack --mode production",
"build:docs": "typedoc",
"build:docs": "typedoc --logLevel Verbose --listInvalidSymbolLinks --internalNamespace internalTypes",
"prepare": "husky install",

@@ -24,3 +24,6 @@ "sink": "npm run prettier && npm run lint && npm run test && npm run build && npm run build:docs"

},
"author": "@TechSquidTV (Kyle Tryon)",
"author": {
"name": "Kyle Tryon",
"email": "community-partner@circleci.com"
},
"license": "MIT",

@@ -32,3 +35,3 @@ "bugs": {

"devDependencies": {
"@types/jest": "^26.0.23",
"@types/jest": "^27.0.2",
"@types/node": "^14.14.37",

@@ -44,11 +47,12 @@ "@types/webpack": "^5.0.0",

"husky": "^6.0.0",
"jest": "^26.6.3",
"jest": "^27.3.0",
"lint-staged": "^11.0.0",
"prettier": "^2.3.1",
"ts-jest": "^26.5.4",
"ts-loader": "^8.0.18",
"ts-jest": "^27.0.6",
"ts-loader": "^9.2.6",
"ts-node": "^9.1.1",
"typedoc": "^0.20.34",
"typedoc": "^0.22.5",
"typedoc-plugin-missing-exports": "^0.22.3",
"typescript": "^4.2.3",
"webpack": "^5.28.0",
"webpack": "^5.58.2",
"webpack-cli": "^4.5.0",

@@ -72,3 +76,7 @@ "webpack-node-externals": "^2.5.2"

]
}
},
"stability": "stable",
"bundleDependencies": [
"yaml"
]
}

@@ -1,19 +0,40 @@

[![CircleCI Build Status](https://circleci.com/gh/CircleCI-Public/circleci-config-sdk-ts.svg?style=shield 'CircleCI Build Status')](https://circleci.com/gh/CircleCI-Public/circleci-config-sdk-ts)
# CircleCI Config SDK
[![GitHub License](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/circleci-public/circleci-config-sdk-ts/blob/main/LICENSE)
[![CircleCI](https://img.shields.io/circleci/build/gh/CircleCI-Public/circleci-config-sdk-ts/main?logo=circleci&token=5fcb5715c180e9f7d3a076d95779cd88f75d2093)](https://app.circleci.com/pipelines/github/CircleCI-Public/circleci-config-sdk-ts)
[![npm](https://img.shields.io/npm/v/@circleci/circleci-config-sdk?logo=npm)](https://www.npmjs.com/package/@circleci/circleci-config-sdk)
[![codecov](https://codecov.io/gh/CircleCI-Public/circleci-config-sdk-ts/branch/main/graph/badge.svg?token=Z4C4RXABS7)](https://codecov.io/gh/CircleCI-Public/circleci-config-sdk-ts)
[![GitHub License](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/circleci-public/circleci-config-sdk-ts/blob/main/LICENSE)
[![npm](https://img.shields.io/npm/dm/@circleci/circleci-config-sdk?logo=npm)](https://www.npmjs.com/package/@circleci/circleci-config-sdk)
# CircleCI Config SDK (TypeScript)
Create and manage your CircleCI configuration files with JavaScript and
TypeScript.
Create and manage your CircleCI config with JavaScript and TypeScript.
## Table of Contents
[View the SDK Docs](https://furry-adventure-3f2b45c4.pages.github.io/modules.html)
- [Getting Started](#getting-started)
- [Getting Help](#getting-help)
- [Contributing](#contributing)
## Installation
## Getting Started
- [View the Getting Started Wiki](https://github.com/CircleCI-Public/circleci-config-sdk-ts/wiki)
- [View the SDK API Docs](http://circleci-public.github.io/circleci-config-sdk-ts)
- [Examples](https://github.com/CircleCI-Public/circleci-config-sdk-ts/tree/main/sample)
### Installation
Using npm:
```shell
$ npm i --save @circleci/circleci-config-sdk
$ npm i @circleci/circleci-config-sdk
```
Using yarn:
```shell
$ yarn add @circleci/circleci-config-sdk
```
#### Usage
In Node.js:

@@ -28,6 +49,6 @@

```javascript
var CircleCI = require('@circleci/circleci-config-sdk');
const CircleCI = require('@circleci/circleci-config-sdk');
```
## Example
### Example

@@ -38,2 +59,3 @@ Generate a CircleCI config using TypeScript/Javascript, properly typed for full

```typescript
const CircleCI = require('@circleci/circleci-config-sdk');
// Instantiate new Config

@@ -48,3 +70,3 @@ const myConfig = new CircleCI.Config();

// and do not need to be added to the config separately
const nodeExecutor = new CircleCI.Executor.DockerExecutor('cimg/node:lts');
const nodeExecutor = new CircleCI.executor.DockerExecutor('cimg/node:lts');

@@ -57,4 +79,5 @@ // Create Job and add it to the config

nodeTestJob
.addStep(new CircleCI.commands.Checkout())
.addStep(
new CircleCI.Command.Run({
new CircleCI.commands.Run({
command: 'npm install',

@@ -65,3 +88,3 @@ name: 'NPM Install',

.addStep(
new CircleCI.Command.Run({
new CircleCI.commands.Run({
command: 'npm run test',

@@ -83,2 +106,3 @@ name: 'Run tests',

version: 2.1
setup: false
jobs:

@@ -88,3 +112,5 @@ node-test:

- image: cimg/node:lts
resource_class: medium
steps:
- checkout: {}
- run:

@@ -101,1 +127,31 @@ command: npm install

```
## Getting Help
This open-source project utilized GitHub issues and project boards to manage
requests and support.
If you can not find an answer to your question in an existing
[issue](https://github.com/CircleCI-Public/circleci-config-sdk-ts/issues?q=),
you may open a new issue with the appropriate template. Issues are the best way
for the CircleCI team and the open-source community to track and interact with
your questions.
### Resources
Consider checking the following common resources before opening a new issue.
- [CircleCI Config Reference](https://circleci.com/docs/2.0/configuration-reference/)
- [Config SDK API Documentation](http://circleci-public.github.io/circleci-config-sdk-ts)
- [FAQ](https://github.com/CircleCI-Public/circleci-config-sdk-ts/wiki/FAQ#what-features-of-circleci-config-are-not-supported-by-this-sdk)
# Contributing
This repository welcomes community contributions! See our
[CONTRIBUTING.md](https://github.com/CircleCI-Public/circleci-config-sdk-ts/blob/main/CONTRIBUTING.md)
for guidance on configuring your development environment and how to submit
quality pull requests.
# Related
- [Visual Config Editor](https://github.com/CircleCI-Public/visual-config-editor)

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc