New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@octopusdeploy/api-client

Package Overview
Dependencies
Maintainers
4
Versions
35
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@octopusdeploy/api-client - npm Package Compare versions

Comparing version 1.1.7 to 1.2.1

dist/client.test.d.ts

30

CHANGELOG.md
# Changelog
## [1.2.1](https://github.com/OctopusDeploy/api-client.ts/compare/v1.1.7...v1.2.1) (2022-06-27)
### Features
* added configuration processor, moved code ([aa5d971](https://github.com/OctopusDeploy/api-client.ts/commit/aa5d97195a9c88830ec2c68aed9cc93a4666f363))
* added environment variables constants ([44cc7b2](https://github.com/OctopusDeploy/api-client.ts/commit/44cc7b2748111f529605010303dd0e4beb23fb61))
* reflected changes to message contracts ([1c72122](https://github.com/OctopusDeploy/api-client.ts/commit/1c72122ec3002d2a2a90fd4e65dd587dcc60d74c))
* replaced random name with UUIDs for uniqueness ([ff154a8](https://github.com/OctopusDeploy/api-client.ts/commit/ff154a88c33a4d80150f0aae11988e9d4cc771c3))
* updated client ([1800da9](https://github.com/OctopusDeploy/api-client.ts/commit/1800da9dc39ab24006ec7d04e0368217fbc7a1ca))
* updated DeploymentOptions with stronger typing ([c16e070](https://github.com/OctopusDeploy/api-client.ts/commit/c16e0701a1c184520f21e91143d6857b577f755a))
* updated stronger typing ([986880e](https://github.com/OctopusDeploy/api-client.ts/commit/986880ecf0d678f6914c29f3a6722d160467e558))
* updated to strong typing enforcement ([7f902bd](https://github.com/OctopusDeploy/api-client.ts/commit/7f902bdf61f16445963f8033d85a4a0e977ce42f))
* updated to stronger typing ([eb83e52](https://github.com/OctopusDeploy/api-client.ts/commit/eb83e5285955dacac371837d8aa04638ecfa9d74))
* updated to stronger typing enforcement ([2c57b5c](https://github.com/OctopusDeploy/api-client.ts/commit/2c57b5cfbeb2c1dbf4eaee189a17f2ae977b9712))
* updated typing for deploy release ([ce857a9](https://github.com/OctopusDeploy/api-client.ts/commit/ce857a9ed2241196fff701b0f56ac53b61f7f249))
### Bug Fixes
* updated error handling ([375a0e2](https://github.com/OctopusDeploy/api-client.ts/commit/375a0e296328caf563d1491e0ab1f45dc7c90f41))
* updated publish workflow ([274521a](https://github.com/OctopusDeploy/api-client.ts/commit/274521a4ef2fb9582327a0ce7ee026248c6c386a))
* updated space name ([545fe58](https://github.com/OctopusDeploy/api-client.ts/commit/545fe58b89390701e90fc90f404be3c980b505e8))
### Miscellaneous Chores
* release 1.2.0 ([813c372](https://github.com/OctopusDeploy/api-client.ts/commit/813c3726e2dc846533b73d9731cfcf0782fc9773))
* release 1.2.1 ([332017b](https://github.com/OctopusDeploy/api-client.ts/commit/332017bc73798669562b4faafcee388269784666))
### [1.1.7](https://www.github.com/OctopusDeploy/api-client.ts/compare/v1.1.6...v1.1.7) (2021-12-02)

@@ -4,0 +34,0 @@

5

dist/adapter.d.ts
import type { ClientOptions } from "./clientOptions";
export interface Adapter<TResource> {
execute: (options: ClientOptions) => Promise<TResource & AdapterResponse>;
execute: (options: ClientOptions) => Promise<AdapterResponse<TResource>>;
}
export interface AdapterResponse {
export interface AdapterResponse<TResource> {
statusCode: number;
data: TResource;
}

@@ -8,0 +9,0 @@ export declare class AdapterError {

2

dist/adapters/axiosAdapter.d.ts
import type { Adapter, AdapterResponse } from "../adapter";
import { ClientOptions } from "../clientOptions";
export declare class AxiosAdapter<TResource> implements Adapter<TResource> {
execute(options: ClientOptions): Promise<TResource & AdapterResponse>;
execute(options: ClientOptions): Promise<AdapterResponse<TResource>>;
}
"use strict";
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

@@ -54,4 +43,4 @@ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }

exports.AxiosAdapter = void 0;
var axios_1 = __importDefault(require("axios"));
var adapter_1 = require("../adapter");
var axios_1 = __importDefault(require("axios"));
var AxiosAdapter = /** @class */ (function () {

@@ -61,8 +50,22 @@ function AxiosAdapter() {

AxiosAdapter.prototype.execute = function (options) {
var _a, _b;
return __awaiter(this, void 0, void 0, function () {
function formatError(response) {
if (!response.data) {
return undefined;
}
var message = response.data.ErrorMessage;
if (response.data.Errors) {
var errors = response.data.Errors;
for (var i = 0; i < errors.length; i++) {
message += "\n".concat(errors[i]);
}
}
return message;
}
var config, response, error_1;
return __generator(this, function (_a) {
switch (_a.label) {
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
_a.trys.push([0, 2, , 3]);
_c.trys.push([0, 2, , 3]);
config = {

@@ -74,17 +77,22 @@ httpsAgent: options.configuration.agent,

headers: {
"X-Octopus-ApiKey": options.configuration.apiKey
"X-Octopus-ApiKey": (_a = options.configuration.apiKey) !== null && _a !== void 0 ? _a : "",
},
responseType: "json",
};
if (typeof XMLHttpRequest === 'undefined') {
config.headers["User-Agent"] = "ts-octopusdeploy";
if (typeof XMLHttpRequest === "undefined") {
if (config.headers) {
config.headers["User-Agent"] = "ts-octopusdeploy";
}
}
return [4 /*yield*/, axios_1.default.request(config)];
case 1:
response = _a.sent();
return [2 /*return*/, __assign(__assign({}, response.data), { statusCode: response.status })];
response = _c.sent();
return [2 /*return*/, {
data: response.data,
statusCode: response.status,
}];
case 2:
error_1 = _a.sent();
error_1 = _c.sent();
if (axios_1.default.isAxiosError(error_1) && error_1.response) {
throw new adapter_1.AdapterError(error_1.response.status, error_1.message);
throw new adapter_1.AdapterError(error_1.response.status, (_b = formatError(error_1.response)) !== null && _b !== void 0 ? _b : error_1.message);
}

@@ -91,0 +99,0 @@ else {

@@ -39,4 +39,4 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var message_contracts_1 = require("@octopusdeploy/message-contracts");
var adapter_1 = require("./adapter");
var message_contracts_1 = require("@octopusdeploy/message-contracts");
var axiosAdapter_1 = require("./adapters/axiosAdapter");

@@ -55,22 +55,28 @@ var ApiClient = /** @class */ (function () {

}
_this.options.success(deserialize(JSON.stringify(response), _this.options.raw));
var responseText = "";
if (_this.options.raw) {
responseText = response.data;
}
else {
responseText = JSON.stringify(response.data);
if (responseText && responseText.length > 0) {
responseText = JSON.parse(responseText);
}
}
_this.options.success(responseText);
};
this.handleError = function (requestError) { return __awaiter(_this, void 0, void 0, function () {
var err, details;
return __generator(this, function (_a) {
err = generateOctopusError(requestError);
if (this.options.onErrorResponseCallback) {
details = {
method: this.options.method,
url: this.options.url,
statusCode: err.StatusCode,
errorMessage: err.ErrorMessage,
errors: err.Errors,
};
this.options.onErrorResponseCallback(details);
}
this.options.error(err);
return [2 /*return*/];
});
}); };
this.handleError = function (requestError) {
var err = generateOctopusError(requestError);
if (_this.options.onErrorResponseCallback) {
var details = {
method: _this.options.method,
url: _this.options.url,
statusCode: err.StatusCode,
errorMessage: err.ErrorMessage,
errors: err.Errors,
};
_this.options.onErrorResponseCallback(details);
}
_this.options.error(err);
};
this.options = options;

@@ -96,4 +102,7 @@ this.adapter = new axiosAdapter_1.AxiosAdapter();

}
else if (error_1 instanceof Error) {
this.options.error(error_1);
}
else {
console.error(error_1);
this.options.error(Error("An unknown error occurred: ".concat(error_1)));
}

@@ -100,0 +109,0 @@ return [3 /*break*/, 3];

@@ -10,3 +10,3 @@ declare class Caching {

clearAll(): void;
setHeaderAndGetValue(request: any, options: any): string;
setHeaderAndGetValue(request: any, options: any): string | undefined;
updateCache(request: any, options: any): void;

@@ -13,0 +13,0 @@ canUseCachedValue(request: any): boolean;

import type { GlobalRootLinks, OctopusError, SpaceRootLinks } from "@octopusdeploy/message-contracts";
import type { RouteArgs } from "./resolver";
import type { Callback } from "./subscriptionRecord";
import type { ClientConfiguration } from "./clientConfiguration";
import { ClientConfiguration } from "./clientConfiguration";
import type { ClientErrorResponseDetails } from "./clientErrorResponseDetails";

@@ -9,3 +7,4 @@ import type { ClientRequestDetails } from "./clientRequestDetails";

import { ClientSession } from "./clientSession";
import { SubscriptionRecord } from "./subscriptionRecord";
import { RouteArgs } from "./resolver";
import { Callback, SubscriptionRecord } from "./subscriptionRecord";
export declare type GlobalAndSpaceRootLinks = keyof GlobalRootLinks | keyof SpaceRootLinks;

@@ -18,10 +17,15 @@ export declare class Client {

private spaceRootDocument;
private configuration;
private readonly configuration;
requestSubscriptions: SubscriptionRecord<ClientRequestDetails>;
responseSubscriptions: SubscriptionRecord<ClientResponseDetails>;
errorSubscriptions: SubscriptionRecord<ClientErrorResponseDetails>;
static create(configuration: ClientConfiguration, isAuthenticated?: () => boolean, endSession?: () => void): Promise<Client>;
private readonly logger;
static create(configuration?: ClientConfiguration): Promise<Client>;
onRequestCallback: (details: ClientRequestDetails) => void;
onResponseCallback: (details: ClientResponseDetails) => void;
onErrorResponseCallback: (details: ClientErrorResponseDetails) => void;
debug: (message: string) => void;
info: (message: string) => void;
warn: (message: string) => void;
error: (message: string, error?: Error | undefined) => void;
private constructor();

@@ -51,3 +55,3 @@ subscribeToRequests: (registrationName: string, callback: Callback<ClientRequestDetails>) => import("./subscriptionRecord").Unsubscribe;

put<TResource>(path: string, resource?: TResource, args?: RouteArgs): Promise<TResource>;
getAntiforgeryToken(): string;
getAntiforgeryToken(): string | null;
resolveLinkTemplate(link: GlobalAndSpaceRootLinks, args: any): string;

@@ -60,3 +64,3 @@ getServerInformation(): {

installationId: string;
};
} | null;
throwIfClientNotConnected(): void;

@@ -63,0 +67,0 @@ getSystemLink<T>(linkGetter: (links: GlobalRootLinks) => T): T;

@@ -55,6 +55,5 @@ "use strict";

var apiClient_1 = __importDefault(require("./apiClient"));
var caching_1 = __importDefault(require("./caching"));
var clientSession_1 = require("./clientSession");
var clientConfiguration_1 = require("./clientConfiguration");
var environment_1 = __importDefault(require("./environment"));
var resolver_1 = __importDefault(require("./resolver"));
var resolver_1 = require("./resolver");
var subscriptionRecord_1 = require("./subscriptionRecord");

@@ -78,2 +77,15 @@ var apiLocation = "~/api";

this.onErrorResponseCallback = undefined;
this.debug = function (message) {
_this.logger.debug && _this.logger.debug(message);
};
this.info = function (message) {
_this.logger.info && _this.logger.info(message);
};
this.warn = function (message) {
_this.logger.warn && _this.logger.warn(message);
};
this.error = function (message, error) {
if (error === void 0) { error = undefined; }
_this.logger.error && _this.logger.error(message, error);
};
this.subscribeToRequests = function (registrationName, callback) {

@@ -99,2 +111,15 @@ return _this.requestSubscriptions.subscribe(registrationName, callback);

this.configuration = configuration;
this.logger = __assign({
debug: function (message) { return console.debug(message); },
info: function (message) { return console.info(message); },
warn: function (message) { return console.warn(message); },
error: function (message, err) {
if (err !== undefined) {
console.error(err.message);
}
else {
console.error(message);
}
},
}, configuration.logging);
this.resolver = resolver;

@@ -104,20 +129,13 @@ this.rootDocument = rootDocument;

}
Client.create = function (configuration, isAuthenticated, endSession) {
if (isAuthenticated === void 0) { isAuthenticated = function () { return true; }; }
if (endSession === void 0) { endSession = function () { }; }
Client.create = function (configuration) {
return __awaiter(this, void 0, void 0, function () {
var resolver_2, clientSession, resolver, client, error_1, error_2;
var resolver, client, error_1, error_2;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (configuration.serverEndpoint !== null && configuration.serverEndpoint !== undefined) {
console.log("Creating Octopus client for endpoint: " + configuration.serverEndpoint);
resolver_2 = new resolver_1.default(configuration.serverEndpoint);
clientSession = new clientSession_1.ClientSession(new caching_1.default(), isAuthenticated, endSession);
return [2 /*return*/, new Client(clientSession, resolver_2, null, null, null, configuration)];
configuration = (0, clientConfiguration_1.processConfiguration)(configuration);
if (!configuration.apiUri) {
throw new Error("The host is not specified");
}
if (configuration.apiUri === null || configuration.apiUri === undefined) {
throw new Error();
}
resolver = new resolver_1.default(configuration.apiUri);
resolver = new resolver_1.Resolver(configuration.apiUri);
client = new Client(null, resolver, null, null, null, configuration);

@@ -128,3 +146,5 @@ if (!configuration.autoConnect) return [3 /*break*/, 8];

_a.trys.push([1, 3, , 4]);
return [4 /*yield*/, client.connect(function (message, error) { console.info(message); })];
return [4 /*yield*/, client.connect(function (message, error) {
client.debug("Attempting to connect to API endpoint...");
})];
case 2:

@@ -135,4 +155,5 @@ _a.sent();

error_1 = _a.sent();
console.error(error_1);
return [2 /*return*/];
if (error_1 instanceof Error)
client.error("Could not connect", error_1);
throw error_1;
case 4:

@@ -149,4 +170,5 @@ if (!(configuration.space !== null && configuration.space !== undefined)) return [3 /*break*/, 8];

error_2 = _a.sent();
console.error(error_2);
return [2 /*return*/];
if (error_2 instanceof Error)
client.error("Could not switch to space", error_2);
throw error_2;
case 8: return [2 /*return*/, client];

@@ -159,3 +181,3 @@ }

var _this = this;
progressCallback("Checking your credentials. Please wait...");
progressCallback("Checking credentials...");
return new Promise(function (resolve, reject) {

@@ -175,22 +197,5 @@ if (_this.rootDocument) {

};
var fails = 0;
var onFail = function (err) {
if (err.StatusCode !== 503 && fails < 20) {
fails++;
}
var timeout = fails === 20 ? 5000 : 1000;
if ((err.StatusCode === 0 || err.StatusCode === 503) && fails < 20) {
if (err.StatusCode === 503) {
progressCallback("Octopus Server unavailable.", err);
}
else if (err.StatusCode === 0) {
progressCallback("The Octopus Server does not appear to have started, trying again...", err);
}
}
else {
progressCallback("Unable to connect to the Octopus Server. Is your server online?", err);
}
setTimeout(function () {
attempt(onSuccess, onFail);
}, timeout);
progressCallback("Unable to connect.", err);
reject(err);
};

@@ -227,2 +232,5 @@ attempt(onSuccess, onFail);

case 0:
if (this.rootDocument === null) {
throw new Error("Root document is null; this document is required for the API client. Please ensure that the API endpoint is accessible along with its root document.");
}
this.spaceId = spaceId;

@@ -229,0 +237,0 @@ _a = this;

/// <reference types="node" />
import { Agent } from "https";
import { Logger } from "./logger";
export interface ClientConfiguration {
agent?: Agent;
apiKey?: string;
apiUri?: string;
apiKey: string;
apiUri: string;
autoConnect?: boolean;
serverEndpoint?: string;
space?: string;
logging?: Logger;
}
export declare function processConfiguration(configuration?: ClientConfiguration): ClientConfiguration;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.processConfiguration = void 0;
var environmentVariables_1 = require("./environmentVariables");
function processConfiguration(configuration) {
var apiKey = process.env[environmentVariables_1.EnvironmentVariables.ApiKey] || "";
var host = process.env[environmentVariables_1.EnvironmentVariables.Host] || "";
var space = process.env[environmentVariables_1.EnvironmentVariables.Space] || "";
if (!configuration) {
return {
apiKey: apiKey,
apiUri: host,
autoConnect: true,
space: space,
};
}
return {
apiKey: !configuration.apiKey || configuration.apiKey.length === 0 ? apiKey : configuration.apiKey,
apiUri: !configuration.apiUri || configuration.apiUri.length === 0 ? host : configuration.apiUri,
autoConnect: !configuration.autoConnect ? true : configuration.autoConnect,
space: !configuration.space || configuration.space.length === 0 ? space : configuration.space,
};
}
exports.processConfiguration = processConfiguration;

@@ -0,7 +1,6 @@

import type { ClientConfiguration } from "./clientConfiguration";
import type { ClientErrorResponseDetails } from "./clientErrorResponseDetails";
import type { ClientRequestDetails } from "./clientRequestDetails";
import type { ClientResponseDetails } from "./clientResponseDetails";
import type { ClientConfiguration } from "./clientConfiguration";
import type { ClientSession } from "./clientSession";
import type { OctopusError } from "@octopusdeploy/message-contracts";
import type { ServerInformation } from "./serverInformation";

@@ -14,5 +13,5 @@ export interface ClientOptions {

success: (data: PromiseLike<string> | string) => void;
error: (error: OctopusError) => void;
error: (error: Error) => void;
raw?: boolean;
requestBody?: string;
requestBody?: any;
nonStale?: boolean;

@@ -19,0 +18,0 @@ tryGetServerInformation: () => ServerInformation | null;

@@ -0,1 +1,14 @@

export * from "./apiClient";
export * from "./caching";
export * from "./client";
export * from "./clientConfiguration";
export * from "./clientErrorResponseDetails";
export * from "./clientOptions";
export * from "./clientRequestDetails";
export * from "./clientResponseDetails";
export * from "./clientSession";
export * from "./environment";
export * from "./environmentVariables";
export * from "./errorResponseDetails";
export * from "./logger";
export * from "./repositories/accountRepository";

@@ -82,13 +95,2 @@ export * from "./repositories/actionTemplateRepository";

export * from "./repositories/workerShellsRepository";
export * from "./apiClient";
export * from "./caching";
export * from "./client";
export * from "./clientConfiguration";
export * from "./clientErrorResponseDetails";
export * from "./clientOptions";
export * from "./clientRequestDetails";
export * from "./clientResponseDetails";
export * from "./clientSession";
export * from "./environment";
export * from "./errorResponseDetails";
export * from "./repository";

@@ -95,0 +97,0 @@ export * from "./requestDetails";

"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {

@@ -13,2 +17,15 @@ if (k2 === undefined) k2 = k;

Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./apiClient"), exports);
__exportStar(require("./caching"), exports);
__exportStar(require("./client"), exports);
__exportStar(require("./clientConfiguration"), exports);
__exportStar(require("./clientErrorResponseDetails"), exports);
__exportStar(require("./clientOptions"), exports);
__exportStar(require("./clientRequestDetails"), exports);
__exportStar(require("./clientResponseDetails"), exports);
__exportStar(require("./clientSession"), exports);
__exportStar(require("./environment"), exports);
__exportStar(require("./environmentVariables"), exports);
__exportStar(require("./errorResponseDetails"), exports);
__exportStar(require("./logger"), exports);
__exportStar(require("./repositories/accountRepository"), exports);

@@ -96,13 +113,2 @@ __exportStar(require("./repositories/actionTemplateRepository"), exports);

__exportStar(require("./repositories/workerShellsRepository"), exports);
__exportStar(require("./apiClient"), exports);
__exportStar(require("./caching"), exports);
__exportStar(require("./client"), exports);
__exportStar(require("./clientConfiguration"), exports);
__exportStar(require("./clientErrorResponseDetails"), exports);
__exportStar(require("./clientOptions"), exports);
__exportStar(require("./clientRequestDetails"), exports);
__exportStar(require("./clientResponseDetails"), exports);
__exportStar(require("./clientSession"), exports);
__exportStar(require("./environment"), exports);
__exportStar(require("./errorResponseDetails"), exports);
__exportStar(require("./repository"), exports);

@@ -109,0 +115,0 @@ __exportStar(require("./requestDetails"), exports);

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

import type { AccountResource, AccountUsageResource, AzureEnvironment, AccountType, AzureWebSite, AzureWebSiteSlot, NewAccountResource } from "@octopusdeploy/message-contracts";
import type { AccountResource, AccountType, AccountUsageResource, AzureEnvironment, AzureWebSite, AzureWebSiteSlot, NewAccountResource } from "@octopusdeploy/message-contracts";
import type { Client } from "../client";
import { BasicRepository, ListArgs } from "./basicRepository";
import type { Client } from "../client";
export declare type AccountRepositoryListArgs = {

@@ -5,0 +5,0 @@ accountType?: AccountType[];

import type { ActionProperties, ActionsUpdateProcessResource, ActionTemplateCategoryResource, ActionTemplateResource, ActionTemplateSearchResource, ActionTemplateUsageResource, CommunityActionTemplateResource } from "@octopusdeploy/message-contracts";
import type { Client } from "../client";
import { BasicRepository, ListArgs } from "./basicRepository";
import type { Client } from "../client";
export declare type ActionTemplateRepositoryListArgs = {

@@ -5,0 +5,0 @@ ids?: string[];

import type { ArtifactResource } from "@octopusdeploy/message-contracts";
import { BasicRepository } from "./basicRepository";
import type { Client } from "../client";
import type { ListArgs } from "./basicRepository";
import { BasicRepository } from "./basicRepository";
export declare type ArtifactListArgs = {

@@ -6,0 +6,0 @@ order?: string;

import type { AuthenticationResource, LoginInitiatedResource } from "@octopusdeploy/message-contracts";
import type { Client } from "../client";
import { BasicRepository } from "./basicRepository";
import type { Client } from "../client";
export declare class AuthenticationRepository extends BasicRepository<AuthenticationResource, AuthenticationResource> {

@@ -5,0 +5,0 @@ constructor(client: Client);

@@ -59,3 +59,5 @@ "use strict";

var _this = this;
return this.client.create(this.client.getLink(this.collectionLinkName), resource, args).then(function (r) { return _this.notifySubscribersToDataModifications(r); });
return this.client
.create(this.client.getLink(this.collectionLinkName), resource, args)
.then(function (r) { return _this.notifySubscribersToDataModifications(r); });
};

@@ -62,0 +64,0 @@ BasicRepository.prototype.get = function (id, args) {

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

import type { OctopusPackageVersionBuildInformationMappedResource } from "@octopusdeploy/message-contracts";
import type { NewOctopusPackageVersionBuildInformationResource, OctopusPackageVersionBuildInformationMappedResource } from "@octopusdeploy/message-contracts";
import type { Client } from "../client";
import type { AllArgs } from "./basicRepository";
import { BasicRepository, ListArgs } from "./basicRepository";
import type { Client } from "../client";
import { OverwriteMode } from "./packageRepository";
export declare type BuildInformationListArgs = {

@@ -11,3 +12,6 @@ filter?: string;

declare type BuildInformationGetArgs = {};
export declare class BuildInformationRepository extends BasicRepository<OctopusPackageVersionBuildInformationMappedResource, OctopusPackageVersionBuildInformationMappedResource, BuildInformationListArgs, AllArgs, BuildInformationGetArgs> {
export declare type BuildInformationCreateArgs = {
overwriteMode?: OverwriteMode;
};
export declare class BuildInformationRepository extends BasicRepository<OctopusPackageVersionBuildInformationMappedResource, NewOctopusPackageVersionBuildInformationResource, BuildInformationListArgs, AllArgs, BuildInformationGetArgs, BuildInformationCreateArgs> {
constructor(client: Client);

@@ -14,0 +18,0 @@ deleteMany(ids: string[]): Promise<unknown>;

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

import type { ChannelOclResource, ChannelResource, FeedType, ICommitCommand, ModifyChannelOclCommand, NewChannelResource, ProjectResource, ResourceCollection, ReleaseResource, VersionRuleTestResponse } from "@octopusdeploy/message-contracts";
import type { ChannelOclResource, ChannelResource, FeedType, ICommitCommand, ModifyChannelOclCommand, NewChannelResource, ProjectResource, ReleaseResource, ResourceCollection, VersionRuleTestResponse } from "@octopusdeploy/message-contracts";
import type { Client } from "../client";
import type { RouteArgs } from "../resolver";
import type { AllArgs, ListArgs } from "./basicRepository";
import type { Client } from "../client";
import type ProjectRepository from "./projectRepository";
import { ProjectScopedRepository } from "./projectScopedRepository";
import type ProjectRepository from "./projectRepository";
import type { RouteArgs } from "../resolver";
declare type ChannelRepositoryListArgs = {

@@ -33,5 +33,5 @@ name?: string;

modify(channel: ChannelResource, args?: {} | undefined): Promise<ChannelResource>;
createForProject(projectResource: ProjectResource, channel: ChannelResource, args: RouteArgs): Promise<ChannelResource>;
createForProject(projectResource: ProjectResource, channel: NewChannelResource, args: RouteArgs): Promise<ChannelResource>;
addCommitMessage(command: ICommitCommand, args?: {} | undefined): void;
}
export {};

@@ -82,3 +82,3 @@ "use strict";

channels = _b.sent();
return [2 /*return*/, channels.Items.find(function (e) { return e.Name.localeCompare(nameOrId, undefined, { sensitivity: 'base' }) === 0; })];
return [2 /*return*/, channels.Items.find(function (e) { return e.Name.localeCompare(nameOrId, undefined, { sensitivity: "base" }) === 0; })];
}

@@ -85,0 +85,0 @@ });

@@ -8,2 +8,3 @@ import type { DashboardResource } from "@octopusdeploy/message-contracts";

getDashboard(dashboardFilter?: DashboardFilter): Promise<DashboardResource>;
getDynamicDashboard(projects: string[], environments: string[], dashboardItemsOptions?: DashboardItemsOptions): Promise<DashboardResource>;
}

@@ -16,1 +17,5 @@ export declare type DashboardFilter = {

};
export declare enum DashboardItemsOptions {
IncludeCurrentDeploymentOnly = 0,
IncludeCurrentAndPreviousSuccessfulDeployment = 1
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DashboardRepository = void 0;
exports.DashboardItemsOptions = exports.DashboardRepository = void 0;
var DashboardRepository = /** @class */ (function () {

@@ -14,4 +14,17 @@ function DashboardRepository(client) {

};
DashboardRepository.prototype.getDynamicDashboard = function (projects, environments, dashboardItemsOptions) {
if (dashboardItemsOptions === void 0) { dashboardItemsOptions = DashboardItemsOptions.IncludeCurrentDeploymentOnly; }
return this.client.get(this.client.getLink("DashboardDynamic"), {
projects: projects,
environments: environments,
includePrevious: dashboardItemsOptions === DashboardItemsOptions.IncludeCurrentAndPreviousSuccessfulDeployment,
});
};
return DashboardRepository;
}());
exports.DashboardRepository = DashboardRepository;
var DashboardItemsOptions;
(function (DashboardItemsOptions) {
DashboardItemsOptions[DashboardItemsOptions["IncludeCurrentDeploymentOnly"] = 0] = "IncludeCurrentDeploymentOnly";
DashboardItemsOptions[DashboardItemsOptions["IncludeCurrentAndPreviousSuccessfulDeployment"] = 1] = "IncludeCurrentAndPreviousSuccessfulDeployment";
})(DashboardItemsOptions = exports.DashboardItemsOptions || (exports.DashboardItemsOptions = {}));

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

import type { PackageResource } from "@octopusdeploy/message-contracts";
import type { Client } from "../client";
import type { AllArgs } from "./basicRepository";
import { BasicRepository } from "./basicRepository";
import type { PackageResource } from "@octopusdeploy/message-contracts";
import type { Client } from "../client";
export declare type PackageListArgs = {

@@ -30,8 +30,13 @@ take?: number;

};
export declare enum OverwriteMode {
"FailIfExists" = 0,
"OverwriteExisting" = 1,
"IgnoreIfExists" = 2
}
export declare class PackageRepository extends BasicRepository<PackageResource, PackageResource, PackageListArgs, AllArgs, PackageGetArgs> {
constructor(client: Client);
deleteMany(packageIds: string[]): Promise<unknown>;
upload(pkg: File, replace: boolean): Promise<PackageResource>;
upload(pkg: File, overwriteMode?: OverwriteMode): Promise<PackageResource>;
getNotes(packages: PackageNote[]): Promise<PackageNotesList>;
}
export {};

@@ -18,4 +18,10 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.PackageRepository = void 0;
exports.PackageRepository = exports.OverwriteMode = void 0;
var basicRepository_1 = require("./basicRepository");
var OverwriteMode;
(function (OverwriteMode) {
OverwriteMode[OverwriteMode["FailIfExists"] = 0] = "FailIfExists";
OverwriteMode[OverwriteMode["OverwriteExisting"] = 1] = "OverwriteExisting";
OverwriteMode[OverwriteMode["IgnoreIfExists"] = 2] = "IgnoreIfExists";
})(OverwriteMode = exports.OverwriteMode || (exports.OverwriteMode = {}));
var PackageRepository = /** @class */ (function (_super) {

@@ -29,9 +35,18 @@ __extends(PackageRepository, _super);

};
PackageRepository.prototype.upload = function (pkg, replace) {
PackageRepository.prototype.upload = function (pkg, overwriteMode) {
if (overwriteMode === void 0) { overwriteMode = OverwriteMode.FailIfExists; }
var fd = new FormData();
fd.append("fileToUpload", pkg);
return this.client.post(this.client.getLink("PackageUpload"), fd, { replace: replace });
return this.client.post(this.client.getLink("PackageUpload"), fd, { overwriteMode: overwriteMode });
};
PackageRepository.prototype.getNotes = function (packages) {
var packageIds = packages.reduce(function (result, item) { return result + (result.length === 0 ? "" : ",") + encodeURIComponent(item.FeedId) + ":" + encodeURIComponent(item.PackageId) + ":" + encodeURIComponent(item.Version); }, "");
var packageIds = packages.reduce(function (result, item) {
return result +
(result.length === 0 ? "" : ",") +
encodeURIComponent(item.FeedId) +
":" +
encodeURIComponent(item.PackageId) +
":" +
encodeURIComponent(item.Version);
}, "");
return this.client.get(this.client.getLink("PackageNotesList"), { packageIds: packageIds });

@@ -38,0 +53,0 @@ };

@@ -131,3 +131,11 @@ "use strict";

ProjectRepository.prototype.getTriggers = function (project, gitRef, skip, take, triggerActionType, triggerActionCategory, runbooks, partialName) {
return this.client.get(project.Links["Triggers"], { skip: skip, take: take, gitRef: gitRef, triggerActionType: triggerActionType, triggerActionCategory: triggerActionCategory, runbooks: runbooks, partialName: partialName });
return this.client.get(project.Links["Triggers"], {
skip: skip,
take: take,
gitRef: gitRef,
triggerActionType: triggerActionType,
triggerActionCategory: triggerActionCategory,
runbooks: runbooks,
partialName: partialName,
});
};

@@ -134,0 +142,0 @@ ProjectRepository.prototype.orderChannels = function (project) {

@@ -47,3 +47,3 @@ import type { AccountTestTaskArguments, ActionProperties, ActionTemplateResource, AdHocScriptTaskArguments, ConfigureLetsEncryptArguments, EnvironmentResource, HealthCheckTaskArguments, MachineResource, NewTaskResource, ResourceCollection, ScriptingLanguage, SynchronizeBuiltInPackageRepositoryIndexTaskArguments, SynchronizeCommunityActionTemplatesTaskArguments, SystemIntegrityCheckTaskArguments, TaskDetailsResource, TaskResource, TaskTypeResource, TestEmailTaskArguments, UpdateCalamariTaskArguments, UpgradeTaskArguments, WorkerPoolResource } from "@octopusdeploy/message-contracts";

createUpgradeTentaclesTaskForEnvironment(environment: EnvironmentResource | undefined, machineIds: string[]): Promise<TaskResource<UpgradeTaskArguments>>;
createUpgradeTentacleOnMachineTask(machine: MachineResource): Promise<TaskResource<UpgradeTaskArguments>>;
createUpgradeTentacleOnMachineTask(machine: MachineResource): Promise<TaskResource<UpgradeTaskArguments>> | undefined;
createUpgradeTentacleOnWorkerPoolTask(workerPool: WorkerPoolResource | undefined, machineIds: string[]): Promise<TaskResource<UpgradeTaskArguments>>;

@@ -53,7 +53,7 @@ createUpgradeTentaclesTaskRestrictedTo(restrictedTo: TaskRestrictedTo, MachineIds: string[]): Promise<TaskResource<UpgradeTaskArguments>>;

createPerformHealthCheckTaskForWorkerPool(workerPool: WorkerPoolResource | undefined, machineIds: string[]): Promise<TaskResource<HealthCheckTaskArguments>>;
createHealthCheckTaskForMachine(machine: MachineResource): Promise<TaskResource<HealthCheckTaskArguments>>;
createHealthCheckTaskForMachine(machine: MachineResource): Promise<TaskResource<HealthCheckTaskArguments>> | undefined;
createHealthCheckTaskRestrictedTo(restrictedTo: TaskRestrictedTo, machineIds: string[]): Promise<TaskResource<HealthCheckTaskArguments>>;
createUpdateCalamariOnTargetsTask(deploymentTargetIds: string[]): Promise<TaskResource<UpdateCalamariTaskArguments>>;
createUpdateCalamariOnWorkersTask(workerIds: string[]): Promise<TaskResource<UpdateCalamariTaskArguments>>;
createUpdateCalamariOnTargetTask(machine: MachineResource): Promise<TaskResource<UpdateCalamariTaskArguments>>;
createUpdateCalamariOnTargetTask(machine: MachineResource): Promise<TaskResource<UpdateCalamariTaskArguments>> | undefined;
createSynchronizeBuiltInPackageRepositoryTask(): Promise<TaskResource<SynchronizeBuiltInPackageRepositoryIndexTaskArguments>>;

@@ -60,0 +60,0 @@ createTestAzureAccountTask(azureAccountId: string): Promise<TaskResource<AccountTestTaskArguments>>;

@@ -1,2 +0,3 @@

import { AuthenticationRepository } from "./repositories/authenticationRepository";
import { SpaceResource } from "@octopusdeploy/message-contracts";
import { DeploymentProcessRepository } from ".";
import type { Client } from "./client";

@@ -6,2 +7,3 @@ import { AccountRepository } from "./repositories/accountRepository";

import { ArtifactRepository } from "./repositories/artifactRepository";
import { AuthenticationRepository } from "./repositories/authenticationRepository";
import { BuildInformationRepository } from "./repositories/buildInformationRepository";

@@ -13,4 +15,4 @@ import { CertificateConfigurationRepository } from "./repositories/certificateConfigurationRepository";

import { CommunityActionTemplateRepository } from "./repositories/communityActionTemplateRepository";
import { DashboardConfigurationRepository } from "./repositories/dashboardConfigurationRepository";
import { DashboardRepository } from "./repositories/dashboardRepository";
import { DashboardConfigurationRepository } from "./repositories/dashboardConfigurationRepository";
import { DefectRepository } from "./repositories/defectRepository";

@@ -39,8 +41,2 @@ import { DeploymentRepository } from "./repositories/deploymentRepository";

import { OctopusServerNodeRepository } from "./repositories/octopusServerNodeRepository";
import { RetentionDefaultConfigurationRepository } from "./repositories/retentionDefaultConfigurationRepository";
import type { RouteArgs } from "./resolver";
import { RunbookProcessRepository } from "./repositories/runbookProcessRepository";
import { RunbookRepository } from "./repositories/runbookRepository";
import { RunbookRunRepository } from "./repositories/runbookRunRepository";
import { RunbookSnapshotRepository } from "./repositories/runbookSnapshotRepository";
import { PackageRepository } from "./repositories/packageRepository";

@@ -55,2 +51,7 @@ import { PerformanceConfigurationRepository } from "./repositories/performanceConfigurationRepository";

import { ReleasesRepository } from "./repositories/releasesRepository";
import { RetentionDefaultConfigurationRepository } from "./repositories/retentionDefaultConfigurationRepository";
import { RunbookProcessRepository } from "./repositories/runbookProcessRepository";
import { RunbookRepository } from "./repositories/runbookRepository";
import { RunbookRunRepository } from "./repositories/runbookRunRepository";
import { RunbookSnapshotRepository } from "./repositories/runbookSnapshotRepository";
import { SchedulerRepository } from "./repositories/schedulerRepository";

@@ -62,4 +63,4 @@ import { ScopedUserRoleRepository } from "./repositories/scopedUserRoleRepository";

import { SmtpConfigurationRepository } from "./repositories/smtpConfigurationRepository";
import { SpaceRepository } from "./repositories/spaceRepository";
import SubscriptionRepository from "./repositories/subscriptionRepository";
import { SpaceRepository } from "./repositories/spaceRepository";
import TagSetRepository from "./repositories/tagSetRepository";

@@ -81,3 +82,3 @@ import { TaskRepository } from "./repositories/taskRepository";

import { WorkerShellsRepository } from "./repositories/workerShellsRepository";
import { DeploymentProcessRepository } from ".";
import type { RouteArgs } from "./resolver";
interface ServerInformation {

@@ -127,2 +128,3 @@ version: string;

artifacts: ArtifactRepository;
buildInformation: BuildInformationRepository;
certificateConfiguration: CertificateConfigurationRepository;

@@ -175,3 +177,3 @@ certificates: CertificateRepository;

authentication: AuthenticationRepository;
buildInformationRepository: BuildInformationRepository;
buildInformation: BuildInformationRepository;
certificateConfiguration: CertificateConfigurationRepository;

@@ -250,3 +252,3 @@ certificates: CertificateRepository;

get spaceId(): string | null;
forSpace(spaceId: string): Promise<OctopusSpaceRepository>;
forSpace(space: SpaceResource): Promise<OctopusSpaceRepository>;
forSystem(): OctopusSystemRepository;

@@ -253,0 +255,0 @@ switchToSpace(spaceId: string): Promise<void>;

@@ -43,6 +43,7 @@ "use strict";

exports.Repository = void 0;
var authenticationRepository_1 = require("./repositories/authenticationRepository");
var _1 = require(".");
var accountRepository_1 = require("./repositories/accountRepository");
var actionTemplateRepository_1 = require("./repositories/actionTemplateRepository");
var artifactRepository_1 = require("./repositories/artifactRepository");
var authenticationRepository_1 = require("./repositories/authenticationRepository");
var buildInformationRepository_1 = require("./repositories/buildInformationRepository");

@@ -54,4 +55,4 @@ var certificateConfigurationRepository_1 = require("./repositories/certificateConfigurationRepository");

var communityActionTemplateRepository_1 = require("./repositories/communityActionTemplateRepository");
var dashboardConfigurationRepository_1 = require("./repositories/dashboardConfigurationRepository");
var dashboardRepository_1 = require("./repositories/dashboardRepository");
var dashboardConfigurationRepository_1 = require("./repositories/dashboardConfigurationRepository");
var defectRepository_1 = require("./repositories/defectRepository");

@@ -80,7 +81,2 @@ var deploymentRepository_1 = require("./repositories/deploymentRepository");

var octopusServerNodeRepository_1 = require("./repositories/octopusServerNodeRepository");
var retentionDefaultConfigurationRepository_1 = require("./repositories/retentionDefaultConfigurationRepository");
var runbookProcessRepository_1 = require("./repositories/runbookProcessRepository");
var runbookRepository_1 = require("./repositories/runbookRepository");
var runbookRunRepository_1 = require("./repositories/runbookRunRepository");
var runbookSnapshotRepository_1 = require("./repositories/runbookSnapshotRepository");
var packageRepository_1 = require("./repositories/packageRepository");

@@ -95,2 +91,7 @@ var performanceConfigurationRepository_1 = require("./repositories/performanceConfigurationRepository");

var releasesRepository_1 = require("./repositories/releasesRepository");
var retentionDefaultConfigurationRepository_1 = require("./repositories/retentionDefaultConfigurationRepository");
var runbookProcessRepository_1 = require("./repositories/runbookProcessRepository");
var runbookRepository_1 = require("./repositories/runbookRepository");
var runbookRunRepository_1 = require("./repositories/runbookRunRepository");
var runbookSnapshotRepository_1 = require("./repositories/runbookSnapshotRepository");
var schedulerRepository_1 = require("./repositories/schedulerRepository");

@@ -102,4 +103,4 @@ var scopedUserRoleRepository_1 = require("./repositories/scopedUserRoleRepository");

var smtpConfigurationRepository_1 = require("./repositories/smtpConfigurationRepository");
var spaceRepository_1 = require("./repositories/spaceRepository");
var subscriptionRepository_1 = __importDefault(require("./repositories/subscriptionRepository"));
var spaceRepository_1 = require("./repositories/spaceRepository");
var tagSetRepository_1 = __importDefault(require("./repositories/tagSetRepository"));

@@ -121,3 +122,2 @@ var taskRepository_1 = require("./repositories/taskRepository");

var workerShellsRepository_1 = require("./repositories/workerShellsRepository");
var _1 = require(".");
// Repositories provide a helpful abstraction around the Octopus Deploy API

@@ -135,3 +135,3 @@ var Repository = /** @class */ (function () {

this.authentication = new authenticationRepository_1.AuthenticationRepository(client);
this.buildInformationRepository = new buildInformationRepository_1.BuildInformationRepository(client);
this.buildInformation = new buildInformationRepository_1.BuildInformationRepository(client);
this.certificateConfiguration = new certificateConfigurationRepository_1.CertificateConfigurationRepository(client);

@@ -215,3 +215,3 @@ this.certificates = new certificateRepository_1.CertificateRepository(client);

});
Repository.prototype.forSpace = function (spaceId) {
Repository.prototype.forSpace = function (space) {
return __awaiter(this, void 0, void 0, function () {

@@ -222,5 +222,5 @@ var _a;

case 0:
if (!(this.spaceId !== spaceId)) return [3 /*break*/, 2];
if (!(this.spaceId !== space.Id)) return [3 /*break*/, 2];
_a = Repository.bind;
return [4 /*yield*/, this.client.forSpace(spaceId)];
return [4 /*yield*/, this.client.forSpace(space.Id)];
case 1: return [2 /*return*/, new (_a.apply(Repository, [void 0, _b.sent()]))()];

@@ -227,0 +227,0 @@ case 2: return [2 /*return*/, this];

@@ -7,3 +7,3 @@ declare type RouteParameterSimpleTypes = string | number | boolean;

export declare type RouteArgs<TOther extends RouteArgLookup = RouteArgLookup> = Pick<TOther, keyof TOther> | TOther;
declare class Resolver {
export declare class Resolver {
private baseUri;

@@ -14,2 +14,2 @@ private rootUri;

}
export default Resolver;
export {};

@@ -5,2 +5,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.Resolver = void 0;
var URI = require("urijs");

@@ -43,2 +44,2 @@ var URITemplate = require("urijs/src/URITemplate");

}());
exports.default = Resolver;
exports.Resolver = Resolver;

@@ -7,5 +7,5 @@ "use strict";

exports.isPropertyDefinedAndNotNull = exports.typeSafeHasOwnProperty = exports.ensureSuffix = exports.ensurePrefix = exports.determineServerEndpoint = exports.getResolver = exports.getServerEndpoint = exports.getQueryValue = void 0;
var lodash_1 = require("lodash");
var urijs_1 = __importDefault(require("urijs"));
var lodash_1 = require("lodash");
var resolver_1 = __importDefault(require("./resolver"));
var resolver_1 = require("./resolver");
var getQueryValue = function (key, location) {

@@ -25,3 +25,3 @@ var result;

var getResolver = function (base) {
var resolver = new resolver_1.default(base);
var resolver = new resolver_1.Resolver(base);
return resolver.resolve.bind(resolver);

@@ -28,0 +28,0 @@ };

@@ -7,7 +7,10 @@ {

"dependencies": {
"@octopusdeploy/message-contracts": "^1.1.1",
"axios": "^0.24.0",
"@octopusdeploy/message-contracts": "^1.3.0",
"axios": "^0.27.2",
"glob": "^8.0.3",
"hpagent": "^1.0.0",
"lodash": "^4.17.21",
"semver": "^7.3.5",
"urijs": "^1.19.7"
"moment": "^2.29.3",
"semver": "^7.3.7",
"urijs": "^1.19.11"
},

@@ -17,14 +20,34 @@ "description": "TypeScript API client for Octopus Deploy",

"@octopusdeploy/runtime-inputs": "^0.16.0",
"@tsconfig/node16": "^1.0.2",
"@tsconfig/node16": "^1.0.3",
"@types/adm-zip": "^0.5.0",
"@types/glob": "^7.2.0",
"@types/jest": "^28.1.3",
"@types/json-patch": "^0.0.30",
"@types/lodash": "^4.14.176",
"@types/moment": "^2.13.0",
"@types/node": "^16.11.11",
"@types/semver": "^7.3.9",
"@types/urijs": "^1.19.17",
"@types/lodash": "^4.14.182",
"@types/node": "^18.0.0",
"@types/semver": "^7.3.10",
"@types/urijs": "^1.19.19",
"@typescript-eslint/eslint-plugin": "^5.29.0",
"@typescript-eslint/parser": "^5.29.0",
"adm-zip": "^0.5.9",
"eslint": "^8.18.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-jest": "^26.5.3",
"eslint-plugin-prefer-arrow": "^1.2.3",
"eslint-plugin-prettier": "^4.0.0",
"jest": "^28.1.1",
"jest-cli": "^28.1.1",
"jest-environment-jsdom": "^28.1.1",
"jest-expect-message": "^1.0.2",
"jest-extended": "^2.0.0",
"jest-junit": "^14.0.0",
"jest-runner-eslint": "^1.0.1",
"prettier": "^2.7.1",
"process": "^0.11.10",
"prop-types": "^15.7.2",
"ts-node": "^10.4.0",
"typedoc": "^0.22.10",
"typescript": "^4.5.2"
"prop-types": "^15.8.1",
"ts-jest": "^28.0.5",
"ts-node": "^10.8.1",
"typedoc": "^0.22.18",
"typescript": "^4.7.4"
},

@@ -52,9 +75,19 @@ "files": [

"docs": "typedoc --options typedoc.json --readme none",
"lint": "tslint -p tsconfig.json",
"lint:fix": "eslint . --fix",
"lint": "eslint .",
"prepare": "npm run build",
"preversion": "npm run lint",
"test": "jest --config jestconfig.json"
"test": "jest --maxWorkers=4 --config=jest.config.js --ci --reporters=default --reporters=jest-junit"
},
"types": "dist/index.d.ts",
"version": "1.1.7"
"version": "1.2.1",
"jest-junit": {
"outputDirectory": "reports",
"outputName": "jest-junit.xml",
"ancestorSeparator": " › ",
"uniqueOutputName": "false",
"suiteNameTemplate": "{filepath}",
"classNameTemplate": "{classname}",
"titleTemplate": "{title}"
}
}
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