Compare commits
No commits in common. "master" and "v2.0.1" have entirely different histories.
@ -13,13 +13,8 @@ stages:
|
|||||||
- metadata
|
- metadata
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
- pnpm install -g pnpm
|
- npm install -g @shipzone/npmci
|
||||||
- pnpm install -g @shipzone/npmci
|
|
||||||
- npmci npm prepare
|
|
||||||
|
|
||||||
# ====================
|
|
||||||
# security stage
|
|
||||||
# ====================
|
|
||||||
# ====================
|
# ====================
|
||||||
# security stage
|
# security stage
|
||||||
# ====================
|
# ====================
|
||||||
@ -27,10 +22,11 @@ auditProductionDependencies:
|
|||||||
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||||
stage: security
|
stage: security
|
||||||
script:
|
script:
|
||||||
|
- npmci npm prepare
|
||||||
|
- npmci command npm install --production --ignore-scripts
|
||||||
- npmci command npm config set registry https://registry.npmjs.org
|
- npmci command npm config set registry https://registry.npmjs.org
|
||||||
- npmci command pnpm audit --audit-level=high --prod
|
- npmci command npm audit --audit-level=high --only=prod --production
|
||||||
tags:
|
tags:
|
||||||
- lossless
|
|
||||||
- docker
|
- docker
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
|
||||||
@ -38,10 +34,11 @@ auditDevDependencies:
|
|||||||
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||||
stage: security
|
stage: security
|
||||||
script:
|
script:
|
||||||
|
- npmci npm prepare
|
||||||
|
- npmci command npm install --ignore-scripts
|
||||||
- npmci command npm config set registry https://registry.npmjs.org
|
- npmci command npm config set registry https://registry.npmjs.org
|
||||||
- npmci command pnpm audit --audit-level=high --dev
|
- npmci command npm audit --audit-level=high --only=dev
|
||||||
tags:
|
tags:
|
||||||
- lossless
|
|
||||||
- docker
|
- docker
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
|
||||||
@ -52,6 +49,7 @@ auditDevDependencies:
|
|||||||
testStable:
|
testStable:
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
|
- npmci npm prepare
|
||||||
- npmci node install stable
|
- npmci node install stable
|
||||||
- npmci npm install
|
- npmci npm install
|
||||||
- npmci npm test
|
- npmci npm test
|
||||||
@ -62,9 +60,10 @@ testStable:
|
|||||||
testBuild:
|
testBuild:
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
|
- npmci npm prepare
|
||||||
- npmci node install stable
|
- npmci node install stable
|
||||||
- npmci npm install
|
- npmci npm install
|
||||||
- npmci npm build
|
- npmci command npm run build
|
||||||
coverage: /\d+.?\d+?\%\s*coverage/
|
coverage: /\d+.?\d+?\%\s*coverage/
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
@ -113,6 +112,7 @@ pages:
|
|||||||
stage: metadata
|
stage: metadata
|
||||||
script:
|
script:
|
||||||
- npmci node install stable
|
- npmci node install stable
|
||||||
|
- npmci npm prepare
|
||||||
- npmci npm install
|
- npmci npm install
|
||||||
- npmci command npm run buildDocs
|
- npmci command npm run buildDocs
|
||||||
tags:
|
tags:
|
||||||
|
11003
package-lock.json
generated
Normal file
11003
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
15
package.json
15
package.json
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@uptime.link/interfaces",
|
"name": "@uptime.link/interfaces",
|
||||||
"version": "2.0.21",
|
"version": "2.0.1",
|
||||||
"private": false,
|
"private": false,
|
||||||
"description": "TypeScript interface for the uptime.link API and modules",
|
"description": "TypeScript interface for the uptime.link API and modules",
|
||||||
"main": "dist_ts/index.js",
|
"main": "dist_ts/index.js",
|
||||||
@ -14,15 +14,14 @@
|
|||||||
"buildDocs": "tsdoc"
|
"buildDocs": "tsdoc"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@gitzone/tsbuild": "^2.1.65",
|
"@gitzone/tsbuild": "^2.1.63",
|
||||||
"@gitzone/tsrun": "^1.2.39",
|
"@gitzone/tstest": "^1.0.71",
|
||||||
"@gitzone/tstest": "^1.0.74",
|
"@pushrocks/tapbundle": "^5.0.3",
|
||||||
"@pushrocks/tapbundle": "^5.0.4",
|
"@types/node": "^18.0.5"
|
||||||
"@types/node": "^18.15.11"
|
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@apiglobal/typedrequest-interfaces": "^2.0.1",
|
"@apiglobal/typedrequest-interfaces": "^1.0.15",
|
||||||
"@tsclass/tsclass": "^4.0.38"
|
"@tsclass/tsclass": "^4.0.17"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"ts/**/*",
|
"ts/**/*",
|
||||||
|
4464
pnpm-lock.yaml
generated
4464
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@ -21,6 +21,7 @@ Code Style | [](htt
|
|||||||
PackagePhobia (total standalone install weight) | [](https://lossless.cloud)
|
PackagePhobia (total standalone install weight) | [](https://lossless.cloud)
|
||||||
PackagePhobia (package size on registry) | [](https://lossless.cloud)
|
PackagePhobia (package size on registry) | [](https://lossless.cloud)
|
||||||
BundlePhobia (total size when bundled) | [](https://lossless.cloud)
|
BundlePhobia (total size when bundled) | [](https://lossless.cloud)
|
||||||
|
Platform support | [](https://lossless.cloud) [](https://lossless.cloud)
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
@ -34,6 +35,7 @@ We are always happy for code contributions. If you are not the code contributing
|
|||||||
|
|
||||||
For further information read the linked docs at the top of this readme.
|
For further information read the linked docs at the top of this readme.
|
||||||
|
|
||||||
## Legal
|
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
|
||||||
> MIT licensed | **©** [Task Venture Capital GmbH](https://task.vc)
|
|
||||||
| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy)
|
| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy)
|
||||||
|
|
||||||
|
[](https://maintainedby.lossless.com)
|
||||||
|
@ -3,7 +3,7 @@ import * as interfaces from '../ts/index.js';
|
|||||||
|
|
||||||
tap.test('first test', async () => {
|
tap.test('first test', async () => {
|
||||||
console.log(
|
console.log(
|
||||||
'hi' as interfaces.requests.IRequest_CheckExchange['request']['checkCollection']['id']
|
'hi' as interfaces.requests.checkRequests.IRequest_PageCheck_Assumption['request']['domain']
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@uptime.link/interfaces',
|
name: '@uptime.link/interfaces',
|
||||||
version: '2.0.21',
|
version: '2.0.1',
|
||||||
description: 'TypeScript interface for the uptime.link API and modules'
|
description: 'TypeScript interface for the uptime.link API and modules'
|
||||||
}
|
}
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
import * as plugins from '../ul-interfaces.plugins.js';
|
|
||||||
import * as search from './search.js';
|
|
||||||
|
|
||||||
import * as checks from './checks/index.js';
|
|
||||||
|
|
||||||
export interface ICheckCollection {
|
|
||||||
id: string;
|
|
||||||
intervalMs: number;
|
|
||||||
assumptionChecks?: Array<checks.IAssumptionCheck>;
|
|
||||||
functionChecks: Array<checks.IFunctionCheck>;
|
|
||||||
pwaChecks?: Array<checks.IPwaCheck>;
|
|
||||||
pageRankChecks: Array<checks.IPageRankCheck>;
|
|
||||||
}
|
|
59
ts/data/checks.ts
Normal file
59
ts/data/checks.ts
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
import * as plugins from '../ul-interfaces.plugins.js';
|
||||||
|
|
||||||
|
export type TCheckResultStatus = 'ok' | 'not ok' | 'timed out';
|
||||||
|
|
||||||
|
export interface ICheck {
|
||||||
|
type: 'pwa' | 'function' | 'assumption';
|
||||||
|
intervalMs: number;
|
||||||
|
pwaData?: {
|
||||||
|
domain: string;
|
||||||
|
};
|
||||||
|
functionData: {
|
||||||
|
domain: string;
|
||||||
|
functionDef: string;
|
||||||
|
};
|
||||||
|
assumptionData?: {
|
||||||
|
domain: string;
|
||||||
|
title?: string;
|
||||||
|
statusCode?: string;
|
||||||
|
description?: string;
|
||||||
|
dnsRecordMx?: string;
|
||||||
|
dnsRecordTxt?: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
checkResults: Array<{
|
||||||
|
pwaResult?: {
|
||||||
|
timeStarted: number;
|
||||||
|
timeEnded: number;
|
||||||
|
duration: number;
|
||||||
|
status: TCheckResultStatus;
|
||||||
|
data: {
|
||||||
|
lhr: any;
|
||||||
|
reports: any[];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
functionResult?: {
|
||||||
|
timeStarted: number;
|
||||||
|
timeEnded: number;
|
||||||
|
duration: number;
|
||||||
|
status: TCheckResultStatus;
|
||||||
|
data: any;
|
||||||
|
|
||||||
|
};
|
||||||
|
assumptionResult: {
|
||||||
|
timeStarted: number;
|
||||||
|
timeEnded: number;
|
||||||
|
duration: number;
|
||||||
|
status: TCheckResultStatus;
|
||||||
|
data: {
|
||||||
|
domain: string;
|
||||||
|
title?: string;
|
||||||
|
statusCode?: string;
|
||||||
|
description?: string;
|
||||||
|
dnsRecordMx?: string;
|
||||||
|
dnsRecordTxt?: string;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
checkLog: string[];
|
||||||
|
}>;
|
||||||
|
}
|
@ -1,23 +0,0 @@
|
|||||||
import * as plugins from '../../ul-interfaces.plugins.js';
|
|
||||||
import { TCheckResultStatus, TExecutionTiming } from './index.js';
|
|
||||||
|
|
||||||
export interface IAssumptionCheck {
|
|
||||||
inputData: {
|
|
||||||
domain: string;
|
|
||||||
title?: string;
|
|
||||||
statusCode?: string;
|
|
||||||
description?: string;
|
|
||||||
dnsRecords?: plugins.tsclass.network.IDnsRecord;
|
|
||||||
};
|
|
||||||
executionResults: Array<{
|
|
||||||
timing: TExecutionTiming;
|
|
||||||
status: TCheckResultStatus;
|
|
||||||
data: {
|
|
||||||
domain: string;
|
|
||||||
title?: string;
|
|
||||||
statusCode?: string;
|
|
||||||
description?: string;
|
|
||||||
dnsRecords: Array<plugins.tsclass.network.IDnsRecord>;
|
|
||||||
};
|
|
||||||
}>;
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
import { TCheckResultStatus, TExecutionTiming } from './index.js';
|
|
||||||
|
|
||||||
export interface IFunctionCheck {
|
|
||||||
checkId: string;
|
|
||||||
inputData: {
|
|
||||||
domain: string;
|
|
||||||
functionDef: string;
|
|
||||||
};
|
|
||||||
executionResults: Array<{
|
|
||||||
timing: TExecutionTiming;
|
|
||||||
status: TCheckResultStatus;
|
|
||||||
data: any;
|
|
||||||
checkLog: string[];
|
|
||||||
}>;
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
export type TCheckResultStatus = 'ok' | 'not ok' | 'timed out';
|
|
||||||
|
|
||||||
export interface TExecutionTiming {
|
|
||||||
plannedTime: number;
|
|
||||||
timeStarted: number;
|
|
||||||
timeEnded: number;
|
|
||||||
duration: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
export * from './assumption.check.js';
|
|
||||||
export * from './function.check.js';
|
|
||||||
export * from './pagerank.check.js';
|
|
||||||
export * from './pwa.check.js';
|
|
@ -1,19 +0,0 @@
|
|||||||
import * as search from '../search.js';
|
|
||||||
import { TCheckResultStatus, TExecutionTiming } from './index.js';
|
|
||||||
|
|
||||||
export interface IPageRankCheck {
|
|
||||||
inputData: {
|
|
||||||
subId: string;
|
|
||||||
domain: string;
|
|
||||||
searchTerm: string;
|
|
||||||
checkBing?: boolean;
|
|
||||||
checkGoogle?: boolean;
|
|
||||||
bingMinRank?: number;
|
|
||||||
googleMinRank?: number;
|
|
||||||
};
|
|
||||||
executionResults: Array<{
|
|
||||||
timing: TExecutionTiming;
|
|
||||||
status: TCheckResultStatus;
|
|
||||||
pageRankResult: search.IPageRankResult;
|
|
||||||
}>;
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
import { TCheckResultStatus } from './index.js';
|
|
||||||
|
|
||||||
export interface IPwaCheck {
|
|
||||||
inputData: { domain: string };
|
|
||||||
executionResults: Array<{
|
|
||||||
subId: string;
|
|
||||||
timeStarted: number;
|
|
||||||
timeEnded: number;
|
|
||||||
duration: number;
|
|
||||||
status: TCheckResultStatus;
|
|
||||||
data: {
|
|
||||||
lhr: any;
|
|
||||||
reports: any[];
|
|
||||||
};
|
|
||||||
}>;
|
|
||||||
}
|
|
@ -1,31 +0,0 @@
|
|||||||
import * as plugins from '../ul-interfaces.plugins.js';
|
|
||||||
import { ILinkSnapshot } from './linksnapshot.js';
|
|
||||||
|
|
||||||
export interface IDomainSnapshot {
|
|
||||||
registration: {
|
|
||||||
isRegistered: boolean;
|
|
||||||
updatedDate: number;
|
|
||||||
createdDate: number;
|
|
||||||
expiryDate: number;
|
|
||||||
};
|
|
||||||
delegation: plugins.tsclass.network.IDomainDelegation;
|
|
||||||
phishingFlags: {
|
|
||||||
listName: string;
|
|
||||||
}[];
|
|
||||||
recordScans: {
|
|
||||||
identifier: string;
|
|
||||||
nameservers: string[];
|
|
||||||
aRecords: plugins.tsclass.network.IDnsRecord[];
|
|
||||||
aaaaRecords: plugins.tsclass.network.IDnsRecord[];
|
|
||||||
txtRecords: plugins.tsclass.network.IDnsRecord[];
|
|
||||||
mxRecords: plugins.tsclass.network.IDnsRecord[];
|
|
||||||
specialRecords: {
|
|
||||||
dmarc: plugins.tsclass.network.IDnsRecord[];
|
|
||||||
}
|
|
||||||
}[];
|
|
||||||
linkSnapshots: ILinkSnapshot[];
|
|
||||||
whoisServers: {
|
|
||||||
serverUrl: string;
|
|
||||||
content: string;
|
|
||||||
}[];
|
|
||||||
}
|
|
@ -1,11 +1 @@
|
|||||||
export * from './checkcollection.js';
|
|
||||||
export * from './domainsnapshot.js';
|
|
||||||
export * from './incident.js';
|
export * from './incident.js';
|
||||||
export * from './linksnapshot.js';
|
|
||||||
export * from './property.js';
|
|
||||||
export * from './search.js';
|
|
||||||
export * from './status.js';
|
|
||||||
|
|
||||||
import * as checks from './checks/index.js';
|
|
||||||
|
|
||||||
export { checks };
|
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
import * as plugins from '../ul-interfaces.plugins.js';
|
|
||||||
|
|
||||||
export interface ILinkSnapshot {
|
|
||||||
/**
|
|
||||||
* the link base on which the snapshot was taken
|
|
||||||
*/
|
|
||||||
linkBaseUrl: string;
|
|
||||||
httpsSupport: boolean;
|
|
||||||
httpHttpsParity: boolean;
|
|
||||||
httpToHttpsRedirect: boolean;
|
|
||||||
fromWwwRedirect: boolean;
|
|
||||||
toWwwRedirect: boolean;
|
|
||||||
statusCode: number;
|
|
||||||
fullPageLoadSize: number;
|
|
||||||
fullPageLoadTimeMs: number;
|
|
||||||
cookies: any[];
|
|
||||||
httpRequest: {
|
|
||||||
statusCode: number;
|
|
||||||
headers: {
|
|
||||||
[key: string]: string;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
httpsRequest: {
|
|
||||||
statusCode: number;
|
|
||||||
headers: {
|
|
||||||
[key: string]: string;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,10 +1,8 @@
|
|||||||
import * as plugins from '../ul-interfaces.plugins.js';
|
import * as plugins from '../ul-interfaces.plugins.js';
|
||||||
|
|
||||||
export class IUplinkProperty {
|
export class IProperty {
|
||||||
wgOrgIdRef: string;
|
|
||||||
wgPropertyIdRef: string;
|
|
||||||
name: string;
|
name: string;
|
||||||
type: 'website' | 'app' | 'api' | 'other';
|
type: 'website' | 'app' | 'api' | 'other';
|
||||||
access: 'private' | 'public' | 'auth';
|
access: 'private' | 'public' | 'auth';
|
||||||
checkCollectionIdRefs: string[];
|
|
||||||
}
|
}
|
@ -1,21 +0,0 @@
|
|||||||
export interface ISearchResult {
|
|
||||||
searchTerm: string;
|
|
||||||
targetUrl: string;
|
|
||||||
title: string;
|
|
||||||
description: string;
|
|
||||||
rank: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* special data returned by the PageRankCheck check class
|
|
||||||
*/
|
|
||||||
export interface IPageRankResult {
|
|
||||||
googleRank: number;
|
|
||||||
googleBlocked: boolean;
|
|
||||||
bingRank: number;
|
|
||||||
bingBlocked: boolean;
|
|
||||||
searchResults: {
|
|
||||||
google: ISearchResult[];
|
|
||||||
bing: ISearchResult[];
|
|
||||||
};
|
|
||||||
}
|
|
@ -5,7 +5,7 @@ export interface IStatus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface IDailyStatus {
|
export interface IDailyStatus {
|
||||||
timezone: 'UTC';
|
timezone: 'UTC',
|
||||||
date: plugins.tsclass.general.IDate;
|
date: plugins.tsclass.general.IDate;
|
||||||
overallStatus: 'ok' | 'reduced' | 'outage';
|
overallStatus: 'ok' | 'reduced' | 'outage';
|
||||||
incidentRefs: string[];
|
incidentRefs: string[];
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
export * from './requests.checks.js';
|
import * as checkRequests from './requests.checks.js';
|
||||||
export * from './requests.incidents.js';
|
|
||||||
export * from './requests.snapshot.js';
|
export { checkRequests };
|
||||||
export * from './requests.status.js';
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { ICheckCollection } from '../data/checkcollection.js';
|
import { ICheck } from '../data/checks.js';
|
||||||
import * as plugins from '../ul-interfaces.plugins.js';
|
import * as plugins from '../ul-interfaces.plugins.js';
|
||||||
|
|
||||||
export interface IRequest_CheckExchange
|
export interface IRequest_CheckExchange
|
||||||
@ -8,9 +8,9 @@ export interface IRequest_CheckExchange
|
|||||||
> {
|
> {
|
||||||
method: 'check';
|
method: 'check';
|
||||||
request: {
|
request: {
|
||||||
checkCollection: ICheckCollection;
|
check: ICheck;
|
||||||
};
|
};
|
||||||
response: {
|
response: {
|
||||||
checkCollection: ICheckCollection;
|
check: ICheck;
|
||||||
};
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
import { IDomainSnapshot } from '../data/domainsnapshot.js';
|
|
||||||
import { ILinkSnapshot } from '../data/linksnapshot.js';
|
|
||||||
import * as plugins from '../ul-interfaces.plugins.js';
|
|
||||||
|
|
||||||
export interface IReq_PerformDomainSnapshot
|
|
||||||
extends plugins.typedRequestInterfaces.implementsTR<
|
|
||||||
plugins.typedRequestInterfaces.ITypedRequest,
|
|
||||||
IReq_PerformDomainSnapshot
|
|
||||||
> {
|
|
||||||
method: 'performDomainSnapshot';
|
|
||||||
request: {
|
|
||||||
domainName: string;
|
|
||||||
};
|
|
||||||
response: {
|
|
||||||
domainSnapshot: IDomainSnapshot;
|
|
||||||
linkSnapshot: ILinkSnapshot;
|
|
||||||
};
|
|
||||||
}
|
|
@ -5,4 +5,6 @@ export { typedRequestInterfaces };
|
|||||||
// tsclass scope
|
// tsclass scope
|
||||||
import * as tsclass from '@tsclass/tsclass';
|
import * as tsclass from '@tsclass/tsclass';
|
||||||
|
|
||||||
export { tsclass };
|
export {
|
||||||
|
tsclass
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user