Compare commits
36 Commits
Author | SHA1 | Date | |
---|---|---|---|
add4a52635 | |||
de3ac113fc | |||
2cf760d788 | |||
b9a23d5497 | |||
1c196ea31a | |||
d1088270bc | |||
e7a11c2b54 | |||
9d8985d67a | |||
5afbf16906 | |||
1ef7737dc9 | |||
4d961003e8 | |||
24762468da | |||
4c57804da2 | |||
847f3a4f1c | |||
d5d896a91e | |||
53b732a3f7 | |||
f7f75a64db | |||
2a0aa6db07 | |||
6a4849f87d | |||
6ba521c1b9 | |||
267dca249f | |||
0b8249a21f | |||
cf4d90ecbd | |||
92d9f441d1 | |||
44d62df972 | |||
289ddfc153 | |||
a1cef67eee | |||
5b75506634 | |||
66ed64548a | |||
31888a7f07 | |||
a49f1cd110 | |||
9b7f76b22a | |||
5f89befa03 | |||
84a2f67df9 | |||
9022721d51 | |||
8e9c6be7e0 |
@ -13,8 +13,13 @@ stages:
|
||||
- metadata
|
||||
|
||||
before_script:
|
||||
- npm install -g @shipzone/npmci
|
||||
- pnpm install -g pnpm
|
||||
- pnpm install -g @shipzone/npmci
|
||||
- npmci npm prepare
|
||||
|
||||
# ====================
|
||||
# security stage
|
||||
# ====================
|
||||
# ====================
|
||||
# security stage
|
||||
# ====================
|
||||
@ -22,11 +27,10 @@ auditProductionDependencies:
|
||||
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||
stage: security
|
||||
script:
|
||||
- npmci npm prepare
|
||||
- npmci command npm install --production --ignore-scripts
|
||||
- npmci command npm config set registry https://registry.npmjs.org
|
||||
- npmci command npm audit --audit-level=high --only=prod --production
|
||||
- npmci command npm config set registry https://registry.npmjs.org
|
||||
- npmci command pnpm audit --audit-level=high --prod
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
allow_failure: true
|
||||
|
||||
@ -34,11 +38,10 @@ auditDevDependencies:
|
||||
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||
stage: security
|
||||
script:
|
||||
- npmci npm prepare
|
||||
- npmci command npm install --ignore-scripts
|
||||
- npmci command npm config set registry https://registry.npmjs.org
|
||||
- npmci command npm audit --audit-level=high --only=dev
|
||||
- npmci command pnpm audit --audit-level=high --dev
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
allow_failure: true
|
||||
|
||||
@ -49,7 +52,6 @@ auditDevDependencies:
|
||||
testStable:
|
||||
stage: test
|
||||
script:
|
||||
- npmci npm prepare
|
||||
- npmci node install stable
|
||||
- npmci npm install
|
||||
- npmci npm test
|
||||
@ -60,10 +62,9 @@ testStable:
|
||||
testBuild:
|
||||
stage: test
|
||||
script:
|
||||
- npmci npm prepare
|
||||
- npmci node install stable
|
||||
- npmci npm install
|
||||
- npmci command npm run build
|
||||
- npmci npm build
|
||||
coverage: /\d+.?\d+?\%\s*coverage/
|
||||
tags:
|
||||
- docker
|
||||
@ -111,8 +112,7 @@ trigger:
|
||||
pages:
|
||||
stage: metadata
|
||||
script:
|
||||
- npmci node install stable
|
||||
- npmci npm prepare
|
||||
- npmci node install stable
|
||||
- npmci npm install
|
||||
- npmci command npm run buildDocs
|
||||
tags:
|
||||
|
11003
package-lock.json
generated
11003
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
15
package.json
15
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@uptime.link/interfaces",
|
||||
"version": "2.0.3",
|
||||
"version": "2.0.21",
|
||||
"private": false,
|
||||
"description": "TypeScript interface for the uptime.link API and modules",
|
||||
"main": "dist_ts/index.js",
|
||||
@ -14,14 +14,15 @@
|
||||
"buildDocs": "tsdoc"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@gitzone/tsbuild": "^2.1.63",
|
||||
"@gitzone/tstest": "^1.0.71",
|
||||
"@pushrocks/tapbundle": "^5.0.3",
|
||||
"@types/node": "^18.0.5"
|
||||
"@gitzone/tsbuild": "^2.1.65",
|
||||
"@gitzone/tsrun": "^1.2.39",
|
||||
"@gitzone/tstest": "^1.0.74",
|
||||
"@pushrocks/tapbundle": "^5.0.4",
|
||||
"@types/node": "^18.15.11"
|
||||
},
|
||||
"dependencies": {
|
||||
"@apiglobal/typedrequest-interfaces": "^1.0.15",
|
||||
"@tsclass/tsclass": "^4.0.17"
|
||||
"@apiglobal/typedrequest-interfaces": "^2.0.1",
|
||||
"@tsclass/tsclass": "^4.0.38"
|
||||
},
|
||||
"files": [
|
||||
"ts/**/*",
|
||||
|
4464
pnpm-lock.yaml
generated
Normal file
4464
pnpm-lock.yaml
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -21,7 +21,6 @@ Code Style | [](htt
|
||||
PackagePhobia (total standalone install weight) | [](https://lossless.cloud)
|
||||
PackagePhobia (package size on registry) | [](https://lossless.cloud)
|
||||
BundlePhobia (total size when bundled) | [](https://lossless.cloud)
|
||||
Platform support | [](https://lossless.cloud) [](https://lossless.cloud)
|
||||
|
||||
## Usage
|
||||
|
||||
@ -35,7 +34,6 @@ 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.
|
||||
|
||||
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
|
||||
## Legal
|
||||
> MIT licensed | **©** [Task Venture Capital GmbH](https://task.vc)
|
||||
| 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 () => {
|
||||
console.log(
|
||||
'hi' as interfaces.requests.checkRequests.IRequest_PageCheck_Assumption['request']['domain']
|
||||
'hi' as interfaces.requests.IRequest_CheckExchange['request']['checkCollection']['id']
|
||||
);
|
||||
});
|
||||
|
||||
|
@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@uptime.link/interfaces',
|
||||
version: '2.0.3',
|
||||
version: '2.0.21',
|
||||
description: 'TypeScript interface for the uptime.link API and modules'
|
||||
}
|
||||
|
13
ts/data/checkcollection.ts
Normal file
13
ts/data/checkcollection.ts
Normal file
@ -0,0 +1,13 @@
|
||||
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>;
|
||||
}
|
@ -1,59 +0,0 @@
|
||||
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[];
|
||||
}>;
|
||||
}
|
23
ts/data/checks/assumption.check.ts
Normal file
23
ts/data/checks/assumption.check.ts
Normal file
@ -0,0 +1,23 @@
|
||||
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>;
|
||||
};
|
||||
}>;
|
||||
}
|
15
ts/data/checks/function.check.ts
Normal file
15
ts/data/checks/function.check.ts
Normal file
@ -0,0 +1,15 @@
|
||||
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[];
|
||||
}>;
|
||||
}
|
13
ts/data/checks/index.ts
Normal file
13
ts/data/checks/index.ts
Normal file
@ -0,0 +1,13 @@
|
||||
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';
|
19
ts/data/checks/pagerank.check.ts
Normal file
19
ts/data/checks/pagerank.check.ts
Normal file
@ -0,0 +1,19 @@
|
||||
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;
|
||||
}>;
|
||||
}
|
16
ts/data/checks/pwa.check.ts
Normal file
16
ts/data/checks/pwa.check.ts
Normal file
@ -0,0 +1,16 @@
|
||||
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[];
|
||||
};
|
||||
}>;
|
||||
}
|
31
ts/data/domainsnapshot.ts
Normal file
31
ts/data/domainsnapshot.ts
Normal file
@ -0,0 +1,31 @@
|
||||
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,4 +1,11 @@
|
||||
export * from './checks.js';
|
||||
export * from './checkcollection.js';
|
||||
export * from './domainsnapshot.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 };
|
||||
|
29
ts/data/linksnapshot.ts
Normal file
29
ts/data/linksnapshot.ts
Normal file
@ -0,0 +1,29 @@
|
||||
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,9 +1,10 @@
|
||||
import * as plugins from '../ul-interfaces.plugins.js';
|
||||
|
||||
export class IProperty {
|
||||
export class IUplinkProperty {
|
||||
wgOrgIdRef: string;
|
||||
wgPropertyIdRef: string;
|
||||
name: string;
|
||||
type: 'website' | 'app' | 'api' | 'other';
|
||||
access: 'private' | 'public' | 'auth';
|
||||
checkRefs: string[];
|
||||
|
||||
}
|
||||
checkCollectionIdRefs: string[];
|
||||
}
|
||||
|
21
ts/data/search.ts
Normal file
21
ts/data/search.ts
Normal file
@ -0,0 +1,21 @@
|
||||
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[];
|
||||
};
|
||||
}
|
@ -1,12 +1,12 @@
|
||||
import * as plugins from '../ul-interfaces.plugins.js';
|
||||
|
||||
export interface IStatus {
|
||||
last90days: IDailyStatus[];
|
||||
last90days: IDailyStatus[];
|
||||
}
|
||||
|
||||
export interface IDailyStatus {
|
||||
timezone: 'UTC',
|
||||
timezone: 'UTC';
|
||||
date: plugins.tsclass.general.IDate;
|
||||
overallStatus: 'ok' | 'reduced' | 'outage';
|
||||
incidentRefs: string[];
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,4 @@
|
||||
export * from './requests.checks.js';
|
||||
export * from './requests.incidents.js';
|
||||
export * from './requests.snapshot.js';
|
||||
export * from './requests.status.js';
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { ICheck } from '../data/checks.js';
|
||||
import { ICheckCollection } from '../data/checkcollection.js';
|
||||
import * as plugins from '../ul-interfaces.plugins.js';
|
||||
|
||||
export interface IRequest_CheckExchange
|
||||
@ -8,9 +8,9 @@ export interface IRequest_CheckExchange
|
||||
> {
|
||||
method: 'check';
|
||||
request: {
|
||||
check: ICheck;
|
||||
checkCollection: ICheckCollection;
|
||||
};
|
||||
response: {
|
||||
check: ICheck;
|
||||
}
|
||||
checkCollection: ICheckCollection;
|
||||
};
|
||||
}
|
||||
|
18
ts/requests/requests.snapshot.ts
Normal file
18
ts/requests/requests.snapshot.ts
Normal file
@ -0,0 +1,18 @@
|
||||
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,6 +5,4 @@ export { typedRequestInterfaces };
|
||||
// tsclass scope
|
||||
import * as tsclass from '@tsclass/tsclass';
|
||||
|
||||
export {
|
||||
tsclass
|
||||
}
|
||||
export { tsclass };
|
||||
|
Loading…
x
Reference in New Issue
Block a user