@xyo-network/url-safety-plugin 7.0.0 → 7.0.2

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.
@@ -1,3 +1,3 @@
1
1
  import { UrlSafetyWitness } from './Witness/index.ts';
2
- export declare const UrlSafetyPlugin: () => import("@xyo-network/sdk-js").PayloadSetWitnessPlugin<UrlSafetyWitness<import("./Witness/Params.ts").UrlSafetyWitnessParams>>;
2
+ export declare const UrlSafetyPlugin: () => import("@xyo-network/sdk").PayloadSetWitnessPlugin<UrlSafetyWitness<import("./Witness/Params.ts").UrlSafetyWitnessParams>>;
3
3
  //# sourceMappingURL=Plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,eAAO,MAAM,eAAe,qIASzB,CAAA"}
1
+ {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,eAAO,MAAM,eAAe,kIASzB,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { WitnessConfig } from '@xyo-network/sdk-js';
1
+ import type { WitnessConfig } from '@xyo-network/sdk';
2
2
  export declare const UrlSafetyWitnessConfigSchema: string & {
3
3
  readonly __schema: true;
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../../src/Witness/Config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAIxD,eAAO,MAAM,4BAA4B;;CAAsD,CAAA;AAC/F,MAAM,MAAM,4BAA4B,GAAG,OAAO,4BAA4B,CAAA;AAE9E,MAAM,MAAM,sBAAsB,GAAG,aAAa,CAAC;IACjD,MAAM,CAAC,EAAE;QACP,YAAY,CAAC,EAAE;YACb,QAAQ,CAAC,EAAE,MAAM,CAAA;SAClB,CAAA;KACF,CAAA;IACD,MAAM,EAAE,4BAA4B,CAAA;IACpC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB,CAAC,CAAA"}
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../../src/Witness/Config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAIrD,eAAO,MAAM,4BAA4B;;CAAsD,CAAA;AAC/F,MAAM,MAAM,4BAA4B,GAAG,OAAO,4BAA4B,CAAA;AAE9E,MAAM,MAAM,sBAAsB,GAAG,aAAa,CAAC;IACjD,MAAM,CAAC,EAAE;QACP,YAAY,CAAC,EAAE;YACb,QAAQ,CAAC,EAAE,MAAM,CAAA;SAClB,CAAA;KACF,CAAA;IACD,MAAM,EAAE,4BAA4B,CAAA;IACpC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB,CAAC,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { AnyConfigSchema, WitnessParams } from '@xyo-network/sdk-js';
1
+ import type { AnyConfigSchema, WitnessParams } from '@xyo-network/sdk';
2
2
  import type { UrlSafetyWitnessConfig } from './Config.ts';
3
3
  export interface UrlSafetyWitnessParams extends WitnessParams<AnyConfigSchema<UrlSafetyWitnessConfig>> {
4
4
  google?: {
@@ -1 +1 @@
1
- {"version":3,"file":"Params.d.ts","sourceRoot":"","sources":["../../../src/Witness/Params.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAEzD,MAAM,WAAW,sBAAuB,SAAQ,aAAa,CAC3D,eAAe,CAAC,sBAAsB,CAAC,CAAC;IAExC,MAAM,CAAC,EAAE;QACP,YAAY,CAAC,EAAE;YACb,QAAQ,CAAC,EAAE,MAAM,CAAA;YACjB,GAAG,CAAC,EAAE,MAAM,CAAA;SACb,CAAA;KACF,CAAA;CACF"}
1
+ {"version":3,"file":"Params.d.ts","sourceRoot":"","sources":["../../../src/Witness/Params.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEtE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAEzD,MAAM,WAAW,sBAAuB,SAAQ,aAAa,CAC3D,eAAe,CAAC,sBAAsB,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE;QACP,YAAY,CAAC,EAAE;YACb,QAAQ,CAAC,EAAE,MAAM,CAAA;YACjB,GAAG,CAAC,EAAE,MAAM,CAAA;SACb,CAAA;KACF,CAAA;CACF"}
@@ -1,5 +1,5 @@
1
- import { type Schema } from '@xyo-network/sdk-js';
2
- import { AbstractWitness } from '@xyo-network/sdk-js';
1
+ import { type Schema } from '@xyo-network/sdk';
2
+ import { AbstractWitness } from '@xyo-network/sdk';
3
3
  import type { UrlPayload } from '@xyo-network/url-payload-plugin';
4
4
  import type { UrlSafetyPayload } from '@xyo-network/url-safety-payload-plugin';
5
5
  import * as z from 'zod/mini';
@@ -56,7 +56,7 @@ export declare const asGoogleSafeBrowsingMatchPayload: {
56
56
  threatEntryType: string;
57
57
  threatType: string;
58
58
  }) | undefined;
59
- <T>(value: T, assert: import("@xylabs/sdk-js").ZodFactoryConfig): T & {
59
+ <T>(value: T, assert: import("@ariestools/sdk").ZodFactoryConfig): T & {
60
60
  schema: "com.google.safebrowsing.match" & {
61
61
  readonly __schema: true;
62
62
  };
@@ -82,7 +82,7 @@ export declare const toGoogleSafeBrowsingMatchPayload: {
82
82
  threatEntryType: string;
83
83
  threatType: string;
84
84
  }) | undefined;
85
- <T>(value: T, assert: import("@xylabs/sdk-js").ZodFactoryConfig): T & {
85
+ <T>(value: T, assert: import("@ariestools/sdk").ZodFactoryConfig): T & {
86
86
  schema: "com.google.safebrowsing.match" & {
87
87
  readonly __schema: true;
88
88
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../src/Witness/Witness.ts"],"names":[],"mappings":"AAIA,OAAO,EACyB,KAAK,MAAM,EAC1C,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAEjE,OAAO,KAAK,EAAE,gBAAgB,EAAuB,MAAM,wCAAwC,CAAA;AAEnG,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAG7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAEzD,MAAM,MAAM,6BAA6B,GAAG,OAAO,6BAA6B,CAAA;AAChF,eAAO,MAAM,6BAA6B;;CAAkD,CAAA;AAE5F,eAAO,MAAM,0BAA0B;;;;;;;;iBAMrC,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEhF,eAAO,MAAM,iCAAiC;;;;;;;;;;;iBAAuG,CAAA;AAErJ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAA;AAE9F,eAAO,MAAM,gCAAgC;;;;;;;;;;;CAAkD,CAAA;AAC/F,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;CAAsF,CAAA;AACnI,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;CAAsF,CAAA;AAqCnI,qBAAa,gBAAgB,CAAC,OAAO,SAAS,sBAAsB,GAAG,sBAAsB,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC7H,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAyD;IACzG,gBAAyB,mBAAmB,EAAE,MAAM,CAA+B;IAEnF,IAAI,GAAG,uBAEN;IAED,IAAI,IAAI,yBAEP;cAEwB,cAAc,CAAC,QAAQ,GAAE,UAAU,EAAO,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;CA6BlG"}
1
+ {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../src/Witness/Witness.ts"],"names":[],"mappings":"AAIA,OAAO,EACyB,KAAK,MAAM,EAC1C,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAEjE,OAAO,KAAK,EAAE,gBAAgB,EAAuB,MAAM,wCAAwC,CAAA;AAEnG,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAG7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAEzD,MAAM,MAAM,6BAA6B,GAAG,OAAO,6BAA6B,CAAA;AAChF,eAAO,MAAM,6BAA6B;;CAAkD,CAAA;AAE5F,eAAO,MAAM,0BAA0B;;;;;;;;iBAMrC,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEhF,eAAO,MAAM,iCAAiC;;;;;;;;;;;iBAAuG,CAAA;AAErJ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAA;AAE9F,eAAO,MAAM,gCAAgC;;;;;;;;;;;CAAkD,CAAA;AAC/F,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;CAAsF,CAAA;AACnI,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;CAAsF,CAAA;AAqCnI,qBAAa,gBAAgB,CAAC,OAAO,SAAS,sBAAsB,GAAG,sBAAsB,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC7H,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAyD;IACzG,gBAAyB,mBAAmB,EAAE,MAAM,CAA+B;IAEnF,IAAI,GAAG,uBAEN;IAED,IAAI,IAAI,yBAEP;cAEwB,cAAc,CAAC,QAAQ,GAAE,UAAU,EAAO,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;CA4BlG"}
@@ -1,9 +1,9 @@
1
1
  // src/Plugin.ts
2
- import { createPayloadSetWitnessPlugin, PayloadSetSchema } from "@xyo-network/sdk-js";
2
+ import { createPayloadSetWitnessPlugin, PayloadSetSchema } from "@xyo-network/sdk";
3
3
  import { UrlSafetySchema as UrlSafetySchema3 } from "@xyo-network/url-safety-payload-plugin";
4
4
 
5
5
  // src/Witness/Config.ts
6
- import { asSchema } from "@xyo-network/sdk-js";
6
+ import { asSchema } from "@xyo-network/sdk";
7
7
  import { UrlSafetySchema } from "@xyo-network/url-safety-payload-plugin";
8
8
  var UrlSafetyWitnessConfigSchema = asSchema(`${UrlSafetySchema}.witness.config`, true);
9
9
 
@@ -13,12 +13,12 @@ import {
13
13
  zodAsFactory,
14
14
  zodIsFactory,
15
15
  zodToFactory
16
- } from "@xylabs/sdk-js";
16
+ } from "@ariestools/sdk";
17
17
  import {
18
18
  asSchema as asSchema2,
19
19
  PayloadZodOfSchema
20
- } from "@xyo-network/sdk-js";
21
- import { AbstractWitness } from "@xyo-network/sdk-js";
20
+ } from "@xyo-network/sdk";
21
+ import { AbstractWitness } from "@xyo-network/sdk";
22
22
  import { UrlSchema } from "@xyo-network/url-payload-plugin";
23
23
  import { UrlSafetySchema as UrlSafetySchema2 } from "@xyo-network/url-safety-payload-plugin";
24
24
  import * as z from "zod/mini";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Plugin.ts", "../../src/Witness/Config.ts", "../../src/Witness/Witness.ts"],
4
- "sourcesContent": ["import { createPayloadSetWitnessPlugin, PayloadSetSchema } from '@xyo-network/sdk-js'\nimport { UrlSafetySchema } from '@xyo-network/url-safety-payload-plugin'\n\nimport { UrlSafetyWitness } from './Witness/index.ts'\n\nexport const UrlSafetyPlugin = () =>\n createPayloadSetWitnessPlugin<UrlSafetyWitness>(\n { required: { [UrlSafetySchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await UrlSafetyWitness.create(params)\n return result\n },\n },\n )\n", "import type { WitnessConfig } from '@xyo-network/sdk-js'\nimport { asSchema } from '@xyo-network/sdk-js'\nimport { UrlSafetySchema } from '@xyo-network/url-safety-payload-plugin'\n\nexport const UrlSafetyWitnessConfigSchema = asSchema(`${UrlSafetySchema}.witness.config`, true)\nexport type UrlSafetyWitnessConfigSchema = typeof UrlSafetyWitnessConfigSchema\n\nexport type UrlSafetyWitnessConfig = WitnessConfig<{\n google?: {\n safeBrowsing?: {\n endPoint?: string\n }\n }\n schema: UrlSafetyWitnessConfigSchema\n urls?: string[]\n}>\n", "import {\n FetchJsonClient,\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport {\n asSchema, PayloadZodOfSchema, type Schema,\n} from '@xyo-network/sdk-js'\nimport { AbstractWitness } from '@xyo-network/sdk-js'\nimport type { UrlPayload } from '@xyo-network/url-payload-plugin'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\nimport type { UrlSafetyPayload, UrlSafetyThreatType } from '@xyo-network/url-safety-payload-plugin'\nimport { UrlSafetySchema } from '@xyo-network/url-safety-payload-plugin'\nimport * as z from 'zod/mini'\n\nimport { UrlSafetyWitnessConfigSchema } from './Config.ts'\nimport type { UrlSafetyWitnessParams } from './Params.ts'\n\nexport type GoogleSafeBrowsingMatchSchema = typeof GoogleSafeBrowsingMatchSchema\nexport const GoogleSafeBrowsingMatchSchema = asSchema('com.google.safebrowsing.match', true)\n\nexport const GoogleSafeBrowsingMatchZod = z.object({\n cacheDuration: z.string(),\n platformType: z.string(),\n threat: z.object({ url: z.string() }),\n threatEntryType: z.string(),\n threatType: z.string(),\n})\n\nexport type GoogleSafeBrowsingMatch = z.infer<typeof GoogleSafeBrowsingMatchZod>\n\nexport const GoogleSafeBrowsingMatchPayloadZod = z.extend(PayloadZodOfSchema(GoogleSafeBrowsingMatchSchema), { ...GoogleSafeBrowsingMatchZod.shape })\n\nexport type GoogleSafeBrowsingMatchPayload = z.infer<typeof GoogleSafeBrowsingMatchPayloadZod>\n\nexport const isGoogleSafeBrowsingMatchPayload = zodIsFactory(GoogleSafeBrowsingMatchPayloadZod)\nexport const asGoogleSafeBrowsingMatchPayload = zodAsFactory(GoogleSafeBrowsingMatchPayloadZod, 'asGoogleSafeBrowsingMatchPayload')\nexport const toGoogleSafeBrowsingMatchPayload = zodToFactory(GoogleSafeBrowsingMatchPayloadZod, 'toGoogleSafeBrowsingMatchPayload')\n\ninterface GoogleSafeBrowsingResult {\n matches?: GoogleSafeBrowsingMatch[]\n}\n\nconst checkUrlSafety = async (\n urls: string[],\n config?: {\n endPoint?: string\n key?: string\n },\n): Promise<GoogleSafeBrowsingMatchPayload[]> => {\n const client = new FetchJsonClient()\n const endPoint = config?.endPoint ?? 'https://safebrowsing.googleapis.com/v4/threatMatches:find'\n const key = config?.key\n const mutatedUrls = urls.map(url => url.replace('ipfs://', 'https://cloudflare-ipfs.com/'))\n if (mutatedUrls.length === 0) {\n return []\n }\n const postData = {\n client: {\n clientId: 'foreventory',\n clientVersion: '1.0',\n },\n threatInfo: {\n platformTypes: ['WINDOWS', 'LINUX', 'OSX'],\n threatEntries: mutatedUrls.map(url => ({ url })),\n threatEntryTypes: ['URL'],\n threatTypes: ['SOCIAL_ENGINEERING', 'POTENTIALLY_HARMFUL_APPLICATION', 'UNWANTED_SOFTWARE', 'THREAT_TYPE_UNSPECIFIED'],\n },\n }\n const response = await client.post<GoogleSafeBrowsingResult>(`${endPoint}?key=${key}`, postData, { headers: { referer: 'http://localhost:3000' } })\n const result = response.data\n return result?.matches?.map<GoogleSafeBrowsingMatchPayload>(match => ({ ...match, schema: GoogleSafeBrowsingMatchSchema })) ?? []\n}\n\nexport class UrlSafetyWitness<TParams extends UrlSafetyWitnessParams = UrlSafetyWitnessParams> extends AbstractWitness<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, UrlSafetyWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = UrlSafetyWitnessConfigSchema\n\n get key() {\n return this.params.google?.safeBrowsing?.key\n }\n\n get urls() {\n return this.config?.urls\n }\n\n protected override async observeHandler(payloads: UrlPayload[] = []): Promise<UrlSafetyPayload[]> {\n const urls: string[]\n = this.urls\n ?? payloads\n .filter((p): p is UrlPayload => p.schema === UrlSchema)\n .map((p) => {\n return p.url\n })\n\n const matches = await checkUrlSafety(urls, { key: this.key })\n\n return urls.map((url) => {\n // eslint-disable-next-line unicorn/no-array-reduce\n const payload = matches.reduce<UrlSafetyPayload>(\n (prev, match) => {\n if (match.threat.url === url) {\n prev.threatTypes = prev.threatTypes ?? []\n if (!prev.threatTypes.includes(match.threatEntryType as UrlSafetyThreatType)) {\n prev.threatTypes.push(match.threatEntryType as UrlSafetyThreatType)\n }\n }\n return prev\n },\n { schema: UrlSafetySchema, url },\n )\n payload.threatTypes = payload.threatTypes?.toSorted((a, b) => a.localeCompare(b))\n return payload\n })\n }\n}\n"],
5
- "mappings": ";AAAA,SAAS,+BAA+B,wBAAwB;AAChE,SAAS,mBAAAA,wBAAuB;;;ACAhC,SAAS,gBAAgB;AACzB,SAAS,uBAAuB;AAEzB,IAAM,+BAA+B,SAAS,GAAG,eAAe,mBAAmB,IAAI;;;ACJ9F;AAAA,EACE;AAAA,EACA;AAAA,EAAc;AAAA,EAAc;AAAA,OACvB;AACP;AAAA,EACE,YAAAC;AAAA,EAAU;AAAA,OACL;AACP,SAAS,uBAAuB;AAEhC,SAAS,iBAAiB;AAE1B,SAAS,mBAAAC,wBAAuB;AAChC,YAAY,OAAO;AAMZ,IAAM,gCAAgCC,UAAS,iCAAiC,IAAI;AAEpF,IAAM,6BAA+B,SAAO;AAAA,EACjD,eAAiB,SAAO;AAAA,EACxB,cAAgB,SAAO;AAAA,EACvB,QAAU,SAAO,EAAE,KAAO,SAAO,EAAE,CAAC;AAAA,EACpC,iBAAmB,SAAO;AAAA,EAC1B,YAAc,SAAO;AACvB,CAAC;AAIM,IAAM,oCAAsC,SAAO,mBAAmB,6BAA6B,GAAG,EAAE,GAAG,2BAA2B,MAAM,CAAC;AAI7I,IAAM,mCAAmC,aAAa,iCAAiC;AACvF,IAAM,mCAAmC,aAAa,mCAAmC,kCAAkC;AAC3H,IAAM,mCAAmC,aAAa,mCAAmC,kCAAkC;AAMlI,IAAM,iBAAiB,OACrB,MACA,WAI8C;AAC9C,QAAM,SAAS,IAAI,gBAAgB;AACnC,QAAM,WAAW,QAAQ,YAAY;AACrC,QAAM,MAAM,QAAQ;AACpB,QAAM,cAAc,KAAK,IAAI,SAAO,IAAI,QAAQ,WAAW,8BAA8B,CAAC;AAC1F,MAAI,YAAY,WAAW,GAAG;AAC5B,WAAO,CAAC;AAAA,EACV;AACA,QAAM,WAAW;AAAA,IACf,QAAQ;AAAA,MACN,UAAU;AAAA,MACV,eAAe;AAAA,IACjB;AAAA,IACA,YAAY;AAAA,MACV,eAAe,CAAC,WAAW,SAAS,KAAK;AAAA,MACzC,eAAe,YAAY,IAAI,UAAQ,EAAE,IAAI,EAAE;AAAA,MAC/C,kBAAkB,CAAC,KAAK;AAAA,MACxB,aAAa,CAAC,sBAAsB,mCAAmC,qBAAqB,yBAAyB;AAAA,IACvH;AAAA,EACF;AACA,QAAM,WAAW,MAAM,OAAO,KAA+B,GAAG,QAAQ,QAAQ,GAAG,IAAI,UAAU,EAAE,SAAS,EAAE,SAAS,wBAAwB,EAAE,CAAC;AAClJ,QAAM,SAAS,SAAS;AACxB,SAAO,QAAQ,SAAS,IAAoC,YAAU,EAAE,GAAG,OAAO,QAAQ,8BAA8B,EAAE,KAAK,CAAC;AAClI;AAEO,IAAM,mBAAN,cAAgG,gBAAyB;AAAA,EAC9H,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,4BAA4B;AAAA,EACxG,OAAyB,sBAA8B;AAAA,EAEvD,IAAI,MAAM;AACR,WAAO,KAAK,OAAO,QAAQ,cAAc;AAAA,EAC3C;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,MAAyB,eAAe,WAAyB,CAAC,GAAgC;AAChG,UAAM,OACF,KAAK,QACF,SACA,OAAO,CAAC,MAAuB,EAAE,WAAW,SAAS,EACrD,IAAI,CAAC,MAAM;AACV,aAAO,EAAE;AAAA,IACX,CAAC;AAEP,UAAM,UAAU,MAAM,eAAe,MAAM,EAAE,KAAK,KAAK,IAAI,CAAC;AAE5D,WAAO,KAAK,IAAI,CAAC,QAAQ;AAEvB,YAAM,UAAU,QAAQ;AAAA,QACtB,CAAC,MAAM,UAAU;AACf,cAAI,MAAM,OAAO,QAAQ,KAAK;AAC5B,iBAAK,cAAc,KAAK,eAAe,CAAC;AACxC,gBAAI,CAAC,KAAK,YAAY,SAAS,MAAM,eAAsC,GAAG;AAC5E,mBAAK,YAAY,KAAK,MAAM,eAAsC;AAAA,YACpE;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AAAA,QACA,EAAE,QAAQC,kBAAiB,IAAI;AAAA,MACjC;AACA,cAAQ,cAAc,QAAQ,aAAa,SAAS,CAAC,GAAG,MAAM,EAAE,cAAc,CAAC,CAAC;AAChF,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AACF;;;AF7GO,IAAM,kBAAkB,MAC7B;AAAA,EACE,EAAE,UAAU,EAAE,CAACC,gBAAe,GAAG,EAAE,GAAG,QAAQ,iBAAiB;AAAA,EAC/D;AAAA,IACE,SAAS,OAAO,WAAW;AACzB,YAAM,SAAS,MAAM,iBAAiB,OAAO,MAAM;AACnD,aAAO;AAAA,IACT;AAAA,EACF;AACF;",
4
+ "sourcesContent": ["import { createPayloadSetWitnessPlugin, PayloadSetSchema } from '@xyo-network/sdk'\nimport { UrlSafetySchema } from '@xyo-network/url-safety-payload-plugin'\n\nimport { UrlSafetyWitness } from './Witness/index.ts'\n\nexport const UrlSafetyPlugin = () =>\n createPayloadSetWitnessPlugin<UrlSafetyWitness>(\n { required: { [UrlSafetySchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await UrlSafetyWitness.create(params)\n return result\n },\n },\n )\n", "import type { WitnessConfig } from '@xyo-network/sdk'\nimport { asSchema } from '@xyo-network/sdk'\nimport { UrlSafetySchema } from '@xyo-network/url-safety-payload-plugin'\n\nexport const UrlSafetyWitnessConfigSchema = asSchema(`${UrlSafetySchema}.witness.config`, true)\nexport type UrlSafetyWitnessConfigSchema = typeof UrlSafetyWitnessConfigSchema\n\nexport type UrlSafetyWitnessConfig = WitnessConfig<{\n google?: {\n safeBrowsing?: {\n endPoint?: string\n }\n }\n schema: UrlSafetyWitnessConfigSchema\n urls?: string[]\n}>\n", "import {\n FetchJsonClient,\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@ariestools/sdk'\nimport {\n asSchema, PayloadZodOfSchema, type Schema,\n} from '@xyo-network/sdk'\nimport { AbstractWitness } from '@xyo-network/sdk'\nimport type { UrlPayload } from '@xyo-network/url-payload-plugin'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\nimport type { UrlSafetyPayload, UrlSafetyThreatType } from '@xyo-network/url-safety-payload-plugin'\nimport { UrlSafetySchema } from '@xyo-network/url-safety-payload-plugin'\nimport * as z from 'zod/mini'\n\nimport { UrlSafetyWitnessConfigSchema } from './Config.ts'\nimport type { UrlSafetyWitnessParams } from './Params.ts'\n\nexport type GoogleSafeBrowsingMatchSchema = typeof GoogleSafeBrowsingMatchSchema\nexport const GoogleSafeBrowsingMatchSchema = asSchema('com.google.safebrowsing.match', true)\n\nexport const GoogleSafeBrowsingMatchZod = z.object({\n cacheDuration: z.string(),\n platformType: z.string(),\n threat: z.object({ url: z.string() }),\n threatEntryType: z.string(),\n threatType: z.string(),\n})\n\nexport type GoogleSafeBrowsingMatch = z.infer<typeof GoogleSafeBrowsingMatchZod>\n\nexport const GoogleSafeBrowsingMatchPayloadZod = z.extend(PayloadZodOfSchema(GoogleSafeBrowsingMatchSchema), { ...GoogleSafeBrowsingMatchZod.shape })\n\nexport type GoogleSafeBrowsingMatchPayload = z.infer<typeof GoogleSafeBrowsingMatchPayloadZod>\n\nexport const isGoogleSafeBrowsingMatchPayload = zodIsFactory(GoogleSafeBrowsingMatchPayloadZod)\nexport const asGoogleSafeBrowsingMatchPayload = zodAsFactory(GoogleSafeBrowsingMatchPayloadZod, 'asGoogleSafeBrowsingMatchPayload')\nexport const toGoogleSafeBrowsingMatchPayload = zodToFactory(GoogleSafeBrowsingMatchPayloadZod, 'toGoogleSafeBrowsingMatchPayload')\n\ninterface GoogleSafeBrowsingResult {\n matches?: GoogleSafeBrowsingMatch[]\n}\n\nconst checkUrlSafety = async (\n urls: string[],\n config?: {\n endPoint?: string\n key?: string\n },\n): Promise<GoogleSafeBrowsingMatchPayload[]> => {\n const client = new FetchJsonClient()\n const endPoint = config?.endPoint ?? 'https://safebrowsing.googleapis.com/v4/threatMatches:find'\n const key = config?.key\n const mutatedUrls = urls.map(url => url.replace('ipfs://', 'https://cloudflare-ipfs.com/'))\n if (mutatedUrls.length === 0) {\n return []\n }\n const postData = {\n client: {\n clientId: 'foreventory',\n clientVersion: '1.0',\n },\n threatInfo: {\n platformTypes: ['WINDOWS', 'LINUX', 'OSX'],\n threatEntries: mutatedUrls.map(url => ({ url })),\n threatEntryTypes: ['URL'],\n threatTypes: ['SOCIAL_ENGINEERING', 'POTENTIALLY_HARMFUL_APPLICATION', 'UNWANTED_SOFTWARE', 'THREAT_TYPE_UNSPECIFIED'],\n },\n }\n const response = await client.post<GoogleSafeBrowsingResult>(`${endPoint}?key=${key}`, postData, { headers: { referer: 'http://localhost:3000' } })\n const result = response.data\n return result?.matches?.map<GoogleSafeBrowsingMatchPayload>(match => ({ ...match, schema: GoogleSafeBrowsingMatchSchema })) ?? []\n}\n\nexport class UrlSafetyWitness<TParams extends UrlSafetyWitnessParams = UrlSafetyWitnessParams> extends AbstractWitness<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, UrlSafetyWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = UrlSafetyWitnessConfigSchema\n\n get key() {\n return this.params.google?.safeBrowsing?.key\n }\n\n get urls() {\n return this.config?.urls\n }\n\n protected override async observeHandler(payloads: UrlPayload[] = []): Promise<UrlSafetyPayload[]> {\n const urls: string[]\n = this.urls\n ?? payloads\n .filter((p): p is UrlPayload => p.schema === UrlSchema)\n .map((p) => {\n return p.url\n })\n\n const matches = await checkUrlSafety(urls, { key: this.key })\n\n return urls.map((url) => {\n const payload = matches.reduce<UrlSafetyPayload>(\n (prev, match) => {\n if (match.threat.url === url) {\n prev.threatTypes = prev.threatTypes ?? []\n if (!prev.threatTypes.includes(match.threatEntryType as UrlSafetyThreatType)) {\n prev.threatTypes.push(match.threatEntryType as UrlSafetyThreatType)\n }\n }\n return prev\n },\n { schema: UrlSafetySchema, url },\n )\n payload.threatTypes = payload.threatTypes?.toSorted((a, b) => a.localeCompare(b))\n return payload\n })\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["UrlSafetySchema", "asSchema", "UrlSafetySchema", "asSchema", "UrlSafetySchema", "UrlSafetySchema"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/url-safety-plugin",
3
- "version": "7.0.0",
3
+ "version": "7.0.2",
4
4
  "description": "Typescript/Javascript Plugins for XYO Platform",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -31,52 +31,51 @@
31
31
  "README.md"
32
32
  ],
33
33
  "dependencies": {
34
- "@xyo-network/url-payload-plugin": "~7.0.0",
35
- "@xyo-network/url-safety-payload-plugin": "~7.0.0"
34
+ "@xyo-network/url-safety-payload-plugin": "~7.0.2",
35
+ "@xyo-network/url-payload-plugin": "~7.0.2"
36
36
  },
37
37
  "devDependencies": {
38
+ "@ariestools/sdk": "^7.0.5",
38
39
  "@bitauth/libauth": "~3.0.0",
39
- "@metamask/providers": "^22.1.1",
40
40
  "@noble/post-quantum": "~0.6.1",
41
41
  "@opentelemetry/api": "^1.9.1",
42
42
  "@opentelemetry/sdk-trace-base": "^2.8.0",
43
43
  "@scure/base": "^2.2.0",
44
44
  "@scure/bip39": "~2.2.0",
45
- "@xylabs/geo": "^6.1.3",
46
- "@xylabs/sdk-js": "^6.1.3",
47
- "@xylabs/threads": "^6.1.3",
48
- "@xylabs/toolchain": "~8.2.7",
49
- "@xylabs/tsconfig": "~8.2.7",
50
- "@xyo-network/sdk-js": "^7.0.0",
51
- "@xyo-network/sdk-protocol-js": "~7.0",
45
+ "@xylabs/geo": "^7.0.5",
46
+ "@xylabs/threads": "^7.0.5",
47
+ "@xylabs/toolchain": "~8.5.15",
48
+ "@xylabs/tsconfig": "~8.5.15",
49
+ "@xyo-network/sdk": "~7.0.5",
50
+ "@xyo-network/sdk-protocol": "^7.0.8",
52
51
  "ajv": "^8.20.0",
53
52
  "async-mutex": "^0.5.0",
53
+ "browserslist": "4.28.4",
54
54
  "debug": "~4.4.3",
55
- "eslint": "^10.5.0",
56
- "ethers": "^6.16.0",
55
+ "eslint": "^10.6.0",
56
+ "eslint-import-resolver-typescript": "^4.4.5",
57
+ "ethers": "^6.17.0",
57
58
  "hash-wasm": "^4.12.0",
58
59
  "idb": "^8.0.3",
59
60
  "lru-cache": "^11.5.1",
60
61
  "observable-fns": "~0.6.1",
61
62
  "typescript": "~6.0.3",
62
- "vite": "^8.0.16",
63
+ "vite": "^8.1.2",
63
64
  "vitest": "^4.1.9",
64
- "webextension-polyfill": "^0.12.0",
65
65
  "zod": "^4.4.3"
66
66
  },
67
67
  "peerDependencies": {
68
+ "@ariestools/sdk": "^7.0",
68
69
  "@bitauth/libauth": "~3.0",
69
- "@metamask/providers": "^22.1",
70
70
  "@noble/post-quantum": "~0.6.1",
71
71
  "@opentelemetry/api": "^1.9",
72
72
  "@opentelemetry/sdk-trace-base": "^2.7",
73
73
  "@scure/base": "^2.2",
74
74
  "@scure/bip39": "~2.2",
75
- "@xylabs/geo": "^6.0",
76
- "@xylabs/sdk-js": "^6.0",
77
- "@xylabs/threads": "^6.0",
78
- "@xyo-network/sdk-js": "^7.0",
79
- "@xyo-network/sdk-protocol-js": "^7.0",
75
+ "@xylabs/geo": "^7.0",
76
+ "@xylabs/threads": "^7.0",
77
+ "@xyo-network/sdk": "^7.0",
78
+ "@xyo-network/sdk-protocol": "^7.0",
80
79
  "ajv": "^8.20",
81
80
  "async-mutex": "^0.5",
82
81
  "debug": "~4.4",
@@ -85,7 +84,6 @@
85
84
  "idb": "^8.0",
86
85
  "lru-cache": "^11.3",
87
86
  "observable-fns": "~0.6",
88
- "webextension-polyfill": "^0.12",
89
87
  "zod": "^4.4"
90
88
  },
91
89
  "engines": {