@8ms/helpers 2.2.9 → 2.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/deploy_npmjs.yml +3 -0
- package/_class/BaseClass.js +43 -52
- package/_class/BaseNamespace.js +17 -20
- package/_class/index.js +2 -7
- package/adverity/getJobs.js +7 -11
- package/adverity/index.js +51 -54
- package/adverity/server.js +1 -5
- package/api/ApiResponseClass.js +84 -88
- package/api/functions.js +13 -22
- package/api/index.js +3 -19
- package/api/types.js +5 -9
- package/array/index.js +3 -11
- package/atInternet/index.js +10 -13
- package/aws/ec2/AwsEc2Namespace.js +34 -74
- package/aws/ec2/server.js +5 -9
- package/aws/ecs/AwsEcsNamespace.js +110 -150
- package/aws/ecs/server.js +5 -9
- package/aws/glue/AwsGlueNamespace.js +26 -66
- package/aws/glue/server.js +5 -9
- package/aws/isResponse200.js +3 -7
- package/aws/lambda/AwsLambdaNamespace.js +62 -102
- package/aws/lambda/server.js +6 -11
- package/aws/s3/AwsS3Namespace.js +347 -390
- package/aws/s3/payload.js +29 -32
- package/aws/s3/server.js +9 -14
- package/aws/server.js +5 -10
- package/aws/ses/AwsSesNamespace.js +36 -76
- package/aws/ses/SimpleEmail.js +267 -304
- package/aws/ses/server.js +6 -11
- package/aws/sqs/AwsSqsNamespace.js +49 -89
- package/aws/sqs/server.js +5 -9
- package/aws/ssm/AwsSsmNamespace.js +43 -79
- package/aws/ssm/server.js +5 -9
- package/axios/deleteRequest.js +8 -15
- package/axios/get.js +8 -15
- package/axios/index.js +3 -9
- package/axios/post.js +8 -15
- package/boolean/index.js +3 -10
- package/brightData/serpApi/buildGoogleSerpUrl.js +1 -5
- package/brightData/serpApi/buildGoogleTrendsUrl.js +1 -5
- package/brightData/serpApi/getAsyncRequestId.js +8 -12
- package/brightData/serpApi/getAsyncResults.js +8 -12
- package/brightData/serpApi/getRealtime.js +3 -7
- package/brightData/serpApi/server.js +6 -14
- package/brightData/server.js +2 -7
- package/brightData/webScraperIde/getBatch.js +3 -7
- package/brightData/webScraperIde/getRealtime.js +11 -15
- package/brightData/webScraperIde/server.js +2 -7
- package/cache/server.js +2 -7
- package/cache/test/cache.test.js +4 -6
- package/crud/index.js +1 -4
- package/crypto/getDecrypt.js +2 -39
- package/crypto/getEncrypt.js +2 -39
- package/crypto/getRandom.js +1 -5
- package/crypto/getSha256.js +4 -41
- package/crypto/index.js +4 -11
- package/date/calculation.js +70 -99
- package/date/financialYear.js +16 -23
- package/date/format.js +40 -61
- package/date/index.js +4 -20
- package/date/type.js +4 -7
- package/environment/index.js +15 -25
- package/eskimi/getAgeGroup.js +3 -7
- package/eskimi/getData.js +3 -7
- package/eskimi/getDevice.js +3 -7
- package/eskimi/getGender.js +3 -7
- package/eskimi/server.js +23 -26
- package/file/index.js +8 -46
- package/geo/countries.js +1 -4
- package/geo/index.js +2 -7
- package/geo/languages.js +1 -4
- package/google/bigQuery/GoogleBigQueryNamespace.js +108 -148
- package/google/bigQuery/loadData.js +1 -5
- package/google/bigQuery/server.js +8 -14
- package/google/server.js +1 -5
- package/google/sheets/GoogleSheetsNamespace.js +34 -74
- package/google/sheets/getAssociatedData.js +1 -5
- package/google/sheets/server.js +8 -14
- package/google/storage/GoogleCloudStorageNamespace.js +62 -102
- package/google/storage/server.js +6 -10
- package/googleAds/GoogleAdsNamespace.js +28 -68
- package/googleAds/keywordPlanner/server.js +32 -35
- package/googleAds/server.js +6 -10
- package/googlePageSpeed/GooglePageSpeedNamespace.js +21 -28
- package/googlePageSpeed/server.js +8 -12
- package/googleSearchIncidents/server.js +28 -32
- package/greenDomain/server.js +17 -21
- package/inngest/server.js +1 -4
- package/json/getJsonNewline.js +3 -7
- package/json/index.js +2 -7
- package/json/isJson.js +1 -5
- package/littleWarden/LittleWardenNamespace.js +24 -31
- package/littleWarden/getUrlStatus.js +3 -7
- package/littleWarden/server.js +14 -22
- package/lumar/api/buildRequest.js +14 -18
- package/lumar/api/getData.js +3 -7
- package/lumar/api/initClient.js +3 -7
- package/lumar/api/server.js +6 -12
- package/lumar/graphql/columns.js +1 -4
- package/lumar/graphql/getData.js +3 -7
- package/lumar/graphql/initClient.js +3 -7
- package/lumar/graphql/queries/crawl.js +1 -2
- package/lumar/graphql/queries/getCrawls.js +1 -3
- package/lumar/graphql/queries/getReportDifferences.js +3 -5
- package/lumar/graphql/queries/getRows.js +1 -3
- package/lumar/graphql/queries/getTotals.js +1 -3
- package/lumar/graphql/queries/row.js +1 -2
- package/lumar/graphql/reportTemplates.js +1 -4
- package/lumar/graphql/server.js +7 -15
- package/myTarget/server.js +3 -7
- package/nextAuth/index.js +2 -6
- package/nextAuth/isSessionReady.js +1 -5
- package/nextJs/client/LazyLoad.js +5 -12
- package/nextJs/client.js +1 -5
- package/nextJs/index.js +2 -7
- package/number/format.js +3 -7
- package/number/formatCurrency.js +1 -5
- package/number/getDecimal.js +3 -7
- package/number/getNumber.js +3 -7
- package/number/getPercentIncrease.js +4 -8
- package/number/getSafeDivide.js +6 -10
- package/number/index.js +6 -15
- package/object/index.js +1 -5
- package/object/replaceKeys.js +3 -7
- package/onePassword/OnePasswordNamespace.js +36 -76
- package/onePassword/server.js +3 -7
- package/openAi/OpenAiNamespace.js +32 -39
- package/openAi/server.js +6 -10
- package/package.json +224 -122
- package/prisma/PrismaNamespace.js +53 -93
- package/prisma/getDecimal.js +5 -12
- package/prisma/server.js +4 -9
- package/scripts/generate-exports.js +50 -0
- package/snapchat/SnapchatNamespace.js +20 -27
- package/snapchat/server.js +6 -10
- package/sorting/byNumberAscending.js +1 -5
- package/sorting/byNumberDescending.js +1 -5
- package/sorting/byStringAscending.js +1 -5
- package/sorting/byStringDescending.js +1 -5
- package/sorting/index.js +4 -11
- package/stream/server.js +1 -5
- package/stream/sort.js +1 -5
- package/string/getCapitalised.js +3 -7
- package/string/getClean.js +17 -21
- package/string/getFolder.js +3 -10
- package/string/getProperCase.js +4 -8
- package/string/getString.js +8 -15
- package/string/getStringFromStream.js +1 -5
- package/string/getUnescaped.js +3 -10
- package/string/getWithoutAccents.js +1 -5
- package/string/getWithoutHtmlTags.js +1 -5
- package/string/getWithoutPunctuation.js +1 -5
- package/string/getWithoutUnderscores.js +1 -5
- package/string/getWithoutWhitespaces.js +1 -5
- package/string/index.js +12 -27
- package/string/reservedWords.js +5 -9
- package/swr/index.js +9 -18
- package/upTimeRobot/UpTimeRobotNamespace.js +32 -42
- package/upTimeRobot/server.js +11 -15
- package/url/index.js +12 -23
- package/url/server.js +1 -5
- package/url/writeUrlContents.js +6 -46
- package/util/defaultTo.js +5 -12
- package/util/getBrotliCompressed.js +3 -10
- package/util/getBrotliDecompressed.js +3 -10
- package/util/getClean.js +5 -9
- package/util/getError.js +1 -5
- package/util/getGzipCompressed.js +3 -10
- package/util/getGzipDecompressed.js +3 -10
- package/util/getWithoutHash.js +1 -5
- package/util/getWithoutParameter.js +1 -5
- package/util/index.js +7 -17
- package/util/isUndefined.js +3 -7
- package/util/promiseChunks.js +6 -10
- package/util/server.js +4 -11
- package/util/sleep.js +1 -5
- package/webWorker/index.js +1 -4
- package/xml/getXml.js +3 -7
|
@@ -1,58 +1,55 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.responseSchema = exports.defaultRequest = exports.requestSchema = exports.Network = void 0;
|
|
4
|
-
const v4_1 = require("zod/v4");
|
|
5
|
-
exports.Network = {
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
export const Network = {
|
|
6
3
|
GOOGLE_SEARCH_ONLY: 2,
|
|
7
4
|
GOOGLE_SEARCH_AND_PARTNERS: 3,
|
|
8
5
|
};
|
|
9
|
-
|
|
10
|
-
countries:
|
|
6
|
+
export const requestSchema = z.object({
|
|
7
|
+
countries: z.array(z.number())
|
|
11
8
|
.optional(),
|
|
12
|
-
customerId:
|
|
9
|
+
customerId: z.string()
|
|
13
10
|
.optional(),
|
|
14
|
-
historicalMetricsOptions:
|
|
15
|
-
startMonth:
|
|
16
|
-
startYear:
|
|
17
|
-
endMonth:
|
|
18
|
-
endYear:
|
|
11
|
+
historicalMetricsOptions: z.object({
|
|
12
|
+
startMonth: z.string(),
|
|
13
|
+
startYear: z.number(),
|
|
14
|
+
endMonth: z.string(),
|
|
15
|
+
endYear: z.number(),
|
|
19
16
|
})
|
|
20
17
|
.optional(),
|
|
21
|
-
includeAdultKeywords:
|
|
18
|
+
includeAdultKeywords: z.boolean()
|
|
22
19
|
.optional(),
|
|
23
|
-
keywordPlanNetwork:
|
|
20
|
+
keywordPlanNetwork: z.number()
|
|
24
21
|
.optional(),
|
|
25
|
-
queries:
|
|
22
|
+
queries: z.array(z.string())
|
|
26
23
|
.optional(),
|
|
27
|
-
language:
|
|
24
|
+
language: z.number()
|
|
28
25
|
.optional(),
|
|
29
|
-
url:
|
|
26
|
+
url: z.string()
|
|
30
27
|
.optional(),
|
|
31
28
|
});
|
|
32
|
-
|
|
29
|
+
export const defaultRequest = {
|
|
33
30
|
countries: [],
|
|
34
31
|
customerId: "",
|
|
35
32
|
historicalMetricsOptions: null,
|
|
36
33
|
includeAdultKeywords: false,
|
|
37
|
-
keywordPlanNetwork:
|
|
34
|
+
keywordPlanNetwork: Network.GOOGLE_SEARCH_ONLY,
|
|
38
35
|
queries: [],
|
|
39
36
|
language: null,
|
|
40
37
|
};
|
|
41
|
-
|
|
42
|
-
payload:
|
|
43
|
-
keyword:
|
|
44
|
-
avgCpc:
|
|
45
|
-
avgSearchVolume:
|
|
46
|
-
competition:
|
|
47
|
-
competitionIndex:
|
|
48
|
-
months:
|
|
49
|
-
date:
|
|
50
|
-
month:
|
|
51
|
-
searchVolume:
|
|
52
|
-
year:
|
|
38
|
+
export const responseSchema = z.object({
|
|
39
|
+
payload: z.object(),
|
|
40
|
+
keyword: z.string(),
|
|
41
|
+
avgCpc: z.number(),
|
|
42
|
+
avgSearchVolume: z.number(),
|
|
43
|
+
competition: z.number(),
|
|
44
|
+
competitionIndex: z.number(),
|
|
45
|
+
months: z.object({
|
|
46
|
+
date: z.string(),
|
|
47
|
+
month: z.number(),
|
|
48
|
+
searchVolume: z.number(),
|
|
49
|
+
year: z.number(),
|
|
53
50
|
})
|
|
54
51
|
.array(),
|
|
55
|
-
topOfPageBidHigh:
|
|
56
|
-
topOfPageBidLow:
|
|
57
|
-
totalSearchVolume:
|
|
52
|
+
topOfPageBidHigh: z.number(),
|
|
53
|
+
topOfPageBidLow: z.number(),
|
|
54
|
+
totalSearchVolume: z.number(),
|
|
58
55
|
});
|
package/googleAds/server.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.googleAdsClient = void 0;
|
|
4
|
-
const GoogleAdsNamespace_1 = require("./GoogleAdsNamespace");
|
|
5
|
-
const server_1 = require("../onePassword/server");
|
|
1
|
+
import { GoogleAdsNamespace } from "./GoogleAdsNamespace";
|
|
2
|
+
import { onePasswordClient } from "../onePassword/server";
|
|
6
3
|
const googleAdsNamespaces = new Map();
|
|
7
|
-
const googleAdsClient = async (key = "default", config, vaultId, itemId) => {
|
|
4
|
+
export const googleAdsClient = async (key = "default", config, vaultId, itemId) => {
|
|
8
5
|
if (googleAdsNamespaces.has(key)) {
|
|
9
6
|
return googleAdsNamespaces.get(key);
|
|
10
7
|
}
|
|
@@ -13,18 +10,17 @@ const googleAdsClient = async (key = "default", config, vaultId, itemId) => {
|
|
|
13
10
|
instanceConfig = config;
|
|
14
11
|
}
|
|
15
12
|
else if (vaultId && itemId) {
|
|
16
|
-
instanceConfig = await (await
|
|
13
|
+
instanceConfig = await (await onePasswordClient())
|
|
17
14
|
.getJsonNote(vaultId, itemId);
|
|
18
15
|
}
|
|
19
16
|
else if (process.env.GOOGLE_ADS_VAULT_ID && process.env.GOOGLE_ADS_ITEM_ID) {
|
|
20
|
-
instanceConfig = await (await
|
|
17
|
+
instanceConfig = await (await onePasswordClient())
|
|
21
18
|
.getJsonNote(process.env.GOOGLE_ADS_VAULT_ID, process.env.GOOGLE_ADS_ITEM_ID);
|
|
22
19
|
}
|
|
23
20
|
else {
|
|
24
21
|
throw new Error(`Config required for namespace '${key}'`);
|
|
25
22
|
}
|
|
26
|
-
const namespace = new
|
|
23
|
+
const namespace = new GoogleAdsNamespace(key, instanceConfig);
|
|
27
24
|
googleAdsNamespaces.set(key, namespace);
|
|
28
25
|
return namespace;
|
|
29
26
|
};
|
|
30
|
-
exports.googleAdsClient = googleAdsClient;
|
|
@@ -1,34 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const _class_1 = require("../_class");
|
|
5
|
-
const server_1 = require("./server");
|
|
6
|
-
const axios_1 = require("../axios");
|
|
1
|
+
import { BaseNamespace } from "../_class";
|
|
2
|
+
import { Category, Strategy } from "./server";
|
|
3
|
+
import { get } from "../axios";
|
|
7
4
|
/**
|
|
8
5
|
* Based on https://developers.google.com/speed/docs/insights/rest/v5/pagespeedapi/runpagespeed
|
|
9
6
|
*/
|
|
10
|
-
class GooglePageSpeedNamespace extends
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
// There is not API client but potentially multiple keys to manage instances
|
|
17
|
-
this.client = true;
|
|
18
|
-
}
|
|
19
|
-
catch (e) {
|
|
20
|
-
throw new Error("Google PageSpeed Client not installed");
|
|
21
|
-
}
|
|
7
|
+
export class GooglePageSpeedNamespace extends BaseNamespace {
|
|
8
|
+
ensureInit = async () => {
|
|
9
|
+
if (!this.client) {
|
|
10
|
+
try {
|
|
11
|
+
// There is not API client but potentially multiple keys to manage instances
|
|
12
|
+
this.client = true;
|
|
22
13
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const requestUrl = `https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=${url}&strategy=${strategy}&category=${category}&key=${this.config.apiKey}`;
|
|
26
|
-
const apiResponse = await (0, axios_1.get)(requestUrl);
|
|
27
|
-
if (apiResponse.isSuccess()) {
|
|
28
|
-
return apiResponse.getBody();
|
|
14
|
+
catch (e) {
|
|
15
|
+
throw new Error("Google PageSpeed Client not installed");
|
|
29
16
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
getReport = async (url, category = Category.PERFORMANCE, strategy = Strategy.MOBILE) => {
|
|
20
|
+
const requestUrl = `https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=${url}&strategy=${strategy}&category=${category}&key=${this.config.apiKey}`;
|
|
21
|
+
const apiResponse = await get(requestUrl);
|
|
22
|
+
if (apiResponse.isSuccess()) {
|
|
23
|
+
return apiResponse.getBody();
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
};
|
|
33
27
|
}
|
|
34
|
-
exports.GooglePageSpeedNamespace = GooglePageSpeedNamespace;
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.Strategy = exports.Category = exports.googlePageSpeedClient = void 0;
|
|
4
|
-
const GooglePageSpeedNamespace_1 = require("./GooglePageSpeedNamespace");
|
|
5
|
-
const server_1 = require("../onePassword/server");
|
|
1
|
+
import { GooglePageSpeedNamespace } from "./GooglePageSpeedNamespace";
|
|
2
|
+
import { onePasswordClient } from "../onePassword/server";
|
|
6
3
|
const googlePageSpeedNamespaces = new Map();
|
|
7
|
-
const googlePageSpeedClient = async (key = "default", config, vaultId, itemId) => {
|
|
4
|
+
export const googlePageSpeedClient = async (key = "default", config, vaultId, itemId) => {
|
|
8
5
|
if (googlePageSpeedNamespaces.has(key)) {
|
|
9
6
|
return googlePageSpeedNamespaces.get(key);
|
|
10
7
|
}
|
|
@@ -13,29 +10,28 @@ const googlePageSpeedClient = async (key = "default", config, vaultId, itemId) =
|
|
|
13
10
|
instanceConfig = config;
|
|
14
11
|
}
|
|
15
12
|
else if (vaultId && itemId) {
|
|
16
|
-
instanceConfig = await (await
|
|
13
|
+
instanceConfig = await (await onePasswordClient())
|
|
17
14
|
.getJsonNote(vaultId, itemId);
|
|
18
15
|
}
|
|
19
16
|
else if (process.env.GOOGLE_PAGE_SPEED_VAULT_ID && process.env.GOOGLE_PAGE_SPEED_ITEM_ID) {
|
|
20
|
-
instanceConfig = await (await
|
|
17
|
+
instanceConfig = await (await onePasswordClient())
|
|
21
18
|
.getJsonNote(process.env.GOOGLE_PAGE_SPEED_VAULT_ID, process.env.GOOGLE_PAGE_SPEED_ITEM_ID);
|
|
22
19
|
}
|
|
23
20
|
else {
|
|
24
21
|
throw new Error(`Config required for namespace '${key}'`);
|
|
25
22
|
}
|
|
26
|
-
const namespace = new
|
|
23
|
+
const namespace = new GooglePageSpeedNamespace(key, instanceConfig);
|
|
27
24
|
googlePageSpeedNamespaces.set(key, namespace);
|
|
28
25
|
return namespace;
|
|
29
26
|
};
|
|
30
|
-
|
|
31
|
-
exports.Category = {
|
|
27
|
+
export const Category = {
|
|
32
28
|
CATEGORY_UNSPECIFIED: "CATEGORY_UNSPECIFIED",
|
|
33
29
|
ACCESSIBILITY: "ACCESSIBILITY",
|
|
34
30
|
BEST_PRACTICES: "BEST_PRACTICES",
|
|
35
31
|
PERFORMANCE: "PERFORMANCE",
|
|
36
32
|
SEO: "SEO",
|
|
37
33
|
};
|
|
38
|
-
|
|
34
|
+
export const Strategy = {
|
|
39
35
|
STRATEGY_UNSPECIFIED: "STRATEGY_UNSPECIFIED",
|
|
40
36
|
DESKTOP: "DESKTOP",
|
|
41
37
|
MOBILE: "MOBILE",
|
|
@@ -1,46 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.incidentSchema = exports.updateSchema = exports.getReport = void 0;
|
|
4
|
-
const axios_1 = require("../axios");
|
|
5
|
-
const v4_1 = require("zod/v4");
|
|
1
|
+
import { get } from "../axios";
|
|
2
|
+
import { z } from "zod/v4";
|
|
6
3
|
/**
|
|
7
4
|
* https://status.search.google.com/summary
|
|
8
5
|
*/
|
|
9
|
-
const getReport = async () => {
|
|
6
|
+
export const getReport = async () => {
|
|
10
7
|
const url = "https://status.search.google.com/incidents.json";
|
|
11
|
-
const apiResponse = await
|
|
8
|
+
const apiResponse = await get(url);
|
|
12
9
|
if (apiResponse.isSuccess()) {
|
|
13
10
|
return apiResponse.getBody();
|
|
14
11
|
}
|
|
15
12
|
return null;
|
|
16
13
|
};
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
status: v4_1.z.enum(["AVAILABLE", "SERVICE_DISRUPTION", "SERVICE_INFORMATION"]),
|
|
14
|
+
export const updateSchema = z.object({
|
|
15
|
+
created: z.string(),
|
|
16
|
+
modified: z.string(),
|
|
17
|
+
when: z.string(),
|
|
18
|
+
text: z.string(),
|
|
19
|
+
status: z.enum(["AVAILABLE", "SERVICE_DISRUPTION", "SERVICE_INFORMATION"]),
|
|
24
20
|
});
|
|
25
|
-
|
|
26
|
-
id:
|
|
27
|
-
number:
|
|
28
|
-
begin:
|
|
29
|
-
created:
|
|
30
|
-
end:
|
|
31
|
-
modified:
|
|
32
|
-
external_desc:
|
|
33
|
-
updates:
|
|
34
|
-
most_recent_update:
|
|
35
|
-
status_impact:
|
|
36
|
-
severity:
|
|
37
|
-
service_key:
|
|
38
|
-
service_name:
|
|
39
|
-
affected_products:
|
|
40
|
-
title:
|
|
41
|
-
id:
|
|
21
|
+
export const incidentSchema = z.object({
|
|
22
|
+
id: z.string(),
|
|
23
|
+
number: z.string(),
|
|
24
|
+
begin: z.string(),
|
|
25
|
+
created: z.string(),
|
|
26
|
+
end: z.string().optional(),
|
|
27
|
+
modified: z.string(),
|
|
28
|
+
external_desc: z.string(),
|
|
29
|
+
updates: updateSchema.array(),
|
|
30
|
+
most_recent_update: updateSchema,
|
|
31
|
+
status_impact: z.enum(["SERVICE_DISRUPTION", "SERVICE_INFORMATION"]),
|
|
32
|
+
severity: z.enum(["low", "medium", "high"]),
|
|
33
|
+
service_key: z.string(),
|
|
34
|
+
service_name: z.enum(["Indexing", "Ranking", "Serving"]),
|
|
35
|
+
affected_products: z.object({
|
|
36
|
+
title: z.string(),
|
|
37
|
+
id: z.string(),
|
|
42
38
|
})
|
|
43
39
|
.array(),
|
|
44
|
-
uri:
|
|
40
|
+
uri: z.string(),
|
|
45
41
|
})
|
|
46
42
|
.array();
|
package/greenDomain/server.js
CHANGED
|
@@ -1,40 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.greenDomainSchema = exports.getSingleReport = void 0;
|
|
4
|
-
const axios_1 = require("../axios");
|
|
5
|
-
const v4_1 = require("zod/v4");
|
|
1
|
+
import { get } from "../axios";
|
|
2
|
+
import { z } from "zod/v4";
|
|
6
3
|
/**
|
|
7
4
|
* https://developers.thegreenwebfoundation.org/api/greencheck/v3/check-single-domain/
|
|
8
5
|
*/
|
|
9
|
-
const getSingleReport = async (domain) => {
|
|
6
|
+
export const getSingleReport = async (domain) => {
|
|
10
7
|
const url = `https://api.thegreenwebfoundation.org/greencheck/${domain}`;
|
|
11
|
-
const apiResponse = await
|
|
8
|
+
const apiResponse = await get(url);
|
|
12
9
|
if (apiResponse.isSuccess()) {
|
|
13
10
|
return apiResponse.getBody();
|
|
14
11
|
}
|
|
15
12
|
return null;
|
|
16
13
|
};
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
data: v4_1.z.boolean()
|
|
14
|
+
export const greenDomainSchema = z.object({
|
|
15
|
+
green: z.boolean(),
|
|
16
|
+
url: z.string(),
|
|
17
|
+
data: z.boolean()
|
|
22
18
|
.optional(),
|
|
23
|
-
hosted_by:
|
|
19
|
+
hosted_by: z.string()
|
|
24
20
|
.optional(),
|
|
25
|
-
hosted_by_website:
|
|
21
|
+
hosted_by_website: z.string()
|
|
26
22
|
.optional(),
|
|
27
|
-
partner:
|
|
23
|
+
partner: z.string()
|
|
28
24
|
.nullable()
|
|
29
25
|
.optional(),
|
|
30
|
-
hosted_by_id:
|
|
26
|
+
hosted_by_id: z.number()
|
|
31
27
|
.optional(),
|
|
32
|
-
modified:
|
|
28
|
+
modified: z.string()
|
|
33
29
|
.optional(),
|
|
34
|
-
supporting_documents:
|
|
35
|
-
id:
|
|
36
|
-
title:
|
|
37
|
-
link:
|
|
30
|
+
supporting_documents: z.object({
|
|
31
|
+
id: z.number(),
|
|
32
|
+
title: z.string(),
|
|
33
|
+
link: z.string(),
|
|
38
34
|
})
|
|
39
35
|
.array()
|
|
40
36
|
.optional(),
|
package/inngest/server.js
CHANGED
package/json/getJsonNewline.js
CHANGED
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.getJsonNewline = void 0;
|
|
4
|
-
const array_1 = require("../array");
|
|
5
|
-
const getJsonNewline = (data) => {
|
|
1
|
+
import { getArray } from '../array';
|
|
2
|
+
export const getJsonNewline = (data) => {
|
|
6
3
|
// Must be an array
|
|
7
|
-
const inputArray =
|
|
4
|
+
const inputArray = getArray(data);
|
|
8
5
|
// For each array row convert the row
|
|
9
6
|
const stringRows = inputArray.map(row => JSON.stringify(row));
|
|
10
7
|
// Combine each row with a line separator
|
|
11
8
|
return stringRows.join("\n");
|
|
12
9
|
};
|
|
13
|
-
exports.getJsonNewline = getJsonNewline;
|
package/json/index.js
CHANGED
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.isJson = exports.getJsonNewline = void 0;
|
|
4
|
-
var getJsonNewline_1 = require("./getJsonNewline");
|
|
5
|
-
Object.defineProperty(exports, "getJsonNewline", { enumerable: true, get: function () { return getJsonNewline_1.getJsonNewline; } });
|
|
6
|
-
var isJson_1 = require("./isJson");
|
|
7
|
-
Object.defineProperty(exports, "isJson", { enumerable: true, get: function () { return isJson_1.isJson; } });
|
|
1
|
+
export { getJsonNewline } from "./getJsonNewline";
|
|
2
|
+
export { isJson } from "./isJson";
|
package/json/isJson.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isJson = void 0;
|
|
4
|
-
const isJson = (input) => {
|
|
1
|
+
export const isJson = (input) => {
|
|
5
2
|
// If input is already an object/array/primitive that's not a string,
|
|
6
3
|
// it's considered valid JSON if it can be stringified and re-parsed
|
|
7
4
|
if (typeof input !== "string") {
|
|
@@ -23,4 +20,3 @@ const isJson = (input) => {
|
|
|
23
20
|
return false;
|
|
24
21
|
}
|
|
25
22
|
};
|
|
26
|
-
exports.isJson = isJson;
|
|
@@ -1,37 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.LittleWardenNamespace = void 0;
|
|
4
|
-
const _class_1 = require("../_class");
|
|
5
|
-
const axios_1 = require("../axios");
|
|
1
|
+
import { BaseNamespace } from "../_class";
|
|
2
|
+
import { get } from "../axios";
|
|
6
3
|
/**
|
|
7
4
|
* Based on https://developers.google.com/speed/docs/insights/rest/v5/pagespeedapi/runpagespeed
|
|
8
5
|
*/
|
|
9
|
-
class LittleWardenNamespace extends
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
// There is not API client but potentially multiple keys to manage instances
|
|
16
|
-
this.client = true;
|
|
17
|
-
}
|
|
18
|
-
catch (e) {
|
|
19
|
-
throw new Error("Google PageSpeed Client not installed");
|
|
20
|
-
}
|
|
6
|
+
export class LittleWardenNamespace extends BaseNamespace {
|
|
7
|
+
ensureInit = async () => {
|
|
8
|
+
if (!this.client) {
|
|
9
|
+
try {
|
|
10
|
+
// There is not API client but potentially multiple keys to manage instances
|
|
11
|
+
this.client = true;
|
|
21
12
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const url = `https://littlewarden.com/api/sites/${urlId}`;
|
|
25
|
-
const apiResponse = await (0, axios_1.get)(url, {
|
|
26
|
-
headers: {
|
|
27
|
-
"Authorization": `Token token="${this.config.apiKey}"`,
|
|
28
|
-
},
|
|
29
|
-
});
|
|
30
|
-
if (apiResponse.isSuccess()) {
|
|
31
|
-
return apiResponse.getBody();
|
|
13
|
+
catch (e) {
|
|
14
|
+
throw new Error("Google PageSpeed Client not installed");
|
|
32
15
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
getReport = async (urlId) => {
|
|
19
|
+
const url = `https://littlewarden.com/api/sites/${urlId}`;
|
|
20
|
+
const apiResponse = await get(url, {
|
|
21
|
+
headers: {
|
|
22
|
+
"Authorization": `Token token="${this.config.apiKey}"`,
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
if (apiResponse.isSuccess()) {
|
|
26
|
+
return apiResponse.getBody();
|
|
27
|
+
}
|
|
28
|
+
return null;
|
|
29
|
+
};
|
|
36
30
|
}
|
|
37
|
-
exports.LittleWardenNamespace = LittleWardenNamespace;
|
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getUrlStatus = void 0;
|
|
4
|
-
const axios_1 = require("../axios");
|
|
1
|
+
import { get } from "../axios";
|
|
5
2
|
/**
|
|
6
3
|
* Get the URL Status for a given URL ID from Little Warden.
|
|
7
4
|
*/
|
|
8
|
-
const getUrlStatus = async (apiKey, urlId) => {
|
|
9
|
-
const response = await
|
|
5
|
+
export const getUrlStatus = async (apiKey, urlId) => {
|
|
6
|
+
const response = await get(`https://littlewarden.com/api/sites/${urlId}`, {
|
|
10
7
|
headers: {
|
|
11
8
|
"Authorization": `Token token="${apiKey}"`,
|
|
12
9
|
},
|
|
13
10
|
});
|
|
14
11
|
return response.getBodyDefaultTo(["data", "site"], {});
|
|
15
12
|
};
|
|
16
|
-
exports.getUrlStatus = getUrlStatus;
|
package/littleWarden/server.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.getUrlStatus = exports.isDanger = exports.isWarning = exports.isAllGood = exports.LittleWardenState = exports.littleWardenClient = void 0;
|
|
4
|
-
const LittleWardenNamespace_1 = require("./LittleWardenNamespace");
|
|
5
|
-
const server_1 = require("../onePassword/server");
|
|
1
|
+
import { LittleWardenNamespace } from "./LittleWardenNamespace";
|
|
2
|
+
import { onePasswordClient } from "../onePassword/server";
|
|
6
3
|
const littleWardenNamespaces = new Map();
|
|
7
|
-
const littleWardenClient = async (key = "default", config, vaultId, itemId) => {
|
|
4
|
+
export const littleWardenClient = async (key = "default", config, vaultId, itemId) => {
|
|
8
5
|
if (littleWardenNamespaces.has(key)) {
|
|
9
6
|
return littleWardenNamespaces.get(key);
|
|
10
7
|
}
|
|
@@ -13,22 +10,21 @@ const littleWardenClient = async (key = "default", config, vaultId, itemId) => {
|
|
|
13
10
|
instanceConfig = config;
|
|
14
11
|
}
|
|
15
12
|
else if (vaultId && itemId) {
|
|
16
|
-
instanceConfig = await (await
|
|
13
|
+
instanceConfig = await (await onePasswordClient())
|
|
17
14
|
.getJsonNote(vaultId, itemId);
|
|
18
15
|
}
|
|
19
16
|
else if (process.env.LITTLE_WARDEN_VAULT_ID && process.env.LITTLE_WARDEN_ITEM_ID) {
|
|
20
|
-
instanceConfig = await (await
|
|
17
|
+
instanceConfig = await (await onePasswordClient())
|
|
21
18
|
.getJsonNote(process.env.LITTLE_WARDEN_VAULT_ID, process.env.LITTLE_WARDEN_ITEM_ID);
|
|
22
19
|
}
|
|
23
20
|
else {
|
|
24
21
|
throw new Error(`Config required for namespace '${key}'`);
|
|
25
22
|
}
|
|
26
|
-
const namespace = new
|
|
23
|
+
const namespace = new LittleWardenNamespace(key, instanceConfig);
|
|
27
24
|
littleWardenNamespaces.set(key, namespace);
|
|
28
25
|
return namespace;
|
|
29
26
|
};
|
|
30
|
-
|
|
31
|
-
exports.LittleWardenState = {
|
|
27
|
+
export const LittleWardenState = {
|
|
32
28
|
ALL_GOOD: "all_good",
|
|
33
29
|
DANGER: "danger",
|
|
34
30
|
WARNING: "warning",
|
|
@@ -36,38 +32,34 @@ exports.LittleWardenState = {
|
|
|
36
32
|
/**
|
|
37
33
|
* Check if the field is All Good.
|
|
38
34
|
*/
|
|
39
|
-
const isAllGood = ({ field }) => {
|
|
35
|
+
export const isAllGood = ({ field }) => {
|
|
40
36
|
let response = false;
|
|
41
37
|
// Check that the status field exists
|
|
42
38
|
if (undefined !== field && undefined !== field["status"]) {
|
|
43
|
-
response =
|
|
39
|
+
response = LittleWardenState.ALL_GOOD === field["status"];
|
|
44
40
|
}
|
|
45
41
|
return response;
|
|
46
42
|
};
|
|
47
|
-
exports.isAllGood = isAllGood;
|
|
48
43
|
/**
|
|
49
44
|
* Check if the field is Warning.
|
|
50
45
|
*/
|
|
51
|
-
const isWarning = ({ field }) => {
|
|
46
|
+
export const isWarning = ({ field }) => {
|
|
52
47
|
let response = false;
|
|
53
48
|
// Check that the status field exists
|
|
54
49
|
if (undefined !== field && undefined !== field["status"]) {
|
|
55
|
-
response =
|
|
50
|
+
response = LittleWardenState.WARNING === field["status"];
|
|
56
51
|
}
|
|
57
52
|
return response;
|
|
58
53
|
};
|
|
59
|
-
exports.isWarning = isWarning;
|
|
60
54
|
/**
|
|
61
55
|
* Check if the field is Danger.
|
|
62
56
|
*/
|
|
63
|
-
const isDanger = ({ field }) => {
|
|
57
|
+
export const isDanger = ({ field }) => {
|
|
64
58
|
let response = false;
|
|
65
59
|
// Check that the status field exists
|
|
66
60
|
if (undefined !== field && undefined !== field["status"]) {
|
|
67
|
-
response =
|
|
61
|
+
response = LittleWardenState.DANGER === field["status"];
|
|
68
62
|
}
|
|
69
63
|
return response;
|
|
70
64
|
};
|
|
71
|
-
|
|
72
|
-
var getUrlStatus_1 = require("./getUrlStatus");
|
|
73
|
-
Object.defineProperty(exports, "getUrlStatus", { enumerable: true, get: function () { return getUrlStatus_1.getUrlStatus; } });
|
|
65
|
+
export { getUrlStatus } from "./getUrlStatus";
|