10 Commits

Author SHA1 Message Date
5f89befa03 2.0.5 2023-04-03 13:50:23 +02:00
84a2f67df9 fix(core): update 2023-04-03 13:50:22 +02:00
9022721d51 2.0.4 2023-04-03 13:40:57 +02:00
8e9c6be7e0 fix(core): update 2023-04-03 13:40:56 +02:00
a1bf280a2f 2.0.3 2022-07-19 17:17:57 +02:00
3391e0cea3 fix(core): update 2022-07-19 17:17:57 +02:00
5d7167b24a 2.0.2 2022-07-19 17:16:37 +02:00
df2563f501 fix(core): update 2022-07-19 17:16:37 +02:00
ac8a8653e1 2.0.1 2022-07-19 15:52:50 +02:00
1119e5f790 fix(core): update 2022-07-19 15:52:49 +02:00
19 changed files with 4645 additions and 11558 deletions

11477
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "@uptime.link/interfaces", "name": "@uptime.link/interfaces",
"version": "2.0.0", "version": "2.0.5",
"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,13 +14,14 @@
"buildDocs": "tsdoc" "buildDocs": "tsdoc"
}, },
"devDependencies": { "devDependencies": {
"@gitzone/tsbuild": "^2.1.63", "@gitzone/tsbuild": "^2.1.65",
"@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": "^1.0.15" "@apiglobal/typedrequest-interfaces": "^2.0.1",
"@tsclass/tsclass": "^4.0.34"
}, },
"files": [ "files": [
"ts/**/*", "ts/**/*",

4454
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -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.checkRequests.IRequest_PageCheck_Assumption['request']['domain'] 'hi' as interfaces.requests.IRequest_CheckExchange['request']['checkCollection']['id']
); );
}); });

View File

@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@uptime.link/interfaces', name: '@uptime.link/interfaces',
version: '2.0.0', version: '2.0.5',
description: 'TypeScript interface for the uptime.link API and modules' description: 'TypeScript interface for the uptime.link API and modules'
} }

View File

@ -0,0 +1,15 @@
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>;
}

View 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>;
};
}>;
}

View 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
View 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';

View 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
}>
}

View 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[];
};
}>;
}

View File

@ -1 +1,5 @@
export * from './checkcollection.js';
export * from './incident.js'; export * from './incident.js';
export * from './property.js';
export * from './search.js';
export * from './status.js';

10
ts/data/property.ts Normal file
View File

@ -0,0 +1,10 @@
import * as plugins from '../ul-interfaces.plugins.js';
export class IUplinkProperty {
wgOrgIdRef: string;
wgPropertyIdRef: string;
name: string;
type: 'website' | 'app' | 'api' | 'other';
access: 'private' | 'public' | 'auth';
checkCollectionIdRefs: string[];
}

21
ts/data/search.ts Normal file
View 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[];
};
}

12
ts/data/status.ts Normal file
View File

@ -0,0 +1,12 @@
import * as plugins from '../ul-interfaces.plugins.js';
export interface IStatus {
last90days: IDailyStatus[];
}
export interface IDailyStatus {
timezone: 'UTC',
date: plugins.tsclass.general.IDate;
overallStatus: 'ok' | 'reduced' | 'outage';
incidentRefs: string[];
}

View File

@ -1,3 +1,3 @@
import * as checkRequests from './requests.checks.js'; export * from './requests.checks.js';
export * from './requests.incidents.js';
export { checkRequests }; export * from './requests.status.js';

View File

@ -1,79 +1,16 @@
import { ICheckCollection } from '../data/checkcollection.js';
import * as plugins from '../ul-interfaces.plugins.js'; import * as plugins from '../ul-interfaces.plugins.js';
export type TCheckResultStatus = 'ok' | 'not ok' | 'timed out'; export interface IRequest_CheckExchange
export interface IRequest_PageCheck_PWA
extends plugins.typedRequestInterfaces.implementsTR< extends plugins.typedRequestInterfaces.implementsTR<
plugins.typedRequestInterfaces.ITypedRequest, plugins.typedRequestInterfaces.ITypedRequest,
IRequest_PageCheck_PWA IRequest_CheckExchange
> { > {
method: 'pwa'; method: 'check';
request: { request: {
intervalMs: number; checkCollection: ICheckCollection;
domain: string;
}; };
response: { response: {
timeStarted: number; checkCollection: ICheckCollection;
timeEnded: number; }
duration: number;
status: TCheckResultStatus;
data: {
lhr: any;
reports: any[];
};
checkLog: string[];
};
}
export interface IRequest_PageCheck_Function
extends plugins.typedRequestInterfaces.implementsTR<
plugins.typedRequestInterfaces.ITypedRequest,
IRequest_PageCheck_Function
> {
method: 'function';
request: {
intervalMs: number;
domain: string;
functionDef: string;
};
response: {
timeStarted: number;
timeEnded: number;
duration: number;
status: TCheckResultStatus;
data: any;
checkLog: string[];
};
}
export interface IRequest_PageCheck_Assumption
extends plugins.typedRequestInterfaces.implementsTR<
plugins.typedRequestInterfaces.ITypedRequest,
IRequest_PageCheck_Assumption
> {
method: 'assumption';
request: {
intervalMs: number;
domain: string;
title?: string;
statusCode?: string;
description?: string;
dnsRecordMx?: string;
dnsRecordTxt?: string;
};
response: {
timeStarted: number;
timeEnded: number;
duration: number;
status: TCheckResultStatus;
data: {
domain: string;
title?: string;
statusCode?: string;
description?: string;
dnsRecordMx?: string;
dnsRecordTxt?: string;
};
checkLog: string[];
};
} }

View File

@ -0,0 +1,17 @@
import * as plugins from '../ul-interfaces.plugins.js';
import * as data from '../data/index.js';
import { IStatus } from '../data/status.js';
export interface IRequest_Status_Get
extends plugins.typedRequestInterfaces.implementsTR<
plugins.typedRequestInterfaces.ITypedRequest,
IRequest_Status_Get
> {
method: 'getStatus';
request: {
userToken?: string;
};
response: {
status: IStatus;
};
}

View File

@ -1,3 +1,10 @@
import * as typedRequestInterfaces from '@apiglobal/typedrequest-interfaces'; import * as typedRequestInterfaces from '@apiglobal/typedrequest-interfaces';
export { typedRequestInterfaces }; export { typedRequestInterfaces };
// tsclass scope
import * as tsclass from '@tsclass/tsclass';
export {
tsclass
}