From 2a3d52f01a73651af4320052fa3b6af5c2f17ca6 Mon Sep 17 00:00:00 2001 From: e-moran Date: Wed, 2 Oct 2024 17:16:10 +0100 Subject: [PATCH 01/16] chore!: refactor wasm loading for analyze --- analyze/edge-light.ts | 135 +++-------------------------------------- analyze/index.ts | 136 +++--------------------------------------- analyze/workerd.ts | 136 +++--------------------------------------- arcjet/index.ts | 86 +++++++++++++++++++------- 4 files changed, 87 insertions(+), 406 deletions(-) diff --git a/analyze/edge-light.ts b/analyze/edge-light.ts index b21bb802f..9fa9ec064 100644 --- a/analyze/edge-light.ts +++ b/analyze/edge-light.ts @@ -3,14 +3,9 @@ import type { ArcjetLogger } from "@arcjet/protocol"; import { instantiate } from "./wasm/arcjet_analyze_js_req.component.js"; import type { ImportObject, - EmailValidationConfig, - BotDetectionResult, BotType, - EmailValidationResult, DetectedSensitiveInfoEntity, - SensitiveInfoEntities, SensitiveInfoEntity, - SensitiveInfoResult, } from "./wasm/arcjet_analyze_js_req.component.js"; import type { ArcjetJsReqSensitiveInformationIdentifier } from "./wasm/interfaces/arcjet-js-req-sensitive-information-identifier.js"; @@ -18,18 +13,6 @@ import componentCoreWasm from "./wasm/arcjet_analyze_js_req.component.core.wasm? import componentCore2Wasm from "./wasm/arcjet_analyze_js_req.component.core2.wasm?module"; import componentCore3Wasm from "./wasm/arcjet_analyze_js_req.component.core3.wasm?module"; -type AnalyzeRequest = { - ip?: string; - method?: string; - protocol?: string; - host?: string; - path?: string; - headers?: Record; - cookies?: string; - query?: string; - extra?: Record; -}; - const FREE_EMAIL_PROVIDERS = [ "gmail.com", "yahoo.com", @@ -43,8 +26,7 @@ interface AnalyzeContext { characteristics: string[]; } -type DetectSensitiveInfoFunction = - typeof ArcjetJsReqSensitiveInformationIdentifier.detect; +type CustomDetect = typeof ArcjetJsReqSensitiveInformationIdentifier.detect; async function moduleFromPath(path: string): Promise { if (path === "arcjet_analyze_js_req.component.core.wasm") { @@ -64,14 +46,14 @@ function noOpDetect(): SensitiveInfoEntity[] { return []; } -async function init( +export async function initializeWasm( context: AnalyzeContext, - detectSensitiveInfo?: DetectSensitiveInfoFunction, + detect?: CustomDetect, ) { const { log } = context; - if (typeof detectSensitiveInfo !== "function") { - detectSensitiveInfo = noOpDetect; + if (typeof detect !== "function") { + detect = noOpDetect; } const coreImports: ImportObject = { @@ -101,123 +83,20 @@ async function init( }, }, "arcjet:js-req/sensitive-information-identifier": { - detect: detectSensitiveInfo, + detect, }, }; try { // Await the instantiation to catch the failure - return await instantiate(moduleFromPath, coreImports); + return instantiate(moduleFromPath, coreImports); } catch { log.debug("WebAssembly is not supported in this runtime"); } } export { - type EmailValidationConfig, type BotType, - /** - * Represents the result of the bot detection. - * - * @property `botType` - What type of bot this is. This will be one of `BotType`. - * @property `botScore` - A score ranging from 0 to 99 representing the degree of - * certainty. The higher the number within the type category, the greater the - * degree of certainty. E.g. `BotType.Automated` with a score of 1 means we are - * sure the request was made by an automated bot. `BotType.LikelyNotABot` with a - * score of 30 means we don't think this request was a bot, but it's lowest - * confidence level. `BotType.LikelyNotABot` with a score of 99 means we are - * almost certain this request was not a bot. - */ - type BotDetectionResult, type DetectedSensitiveInfoEntity, type SensitiveInfoEntity, - type DetectSensitiveInfoFunction, }; - -/** - * Generate a fingerprint for the client. This is used to identify the client - * across multiple requests. - * @param context - The Arcjet Analyze context. - * @param request - The request to fingerprint. - * @returns A SHA-256 string fingerprint. - */ -export async function generateFingerprint( - context: AnalyzeContext, - request: AnalyzeRequest, -): Promise { - const analyze = await init(context); - - if (typeof analyze !== "undefined") { - return analyze.generateFingerprint( - JSON.stringify(request), - context.characteristics, - ); - } - - return ""; -} - -export async function isValidEmail( - context: AnalyzeContext, - candidate: string, - options?: EmailValidationConfig, -): Promise { - const analyze = await init(context); - const optionsOrDefault = { - requireTopLevelDomain: true, - allowDomainLiteral: false, - blockedEmails: [], - ...options, - }; - - if (typeof analyze !== "undefined") { - return analyze.isValidEmail(candidate, optionsOrDefault); - } else { - // Skip the local evaluation of the rule if WASM is not available - return { - validity: "valid", - blocked: [], - }; - } -} - -export async function detectBot( - context: AnalyzeContext, - headers: string, - patterns_add: string, - patterns_remove: string, -): Promise { - const analyze = await init(context); - - if (typeof analyze !== "undefined") { - return analyze.detectBot(headers, patterns_add, patterns_remove); - } else { - // TODO: Fallback to JS if we don't have WASM? - return { - botType: "not-analyzed", - botScore: 0, - }; - } -} -export async function detectSensitiveInfo( - context: AnalyzeContext, - candidate: string, - entities: SensitiveInfoEntities, - contextWindowSize: number, - detect?: DetectSensitiveInfoFunction, -): Promise { - const analyze = await init(context, detect); - - if (typeof analyze !== "undefined") { - const skipCustomDetect = typeof detect !== "function"; - return analyze.detectSensitiveInfo(candidate, { - entities, - contextWindowSize, - skipCustomDetect, - }); - } else { - throw new Error( - "SENSITIVE_INFO rule failed to run because Wasm is not supported in this environment.", - ); - } -} diff --git a/analyze/index.ts b/analyze/index.ts index 0c9ec5425..572bd523f 100644 --- a/analyze/index.ts +++ b/analyze/index.ts @@ -3,14 +3,9 @@ import type { ArcjetLogger } from "@arcjet/protocol"; import { instantiate } from "./wasm/arcjet_analyze_js_req.component.js"; import type { ImportObject, - EmailValidationConfig, - BotDetectionResult, BotType, - EmailValidationResult, DetectedSensitiveInfoEntity, - SensitiveInfoEntities, SensitiveInfoEntity, - SensitiveInfoResult, } from "./wasm/arcjet_analyze_js_req.component.js"; import type { ArcjetJsReqSensitiveInformationIdentifier } from "./wasm/interfaces/arcjet-js-req-sensitive-information-identifier.js"; @@ -18,18 +13,6 @@ import { wasm as componentCoreWasm } from "./wasm/arcjet_analyze_js_req.componen import { wasm as componentCore2Wasm } from "./wasm/arcjet_analyze_js_req.component.core2.wasm?js"; import { wasm as componentCore3Wasm } from "./wasm/arcjet_analyze_js_req.component.core3.wasm?js"; -type AnalyzeRequest = { - ip?: string; - method?: string; - protocol?: string; - host?: string; - path?: string; - headers?: Record; - cookies?: string; - query?: string; - extra?: Record; -}; - const FREE_EMAIL_PROVIDERS = [ "gmail.com", "yahoo.com", @@ -43,8 +26,7 @@ interface AnalyzeContext { characteristics: string[]; } -type DetectSensitiveInfoFunction = - typeof ArcjetJsReqSensitiveInformationIdentifier.detect; +type CustomDetect = typeof ArcjetJsReqSensitiveInformationIdentifier.detect; // TODO: Do we actually need this wasmCache or does `import` cache correctly? const wasmCache = new Map(); @@ -78,14 +60,14 @@ function noOpDetect(): SensitiveInfoEntity[] { return []; } -async function init( +export async function initializeWasm( context: AnalyzeContext, - detectSensitiveInfo?: DetectSensitiveInfoFunction, + detect?: CustomDetect, ) { const { log } = context; - if (typeof detectSensitiveInfo !== "function") { - detectSensitiveInfo = noOpDetect; + if (typeof detect !== "function") { + detect = noOpDetect; } const coreImports: ImportObject = { @@ -115,124 +97,20 @@ async function init( }, }, "arcjet:js-req/sensitive-information-identifier": { - detect: detectSensitiveInfo, + detect, }, }; try { // Await the instantiation to catch the failure - return await instantiate(moduleFromPath, coreImports); + return instantiate(moduleFromPath, coreImports); } catch { log.debug("WebAssembly is not supported in this runtime"); } } export { - type EmailValidationConfig, type BotType, - /** - * Represents the result of the bot detection. - * - * @property `botType` - What type of bot this is. This will be one of `BotType`. - * @property `botScore` - A score ranging from 0 to 99 representing the degree of - * certainty. The higher the number within the type category, the greater the - * degree of certainty. E.g. `BotType.Automated` with a score of 1 means we are - * sure the request was made by an automated bot. `BotType.LikelyNotABot` with a - * score of 30 means we don't think this request was a bot, but it's lowest - * confidence level. `BotType.LikelyNotABot` with a score of 99 means we are - * almost certain this request was not a bot. - */ - type BotDetectionResult, type DetectedSensitiveInfoEntity, type SensitiveInfoEntity, - type DetectSensitiveInfoFunction, }; - -/** - * Generate a fingerprint for the client. This is used to identify the client - * across multiple requests. - * @param context - The Arcjet Analyze context. - * @param request - The request to fingerprint. - * @returns A SHA-256 string fingerprint. - */ -export async function generateFingerprint( - context: AnalyzeContext, - request: AnalyzeRequest, -): Promise { - const analyze = await init(context); - - if (typeof analyze !== "undefined") { - return analyze.generateFingerprint( - JSON.stringify(request), - context.characteristics, - ); - } - - return ""; -} - -export async function isValidEmail( - context: AnalyzeContext, - candidate: string, - options?: EmailValidationConfig, -): Promise { - const analyze = await init(context); - const optionsOrDefault = { - requireTopLevelDomain: true, - allowDomainLiteral: false, - blockedEmails: [], - ...options, - }; - - if (typeof analyze !== "undefined") { - return analyze.isValidEmail(candidate, optionsOrDefault); - } else { - // Skip the local evaluation of the rule if WASM is not available - return { - validity: "valid", - blocked: [], - }; - } -} - -export async function detectBot( - context: AnalyzeContext, - headers: string, - patterns_add: string, - patterns_remove: string, -): Promise { - const analyze = await init(context); - - if (typeof analyze !== "undefined") { - return analyze.detectBot(headers, patterns_add, patterns_remove); - } else { - // TODO: Fallback to JS if we don't have WASM? - return { - botType: "not-analyzed", - botScore: 0, - }; - } -} - -export async function detectSensitiveInfo( - context: AnalyzeContext, - candidate: string, - entities: SensitiveInfoEntities, - contextWindowSize: number, - detect?: DetectSensitiveInfoFunction, -): Promise { - const analyze = await init(context, detect); - - if (typeof analyze !== "undefined") { - const skipCustomDetect = typeof detect !== "function"; - return analyze.detectSensitiveInfo(candidate, { - entities, - contextWindowSize, - skipCustomDetect, - }); - } else { - throw new Error( - "SENSITIVE_INFO rule failed to run because Wasm is not supported in this environment.", - ); - } -} diff --git a/analyze/workerd.ts b/analyze/workerd.ts index 84d916694..6213371b7 100644 --- a/analyze/workerd.ts +++ b/analyze/workerd.ts @@ -3,14 +3,9 @@ import type { ArcjetLogger } from "@arcjet/protocol"; import { instantiate } from "./wasm/arcjet_analyze_js_req.component.js"; import type { ImportObject, - EmailValidationConfig, - BotDetectionResult, BotType, - EmailValidationResult, DetectedSensitiveInfoEntity, - SensitiveInfoEntities, SensitiveInfoEntity, - SensitiveInfoResult, } from "./wasm/arcjet_analyze_js_req.component.js"; import type { ArcjetJsReqSensitiveInformationIdentifier } from "./wasm/interfaces/arcjet-js-req-sensitive-information-identifier.js"; @@ -18,18 +13,6 @@ import componentCoreWasm from "./wasm/arcjet_analyze_js_req.component.core.wasm" import componentCore2Wasm from "./wasm/arcjet_analyze_js_req.component.core2.wasm"; import componentCore3Wasm from "./wasm/arcjet_analyze_js_req.component.core3.wasm"; -type AnalyzeRequest = { - ip?: string; - method?: string; - protocol?: string; - host?: string; - path?: string; - headers?: Record; - cookies?: string; - query?: string; - extra?: Record; -}; - const FREE_EMAIL_PROVIDERS = [ "gmail.com", "yahoo.com", @@ -43,8 +26,7 @@ interface AnalyzeContext { characteristics: string[]; } -type DetectSensitiveInfoFunction = - typeof ArcjetJsReqSensitiveInformationIdentifier.detect; +type CustomDetect = typeof ArcjetJsReqSensitiveInformationIdentifier.detect; async function moduleFromPath(path: string): Promise { if (path === "arcjet_analyze_js_req.component.core.wasm") { @@ -64,14 +46,14 @@ function noOpDetect(): SensitiveInfoEntity[] { return []; } -async function init( +export async function initializeWasm( context: AnalyzeContext, - detectSensitiveInfo?: DetectSensitiveInfoFunction, + detect?: CustomDetect, ) { const { log } = context; - if (typeof detectSensitiveInfo !== "function") { - detectSensitiveInfo = noOpDetect; + if (typeof detect !== "function") { + detect = noOpDetect; } const coreImports: ImportObject = { @@ -101,124 +83,20 @@ async function init( }, }, "arcjet:js-req/sensitive-information-identifier": { - detect: detectSensitiveInfo, + detect, }, }; try { // Await the instantiation to catch the failure - return await instantiate(moduleFromPath, coreImports); + return instantiate(moduleFromPath, coreImports); } catch { log.debug("WebAssembly is not supported in this runtime"); } } export { - type EmailValidationConfig, type BotType, - /** - * Represents the result of the bot detection. - * - * @property `botType` - What type of bot this is. This will be one of `BotType`. - * @property `botScore` - A score ranging from 0 to 99 representing the degree of - * certainty. The higher the number within the type category, the greater the - * degree of certainty. E.g. `BotType.Automated` with a score of 1 means we are - * sure the request was made by an automated bot. `BotType.LikelyNotABot` with a - * score of 30 means we don't think this request was a bot, but it's lowest - * confidence level. `BotType.LikelyNotABot` with a score of 99 means we are - * almost certain this request was not a bot. - */ - type BotDetectionResult, type DetectedSensitiveInfoEntity, type SensitiveInfoEntity, - type DetectSensitiveInfoFunction, }; - -/** - * Generate a fingerprint for the client. This is used to identify the client - * across multiple requests. - * @param context - The Arcjet Analyze context. - * @param request - The request to fingerprint. - * @returns A SHA-256 string fingerprint. - */ -export async function generateFingerprint( - context: AnalyzeContext, - request: AnalyzeRequest, -): Promise { - const analyze = await init(context); - - if (typeof analyze !== "undefined") { - return analyze.generateFingerprint( - JSON.stringify(request), - context.characteristics, - ); - } - - return ""; -} - -export async function isValidEmail( - context: AnalyzeContext, - candidate: string, - options?: EmailValidationConfig, -): Promise { - const analyze = await init(context); - const optionsOrDefault = { - requireTopLevelDomain: true, - allowDomainLiteral: false, - blockedEmails: [], - ...options, - }; - - if (typeof analyze !== "undefined") { - return analyze.isValidEmail(candidate, optionsOrDefault); - } else { - // Skip the local evaluation of the rule if WASM is not available - return { - validity: "valid", - blocked: [], - }; - } -} - -export async function detectBot( - context: AnalyzeContext, - headers: string, - patterns_add: string, - patterns_remove: string, -): Promise { - const analyze = await init(context); - - if (typeof analyze !== "undefined") { - return analyze.detectBot(headers, patterns_add, patterns_remove); - } else { - // TODO: Fallback to JS if we don't have WASM? - return { - botType: "not-analyzed", - botScore: 0, - }; - } -} - -export async function detectSensitiveInfo( - context: AnalyzeContext, - candidate: string, - entities: SensitiveInfoEntities, - contextWindowSize: number, - detect?: DetectSensitiveInfoFunction, -): Promise { - const analyze = await init(context, detect); - - if (typeof analyze !== "undefined") { - const skipCustomDetect = typeof detect !== "function"; - return analyze.detectSensitiveInfo(candidate, { - entities, - contextWindowSize, - skipCustomDetect, - }); - } else { - throw new Error( - "SENSITIVE_INFO rule failed to run because Wasm is not supported in this environment.", - ); - } -} diff --git a/arcjet/index.ts b/arcjet/index.ts index 063d4c9d5..d743562ea 100644 --- a/arcjet/index.ts +++ b/arcjet/index.ts @@ -732,14 +732,23 @@ export function sensitiveInfo< val: entitiesVal, }; - const result = await analyze.detectSensitiveInfo( + const analyzeInstance = await analyze.initializeWasm( context, - body, - entities, - options.contextWindowSize || 1, convertedDetect, ); + if (typeof analyzeInstance === "undefined") { + throw new Error( + "SENSITIVE_INFO rule failed to run because Wasm is not supported in this environment.", + ); + } + + const result = analyzeInstance.detectSensitiveInfo(body, { + entities, + contextWindowSize: options.contextWindowSize || 1, + skipCustomDetect: typeof convertedDetect !== "function", + }); + const reason = new ArcjetSensitiveInfoReason({ denied: convertAnalyzeDetectedSensitiveInfoEntity(result.denied), allowed: convertAnalyzeDetectedSensitiveInfoEntity(result.allowed), @@ -809,7 +818,25 @@ export function validateEmail( context: ArcjetContext, { email }: ArcjetRequestDetails & { email: string }, ): Promise { - const result = await analyze.isValidEmail(context, email, emailOpts); + const analyzeInstance = await analyze.initializeWasm(context); + + let result; + if (typeof analyzeInstance !== "undefined") { + const optionsOrDefault = { + requireTopLevelDomain: true, + allowDomainLiteral: false, + blockedEmails: [], + ...options, + }; + + result = analyzeInstance.isValidEmail(email, optionsOrDefault); + } else { + result = { + validity: "valid", + blocked: [] as const, + }; + } + if (result.validity === "valid") { return new ArcjetRuleResult({ ttl: 0, @@ -918,19 +945,32 @@ export function detectBot( headersKV[key] = value; } - const botResult = await analyze.detectBot( - context, - JSON.stringify(headersKV), - JSON.stringify( - Object.fromEntries( - add.map(([key, botType]) => [ - key, - ArcjetBotTypeToProtocol(botType), - ]), - ), + const analyzeInstance = await analyze.initializeWasm(context); + + const headersJson = JSON.stringify(headers); + const patternsAdd = JSON.stringify( + Object.fromEntries( + add.map(([key, botType]) => [ + key, + ArcjetBotTypeToProtocol(botType), + ]), ), - JSON.stringify(remove), ); + const patternsRemove = JSON.stringify(remove); + + let botResult; + if (typeof analyzeInstance !== "undefined") { + botResult = analyzeInstance.detectBot( + headersJson, + patternsAdd, + patternsRemove, + ); + } else { + botResult = { + botType: "not-analyzed" as const, + botScore: 0, + }; + } const botType = translateBotType(botResult.botType); if (typeof botType === "undefined") { @@ -1172,10 +1212,16 @@ export default function arcjet< ...ctx, }; - const fingerprint = await analyze.generateFingerprint( - baseContext, - toAnalyzeRequest(details), - ); + const analyzeInstance = await analyze.initializeWasm(baseContext); + const stringRequest = JSON.stringify(toAnalyzeRequest(details)); + let fingerprint = ""; + if (typeof analyzeInstance !== "undefined") { + fingerprint = analyzeInstance.generateFingerprint( + stringRequest, + baseContext.characteristics, + ); + } + log.debug("fingerprint (%s): %s", rt, fingerprint); log.timeEnd?.("fingerprint"); From f17becc4f1e70aa8cd5ffe8aa7c9939e604cf933 Mon Sep 17 00:00:00 2001 From: e-moran Date: Wed, 2 Oct 2024 17:41:42 +0100 Subject: [PATCH 02/16] chore: fmt --- analyze/workerd.ts | 1 - arcjet/index.ts | 88 +++++++++++++++++++++++----------------------- 2 files changed, 44 insertions(+), 45 deletions(-) diff --git a/analyze/workerd.ts b/analyze/workerd.ts index 306cf2392..210d0580b 100644 --- a/analyze/workerd.ts +++ b/analyze/workerd.ts @@ -95,7 +95,6 @@ export async function initializeWasm( } } - export { type BotConfig, type DetectedSensitiveInfoEntity, diff --git a/arcjet/index.ts b/arcjet/index.ts index 9844db610..b1df67e1a 100644 --- a/arcjet/index.ts +++ b/arcjet/index.ts @@ -141,36 +141,36 @@ type UnionToIntersection = // type](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-8.html#distributive-conditional-types). ( Union extends unknown - ? // The union type is used as the only argument to a function since the union - // of function arguments is an intersection. - (distributedUnion: Union) => void - : // This won't happen. - never + ? // The union type is used as the only argument to a function since the union + // of function arguments is an intersection. + (distributedUnion: Union) => void + : // This won't happen. + never ) extends // Infer the `Intersection` type since TypeScript represents the positional // arguments of unions of functions as an intersection of the union. (mergedIntersection: infer Intersection) => void - ? // The `& Union` is to allow indexing by the resulting type - Intersection & Union - : never; + ? // The `& Union` is to allow indexing by the resulting type + Intersection & Union + : never; type IsNever = [T] extends [never] ? true : false; type LiteralCheck< T, LiteralType extends - | null - | undefined - | string - | number - | boolean - | symbol - | bigint, + | null + | undefined + | string + | number + | boolean + | symbol + | bigint, > = IsNever extends false // Must be wider than `never` - ? [T] extends [LiteralType] // Must be narrower than `LiteralType` - ? [LiteralType] extends [T] // Cannot be wider than `LiteralType` - ? false - : true - : false - : false; + ? [T] extends [LiteralType] // Must be narrower than `LiteralType` + ? [LiteralType] extends [T] // Cannot be wider than `LiteralType` + ? false + : true + : false + : false; type IsStringLiteral = LiteralCheck; const knownFields = [ @@ -498,10 +498,10 @@ type ValidEntities = Array< // undefined ? 1 : 0) | (undefined extends undefined ? 1 : 0) which simplifies // to 0 | 1 undefined extends Detect - ? ArcjetSensitiveInfoType - : Detect extends DetectSensitiveInfoEntities - ? ArcjetSensitiveInfoType | CustomEntities - : never + ? ArcjetSensitiveInfoType + : Detect extends DetectSensitiveInfoEntities + ? ArcjetSensitiveInfoType | CustomEntities + : never >; type SensitiveInfoOptionsAllow = { @@ -546,19 +546,19 @@ export type Product = ArcjetRule[]; // `as const` suffix to the characteristics array. type PropsForCharacteristic = IsStringLiteral extends true - ? T extends - | "ip.src" - | "http.host" - | "http.method" - | "http.request.uri.path" - | `http.request.headers["${string}"]` - | `http.request.cookie["${string}"]` - | `http.request.uri.args["${string}"]` - ? {} - : T extends string - ? Record - : never - : {}; + ? T extends + | "ip.src" + | "http.host" + | "http.method" + | "http.request.uri.path" + | `http.request.headers["${string}"]` + | `http.request.cookie["${string}"]` + | `http.request.uri.args["${string}"]` + ? {} + : T extends string + ? Record + : never + : {}; export type CharacteristicProps = UnionToIntersection>; // Rules can specify they require specific props on an ArcjetRequest @@ -570,10 +570,10 @@ type PropsForRule = R extends ArcjetRule ? Props : {}; export type ExtraProps = Rules extends [] ? {} : Rules extends ArcjetRule[][] - ? UnionToIntersection> - : Rules extends ArcjetRule[] - ? UnionToIntersection> - : never; + ? UnionToIntersection> + : Rules extends ArcjetRule[] + ? UnionToIntersection> + : never; /** * Additional context that can be provided by adapters. @@ -812,7 +812,7 @@ export function sensitiveInfo< validate( context: ArcjetContext, details: ArcjetRequestDetails, - ): asserts details is ArcjetRequestDetails { }, + ): asserts details is ArcjetRequestDetails {}, async protect( context: ArcjetContext, @@ -1074,7 +1074,7 @@ export function detectBot(options: BotOptions): Primitive<{}> { if (typeof analyzeInstance !== "undefined") { result = analyzeInstance.detectBot( JSON.stringify(toAnalyzeRequest(request)), - config + config, ); } else { result = { From 8e474a11f929d00e51936ac38920d7a9962b30f5 Mon Sep 17 00:00:00 2001 From: e-moran Date: Tue, 15 Oct 2024 14:55:57 +0100 Subject: [PATCH 03/16] change loader pattern --- analyze-wasm/.eslintignore | 6 + analyze-wasm/.eslintrc.cjs | 4 + analyze-wasm/.gitignore | 140 +++++ analyze-wasm/CHANGELOG.md | 503 ++++++++++++++++++ analyze-wasm/LICENSE | 201 +++++++ analyze-wasm/README.md | 78 +++ {analyze => analyze-wasm}/edge-light.ts | 17 +- analyze-wasm/index.ts | 129 +++++ analyze-wasm/jest.config.js | 16 + analyze-wasm/newFile.js | 0 analyze-wasm/newFile.ts | 0 analyze-wasm/package.json | 68 +++ analyze-wasm/rollup.config.js | 85 +++ analyze-wasm/tsconfig.json | 4 + {analyze => analyze-wasm}/wasm.d.ts | 0 .../arcjet_analyze_js_req.component.core.wasm | Bin ...arcjet_analyze_js_req.component.core2.wasm | Bin ...arcjet_analyze_js_req.component.core3.wasm | Bin .../wasm/arcjet_analyze_js_req.component.d.ts | 124 +++++ .../wasm/arcjet_analyze_js_req.component.js | 477 ++++++++++------- .../wasm/arcjet_analyze_js_req.component.wasm | Bin ...cjet-js-req-email-validator-overrides.d.ts | 8 +- .../wasm/interfaces/arcjet-js-req-logger.d.ts | 0 ...-req-sensitive-information-identifier.d.ts | 27 + {analyze => analyze-wasm}/workerd.ts | 17 +- analyze/index.ts | 194 +++---- analyze/package.json | 15 +- analyze/rollup.config.js | 84 +-- analyze/tsconfig.json | 2 +- .../wasm/arcjet_analyze_js_req.component.d.ts | 109 ---- ...-req-sensitive-information-identifier.d.ts | 20 - arcjet/index.ts | 305 +++++------ arcjet/package.json | 2 +- package-lock.json | 49 +- 34 files changed, 1993 insertions(+), 691 deletions(-) create mode 100644 analyze-wasm/.eslintignore create mode 100644 analyze-wasm/.eslintrc.cjs create mode 100644 analyze-wasm/.gitignore create mode 100644 analyze-wasm/CHANGELOG.md create mode 100644 analyze-wasm/LICENSE create mode 100644 analyze-wasm/README.md rename {analyze => analyze-wasm}/edge-light.ts (84%) create mode 100644 analyze-wasm/index.ts create mode 100644 analyze-wasm/jest.config.js create mode 100644 analyze-wasm/newFile.js create mode 100644 analyze-wasm/newFile.ts create mode 100644 analyze-wasm/package.json create mode 100644 analyze-wasm/rollup.config.js create mode 100644 analyze-wasm/tsconfig.json rename {analyze => analyze-wasm}/wasm.d.ts (100%) rename {analyze => analyze-wasm}/wasm/arcjet_analyze_js_req.component.core.wasm (100%) rename {analyze => analyze-wasm}/wasm/arcjet_analyze_js_req.component.core2.wasm (100%) rename {analyze => analyze-wasm}/wasm/arcjet_analyze_js_req.component.core3.wasm (100%) create mode 100644 analyze-wasm/wasm/arcjet_analyze_js_req.component.d.ts rename {analyze => analyze-wasm}/wasm/arcjet_analyze_js_req.component.js (62%) rename {analyze => analyze-wasm}/wasm/arcjet_analyze_js_req.component.wasm (100%) rename {analyze => analyze-wasm}/wasm/interfaces/arcjet-js-req-email-validator-overrides.d.ts (84%) rename {analyze => analyze-wasm}/wasm/interfaces/arcjet-js-req-logger.d.ts (100%) create mode 100644 analyze-wasm/wasm/interfaces/arcjet-js-req-sensitive-information-identifier.d.ts rename {analyze => analyze-wasm}/workerd.ts (84%) delete mode 100644 analyze/wasm/arcjet_analyze_js_req.component.d.ts delete mode 100644 analyze/wasm/interfaces/arcjet-js-req-sensitive-information-identifier.d.ts diff --git a/analyze-wasm/.eslintignore b/analyze-wasm/.eslintignore new file mode 100644 index 000000000..9cfa2cae7 --- /dev/null +++ b/analyze-wasm/.eslintignore @@ -0,0 +1,6 @@ +/.turbo/ +/coverage/ +/node_modules/ +*.d.ts +*.js +!*.config.js diff --git a/analyze-wasm/.eslintrc.cjs b/analyze-wasm/.eslintrc.cjs new file mode 100644 index 000000000..abe4cd7b4 --- /dev/null +++ b/analyze-wasm/.eslintrc.cjs @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ["@arcjet/eslint-config"], +}; diff --git a/analyze-wasm/.gitignore b/analyze-wasm/.gitignore new file mode 100644 index 000000000..e49250b1a --- /dev/null +++ b/analyze-wasm/.gitignore @@ -0,0 +1,140 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +# Generated files +edge-light.js +edge-light.d.ts +index.js +index.d.ts +workerd.js +workerd.d.ts +test/*.js +_virtual/*.js diff --git a/analyze-wasm/CHANGELOG.md b/analyze-wasm/CHANGELOG.md new file mode 100644 index 000000000..ea8f60a1b --- /dev/null +++ b/analyze-wasm/CHANGELOG.md @@ -0,0 +1,503 @@ +# Changelog + +## [1.0.0-alpha.27](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.26...@arcjet/analyze-v1.0.0-alpha.27) (2024-10-01) + + +### ๐Ÿงน Miscellaneous Chores + +* **analyze:** Update well known bots ([#1784](https://github.com/arcjet/arcjet-js/issues/1784)) ([52f1ee3](https://github.com/arcjet/arcjet-js/commit/52f1ee35fde144d152ef2face2546ed79ca35f49)) +* Update WebAssembly modules ([#1721](https://github.com/arcjet/arcjet-js/issues/1721)) ([2dbb9eb](https://github.com/arcjet/arcjet-js/commit/2dbb9eb90755dca6dc99dc0092246304b98889f9)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @arcjet/protocol bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27 + * devDependencies + * @arcjet/eslint-config bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27 + * @arcjet/rollup-config bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27 + * @arcjet/tsconfig bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27 + +## [1.0.0-alpha.26](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.25...@arcjet/analyze-v1.0.0-alpha.26) (2024-09-16) + + +### ๐Ÿš€ New Features + +* Implement bot detection categories ([#1618](https://github.com/arcjet/arcjet-js/issues/1618)) ([540cfe8](https://github.com/arcjet/arcjet-js/commit/540cfe8d74b9f029248cfeb6f27e4c7b47fbb9b7)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @arcjet/protocol bumped from 1.0.0-alpha.25 to 1.0.0-alpha.26 + * devDependencies + * @arcjet/eslint-config bumped from 1.0.0-alpha.25 to 1.0.0-alpha.26 + * @arcjet/rollup-config bumped from 1.0.0-alpha.25 to 1.0.0-alpha.26 + * @arcjet/tsconfig bumped from 1.0.0-alpha.25 to 1.0.0-alpha.26 + +## [1.0.0-alpha.25](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.24...@arcjet/analyze-v1.0.0-alpha.25) (2024-09-10) + + +### ๐Ÿงน Miscellaneous Chores + +* **analyze:** Regenerate WebAssembly with updated bot list ([#1546](https://github.com/arcjet/arcjet-js/issues/1546)) ([0a38e0f](https://github.com/arcjet/arcjet-js/commit/0a38e0f954eb9cfe52289720f3724b0f8f337744)), closes [#1545](https://github.com/arcjet/arcjet-js/issues/1545) +* **analyze:** Update crawler list with Coda Server Fetcher ([#1580](https://github.com/arcjet/arcjet-js/issues/1580)) ([91dd435](https://github.com/arcjet/arcjet-js/commit/91dd435bc5abeafbe7955b6e186668e7af6307a1)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @arcjet/protocol bumped from 1.0.0-alpha.24 to 1.0.0-alpha.25 + * devDependencies + * @arcjet/eslint-config bumped from 1.0.0-alpha.24 to 1.0.0-alpha.25 + * @arcjet/rollup-config bumped from 1.0.0-alpha.24 to 1.0.0-alpha.25 + * @arcjet/tsconfig bumped from 1.0.0-alpha.24 to 1.0.0-alpha.25 + +## [1.0.0-alpha.24](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.23...@arcjet/analyze-v1.0.0-alpha.24) (2024-09-05) + + +### โš  BREAKING CHANGES + +* Rework bot detection rule with allow/deny configuration ([#1437](https://github.com/arcjet/arcjet-js/issues/1437)) + +### ๐Ÿš€ New Features + +* Rework bot detection rule with allow/deny configuration ([#1437](https://github.com/arcjet/arcjet-js/issues/1437)) ([eef18e3](https://github.com/arcjet/arcjet-js/commit/eef18e3a7c52a849fbc1766439dc28bf0cb2da27)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @arcjet/protocol bumped from 1.0.0-alpha.23 to 1.0.0-alpha.24 + * devDependencies + * @arcjet/eslint-config bumped from 1.0.0-alpha.23 to 1.0.0-alpha.24 + * @arcjet/rollup-config bumped from 1.0.0-alpha.23 to 1.0.0-alpha.24 + * @arcjet/tsconfig bumped from 1.0.0-alpha.23 to 1.0.0-alpha.24 + +## [1.0.0-alpha.23](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.22...@arcjet/analyze-v1.0.0-alpha.23) (2024-09-02) + + +### ๐Ÿชฒ Bug Fixes + +* **analyze:** Ensure headers are serialized correctly ([#1435](https://github.com/arcjet/arcjet-js/issues/1435)) ([0319412](https://github.com/arcjet/arcjet-js/commit/0319412a56e6227f71ab981e23ccdd460a3515cd)) +* Ensure instantiation throws if WebAssembly is unavailable ([#1458](https://github.com/arcjet/arcjet-js/issues/1458)) ([0edfd45](https://github.com/arcjet/arcjet-js/commit/0edfd457d9f1428d360787e8c78dce3471abdee8)) + + +### ๐Ÿงน Miscellaneous Chores + +* remove sideEffects from analyze ([#1444](https://github.com/arcjet/arcjet-js/issues/1444)) ([572aaa0](https://github.com/arcjet/arcjet-js/commit/572aaa067ba8d2e132e608997b15953896474ca9)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @arcjet/protocol bumped from 1.0.0-alpha.22 to 1.0.0-alpha.23 + * devDependencies + * @arcjet/eslint-config bumped from 1.0.0-alpha.22 to 1.0.0-alpha.23 + * @arcjet/rollup-config bumped from 1.0.0-alpha.22 to 1.0.0-alpha.23 + * @arcjet/tsconfig bumped from 1.0.0-alpha.22 to 1.0.0-alpha.23 + +## [1.0.0-alpha.22](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.21...@arcjet/analyze-v1.0.0-alpha.22) (2024-08-26) + + +### ๐Ÿš€ New Features + +* add detect sensitive info rule ([#1300](https://github.com/arcjet/arcjet-js/issues/1300)) ([006e344](https://github.com/arcjet/arcjet-js/commit/006e34449a1af0768fe2c265c40161e0ecf90d82)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @arcjet/protocol bumped from 1.0.0-alpha.21 to 1.0.0-alpha.22 + * devDependencies + * @arcjet/eslint-config bumped from 1.0.0-alpha.21 to 1.0.0-alpha.22 + * @arcjet/rollup-config bumped from 1.0.0-alpha.21 to 1.0.0-alpha.22 + * @arcjet/tsconfig bumped from 1.0.0-alpha.21 to 1.0.0-alpha.22 + +## [1.0.0-alpha.21](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.20...@arcjet/analyze-v1.0.0-alpha.21) (2024-08-05) + + +### ๐Ÿงน Miscellaneous Chores + +* **@arcjet/analyze:** Synchronize arcjet-js versions + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @arcjet/protocol bumped from 1.0.0-alpha.20 to 1.0.0-alpha.21 + * devDependencies + * @arcjet/eslint-config bumped from 1.0.0-alpha.20 to 1.0.0-alpha.21 + * @arcjet/rollup-config bumped from 1.0.0-alpha.20 to 1.0.0-alpha.21 + * @arcjet/tsconfig bumped from 1.0.0-alpha.20 to 1.0.0-alpha.21 + +## [1.0.0-alpha.20](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.19...@arcjet/analyze-v1.0.0-alpha.20) (2024-07-24) + + +### ๐Ÿชฒ Bug Fixes + +* **analyze:** Ensure locally-unknown email information doesn't deny ([#1176](https://github.com/arcjet/arcjet-js/issues/1176)) ([c4ca3f8](https://github.com/arcjet/arcjet-js/commit/c4ca3f8c986f87f16fad016e9f204ab817df9ab3)), closes [#1175](https://github.com/arcjet/arcjet-js/issues/1175) + + +### ๐Ÿ“ฆ Dependencies + +* **dev:** bump @rollup/wasm-node from 4.18.1 to 4.19.0 ([#1160](https://github.com/arcjet/arcjet-js/issues/1160)) ([7062ca0](https://github.com/arcjet/arcjet-js/commit/7062ca00012dd73b2e80f0679609be6e45ec5f5d)) +* **dev:** bump typescript from 5.5.3 to 5.5.4 ([#1166](https://github.com/arcjet/arcjet-js/issues/1166)) ([644e3a6](https://github.com/arcjet/arcjet-js/commit/644e3a6e69d092626fdf4f356aaa8e8f974ae46b)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @arcjet/protocol bumped from 1.0.0-alpha.19 to 1.0.0-alpha.20 + * devDependencies + * @arcjet/eslint-config bumped from 1.0.0-alpha.19 to 1.0.0-alpha.20 + * @arcjet/rollup-config bumped from 1.0.0-alpha.19 to 1.0.0-alpha.20 + * @arcjet/tsconfig bumped from 1.0.0-alpha.19 to 1.0.0-alpha.20 + +## [1.0.0-alpha.19](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.18...@arcjet/analyze-v1.0.0-alpha.19) (2024-07-15) + + +### ๐Ÿš€ New Features + +* detect common free/disposable email providers locally ([#1096](https://github.com/arcjet/arcjet-js/issues/1096)) ([115d016](https://github.com/arcjet/arcjet-js/commit/115d01662d4ff456cf4d81825338ef1099626fdf)), closes [#1095](https://github.com/arcjet/arcjet-js/issues/1095) + + +### ๐Ÿ“ฆ Dependencies + +* **dev:** Bump @rollup/wasm-node from 4.18.0 to 4.18.1 ([#1092](https://github.com/arcjet/arcjet-js/issues/1092)) ([ffc298a](https://github.com/arcjet/arcjet-js/commit/ffc298ad030721519af02c6c2da26fd2bd3fbdbd)) +* **dev:** Bump typescript from 5.5.2 to 5.5.3 ([#1065](https://github.com/arcjet/arcjet-js/issues/1065)) ([ef05395](https://github.com/arcjet/arcjet-js/commit/ef053953cf4a6cba621b778cba2e0dd4e114b626)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @arcjet/protocol bumped from 1.0.0-alpha.18 to 1.0.0-alpha.19 + * devDependencies + * @arcjet/eslint-config bumped from 1.0.0-alpha.18 to 1.0.0-alpha.19 + * @arcjet/rollup-config bumped from 1.0.0-alpha.18 to 1.0.0-alpha.19 + * @arcjet/tsconfig bumped from 1.0.0-alpha.18 to 1.0.0-alpha.19 + +## [1.0.0-alpha.18](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.17...@arcjet/analyze-v1.0.0-alpha.18) (2024-07-01) + + +### ๐Ÿš€ New Features + +* Allow characteristics to be specified on the SDK for fingerprint generation & propagate to rate limit rule ([#1016](https://github.com/arcjet/arcjet-js/issues/1016)) ([6b692da](https://github.com/arcjet/arcjet-js/commit/6b692da8e6da506a977ec5617a223b6512035a19)), closes [#1015](https://github.com/arcjet/arcjet-js/issues/1015) + + +### ๐Ÿ“ฆ Dependencies + +* **dev:** Bump typescript from 5.4.5 to 5.5.2 ([#1011](https://github.com/arcjet/arcjet-js/issues/1011)) ([c17a101](https://github.com/arcjet/arcjet-js/commit/c17a101c5729db44ddf8a7e14d5e4184dcf38949)) + + +### ๐Ÿงน Miscellaneous Chores + +* **analyze:** Regenerate WebAssembly ([#1041](https://github.com/arcjet/arcjet-js/issues/1041)) ([a45faa3](https://github.com/arcjet/arcjet-js/commit/a45faa3e39005bf089b7c37c7a5a15f1951c6529)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @arcjet/protocol bumped from 1.0.0-alpha.17 to 1.0.0-alpha.18 + * devDependencies + * @arcjet/eslint-config bumped from 1.0.0-alpha.17 to 1.0.0-alpha.18 + * @arcjet/rollup-config bumped from 1.0.0-alpha.17 to 1.0.0-alpha.18 + * @arcjet/tsconfig bumped from 1.0.0-alpha.17 to 1.0.0-alpha.18 + +## [1.0.0-alpha.17](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.16...@arcjet/analyze-v1.0.0-alpha.17) (2024-06-17) + + +### ๐Ÿงน Miscellaneous Chores + +* **@arcjet/analyze:** Synchronize arcjet-js versions + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @arcjet/protocol bumped from 1.0.0-alpha.16 to 1.0.0-alpha.17 + * devDependencies + * @arcjet/eslint-config bumped from 1.0.0-alpha.16 to 1.0.0-alpha.17 + * @arcjet/rollup-config bumped from 1.0.0-alpha.16 to 1.0.0-alpha.17 + * @arcjet/tsconfig bumped from 1.0.0-alpha.16 to 1.0.0-alpha.17 + +## [1.0.0-alpha.16](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.15...@arcjet/analyze-v1.0.0-alpha.16) (2024-06-14) + + +### ๐Ÿงน Miscellaneous Chores + +* **@arcjet/analyze:** Synchronize arcjet-js versions + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @arcjet/protocol bumped from 1.0.0-alpha.15 to 1.0.0-alpha.16 + * devDependencies + * @arcjet/eslint-config bumped from 1.0.0-alpha.15 to 1.0.0-alpha.16 + * @arcjet/rollup-config bumped from 1.0.0-alpha.15 to 1.0.0-alpha.16 + * @arcjet/tsconfig bumped from 1.0.0-alpha.15 to 1.0.0-alpha.16 + +## [1.0.0-alpha.15](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.14...@arcjet/analyze-v1.0.0-alpha.15) (2024-06-12) + + +### ๐Ÿงน Miscellaneous Chores + +* **@arcjet/analyze:** Synchronize arcjet-js versions + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @arcjet/protocol bumped from 1.0.0-alpha.14 to 1.0.0-alpha.15 + * devDependencies + * @arcjet/eslint-config bumped from 1.0.0-alpha.14 to 1.0.0-alpha.15 + * @arcjet/rollup-config bumped from 1.0.0-alpha.14 to 1.0.0-alpha.15 + * @arcjet/tsconfig bumped from 1.0.0-alpha.14 to 1.0.0-alpha.15 + +## [1.0.0-alpha.14](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.13...@arcjet/analyze-v1.0.0-alpha.14) (2024-06-10) + + +### โš  BREAKING CHANGES + +* **analyze:** Leverage conditional exports to load Wasm appropriately ([#887](https://github.com/arcjet/arcjet-js/issues/887)) +* **logger:** Align logger with Pino API ([#858](https://github.com/arcjet/arcjet-js/issues/858)) + +### ๐Ÿš€ New Features + +* **logger:** Align logger with Pino API ([#858](https://github.com/arcjet/arcjet-js/issues/858)) ([1806b94](https://github.com/arcjet/arcjet-js/commit/1806b94d7f7d0a7fd052e3121892d4dc1fdb719b)), closes [#822](https://github.com/arcjet/arcjet-js/issues/822) [#855](https://github.com/arcjet/arcjet-js/issues/855) + + +### ๐Ÿชฒ Bug Fixes + +* **analyze:** Disable cache during base64 decode ([#838](https://github.com/arcjet/arcjet-js/issues/838)) ([72fb961](https://github.com/arcjet/arcjet-js/commit/72fb9610aa2ead7bf26121bb793ec2086b8d4f70)) + + +### ๐Ÿ“ฆ Dependencies + +* **dev:** Bump @rollup/wasm-node from 4.17.2 to 4.18.0 ([#803](https://github.com/arcjet/arcjet-js/issues/803)) ([e6321af](https://github.com/arcjet/arcjet-js/commit/e6321afbad7127442d78b9c760c0e4c1ef73a77c)) + + +### ๐Ÿ“ Documentation + +* Add quick start links & update Bun example ([#870](https://github.com/arcjet/arcjet-js/issues/870)) ([ee3079f](https://github.com/arcjet/arcjet-js/commit/ee3079f21484ed3b5cf67ae03a45cb9d07b3d911)) +* Remove wording that implies is Shield is added by default ([#796](https://github.com/arcjet/arcjet-js/issues/796)) ([a85d18c](https://github.com/arcjet/arcjet-js/commit/a85d18ca6f6da589cfad58d3167b1c8a4b1edc55)) + + +### ๐Ÿงน Miscellaneous Chores + +* **analyze:** Leverage conditional exports to load Wasm appropriately ([#887](https://github.com/arcjet/arcjet-js/issues/887)) ([d7a698f](https://github.com/arcjet/arcjet-js/commit/d7a698f136e93dc927c0cb9a9a8c48d15ed48f83)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @arcjet/protocol bumped from 1.0.0-alpha.13 to 1.0.0-alpha.14 + * devDependencies + * @arcjet/eslint-config bumped from 1.0.0-alpha.13 to 1.0.0-alpha.14 + * @arcjet/rollup-config bumped from 1.0.0-alpha.13 to 1.0.0-alpha.14 + * @arcjet/tsconfig bumped from 1.0.0-alpha.13 to 1.0.0-alpha.14 + +## [1.0.0-alpha.13](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.12...@arcjet/analyze-v1.0.0-alpha.13) (2024-05-20) + + +### ๐Ÿชฒ Bug Fixes + +* **analyze:** Leverage string interpolation to import Wasm files on edge runtime ([#784](https://github.com/arcjet/arcjet-js/issues/784)) ([9b85908](https://github.com/arcjet/arcjet-js/commit/9b8590817091971581735c39406fe6cf40472e5b)) + + +### ๐Ÿ“ฆ Dependencies + +* **dev:** Bump @bytecodealliance/jco from 1.1.1 to 1.2.2 ([#707](https://github.com/arcjet/arcjet-js/issues/707)) ([39989b8](https://github.com/arcjet/arcjet-js/commit/39989b8278fa9329b4e2a2a6d3326b5f37e573e4)) +* **dev:** Bump @bytecodealliance/jco from 1.2.2 to 1.2.4 ([#725](https://github.com/arcjet/arcjet-js/issues/725)) ([7c43124](https://github.com/arcjet/arcjet-js/commit/7c431248ffc99e3a59688264ec4c2876ab113000)) +* **dev:** Bump @rollup/wasm-node from 4.14.3 to 4.17.2 ([#708](https://github.com/arcjet/arcjet-js/issues/708)) ([6e548bf](https://github.com/arcjet/arcjet-js/commit/6e548bf30743d06615dc9a0b46b3cbdabd6a89e4)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @arcjet/logger bumped from 1.0.0-alpha.12 to 1.0.0-alpha.13 + * devDependencies + * @arcjet/eslint-config bumped from 1.0.0-alpha.12 to 1.0.0-alpha.13 + * @arcjet/rollup-config bumped from 1.0.0-alpha.12 to 1.0.0-alpha.13 + * @arcjet/tsconfig bumped from 1.0.0-alpha.12 to 1.0.0-alpha.13 + +## [1.0.0-alpha.12](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.11...@arcjet/analyze-v1.0.0-alpha.12) (2024-04-18) + + +### ๐Ÿ“ฆ Dependencies + +* **dev:** Bump @rollup/wasm-node from 4.14.1 to 4.14.3 ([#597](https://github.com/arcjet/arcjet-js/issues/597)) ([598adf0](https://github.com/arcjet/arcjet-js/commit/598adf0b3d61b9e9bce046c7c3e8ddef2802a37c)) +* **dev:** Bump typescript from 5.4.4 to 5.4.5 ([#557](https://github.com/arcjet/arcjet-js/issues/557)) ([16af391](https://github.com/arcjet/arcjet-js/commit/16af3914d66f05eb3b0d79a9623d2c5ade52bddd)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @arcjet/logger bumped from 1.0.0-alpha.11 to 1.0.0-alpha.12 + * devDependencies + * @arcjet/eslint-config bumped from 1.0.0-alpha.11 to 1.0.0-alpha.12 + * @arcjet/rollup-config bumped from 1.0.0-alpha.11 to 1.0.0-alpha.12 + * @arcjet/tsconfig bumped from 1.0.0-alpha.11 to 1.0.0-alpha.12 + +## [1.0.0-alpha.11](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.10...@arcjet/analyze-v1.0.0-alpha.11) (2024-04-08) + + +### ๐Ÿ“ฆ Dependencies + +* **dev:** Bump @bytecodealliance/jco from 1.0.3 to 1.1.1 ([#473](https://github.com/arcjet/arcjet-js/issues/473)) ([4584fe4](https://github.com/arcjet/arcjet-js/commit/4584fe43af549d4ec42565276f2fcf64cfdf3e57)) +* **dev:** Bump @rollup/wasm-node from 4.13.0 to 4.13.2 ([#472](https://github.com/arcjet/arcjet-js/issues/472)) ([0268e51](https://github.com/arcjet/arcjet-js/commit/0268e51eb8967b2379014c1d16c65d1fbca13186)) +* **dev:** Bump @rollup/wasm-node from 4.13.2 to 4.14.0 ([#493](https://github.com/arcjet/arcjet-js/issues/493)) ([ac14f3f](https://github.com/arcjet/arcjet-js/commit/ac14f3fb12157f9b2306ce2e703f80c081dcd9bc)) +* **dev:** Bump @rollup/wasm-node from 4.14.0 to 4.14.1 ([#519](https://github.com/arcjet/arcjet-js/issues/519)) ([f859c0e](https://github.com/arcjet/arcjet-js/commit/f859c0eb071fcd83c68c8c94b60071217a600b3a)) +* **dev:** Bump typescript from 5.4.2 to 5.4.3 ([#412](https://github.com/arcjet/arcjet-js/issues/412)) ([a69b76b](https://github.com/arcjet/arcjet-js/commit/a69b76b011a58bad21dc0763661927003c6b2a2e)) +* **dev:** Bump typescript from 5.4.3 to 5.4.4 ([#509](https://github.com/arcjet/arcjet-js/issues/509)) ([8976fb1](https://github.com/arcjet/arcjet-js/commit/8976fb1b49f06b50b2a1d52b8a4619548993c737)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @arcjet/logger bumped from 1.0.0-alpha.10 to 1.0.0-alpha.11 + * devDependencies + * @arcjet/eslint-config bumped from 1.0.0-alpha.10 to 1.0.0-alpha.11 + * @arcjet/rollup-config bumped from 1.0.0-alpha.10 to 1.0.0-alpha.11 + * @arcjet/tsconfig bumped from 1.0.0-alpha.10 to 1.0.0-alpha.11 + +## [1.0.0-alpha.10](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.9...@arcjet/analyze-v1.0.0-alpha.10) (2024-03-13) + + +### ๐Ÿš€ New Features + +* **analyze:** Replace wasm-bindgen with jco generated bindings ([#334](https://github.com/arcjet/arcjet-js/issues/334)) ([48359ff](https://github.com/arcjet/arcjet-js/commit/48359ff986cc0ff4888fc2df6a89e9b6f9a5b697)) + + +### ๐Ÿ“ฆ Dependencies + +* **dev:** Bump @bytecodealliance/jco from 1.0.2 to 1.0.3 ([#365](https://github.com/arcjet/arcjet-js/issues/365)) ([bb1470e](https://github.com/arcjet/arcjet-js/commit/bb1470e2c4133501aafe685f76b65e09b19b4df2)) +* **dev:** Bump @rollup/wasm-node from 4.12.0 to 4.12.1 ([#320](https://github.com/arcjet/arcjet-js/issues/320)) ([7f07a8f](https://github.com/arcjet/arcjet-js/commit/7f07a8f78e2f2bf67ab0eba032eeb311704c4eee)) +* **dev:** Bump @rollup/wasm-node from 4.12.1 to 4.13.0 ([#359](https://github.com/arcjet/arcjet-js/issues/359)) ([8658316](https://github.com/arcjet/arcjet-js/commit/8658316b252f9224069d5c11b8fc6acb6681c90e)) +* **dev:** Bump typescript from 5.3.3 to 5.4.2 ([#321](https://github.com/arcjet/arcjet-js/issues/321)) ([e0c2914](https://github.com/arcjet/arcjet-js/commit/e0c2914ab868d4a3e571c959f4b00284bbbc3050)) + + +### ๐Ÿงน Miscellaneous Chores + +* **analyze:** Replace node import with crypto global ([#335](https://github.com/arcjet/arcjet-js/issues/335)) ([bcc27f2](https://github.com/arcjet/arcjet-js/commit/bcc27f26dc740914c15f7adc99c1ad845b9458ff)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @arcjet/logger bumped from 1.0.0-alpha.9 to 1.0.0-alpha.10 + * devDependencies + * @arcjet/eslint-config bumped from 1.0.0-alpha.9 to 1.0.0-alpha.10 + * @arcjet/rollup-config bumped from 1.0.0-alpha.9 to 1.0.0-alpha.10 + * @arcjet/tsconfig bumped from 1.0.0-alpha.9 to 1.0.0-alpha.10 + +## [1.0.0-alpha.9](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.8...@arcjet/analyze-v1.0.0-alpha.9) (2024-03-04) + + +### ๐Ÿ“ฆ Dependencies + +* **dev:** Bump @rollup/wasm-node from 4.10.0 to 4.12.0 ([#235](https://github.com/arcjet/arcjet-js/issues/235)) ([cf7ffc2](https://github.com/arcjet/arcjet-js/commit/cf7ffc2ae35d75884a04c88818f8c780ca7af223)) +* **dev:** Bump @rollup/wasm-node from 4.9.6 to 4.10.0 ([#223](https://github.com/arcjet/arcjet-js/issues/223)) ([47c24b4](https://github.com/arcjet/arcjet-js/commit/47c24b40a8419f1dabcf8607c90dfcb97f6a4195)) + + +### ๐Ÿงน Miscellaneous Chores + +* Add bugs and author info & update readme ([#254](https://github.com/arcjet/arcjet-js/issues/254)) ([9b0d2fc](https://github.com/arcjet/arcjet-js/commit/9b0d2fc674fdc1ddf9952b9a2ef3f5f3c860d41a)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @arcjet/logger bumped from 1.0.0-alpha.8 to 1.0.0-alpha.9 + * devDependencies + * @arcjet/eslint-config bumped from 1.0.0-alpha.8 to 1.0.0-alpha.9 + * @arcjet/rollup-config bumped from 1.0.0-alpha.8 to 1.0.0-alpha.9 + * @arcjet/tsconfig bumped from 1.0.0-alpha.8 to 1.0.0-alpha.9 + +## [1.0.0-alpha.8](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.7...@arcjet/analyze-v1.0.0-alpha.8) (2024-02-09) + + +### ๐Ÿ“ฆ Dependencies + +* **dev:** bump @rollup/wasm-node from 4.9.1 to 4.9.2 ([#97](https://github.com/arcjet/arcjet-js/issues/97)) ([eff4226](https://github.com/arcjet/arcjet-js/commit/eff4226ad0581dd7c5dff69bd3f259f058679f6e)) +* **dev:** bump @rollup/wasm-node from 4.9.2 to 4.9.4 ([#119](https://github.com/arcjet/arcjet-js/issues/119)) ([ec50b96](https://github.com/arcjet/arcjet-js/commit/ec50b96ed3e96735d80a8f556d5a1cd8a68287c5)) +* **dev:** bump @rollup/wasm-node from 4.9.4 to 4.9.5 ([#131](https://github.com/arcjet/arcjet-js/issues/131)) ([9fff856](https://github.com/arcjet/arcjet-js/commit/9fff856af1291bd05f7d5b6a02e007f5619e73c9)) +* **dev:** bump @rollup/wasm-node from 4.9.5 to 4.9.6 ([#152](https://github.com/arcjet/arcjet-js/issues/152)) ([3e54cff](https://github.com/arcjet/arcjet-js/commit/3e54cffa4419470fdfc52712a34a20b919189fc5)) + + +### ๐Ÿ“ Documentation + +* Update Arcjet description ([#122](https://github.com/arcjet/arcjet-js/issues/122)) ([c011bc2](https://github.com/arcjet/arcjet-js/commit/c011bc262159c8f09fadff381ea71f475fed0b16)) + + +### ๐Ÿงน Miscellaneous Chores + +* **analyze:** Regenerate WebAssembly and bindings ([#92](https://github.com/arcjet/arcjet-js/issues/92)) ([b10ce31](https://github.com/arcjet/arcjet-js/commit/b10ce310c3a0170000c362510e785d81506e5b88)) +* **rollup:** Externalize all imports that end with `.wasm?module` ([#217](https://github.com/arcjet/arcjet-js/issues/217)) ([ee6f387](https://github.com/arcjet/arcjet-js/commit/ee6f387d517eb78e974a92e7e39f60e7f1d3231c)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @arcjet/logger bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8 + * devDependencies + * @arcjet/eslint-config bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8 + * @arcjet/rollup-config bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8 + * @arcjet/tsconfig bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8 + +## [1.0.0-alpha.7](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.6...@arcjet/analyze-v1.0.0-alpha.7) (2023-12-21) + + +### ๐Ÿ“ฆ Dependencies + +* **dev:** Bump the dev-dependencies group with 5 updates ([#82](https://github.com/arcjet/arcjet-js/issues/82)) ([a67be47](https://github.com/arcjet/arcjet-js/commit/a67be47b76e623f1aef6687f9dcc87de8eb2f1da)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @arcjet/logger bumped from 1.0.0-alpha.6 to 1.0.0-alpha.7 + * devDependencies + * @arcjet/eslint-config bumped from 1.0.0-alpha.6 to 1.0.0-alpha.7 + * @arcjet/rollup-config bumped from 1.0.0-alpha.6 to 1.0.0-alpha.7 + * @arcjet/tsconfig bumped from 1.0.0-alpha.6 to 1.0.0-alpha.7 + +## [1.0.0-alpha.6](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.5...@arcjet/analyze-v1.0.0-alpha.6) (2023-12-18) + + +### ๐Ÿงน Miscellaneous Chores + +* **deps-dev:** Bump the dev-dependencies group with 2 updates ([#55](https://github.com/arcjet/arcjet-js/issues/55)) ([94839f3](https://github.com/arcjet/arcjet-js/commit/94839f3105ab2be5f1e5cdf02278ca7cc24850c1)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @arcjet/logger bumped from 1.0.0-alpha.5 to 1.0.0-alpha.6 + * devDependencies + * @arcjet/eslint-config bumped from 1.0.0-alpha.5 to 1.0.0-alpha.6 + * @arcjet/rollup-config bumped from 1.0.0-alpha.5 to 1.0.0-alpha.6 + * @arcjet/tsconfig bumped from 1.0.0-alpha.5 to 1.0.0-alpha.6 diff --git a/analyze-wasm/LICENSE b/analyze-wasm/LICENSE new file mode 100644 index 000000000..261eeb9e9 --- /dev/null +++ b/analyze-wasm/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/analyze-wasm/README.md b/analyze-wasm/README.md new file mode 100644 index 000000000..16faf79fd --- /dev/null +++ b/analyze-wasm/README.md @@ -0,0 +1,78 @@ + + + + Arcjet Logo + + + +# `@arcjet/analyze` + +

+ + + + npm badge + + +

+ +[Arcjet][arcjet] helps developers protect their apps in just a few lines of +code. Implement rate limiting, bot protection, email verification, and defense +against common attacks. + +This is the [Arcjet][arcjet] local analysis engine. + +## Installation + +```shell +npm install -S @arcjet/analyze +``` + +## Example + +```ts +import { generateFingerprint, isValidEmail } from "@arcjet/analyze"; + +const fingerprint = generateFingerprint("127.0.0.1"); +console.log("fingerprint: ", fingerprint); + +const valid = isValidEmail("hello@example.com"); +console.log("is email valid?", valid); +``` + +## Implementation + +This package provides analyze logic implemented as a WebAssembly module which +will run local analysis on request details before calling the Arcjet API. + +The [arcjet.wasm.js](./wasm/arcjet.wasm.js) file contains the binary inlined as +a base64 [Data URL][mdn-data-url] with the `application/wasm` MIME type. + +This was chosen to save on storage space over inlining the file directly as a +Uint8Array, which would take up ~3x the space of the Wasm file. See +[Better Binary Batter: Mixing Base64 and Uint8Array][wasm-base64-blog] for more +details. + +It is then decoded into an ArrayBuffer to be used directly via WebAssembly's +`compile()` function in our entry point file. + +This is all done to avoid trying to read or bundle the Wasm asset in various +ways based on the platform or bundler a user is targeting. One example being +that Next.js requires special `asyncWebAssembly` webpack config to load our +Wasm file if we don't do this. + +In the future, we hope to do away with this workaround when all bundlers +properly support consistent asset bundling techniques. + +## API + +In progress. + +## License + +Licensed under the [Apache License, Version 2.0][apache-license]. + +[arcjet]: https://arcjet.com +[mdn-data-url]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs +[wasm-base64-blog]: https://blobfolio.com/2019/better-binary-batter-mixing-base64-and-uint8array/ +[apache-license]: http://www.apache.org/licenses/LICENSE-2.0 diff --git a/analyze/edge-light.ts b/analyze-wasm/edge-light.ts similarity index 84% rename from analyze/edge-light.ts rename to analyze-wasm/edge-light.ts index 1f21bbc84..5e87cc11a 100644 --- a/analyze/edge-light.ts +++ b/analyze-wasm/edge-light.ts @@ -6,6 +6,11 @@ import type { DetectedSensitiveInfoEntity, SensitiveInfoEntity, BotConfig, + EmailValidationResult, + BotResult, + SensitiveInfoResult, + EmailValidationConfig, + SensitiveInfoEntities, } from "./wasm/arcjet_analyze_js_req.component.js"; import type { ArcjetJsReqSensitiveInformationIdentifier } from "./wasm/interfaces/arcjet-js-req-sensitive-information-identifier.js"; @@ -26,7 +31,8 @@ interface AnalyzeContext { characteristics: string[]; } -type CustomDetect = typeof ArcjetJsReqSensitiveInformationIdentifier.detect; +type DetectSensitiveInfoFunction = + typeof ArcjetJsReqSensitiveInformationIdentifier.detect; async function moduleFromPath(path: string): Promise { if (path === "arcjet_analyze_js_req.component.core.wasm") { @@ -48,7 +54,7 @@ function noOpDetect(): SensitiveInfoEntity[] { export async function initializeWasm( context: AnalyzeContext, - detect?: CustomDetect, + detect?: DetectSensitiveInfoFunction, ) { const { log } = context; @@ -96,7 +102,14 @@ export async function initializeWasm( } export { + type AnalyzeContext, type BotConfig, type DetectedSensitiveInfoEntity, type SensitiveInfoEntity, + type EmailValidationConfig, + type EmailValidationResult, + type BotResult, + type SensitiveInfoResult, + type SensitiveInfoEntities, + type DetectSensitiveInfoFunction, }; diff --git a/analyze-wasm/index.ts b/analyze-wasm/index.ts new file mode 100644 index 000000000..72a4ac29e --- /dev/null +++ b/analyze-wasm/index.ts @@ -0,0 +1,129 @@ +import type { ArcjetLogger } from "@arcjet/protocol"; + +import { instantiate } from "./wasm/arcjet_analyze_js_req.component.js"; +import type { + ImportObject, + BotConfig, + DetectedSensitiveInfoEntity, + SensitiveInfoEntity, + EmailValidationResult, + BotResult, + SensitiveInfoResult, + EmailValidationConfig, + SensitiveInfoEntities, +} from "./wasm/arcjet_analyze_js_req.component.js"; +import type { ArcjetJsReqSensitiveInformationIdentifier } from "./wasm/interfaces/arcjet-js-req-sensitive-information-identifier.js"; + +import { wasm as componentCoreWasm } from "./wasm/arcjet_analyze_js_req.component.core.wasm?js"; +import { wasm as componentCore2Wasm } from "./wasm/arcjet_analyze_js_req.component.core2.wasm?js"; +import { wasm as componentCore3Wasm } from "./wasm/arcjet_analyze_js_req.component.core3.wasm?js"; + +const FREE_EMAIL_PROVIDERS = [ + "gmail.com", + "yahoo.com", + "hotmail.com", + "aol.com", + "hotmail.co.uk", +]; + +interface AnalyzeContext { + log: ArcjetLogger; + characteristics: string[]; +} + +type DetectSensitiveInfoFunction = + typeof ArcjetJsReqSensitiveInformationIdentifier.detect; + +// TODO: Do we actually need this wasmCache or does `import` cache correctly? +const wasmCache = new Map(); + +async function moduleFromPath(path: string): Promise { + const cachedModule = wasmCache.get(path); + if (typeof cachedModule !== "undefined") { + return cachedModule; + } + + if (path === "arcjet_analyze_js_req.component.core.wasm") { + const mod = await componentCoreWasm(); + wasmCache.set(path, mod); + return mod; + } + if (path === "arcjet_analyze_js_req.component.core2.wasm") { + const mod = await componentCore2Wasm(); + wasmCache.set(path, mod); + return mod; + } + if (path === "arcjet_analyze_js_req.component.core3.wasm") { + const mod = await componentCore3Wasm(); + wasmCache.set(path, mod); + return mod; + } + + throw new Error(`Unknown path: ${path}`); +} + +function noOpDetect(): SensitiveInfoEntity[] { + return []; +} + +export async function initializeWasm( + context: AnalyzeContext, + detect?: DetectSensitiveInfoFunction, +) { + const { log } = context; + + if (typeof detect !== "function") { + detect = noOpDetect; + } + + const coreImports: ImportObject = { + "arcjet:js-req/logger": { + debug(msg) { + log.debug(msg); + }, + error(msg) { + log.error(msg); + }, + }, + "arcjet:js-req/email-validator-overrides": { + isFreeEmail(domain) { + if (FREE_EMAIL_PROVIDERS.includes(domain)) { + return "yes"; + } + return "unknown"; + }, + isDisposableEmail() { + return "unknown"; + }, + hasMxRecords() { + return "unknown"; + }, + hasGravatar() { + return "unknown"; + }, + }, + "arcjet:js-req/sensitive-information-identifier": { + detect, + }, + }; + + try { + // Await the instantiation to catch the failure + return instantiate(moduleFromPath, coreImports); + } catch { + log.debug("WebAssembly is not supported in this runtime"); + } +} + +export { + type AnalyzeContext, + type BotConfig, + type DetectedSensitiveInfoEntity, + type SensitiveInfoEntity, + type EmailValidationConfig, + type EmailValidationResult, + type BotResult, + type SensitiveInfoResult, + type SensitiveInfoEntities, + type DetectSensitiveInfoFunction, +}; diff --git a/analyze-wasm/jest.config.js b/analyze-wasm/jest.config.js new file mode 100644 index 000000000..6d5656840 --- /dev/null +++ b/analyze-wasm/jest.config.js @@ -0,0 +1,16 @@ +/** @type {import('jest').Config} */ +const config = { + // We only test JS files once compiled with TypeScript + moduleFileExtensions: ["js"], + coverageDirectory: "coverage", + collectCoverage: true, + // If this is set to default (babel) rather than v8, tests fail with the edge + // runtime and the error "EvalError: Code generation from strings disallowed + // for this context". Tracking in + // https://github.com/vercel/edge-runtime/issues/250 + coverageProvider: "v8", + verbose: true, + testEnvironment: "node", +}; + +export default config; diff --git a/analyze-wasm/newFile.js b/analyze-wasm/newFile.js new file mode 100644 index 000000000..e69de29bb diff --git a/analyze-wasm/newFile.ts b/analyze-wasm/newFile.ts new file mode 100644 index 000000000..e69de29bb diff --git a/analyze-wasm/package.json b/analyze-wasm/package.json new file mode 100644 index 000000000..92c8d761c --- /dev/null +++ b/analyze-wasm/package.json @@ -0,0 +1,68 @@ +{ + "name": "@arcjet/analyze-wasm", + "version": "1.0.0-alpha.27", + "description": "Arcjet local analysis engine", + "license": "Apache-2.0", + "homepage": "https://arcjet.com", + "repository": { + "type": "git", + "url": "git+https://github.com/arcjet/arcjet-js.git", + "directory": "analyze" + }, + "bugs": { + "url": "https://github.com/arcjet/arcjet-js/issues", + "email": "support@arcjet.com" + }, + "author": { + "name": "Arcjet", + "email": "support@arcjet.com", + "url": "https://arcjet.com" + }, + "engines": { + "node": ">=18" + }, + "type": "module", + "main": "./index.js", + "types": "./index.d.ts", + "exports": { + "edge-light": "./edge-light.js", + "workerd": "./workerd.js", + "default": "./index.js" + }, + "files": [ + "LICENSE", + "README.md", + "_virtual/", + "wasm/", + "*.js", + "*.d.ts", + "*.ts", + "!*.config.js" + ], + "scripts": { + "prepublishOnly": "npm run build", + "jco": "jco transpile wasm/arcjet_analyze_js_req.component.wasm --no-wasi-shim --instantiation async -o wasm", + "build": "npm run jco; rollup --config rollup.config.js", + "lint": "eslint .", + "pretest": "npm run build", + "test": "NODE_OPTIONS=--experimental-vm-modules jest --passWithNoTests" + }, + "dependencies": { + "@arcjet/protocol": "1.0.0-alpha.27" + }, + "devDependencies": { + "@arcjet/eslint-config": "1.0.0-alpha.27", + "@arcjet/rollup-config": "1.0.0-alpha.27", + "@arcjet/tsconfig": "1.0.0-alpha.27", + "@bytecodealliance/jco": "1.5.0", + "@jest/globals": "29.7.0", + "@rollup/wasm-node": "4.23.0", + "@types/node": "18.18.0", + "jest": "29.7.0", + "typescript": "5.6.2" + }, + "publishConfig": { + "access": "public", + "tag": "latest" + } +} diff --git a/analyze-wasm/rollup.config.js b/analyze-wasm/rollup.config.js new file mode 100644 index 000000000..38b5c27fc --- /dev/null +++ b/analyze-wasm/rollup.config.js @@ -0,0 +1,85 @@ +import { createConfig } from "@arcjet/rollup-config"; +import fs from "node:fs/promises"; + +function generateJs(wasm) { + const disclaimer = ` +/** + * This file contains an Arcjet Wasm binary inlined as a base64 + * [Data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) + * with the application/wasm MIME type. + * + * This was chosen to save on storage space over inlining the file directly as + * a Uint8Array, which would take up ~3x the space of the Wasm file. See + * https://blobfolio.com/2019/better-binary-batter-mixing-base64-and-uint8array/ + * for more details. + * + * It is then decoded into an ArrayBuffer to be used directly via WebAssembly's + * \`compile()\` function in our entry point file. + * + * This is all done to avoid trying to read or bundle the Wasm asset in various + * ways based on the platform or bundler a user is targeting. One example being + * that Next.js requires special \`asyncWebAssembly\` webpack config to load our + * Wasm file if we don't do this. + * + * In the future, we hope to do away with this workaround when all bundlers + * properly support consistent asset bundling techniques. + */ +`; + + return `// @generated by wasm2module - DO NOT EDIT +/* eslint-disable */ +// @ts-nocheck +${disclaimer} +const wasmBase64 = "data:application/wasm;base64,${wasm.toString("base64")}"; +/** + * Returns a WebAssembly.Module for an Arcjet Wasm binary, decoded from a base64 + * Data URL. + */ +// TODO: Switch back to top-level await when our platforms all support it +export async function wasm() { + // This uses fetch to decode the wasm data url, but disabling cache so files + // larger than 2mb don't fail to parse in the Next.js App Router + const wasmDecode = await fetch(wasmBase64, { cache: "no-store" }); + const buf = await wasmDecode.arrayBuffer(); + // And then we return it as a WebAssembly.Module + return WebAssembly.compile(buf); +} +`; +} + +function wasmToModule() { + const idToWasmPath = new Map(); + + return { + name: "base64-wasm", + resolveId(source) { + if (source.endsWith(".wasm?js")) { + // Slice off the `?js` to make it a valid path + const filepath = source.slice(0, -3); + // Create a "virtual module", prefixed with `\0` as per the Rollup docs, + // for our replacement import + const id = `\0${filepath.replace(/\.wasm$/, ".js")}`; + // Store the actual Wasm path against the virtual module ID. + idToWasmPath.set(id, filepath); + return id; + } + + return null; + }, + async load(id) { + const wasmPath = idToWasmPath.get(id); + // If we resolved this `id` during the `resolveId` phase, generate the + // JavaScript file with the base64 Wasm and loading helper + if (wasmPath) { + const wasm = await fs.readFile(wasmPath); + return generateJs(wasm); + } + + return null; + }, + }; +} + +export default createConfig(import.meta.url, { + plugins: [wasmToModule()], +}); diff --git a/analyze-wasm/tsconfig.json b/analyze-wasm/tsconfig.json new file mode 100644 index 000000000..b3da2e770 --- /dev/null +++ b/analyze-wasm/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "@arcjet/tsconfig/base", + "include": ["index.ts", "edge-light.ts", "workerd.ts", "wasm.d.ts"] +} diff --git a/analyze/wasm.d.ts b/analyze-wasm/wasm.d.ts similarity index 100% rename from analyze/wasm.d.ts rename to analyze-wasm/wasm.d.ts diff --git a/analyze/wasm/arcjet_analyze_js_req.component.core.wasm b/analyze-wasm/wasm/arcjet_analyze_js_req.component.core.wasm similarity index 100% rename from analyze/wasm/arcjet_analyze_js_req.component.core.wasm rename to analyze-wasm/wasm/arcjet_analyze_js_req.component.core.wasm diff --git a/analyze/wasm/arcjet_analyze_js_req.component.core2.wasm b/analyze-wasm/wasm/arcjet_analyze_js_req.component.core2.wasm similarity index 100% rename from analyze/wasm/arcjet_analyze_js_req.component.core2.wasm rename to analyze-wasm/wasm/arcjet_analyze_js_req.component.core2.wasm diff --git a/analyze/wasm/arcjet_analyze_js_req.component.core3.wasm b/analyze-wasm/wasm/arcjet_analyze_js_req.component.core3.wasm similarity index 100% rename from analyze/wasm/arcjet_analyze_js_req.component.core3.wasm rename to analyze-wasm/wasm/arcjet_analyze_js_req.component.core3.wasm diff --git a/analyze-wasm/wasm/arcjet_analyze_js_req.component.d.ts b/analyze-wasm/wasm/arcjet_analyze_js_req.component.d.ts new file mode 100644 index 000000000..2acfef863 --- /dev/null +++ b/analyze-wasm/wasm/arcjet_analyze_js_req.component.d.ts @@ -0,0 +1,124 @@ +import type { SensitiveInfoEntity } from "./interfaces/arcjet-js-req-sensitive-information-identifier.js"; +export { SensitiveInfoEntity }; +/** + * # Variants + * + * ## `"valid"` + * + * ## `"invalid"` + */ +export type EmailValidity = "valid" | "invalid"; +export interface EmailValidationResult { + validity: EmailValidity; + blocked: Array; +} +export interface EmailValidationConfig { + requireTopLevelDomain: boolean; + allowDomainLiteral: boolean; + blockedEmails: Array; +} +export type SensitiveInfoEntities = + | SensitiveInfoEntitiesAllow + | SensitiveInfoEntitiesDeny; +export interface SensitiveInfoEntitiesAllow { + tag: "allow"; + val: Array; +} +export interface SensitiveInfoEntitiesDeny { + tag: "deny"; + val: Array; +} +export interface SensitiveInfoConfig { + entities: SensitiveInfoEntities; + contextWindowSize?: number; + skipCustomDetect: boolean; +} +export interface DetectedSensitiveInfoEntity { + start: number; + end: number; + identifiedType: SensitiveInfoEntity; +} +export interface SensitiveInfoResult { + allowed: Array; + denied: Array; +} +export type BotEntity = string; +export interface AllowedBotConfig { + entities: Array; + skipCustomDetect: boolean; +} +export interface DeniedBotConfig { + entities: Array; + skipCustomDetect: boolean; +} +export type BotConfig = BotConfigAllowedBotConfig | BotConfigDeniedBotConfig; +export interface BotConfigAllowedBotConfig { + tag: "allowed-bot-config"; + val: AllowedBotConfig; +} +export interface BotConfigDeniedBotConfig { + tag: "denied-bot-config"; + val: DeniedBotConfig; +} +export interface BotResult { + allowed: Array; + denied: Array; +} +import { ArcjetJsReqEmailValidatorOverrides } from "./interfaces/arcjet-js-req-email-validator-overrides.js"; +import { ArcjetJsReqLogger } from "./interfaces/arcjet-js-req-logger.js"; +import { ArcjetJsReqSensitiveInformationIdentifier } from "./interfaces/arcjet-js-req-sensitive-information-identifier.js"; +export interface ImportObject { + "arcjet:js-req/email-validator-overrides": typeof ArcjetJsReqEmailValidatorOverrides; + "arcjet:js-req/logger": typeof ArcjetJsReqLogger; + "arcjet:js-req/sensitive-information-identifier": typeof ArcjetJsReqSensitiveInformationIdentifier; +} +export interface Root { + detectBot(request: string, options: BotConfig): BotResult; + generateFingerprint(request: string, characteristics: Array): string; + isValidEmail( + candidate: string, + options: EmailValidationConfig, + ): EmailValidationResult; + detectSensitiveInfo( + content: string, + options: SensitiveInfoConfig, + ): SensitiveInfoResult; +} + +/** + * Instantiates this component with the provided imports and + * returns a map of all the exports of the component. + * + * This function is intended to be similar to the + * `WebAssembly.instantiate` function. The second `imports` + * argument is the "import object" for wasm, except here it + * uses component-model-layer types instead of core wasm + * integers/numbers/etc. + * + * The first argument to this function, `getCoreModule`, is + * used to compile core wasm modules within the component. + * Components are composed of core wasm modules and this callback + * will be invoked per core wasm module. The caller of this + * function is responsible for reading the core wasm module + * identified by `path` and returning its compiled + * `WebAssembly.Module` object. This would use `compileStreaming` + * on the web, for example. + */ +export function instantiate( + getCoreModule: (path: string) => WebAssembly.Module, + imports: ImportObject, + instantiateCore?: ( + module: WebAssembly.Module, + imports: Record, + ) => WebAssembly.Instance, +): Root; +export function instantiate( + getCoreModule: ( + path: string, + ) => WebAssembly.Module | Promise, + imports: ImportObject, + instantiateCore?: ( + module: WebAssembly.Module, + imports: Record, + ) => WebAssembly.Instance | Promise, +): Root | Promise; diff --git a/analyze/wasm/arcjet_analyze_js_req.component.js b/analyze-wasm/wasm/arcjet_analyze_js_req.component.js similarity index 62% rename from analyze/wasm/arcjet_analyze_js_req.component.js rename to analyze-wasm/wasm/arcjet_analyze_js_req.component.js index 4b0a81891..d3f388e1f 100644 --- a/analyze/wasm/arcjet_analyze_js_req.component.js +++ b/analyze-wasm/wasm/arcjet_analyze_js_req.component.js @@ -1,27 +1,31 @@ -function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.instantiate) { - +function instantiate( + getCoreModule, + imports, + instantiateCore = WebAssembly.instantiate, +) { class ComponentError extends Error { - constructor (value) { - const enumerable = typeof value !== 'string'; + constructor(value) { + const enumerable = typeof value !== "string"; super(enumerable ? `${String(value)} (see error.payload)` : value); - Object.defineProperty(this, 'payload', { value, enumerable }); + Object.defineProperty(this, "payload", { value, enumerable }); } } - + let dv = new DataView(new ArrayBuffer()); - const dataView = mem => dv.buffer === mem.buffer ? dv : dv = new DataView(mem.buffer); - + const dataView = (mem) => + dv.buffer === mem.buffer ? dv : (dv = new DataView(mem.buffer)); + function toUint32(val) { return val >>> 0; } - + const utf8Decoder = new TextDecoder(); - + const utf8Encoder = new TextEncoder(); - + let utf8EncodedLen = 0; function utf8Encode(s, realloc, memory) { - if (typeof s !== 'string') throw new TypeError('expected a string'); + if (typeof s !== "string") throw new TypeError("expected a string"); if (s.length === 0) { utf8EncodedLen = 0; return 1; @@ -32,159 +36,179 @@ function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.insta utf8EncodedLen = buf.length; return ptr; } - - - const module0 = getCoreModule('arcjet_analyze_js_req.component.core.wasm'); - const module1 = getCoreModule('arcjet_analyze_js_req.component.core2.wasm'); - const module2 = getCoreModule('arcjet_analyze_js_req.component.core3.wasm'); - - const { hasGravatar, hasMxRecords, isDisposableEmail, isFreeEmail } = imports['arcjet:js-req/email-validator-overrides']; - const { debug, error } = imports['arcjet:js-req/logger']; - const { detect } = imports['arcjet:js-req/sensitive-information-identifier']; - let gen = (function* init () { + + const module0 = getCoreModule("arcjet_analyze_js_req.component.core.wasm"); + const module1 = getCoreModule("arcjet_analyze_js_req.component.core2.wasm"); + const module2 = getCoreModule("arcjet_analyze_js_req.component.core3.wasm"); + + const { hasGravatar, hasMxRecords, isDisposableEmail, isFreeEmail } = + imports["arcjet:js-req/email-validator-overrides"]; + const { debug, error } = imports["arcjet:js-req/logger"]; + const { detect } = imports["arcjet:js-req/sensitive-information-identifier"]; + let gen = (function* init() { let exports0; let exports1; let memory0; let realloc0; - + function trampoline0(arg0, arg1) { var ptr0 = arg0; var len0 = arg1; - var result0 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr0, len0)); + var result0 = utf8Decoder.decode( + new Uint8Array(memory0.buffer, ptr0, len0), + ); debug(result0); } - + function trampoline1(arg0, arg1) { var ptr0 = arg0; var len0 = arg1; - var result0 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr0, len0)); + var result0 = utf8Decoder.decode( + new Uint8Array(memory0.buffer, ptr0, len0), + ); error(result0); } - + function trampoline2(arg0, arg1) { var ptr0 = arg0; var len0 = arg1; - var result0 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr0, len0)); + var result0 = utf8Decoder.decode( + new Uint8Array(memory0.buffer, ptr0, len0), + ); const ret = isFreeEmail(result0); var val1 = ret; let enum1; switch (val1) { - case 'yes': { + case "yes": { enum1 = 0; break; } - case 'no': { + case "no": { enum1 = 1; break; } - case 'unknown': { + case "unknown": { enum1 = 2; break; } default: { - if ((ret) instanceof Error) { + if (ret instanceof Error) { console.error(ret); } - - throw new TypeError(`"${val1}" is not one of the cases of validator-response`); + + throw new TypeError( + `"${val1}" is not one of the cases of validator-response`, + ); } } return enum1; } - + function trampoline3(arg0, arg1) { var ptr0 = arg0; var len0 = arg1; - var result0 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr0, len0)); + var result0 = utf8Decoder.decode( + new Uint8Array(memory0.buffer, ptr0, len0), + ); const ret = isDisposableEmail(result0); var val1 = ret; let enum1; switch (val1) { - case 'yes': { + case "yes": { enum1 = 0; break; } - case 'no': { + case "no": { enum1 = 1; break; } - case 'unknown': { + case "unknown": { enum1 = 2; break; } default: { - if ((ret) instanceof Error) { + if (ret instanceof Error) { console.error(ret); } - - throw new TypeError(`"${val1}" is not one of the cases of validator-response`); + + throw new TypeError( + `"${val1}" is not one of the cases of validator-response`, + ); } } return enum1; } - + function trampoline4(arg0, arg1) { var ptr0 = arg0; var len0 = arg1; - var result0 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr0, len0)); + var result0 = utf8Decoder.decode( + new Uint8Array(memory0.buffer, ptr0, len0), + ); const ret = hasMxRecords(result0); var val1 = ret; let enum1; switch (val1) { - case 'yes': { + case "yes": { enum1 = 0; break; } - case 'no': { + case "no": { enum1 = 1; break; } - case 'unknown': { + case "unknown": { enum1 = 2; break; } default: { - if ((ret) instanceof Error) { + if (ret instanceof Error) { console.error(ret); } - - throw new TypeError(`"${val1}" is not one of the cases of validator-response`); + + throw new TypeError( + `"${val1}" is not one of the cases of validator-response`, + ); } } return enum1; } - + function trampoline5(arg0, arg1) { var ptr0 = arg0; var len0 = arg1; - var result0 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr0, len0)); + var result0 = utf8Decoder.decode( + new Uint8Array(memory0.buffer, ptr0, len0), + ); const ret = hasGravatar(result0); var val1 = ret; let enum1; switch (val1) { - case 'yes': { + case "yes": { enum1 = 0; break; } - case 'no': { + case "no": { enum1 = 1; break; } - case 'unknown': { + case "unknown": { enum1 = 2; break; } default: { - if ((ret) instanceof Error) { + if (ret instanceof Error) { console.error(ret); } - - throw new TypeError(`"${val1}" is not one of the cases of validator-response`); + + throw new TypeError( + `"${val1}" is not one of the cases of validator-response`, + ); } } return enum1; } - + function trampoline6(arg0, arg1, arg2) { var len1 = arg1; var base1 = arg0; @@ -193,7 +217,9 @@ function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.insta const base = base1 + i * 8; var ptr0 = dataView(memory0).getInt32(base + 0, true); var len0 = dataView(memory0).getInt32(base + 4, true); - var result0 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr0, len0)); + var result0 = utf8Decoder.decode( + new Uint8Array(memory0.buffer, ptr0, len0), + ); result1.push(result0); } const ret = detect(result1); @@ -202,31 +228,32 @@ function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.insta var result5 = realloc0(0, 0, 4, len5 * 16); for (let i = 0; i < vec5.length; i++) { const e = vec5[i]; - const base = result5 + i * 16;var variant4 = e; - if (variant4 === null || variant4=== undefined) { + const base = result5 + i * 16; + var variant4 = e; + if (variant4 === null || variant4 === undefined) { dataView(memory0).setInt8(base + 0, 0, true); } else { const e = variant4; dataView(memory0).setInt8(base + 0, 1, true); var variant3 = e; switch (variant3.tag) { - case 'email': { + case "email": { dataView(memory0).setInt8(base + 4, 0, true); break; } - case 'phone-number': { + case "phone-number": { dataView(memory0).setInt8(base + 4, 1, true); break; } - case 'ip-address': { + case "ip-address": { dataView(memory0).setInt8(base + 4, 2, true); break; } - case 'credit-card-number': { + case "credit-card-number": { dataView(memory0).setInt8(base + 4, 3, true); break; } - case 'custom': { + case "custom": { const e = variant3.val; dataView(memory0).setInt8(base + 4, 4, true); var ptr2 = utf8Encode(e, realloc0, memory0); @@ -236,7 +263,9 @@ function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.insta break; } default: { - throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant3.tag)}\` (received \`${variant3}\`) specified for \`SensitiveInfoEntity\``); + throw new TypeError( + `invalid variant tag value \`${JSON.stringify(variant3.tag)}\` (received \`${variant3}\`) specified for \`SensitiveInfoEntity\``, + ); } } } @@ -251,39 +280,39 @@ function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.insta Promise.all([module0, module1, module2]).catch(() => {}); ({ exports: exports0 } = yield instantiateCore(yield module1)); ({ exports: exports1 } = yield instantiateCore(yield module0, { - 'arcjet:js-req/email-validator-overrides': { - 'has-gravatar': exports0['5'], - 'has-mx-records': exports0['4'], - 'is-disposable-email': exports0['3'], - 'is-free-email': exports0['2'], + "arcjet:js-req/email-validator-overrides": { + "has-gravatar": exports0["5"], + "has-mx-records": exports0["4"], + "is-disposable-email": exports0["3"], + "is-free-email": exports0["2"], }, - 'arcjet:js-req/logger': { - debug: exports0['0'], - error: exports0['1'], + "arcjet:js-req/logger": { + debug: exports0["0"], + error: exports0["1"], }, - 'arcjet:js-req/sensitive-information-identifier': { - detect: exports0['6'], + "arcjet:js-req/sensitive-information-identifier": { + detect: exports0["6"], }, })); memory0 = exports1.memory; realloc0 = exports1.cabi_realloc; - (yield instantiateCore(yield module2, { - '': { + yield instantiateCore(yield module2, { + "": { $imports: exports0.$imports, - '0': trampoline0, - '1': trampoline1, - '2': trampoline2, - '3': trampoline3, - '4': trampoline4, - '5': trampoline5, - '6': trampoline6, + 0: trampoline0, + 1: trampoline1, + 2: trampoline2, + 3: trampoline3, + 4: trampoline4, + 5: trampoline5, + 6: trampoline6, }, - })); - postReturn0 = exports1['cabi_post_detect-bot']; - postReturn1 = exports1['cabi_post_generate-fingerprint']; - postReturn2 = exports1['cabi_post_is-valid-email']; - postReturn3 = exports1['cabi_post_detect-sensitive-info']; - + }); + postReturn0 = exports1["cabi_post_detect-bot"]; + postReturn1 = exports1["cabi_post_generate-fingerprint"]; + postReturn2 = exports1["cabi_post_is-valid-email"]; + postReturn3 = exports1["cabi_post_detect-sensitive-info"]; + function detectBot(arg0, arg1) { var ptr0 = utf8Encode(arg0, realloc0, memory0); var len0 = utf8EncodedLen; @@ -293,15 +322,16 @@ function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.insta let variant7_2; let variant7_3; switch (variant7.tag) { - case 'allowed-bot-config': { + case "allowed-bot-config": { const e = variant7.val; - var {entities: v1_0, skipCustomDetect: v1_1 } = e; + var { entities: v1_0, skipCustomDetect: v1_1 } = e; var vec3 = v1_0; var len3 = vec3.length; var result3 = realloc0(0, 0, 4, len3 * 8); for (let i = 0; i < vec3.length; i++) { const e = vec3[i]; - const base = result3 + i * 8;var ptr2 = utf8Encode(e, realloc0, memory0); + const base = result3 + i * 8; + var ptr2 = utf8Encode(e, realloc0, memory0); var len2 = utf8EncodedLen; dataView(memory0).setInt32(base + 4, len2, true); dataView(memory0).setInt32(base + 0, ptr2, true); @@ -312,15 +342,16 @@ function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.insta variant7_3 = v1_1 ? 1 : 0; break; } - case 'denied-bot-config': { + case "denied-bot-config": { const e = variant7.val; - var {entities: v4_0, skipCustomDetect: v4_1 } = e; + var { entities: v4_0, skipCustomDetect: v4_1 } = e; var vec6 = v4_0; var len6 = vec6.length; var result6 = realloc0(0, 0, 4, len6 * 8); for (let i = 0; i < vec6.length; i++) { const e = vec6[i]; - const base = result6 + i * 8;var ptr5 = utf8Encode(e, realloc0, memory0); + const base = result6 + i * 8; + var ptr5 = utf8Encode(e, realloc0, memory0); var len5 = utf8EncodedLen; dataView(memory0).setInt32(base + 4, len5, true); dataView(memory0).setInt32(base + 0, ptr5, true); @@ -332,10 +363,19 @@ function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.insta break; } default: { - throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant7.tag)}\` (received \`${variant7}\`) specified for \`BotConfig\``); + throw new TypeError( + `invalid variant tag value \`${JSON.stringify(variant7.tag)}\` (received \`${variant7}\`) specified for \`BotConfig\``, + ); } } - const ret = exports1['detect-bot'](ptr0, len0, variant7_0, variant7_1, variant7_2, variant7_3); + const ret = exports1["detect-bot"]( + ptr0, + len0, + variant7_0, + variant7_1, + variant7_2, + variant7_3, + ); let variant13; switch (dataView(memory0).getUint8(ret + 0, true)) { case 0: { @@ -346,7 +386,9 @@ function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.insta const base = base9 + i * 8; var ptr8 = dataView(memory0).getInt32(base + 0, true); var len8 = dataView(memory0).getInt32(base + 4, true); - var result8 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr8, len8)); + var result8 = utf8Decoder.decode( + new Uint8Array(memory0.buffer, ptr8, len8), + ); result9.push(result8); } var len11 = dataView(memory0).getInt32(ret + 16, true); @@ -356,40 +398,44 @@ function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.insta const base = base11 + i * 8; var ptr10 = dataView(memory0).getInt32(base + 0, true); var len10 = dataView(memory0).getInt32(base + 4, true); - var result10 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr10, len10)); + var result10 = utf8Decoder.decode( + new Uint8Array(memory0.buffer, ptr10, len10), + ); result11.push(result10); } - variant13= { - tag: 'ok', + variant13 = { + tag: "ok", val: { allowed: result9, denied: result11, - } + }, }; break; } case 1: { var ptr12 = dataView(memory0).getInt32(ret + 4, true); var len12 = dataView(memory0).getInt32(ret + 8, true); - var result12 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr12, len12)); - variant13= { - tag: 'err', - val: result12 + var result12 = utf8Decoder.decode( + new Uint8Array(memory0.buffer, ptr12, len12), + ); + variant13 = { + tag: "err", + val: result12, }; break; } default: { - throw new TypeError('invalid variant discriminant for expected'); + throw new TypeError("invalid variant discriminant for expected"); } } const retVal = variant13; postReturn0(ret); - if (typeof retVal === 'object' && retVal.tag === 'err') { + if (typeof retVal === "object" && retVal.tag === "err") { throw new ComponentError(retVal.val); } return retVal.val; } - + function generateFingerprint(arg0, arg1) { var ptr0 = utf8Encode(arg0, realloc0, memory0); var len0 = utf8EncodedLen; @@ -398,50 +444,67 @@ function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.insta var result2 = realloc0(0, 0, 4, len2 * 8); for (let i = 0; i < vec2.length; i++) { const e = vec2[i]; - const base = result2 + i * 8;var ptr1 = utf8Encode(e, realloc0, memory0); + const base = result2 + i * 8; + var ptr1 = utf8Encode(e, realloc0, memory0); var len1 = utf8EncodedLen; dataView(memory0).setInt32(base + 4, len1, true); dataView(memory0).setInt32(base + 0, ptr1, true); } - const ret = exports1['generate-fingerprint'](ptr0, len0, result2, len2); + const ret = exports1["generate-fingerprint"](ptr0, len0, result2, len2); var ptr3 = dataView(memory0).getInt32(ret + 0, true); var len3 = dataView(memory0).getInt32(ret + 4, true); - var result3 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr3, len3)); + var result3 = utf8Decoder.decode( + new Uint8Array(memory0.buffer, ptr3, len3), + ); const retVal = result3; postReturn1(ret); return retVal; } - + function isValidEmail(arg0, arg1) { var ptr0 = utf8Encode(arg0, realloc0, memory0); var len0 = utf8EncodedLen; - var {requireTopLevelDomain: v1_0, allowDomainLiteral: v1_1, blockedEmails: v1_2 } = arg1; + var { + requireTopLevelDomain: v1_0, + allowDomainLiteral: v1_1, + blockedEmails: v1_2, + } = arg1; var vec3 = v1_2; var len3 = vec3.length; var result3 = realloc0(0, 0, 4, len3 * 8); for (let i = 0; i < vec3.length; i++) { const e = vec3[i]; - const base = result3 + i * 8;var ptr2 = utf8Encode(e, realloc0, memory0); + const base = result3 + i * 8; + var ptr2 = utf8Encode(e, realloc0, memory0); var len2 = utf8EncodedLen; dataView(memory0).setInt32(base + 4, len2, true); dataView(memory0).setInt32(base + 0, ptr2, true); } - const ret = exports1['is-valid-email'](ptr0, len0, v1_0 ? 1 : 0, v1_1 ? 1 : 0, result3, len3); + const ret = exports1["is-valid-email"]( + ptr0, + len0, + v1_0 ? 1 : 0, + v1_1 ? 1 : 0, + result3, + len3, + ); let variant8; switch (dataView(memory0).getUint8(ret + 0, true)) { case 0: { let enum4; switch (dataView(memory0).getUint8(ret + 4, true)) { case 0: { - enum4 = 'valid'; + enum4 = "valid"; break; } case 1: { - enum4 = 'invalid'; + enum4 = "invalid"; break; } default: { - throw new TypeError('invalid discriminant specified for EmailValidity'); + throw new TypeError( + "invalid discriminant specified for EmailValidity", + ); } } var len6 = dataView(memory0).getInt32(ret + 12, true); @@ -451,75 +514,84 @@ function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.insta const base = base6 + i * 8; var ptr5 = dataView(memory0).getInt32(base + 0, true); var len5 = dataView(memory0).getInt32(base + 4, true); - var result5 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr5, len5)); + var result5 = utf8Decoder.decode( + new Uint8Array(memory0.buffer, ptr5, len5), + ); result6.push(result5); } - variant8= { - tag: 'ok', + variant8 = { + tag: "ok", val: { validity: enum4, blocked: result6, - } + }, }; break; } case 1: { var ptr7 = dataView(memory0).getInt32(ret + 4, true); var len7 = dataView(memory0).getInt32(ret + 8, true); - var result7 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr7, len7)); - variant8= { - tag: 'err', - val: result7 + var result7 = utf8Decoder.decode( + new Uint8Array(memory0.buffer, ptr7, len7), + ); + variant8 = { + tag: "err", + val: result7, }; break; } default: { - throw new TypeError('invalid variant discriminant for expected'); + throw new TypeError("invalid variant discriminant for expected"); } } const retVal = variant8; postReturn2(ret); - if (typeof retVal === 'object' && retVal.tag === 'err') { + if (typeof retVal === "object" && retVal.tag === "err") { throw new ComponentError(retVal.val); } return retVal.val; } - + function detectSensitiveInfo(arg0, arg1) { var ptr0 = utf8Encode(arg0, realloc0, memory0); var len0 = utf8EncodedLen; - var {entities: v1_0, contextWindowSize: v1_1, skipCustomDetect: v1_2 } = arg1; + var { + entities: v1_0, + contextWindowSize: v1_1, + skipCustomDetect: v1_2, + } = arg1; var variant8 = v1_0; let variant8_0; let variant8_1; let variant8_2; switch (variant8.tag) { - case 'allow': { + case "allow": { const e = variant8.val; var vec4 = e; var len4 = vec4.length; var result4 = realloc0(0, 0, 4, len4 * 12); for (let i = 0; i < vec4.length; i++) { const e = vec4[i]; - const base = result4 + i * 12;var variant3 = e; + const base = result4 + i * 12; + var variant3 = e; switch (variant3.tag) { - case 'email': { + case "email": { dataView(memory0).setInt8(base + 0, 0, true); break; } - case 'phone-number': { + case "phone-number": { dataView(memory0).setInt8(base + 0, 1, true); break; } - case 'ip-address': { + case "ip-address": { dataView(memory0).setInt8(base + 0, 2, true); break; } - case 'credit-card-number': { + case "credit-card-number": { dataView(memory0).setInt8(base + 0, 3, true); break; } - case 'custom': { + case "custom": { const e = variant3.val; dataView(memory0).setInt8(base + 0, 4, true); var ptr2 = utf8Encode(e, realloc0, memory0); @@ -529,7 +601,9 @@ function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.insta break; } default: { - throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant3.tag)}\` (received \`${variant3}\`) specified for \`SensitiveInfoEntity\``); + throw new TypeError( + `invalid variant tag value \`${JSON.stringify(variant3.tag)}\` (received \`${variant3}\`) specified for \`SensitiveInfoEntity\``, + ); } } } @@ -538,32 +612,33 @@ function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.insta variant8_2 = len4; break; } - case 'deny': { + case "deny": { const e = variant8.val; var vec7 = e; var len7 = vec7.length; var result7 = realloc0(0, 0, 4, len7 * 12); for (let i = 0; i < vec7.length; i++) { const e = vec7[i]; - const base = result7 + i * 12;var variant6 = e; + const base = result7 + i * 12; + var variant6 = e; switch (variant6.tag) { - case 'email': { + case "email": { dataView(memory0).setInt8(base + 0, 0, true); break; } - case 'phone-number': { + case "phone-number": { dataView(memory0).setInt8(base + 0, 1, true); break; } - case 'ip-address': { + case "ip-address": { dataView(memory0).setInt8(base + 0, 2, true); break; } - case 'credit-card-number': { + case "credit-card-number": { dataView(memory0).setInt8(base + 0, 3, true); break; } - case 'custom': { + case "custom": { const e = variant6.val; dataView(memory0).setInt8(base + 0, 4, true); var ptr5 = utf8Encode(e, realloc0, memory0); @@ -573,7 +648,9 @@ function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.insta break; } default: { - throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant6.tag)}\` (received \`${variant6}\`) specified for \`SensitiveInfoEntity\``); + throw new TypeError( + `invalid variant tag value \`${JSON.stringify(variant6.tag)}\` (received \`${variant6}\`) specified for \`SensitiveInfoEntity\``, + ); } } } @@ -583,13 +660,15 @@ function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.insta break; } default: { - throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant8.tag)}\` (received \`${variant8}\`) specified for \`SensitiveInfoEntities\``); + throw new TypeError( + `invalid variant tag value \`${JSON.stringify(variant8.tag)}\` (received \`${variant8}\`) specified for \`SensitiveInfoEntities\``, + ); } } var variant9 = v1_1; let variant9_0; let variant9_1; - if (variant9 === null || variant9=== undefined) { + if (variant9 === null || variant9 === undefined) { variant9_0 = 0; variant9_1 = 0; } else { @@ -597,7 +676,16 @@ function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.insta variant9_0 = 1; variant9_1 = toUint32(e); } - const ret = exports1['detect-sensitive-info'](ptr0, len0, variant8_0, variant8_1, variant8_2, variant9_0, variant9_1, v1_2 ? 1 : 0); + const ret = exports1["detect-sensitive-info"]( + ptr0, + len0, + variant8_0, + variant8_1, + variant8_2, + variant9_0, + variant9_1, + v1_2 ? 1 : 0, + ); var len12 = dataView(memory0).getInt32(ret + 4, true); var base12 = dataView(memory0).getInt32(ret + 0, true); var result12 = []; @@ -606,41 +694,45 @@ function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.insta let variant11; switch (dataView(memory0).getUint8(base + 8, true)) { case 0: { - variant11= { - tag: 'email', + variant11 = { + tag: "email", }; break; } case 1: { - variant11= { - tag: 'phone-number', + variant11 = { + tag: "phone-number", }; break; } case 2: { - variant11= { - tag: 'ip-address', + variant11 = { + tag: "ip-address", }; break; } case 3: { - variant11= { - tag: 'credit-card-number', + variant11 = { + tag: "credit-card-number", }; break; } case 4: { var ptr10 = dataView(memory0).getInt32(base + 12, true); var len10 = dataView(memory0).getInt32(base + 16, true); - var result10 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr10, len10)); - variant11= { - tag: 'custom', - val: result10 + var result10 = utf8Decoder.decode( + new Uint8Array(memory0.buffer, ptr10, len10), + ); + variant11 = { + tag: "custom", + val: result10, }; break; } default: { - throw new TypeError('invalid variant discriminant for SensitiveInfoEntity'); + throw new TypeError( + "invalid variant discriminant for SensitiveInfoEntity", + ); } } result12.push({ @@ -657,41 +749,45 @@ function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.insta let variant14; switch (dataView(memory0).getUint8(base + 8, true)) { case 0: { - variant14= { - tag: 'email', + variant14 = { + tag: "email", }; break; } case 1: { - variant14= { - tag: 'phone-number', + variant14 = { + tag: "phone-number", }; break; } case 2: { - variant14= { - tag: 'ip-address', + variant14 = { + tag: "ip-address", }; break; } case 3: { - variant14= { - tag: 'credit-card-number', + variant14 = { + tag: "credit-card-number", }; break; } case 4: { var ptr13 = dataView(memory0).getInt32(base + 12, true); var len13 = dataView(memory0).getInt32(base + 16, true); - var result13 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr13, len13)); - variant14= { - tag: 'custom', - val: result13 + var result13 = utf8Decoder.decode( + new Uint8Array(memory0.buffer, ptr13, len13), + ); + variant14 = { + tag: "custom", + val: result13, }; break; } default: { - throw new TypeError('invalid variant discriminant for SensitiveInfoEntity'); + throw new TypeError( + "invalid variant discriminant for SensitiveInfoEntity", + ); } } result15.push({ @@ -707,11 +803,16 @@ function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.insta postReturn3(ret); return retVal; } - - return { detectBot, detectSensitiveInfo, generateFingerprint, isValidEmail, }; + + return { + detectBot, + detectSensitiveInfo, + generateFingerprint, + isValidEmail, + }; })(); let promise, resolve, reject; - function runNext (value) { + function runNext(value) { try { let done; do { @@ -721,10 +822,12 @@ function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.insta if (resolve) resolve(value); else return value; } - if (!promise) promise = new Promise((_resolve, _reject) => (resolve = _resolve, reject = _reject)); - value.then(nextVal => done ? resolve() : runNext(nextVal), reject); - } - catch (e) { + if (!promise) + promise = new Promise( + (_resolve, _reject) => ((resolve = _resolve), (reject = _reject)), + ); + value.then((nextVal) => (done ? resolve() : runNext(nextVal)), reject); + } catch (e) { if (reject) reject(e); else throw e; } diff --git a/analyze/wasm/arcjet_analyze_js_req.component.wasm b/analyze-wasm/wasm/arcjet_analyze_js_req.component.wasm similarity index 100% rename from analyze/wasm/arcjet_analyze_js_req.component.wasm rename to analyze-wasm/wasm/arcjet_analyze_js_req.component.wasm diff --git a/analyze/wasm/interfaces/arcjet-js-req-email-validator-overrides.d.ts b/analyze-wasm/wasm/interfaces/arcjet-js-req-email-validator-overrides.d.ts similarity index 84% rename from analyze/wasm/interfaces/arcjet-js-req-email-validator-overrides.d.ts rename to analyze-wasm/wasm/interfaces/arcjet-js-req-email-validator-overrides.d.ts index 82cca6d2a..f5ae1e2c8 100644 --- a/analyze/wasm/interfaces/arcjet-js-req-email-validator-overrides.d.ts +++ b/analyze-wasm/wasm/interfaces/arcjet-js-req-email-validator-overrides.d.ts @@ -6,11 +6,11 @@ export namespace ArcjetJsReqEmailValidatorOverrides { } /** * # Variants - * + * * ## `"yes"` - * + * * ## `"no"` - * + * * ## `"unknown"` */ -export type ValidatorResponse = 'yes' | 'no' | 'unknown'; +export type ValidatorResponse = "yes" | "no" | "unknown"; diff --git a/analyze/wasm/interfaces/arcjet-js-req-logger.d.ts b/analyze-wasm/wasm/interfaces/arcjet-js-req-logger.d.ts similarity index 100% rename from analyze/wasm/interfaces/arcjet-js-req-logger.d.ts rename to analyze-wasm/wasm/interfaces/arcjet-js-req-logger.d.ts diff --git a/analyze-wasm/wasm/interfaces/arcjet-js-req-sensitive-information-identifier.d.ts b/analyze-wasm/wasm/interfaces/arcjet-js-req-sensitive-information-identifier.d.ts new file mode 100644 index 000000000..a0b862ff0 --- /dev/null +++ b/analyze-wasm/wasm/interfaces/arcjet-js-req-sensitive-information-identifier.d.ts @@ -0,0 +1,27 @@ +export namespace ArcjetJsReqSensitiveInformationIdentifier { + export function detect( + tokens: Array, + ): Array; +} +export type SensitiveInfoEntity = + | SensitiveInfoEntityEmail + | SensitiveInfoEntityPhoneNumber + | SensitiveInfoEntityIpAddress + | SensitiveInfoEntityCreditCardNumber + | SensitiveInfoEntityCustom; +export interface SensitiveInfoEntityEmail { + tag: "email"; +} +export interface SensitiveInfoEntityPhoneNumber { + tag: "phone-number"; +} +export interface SensitiveInfoEntityIpAddress { + tag: "ip-address"; +} +export interface SensitiveInfoEntityCreditCardNumber { + tag: "credit-card-number"; +} +export interface SensitiveInfoEntityCustom { + tag: "custom"; + val: string; +} diff --git a/analyze/workerd.ts b/analyze-wasm/workerd.ts similarity index 84% rename from analyze/workerd.ts rename to analyze-wasm/workerd.ts index 210d0580b..55bb31866 100644 --- a/analyze/workerd.ts +++ b/analyze-wasm/workerd.ts @@ -6,6 +6,11 @@ import type { BotConfig, DetectedSensitiveInfoEntity, SensitiveInfoEntity, + EmailValidationResult, + BotResult, + SensitiveInfoResult, + EmailValidationConfig, + SensitiveInfoEntities, } from "./wasm/arcjet_analyze_js_req.component.js"; import type { ArcjetJsReqSensitiveInformationIdentifier } from "./wasm/interfaces/arcjet-js-req-sensitive-information-identifier.js"; @@ -26,7 +31,8 @@ interface AnalyzeContext { characteristics: string[]; } -type CustomDetect = typeof ArcjetJsReqSensitiveInformationIdentifier.detect; +type DetectSensitiveInfoFunction = + typeof ArcjetJsReqSensitiveInformationIdentifier.detect; async function moduleFromPath(path: string): Promise { if (path === "arcjet_analyze_js_req.component.core.wasm") { @@ -48,7 +54,7 @@ function noOpDetect(): SensitiveInfoEntity[] { export async function initializeWasm( context: AnalyzeContext, - detect?: CustomDetect, + detect?: DetectSensitiveInfoFunction, ) { const { log } = context; @@ -96,7 +102,14 @@ export async function initializeWasm( } export { + type AnalyzeContext, type BotConfig, type DetectedSensitiveInfoEntity, type SensitiveInfoEntity, + type EmailValidationConfig, + type EmailValidationResult, + type BotResult, + type SensitiveInfoResult, + type SensitiveInfoEntities, + type DetectSensitiveInfoFunction, }; diff --git a/analyze/index.ts b/analyze/index.ts index 7ecdbcc09..a00d8fbd9 100644 --- a/analyze/index.ts +++ b/analyze/index.ts @@ -1,116 +1,120 @@ -import type { ArcjetLogger } from "@arcjet/protocol"; - -import { instantiate } from "./wasm/arcjet_analyze_js_req.component.js"; +import { initializeWasm } from "@arcjet/analyze-wasm"; import type { - ImportObject, + AnalyzeContext, BotConfig, + BotResult, DetectedSensitiveInfoEntity, + DetectSensitiveInfoFunction, + EmailValidationConfig, + EmailValidationResult, + SensitiveInfoEntities, SensitiveInfoEntity, -} from "./wasm/arcjet_analyze_js_req.component.js"; -import type { ArcjetJsReqSensitiveInformationIdentifier } from "./wasm/interfaces/arcjet-js-req-sensitive-information-identifier.js"; - -import { wasm as componentCoreWasm } from "./wasm/arcjet_analyze_js_req.component.core.wasm?js"; -import { wasm as componentCore2Wasm } from "./wasm/arcjet_analyze_js_req.component.core2.wasm?js"; -import { wasm as componentCore3Wasm } from "./wasm/arcjet_analyze_js_req.component.core3.wasm?js"; + SensitiveInfoResult, +} from "@arcjet/analyze-wasm"; -const FREE_EMAIL_PROVIDERS = [ - "gmail.com", - "yahoo.com", - "hotmail.com", - "aol.com", - "hotmail.co.uk", -]; - -interface AnalyzeContext { - log: ArcjetLogger; - characteristics: string[]; -} - -type CustomDetect = typeof ArcjetJsReqSensitiveInformationIdentifier.detect; +type AnalyzeRequest = { + ip?: string; + method?: string; + protocol?: string; + host?: string; + path?: string; + headers?: Record; + cookies?: string; + query?: string; + extra?: Record; +}; -// TODO: Do we actually need this wasmCache or does `import` cache correctly? -const wasmCache = new Map(); +export { + type EmailValidationConfig, + type BotConfig, + type SensitiveInfoEntity, + type DetectedSensitiveInfoEntity, +}; -async function moduleFromPath(path: string): Promise { - const cachedModule = wasmCache.get(path); - if (typeof cachedModule !== "undefined") { - return cachedModule; - } +/** + * Generate a fingerprint for the client. This is used to identify the client + * across multiple requests. + * @param context - The Arcjet Analyze context. + * @param request - The request to fingerprint. + * @returns A SHA-256 string fingerprint. + */ +export async function generateFingerprint( + context: AnalyzeContext, + request: AnalyzeRequest, +): Promise { + const analyze = await initializeWasm(context); - if (path === "arcjet_analyze_js_req.component.core.wasm") { - const mod = await componentCoreWasm(); - wasmCache.set(path, mod); - return mod; - } - if (path === "arcjet_analyze_js_req.component.core2.wasm") { - const mod = await componentCore2Wasm(); - wasmCache.set(path, mod); - return mod; - } - if (path === "arcjet_analyze_js_req.component.core3.wasm") { - const mod = await componentCore3Wasm(); - wasmCache.set(path, mod); - return mod; + if (typeof analyze !== "undefined") { + return analyze.generateFingerprint( + JSON.stringify(request), + context.characteristics, + ); } - throw new Error(`Unknown path: ${path}`); + return ""; } -function noOpDetect(): SensitiveInfoEntity[] { - return []; +export async function isValidEmail( + context: AnalyzeContext, + candidate: string, + options?: EmailValidationConfig, +): Promise { + const analyze = await initializeWasm(context); + const optionsOrDefault = { + requireTopLevelDomain: true, + allowDomainLiteral: false, + blockedEmails: [], + ...options, + }; + + if (typeof analyze !== "undefined") { + return analyze.isValidEmail(candidate, optionsOrDefault); + } else { + // Skip the local evaluation of the rule if WASM is not available + return { + validity: "valid", + blocked: [], + }; + } } -export async function initializeWasm( +export async function detectBot( context: AnalyzeContext, - detect?: CustomDetect, -) { - const { log } = context; + request: AnalyzeRequest, + options: BotConfig, +): Promise { + const analyze = await initializeWasm(context); - if (typeof detect !== "function") { - detect = noOpDetect; + if (typeof analyze !== "undefined") { + return analyze.detectBot(JSON.stringify(request), options); + } else { + // Skip the local evaluation of the rule if Wasm is not available + return { + allowed: [], + denied: [], + }; } +} - const coreImports: ImportObject = { - "arcjet:js-req/logger": { - debug(msg) { - log.debug(msg); - }, - error(msg) { - log.error(msg); - }, - }, - "arcjet:js-req/email-validator-overrides": { - isFreeEmail(domain) { - if (FREE_EMAIL_PROVIDERS.includes(domain)) { - return "yes"; - } - return "unknown"; - }, - isDisposableEmail() { - return "unknown"; - }, - hasMxRecords() { - return "unknown"; - }, - hasGravatar() { - return "unknown"; - }, - }, - "arcjet:js-req/sensitive-information-identifier": { - detect, - }, - }; +export async function detectSensitiveInfo( + context: AnalyzeContext, + candidate: string, + entities: SensitiveInfoEntities, + contextWindowSize: number, + detect?: DetectSensitiveInfoFunction, +): Promise { + const analyze = await initializeWasm(context, detect); - try { - // Await the instantiation to catch the failure - return instantiate(moduleFromPath, coreImports); - } catch { - log.debug("WebAssembly is not supported in this runtime"); + if (typeof analyze !== "undefined") { + const skipCustomDetect = typeof detect !== "function"; + return analyze.detectSensitiveInfo(candidate, { + entities, + contextWindowSize, + skipCustomDetect, + }); + } else { + throw new Error( + "SENSITIVE_INFO rule failed to run because Wasm is not supported in this environment.", + ); } } - -export { - type BotConfig, - type DetectedSensitiveInfoEntity, - type SensitiveInfoEntity, -}; diff --git a/analyze/package.json b/analyze/package.json index 665bd57c8..a81e6e66d 100644 --- a/analyze/package.json +++ b/analyze/package.json @@ -1,13 +1,13 @@ { "name": "@arcjet/analyze", "version": "1.0.0-alpha.27", - "description": "Arcjet local analysis engine", + "description": "Arcjet local analysis engine wasm bindings", "license": "Apache-2.0", "homepage": "https://arcjet.com", "repository": { "type": "git", "url": "git+https://github.com/arcjet/arcjet-js.git", - "directory": "analyze" + "directory": "analyze-wasm" }, "bugs": { "url": "https://github.com/arcjet/arcjet-js/issues", @@ -24,11 +24,6 @@ "type": "module", "main": "./index.js", "types": "./index.d.ts", - "exports": { - "edge-light": "./edge-light.js", - "workerd": "./workerd.js", - "default": "./index.js" - }, "files": [ "LICENSE", "README.md", @@ -41,13 +36,13 @@ ], "scripts": { "prepublishOnly": "npm run build", - "jco": "jco transpile wasm/arcjet_analyze_js_req.component.wasm --no-wasi-shim --instantiation async -o wasm", - "build": "npm run jco; rollup --config rollup.config.js", + "build": "rollup --config rollup.config.js", "lint": "eslint .", "pretest": "npm run build", - "test": "NODE_OPTIONS=--experimental-vm-modules jest --passWithNoTests" + "test": "NODE_OPTIONS=--experimental-vm-modules jest" }, "dependencies": { + "@arcjet/analyze-wasm": "1.0.0-alpha.27", "@arcjet/protocol": "1.0.0-alpha.27" }, "devDependencies": { diff --git a/analyze/rollup.config.js b/analyze/rollup.config.js index 38b5c27fc..79177f236 100644 --- a/analyze/rollup.config.js +++ b/analyze/rollup.config.js @@ -1,85 +1,3 @@ import { createConfig } from "@arcjet/rollup-config"; -import fs from "node:fs/promises"; -function generateJs(wasm) { - const disclaimer = ` -/** - * This file contains an Arcjet Wasm binary inlined as a base64 - * [Data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) - * with the application/wasm MIME type. - * - * This was chosen to save on storage space over inlining the file directly as - * a Uint8Array, which would take up ~3x the space of the Wasm file. See - * https://blobfolio.com/2019/better-binary-batter-mixing-base64-and-uint8array/ - * for more details. - * - * It is then decoded into an ArrayBuffer to be used directly via WebAssembly's - * \`compile()\` function in our entry point file. - * - * This is all done to avoid trying to read or bundle the Wasm asset in various - * ways based on the platform or bundler a user is targeting. One example being - * that Next.js requires special \`asyncWebAssembly\` webpack config to load our - * Wasm file if we don't do this. - * - * In the future, we hope to do away with this workaround when all bundlers - * properly support consistent asset bundling techniques. - */ -`; - - return `// @generated by wasm2module - DO NOT EDIT -/* eslint-disable */ -// @ts-nocheck -${disclaimer} -const wasmBase64 = "data:application/wasm;base64,${wasm.toString("base64")}"; -/** - * Returns a WebAssembly.Module for an Arcjet Wasm binary, decoded from a base64 - * Data URL. - */ -// TODO: Switch back to top-level await when our platforms all support it -export async function wasm() { - // This uses fetch to decode the wasm data url, but disabling cache so files - // larger than 2mb don't fail to parse in the Next.js App Router - const wasmDecode = await fetch(wasmBase64, { cache: "no-store" }); - const buf = await wasmDecode.arrayBuffer(); - // And then we return it as a WebAssembly.Module - return WebAssembly.compile(buf); -} -`; -} - -function wasmToModule() { - const idToWasmPath = new Map(); - - return { - name: "base64-wasm", - resolveId(source) { - if (source.endsWith(".wasm?js")) { - // Slice off the `?js` to make it a valid path - const filepath = source.slice(0, -3); - // Create a "virtual module", prefixed with `\0` as per the Rollup docs, - // for our replacement import - const id = `\0${filepath.replace(/\.wasm$/, ".js")}`; - // Store the actual Wasm path against the virtual module ID. - idToWasmPath.set(id, filepath); - return id; - } - - return null; - }, - async load(id) { - const wasmPath = idToWasmPath.get(id); - // If we resolved this `id` during the `resolveId` phase, generate the - // JavaScript file with the base64 Wasm and loading helper - if (wasmPath) { - const wasm = await fs.readFile(wasmPath); - return generateJs(wasm); - } - - return null; - }, - }; -} - -export default createConfig(import.meta.url, { - plugins: [wasmToModule()], -}); +export default createConfig(import.meta.url); diff --git a/analyze/tsconfig.json b/analyze/tsconfig.json index b3da2e770..7150d9377 100644 --- a/analyze/tsconfig.json +++ b/analyze/tsconfig.json @@ -1,4 +1,4 @@ { "extends": "@arcjet/tsconfig/base", - "include": ["index.ts", "edge-light.ts", "workerd.ts", "wasm.d.ts"] + "include": ["index.ts"] } diff --git a/analyze/wasm/arcjet_analyze_js_req.component.d.ts b/analyze/wasm/arcjet_analyze_js_req.component.d.ts deleted file mode 100644 index 69d7f0304..000000000 --- a/analyze/wasm/arcjet_analyze_js_req.component.d.ts +++ /dev/null @@ -1,109 +0,0 @@ -import type { SensitiveInfoEntity } from './interfaces/arcjet-js-req-sensitive-information-identifier.js'; -export { SensitiveInfoEntity }; -/** -* # Variants -* -* ## `"valid"` -* -* ## `"invalid"` -*/ -export type EmailValidity = 'valid' | 'invalid'; -export interface EmailValidationResult { - validity: EmailValidity, - blocked: Array, -} -export interface EmailValidationConfig { - requireTopLevelDomain: boolean, - allowDomainLiteral: boolean, - blockedEmails: Array, -} -export type SensitiveInfoEntities = SensitiveInfoEntitiesAllow | SensitiveInfoEntitiesDeny; -export interface SensitiveInfoEntitiesAllow { - tag: 'allow', - val: Array, -} -export interface SensitiveInfoEntitiesDeny { - tag: 'deny', - val: Array, -} -export interface SensitiveInfoConfig { - entities: SensitiveInfoEntities, - contextWindowSize?: number, - skipCustomDetect: boolean, -} -export interface DetectedSensitiveInfoEntity { - start: number, - end: number, - identifiedType: SensitiveInfoEntity, -} -export interface SensitiveInfoResult { - allowed: Array, - denied: Array, -} -export type BotEntity = string; -export interface AllowedBotConfig { - entities: Array, - skipCustomDetect: boolean, -} -export interface DeniedBotConfig { - entities: Array, - skipCustomDetect: boolean, -} -export type BotConfig = BotConfigAllowedBotConfig | BotConfigDeniedBotConfig; -export interface BotConfigAllowedBotConfig { - tag: 'allowed-bot-config', - val: AllowedBotConfig, -} -export interface BotConfigDeniedBotConfig { - tag: 'denied-bot-config', - val: DeniedBotConfig, -} -export interface BotResult { - allowed: Array, - denied: Array, -} -import { ArcjetJsReqEmailValidatorOverrides } from './interfaces/arcjet-js-req-email-validator-overrides.js'; -import { ArcjetJsReqLogger } from './interfaces/arcjet-js-req-logger.js'; -import { ArcjetJsReqSensitiveInformationIdentifier } from './interfaces/arcjet-js-req-sensitive-information-identifier.js'; -export interface ImportObject { - 'arcjet:js-req/email-validator-overrides': typeof ArcjetJsReqEmailValidatorOverrides, - 'arcjet:js-req/logger': typeof ArcjetJsReqLogger, - 'arcjet:js-req/sensitive-information-identifier': typeof ArcjetJsReqSensitiveInformationIdentifier, -} -export interface Root { - detectBot(request: string, options: BotConfig): BotResult, - generateFingerprint(request: string, characteristics: Array): string, - isValidEmail(candidate: string, options: EmailValidationConfig): EmailValidationResult, - detectSensitiveInfo(content: string, options: SensitiveInfoConfig): SensitiveInfoResult, -} - -/** -* Instantiates this component with the provided imports and -* returns a map of all the exports of the component. -* -* This function is intended to be similar to the -* `WebAssembly.instantiate` function. The second `imports` -* argument is the "import object" for wasm, except here it -* uses component-model-layer types instead of core wasm -* integers/numbers/etc. -* -* The first argument to this function, `getCoreModule`, is -* used to compile core wasm modules within the component. -* Components are composed of core wasm modules and this callback -* will be invoked per core wasm module. The caller of this -* function is responsible for reading the core wasm module -* identified by `path` and returning its compiled -* `WebAssembly.Module` object. This would use `compileStreaming` -* on the web, for example. -*/ -export function instantiate( -getCoreModule: (path: string) => WebAssembly.Module, -imports: ImportObject, -instantiateCore?: (module: WebAssembly.Module, imports: Record) => WebAssembly.Instance -): Root; -export function instantiate( -getCoreModule: (path: string) => WebAssembly.Module | Promise, -imports: ImportObject, -instantiateCore?: (module: WebAssembly.Module, imports: Record) => WebAssembly.Instance | Promise -): Root | Promise; - diff --git a/analyze/wasm/interfaces/arcjet-js-req-sensitive-information-identifier.d.ts b/analyze/wasm/interfaces/arcjet-js-req-sensitive-information-identifier.d.ts deleted file mode 100644 index 17ca756ca..000000000 --- a/analyze/wasm/interfaces/arcjet-js-req-sensitive-information-identifier.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -export namespace ArcjetJsReqSensitiveInformationIdentifier { - export function detect(tokens: Array): Array; -} -export type SensitiveInfoEntity = SensitiveInfoEntityEmail | SensitiveInfoEntityPhoneNumber | SensitiveInfoEntityIpAddress | SensitiveInfoEntityCreditCardNumber | SensitiveInfoEntityCustom; -export interface SensitiveInfoEntityEmail { - tag: 'email', -} -export interface SensitiveInfoEntityPhoneNumber { - tag: 'phone-number', -} -export interface SensitiveInfoEntityIpAddress { - tag: 'ip-address', -} -export interface SensitiveInfoEntityCreditCardNumber { - tag: 'credit-card-number', -} -export interface SensitiveInfoEntityCustom { - tag: 'custom', - val: string, -} diff --git a/arcjet/index.ts b/arcjet/index.ts index b1df67e1a..5b8e3556b 100644 --- a/arcjet/index.ts +++ b/arcjet/index.ts @@ -864,23 +864,14 @@ export function sensitiveInfo< val: entitiesVal, }; - const analyzeInstance = await analyze.initializeWasm( + const result = await analyze.detectSensitiveInfo( context, + body, + entities, + options.contextWindowSize || 1, convertedDetect, ); - if (typeof analyzeInstance === "undefined") { - throw new Error( - "SENSITIVE_INFO rule failed to run because Wasm is not supported in this environment.", - ); - } - - const result = analyzeInstance.detectSensitiveInfo(body, { - entities, - contextWindowSize: options.contextWindowSize || 1, - skipCustomDetect: typeof convertedDetect !== "function", - }); - const reason = new ArcjetSensitiveInfoReason({ denied: convertAnalyzeDetectedSensitiveInfoEntity(result.denied), allowed: convertAnalyzeDetectedSensitiveInfoEntity(result.allowed), @@ -945,25 +936,7 @@ export function validateEmail( context: ArcjetContext, { email }: ArcjetRequestDetails & { email: string }, ): Promise { - const analyzeInstance = await analyze.initializeWasm(context); - - let result; - if (typeof analyzeInstance !== "undefined") { - const optionsOrDefault = { - requireTopLevelDomain: true, - allowDomainLiteral: false, - blockedEmails: [], - ...options, - }; - - result = analyzeInstance.isValidEmail(email, optionsOrDefault); - } else { - result = { - validity: "valid", - blocked: [] as const, - }; - } - + const result = await analyze.isValidEmail(context, email, emailOpts); if (result.validity === "valid") { return new ArcjetRuleResult({ ttl: 0, @@ -1068,20 +1041,11 @@ export function detectBot(options: BotOptions): Primitive<{}> { context: ArcjetContext, request: ArcjetRequestDetails, ): Promise { - const analyzeInstance = await analyze.initializeWasm(context); - - let result; - if (typeof analyzeInstance !== "undefined") { - result = analyzeInstance.detectBot( - JSON.stringify(toAnalyzeRequest(request)), - config, - ); - } else { - result = { - allowed: [], - denied: [], - }; - } + const result = await analyze.detectBot( + context, + toAnalyzeRequest(request), + config, + ); // If this is a bot and of a type that we want to block, then block! if (result.denied.length > 0) { @@ -1271,10 +1235,6 @@ export default function arcjet< email: typeof request.email === "string" ? request.email : undefined, }); - log.time?.("local"); - - log.time?.("fingerprint"); - const characteristics = options.characteristics ? [...options.characteristics] : []; @@ -1286,16 +1246,11 @@ export default function arcjet< ...ctx, }; - const analyzeInstance = await analyze.initializeWasm(baseContext); - const stringRequest = JSON.stringify(toAnalyzeRequest(details)); - let fingerprint = ""; - if (typeof analyzeInstance !== "undefined") { - fingerprint = analyzeInstance.generateFingerprint( - stringRequest, - baseContext.characteristics, - ); - } - + log.time?.("fingerprint"); + const fingerprint = await analyze.generateFingerprint( + baseContext, + toAnalyzeRequest(details), + ); log.debug("fingerprint (%s): %s", rt, fingerprint); log.timeEnd?.("fingerprint"); @@ -1356,149 +1311,147 @@ export default function arcjet< } } - // We have our own local cache which we check first. This doesn't work in - // serverless environments where every request is isolated, but there may be - // some instances where the instance is not recycled immediately. If so, we - // can take advantage of that. - log.time?.("cache"); - const existingBlockReason = blockCache.get(fingerprint); - log.timeEnd?.("cache"); - - // If already blocked then we can async log to the API and return the - // decision immediately. - if (existingBlockReason) { - log.timeEnd?.("local"); - log.debug( - { - fingerprint, - existingBlockReason, - }, - "decide: alreadyBlocked", - ); - const decision = new ArcjetDenyDecision({ - ttl: blockCache.ttl(fingerprint), - reason: existingBlockReason, - // All results will be NOT_RUN because we used a cached decision - results, - }); - - client.report(context, details, decision, rules); - - log.debug( - { - id: decision.id, - conclusion: decision.conclusion, - fingerprint, + try { + log.time?.("local"); + + // We have our own local cache which we check first. This doesn't work in + // serverless environments where every request is isolated, but there may be + // some instances where the instance is not recycled immediately. If so, we + // can take advantage of that. + log.time?.("cache"); + const existingBlockReason = blockCache.get(fingerprint); + log.timeEnd?.("cache"); + + // If already blocked then we can async log to the API and return the + // decision immediately. + if (existingBlockReason) { + const decision = new ArcjetDenyDecision({ + ttl: blockCache.ttl(fingerprint), reason: existingBlockReason, - runtime: rt, - }, - "decide: already blocked", - ); - - return decision; - } - - for (const [idx, rule] of rules.entries()) { - // This re-assignment is a workaround to a TypeScript error with - // assertions where the name was introduced via a destructure - let localRule: ArcjetLocalRule; - if (isLocalRule(rule)) { - localRule = rule; - } else { - continue; - } - - log.time?.(rule.type); + // All results will be NOT_RUN because we used a cached decision + results, + }); - try { - localRule.validate(context, details); - results[idx] = await localRule.protect(context, details); + client.report(context, details, decision, rules); log.debug( { - id: results[idx].ruleId, - rule: rule.type, + id: decision.id, + conclusion: decision.conclusion, fingerprint, - path: details.path, + reason: existingBlockReason, runtime: rt, - ttl: results[idx].ttl, - conclusion: results[idx].conclusion, - reason: results[idx].reason, }, - "Local rule result:", - ); - } catch (err) { - log.error( - "Failure running rule: %s due to %s", - rule.type, - errorMessage(err), + "decide: already blocked", ); - results[idx] = new ArcjetRuleResult({ - ttl: 0, - state: "RUN", - conclusion: "ERROR", - reason: new ArcjetErrorReason(err), - }); + return decision; } - log.timeEnd?.(rule.type); + for (const [idx, rule] of rules.entries()) { + // This re-assignment is a workaround to a TypeScript error with + // assertions where the name was introduced via a destructure + let localRule: ArcjetLocalRule; + if (isLocalRule(rule)) { + localRule = rule; + } else { + continue; + } - if (results[idx].isDenied()) { - log.timeEnd?.("local"); + try { + log.time?.(rule.type); - const decision = new ArcjetDenyDecision({ - ttl: results[idx].ttl, - reason: results[idx].reason, - results, - }); + localRule.validate(context, details); + results[idx] = await localRule.protect(context, details); - // Only a DENY decision is reported to avoid creating 2 entries for a - // request. Upon ALLOW, the `decide` call will create an entry for the - // request. - client.report(context, details, decision, rules); + log.debug( + { + id: results[idx].ruleId, + rule: rule.type, + fingerprint, + path: details.path, + runtime: rt, + ttl: results[idx].ttl, + conclusion: results[idx].conclusion, + reason: results[idx].reason, + }, + "Local rule result:", + ); + } catch (err) { + log.error( + "Failure running rule: %s due to %s", + rule.type, + errorMessage(err), + ); + + results[idx] = new ArcjetRuleResult({ + ttl: 0, + state: "RUN", + conclusion: "ERROR", + reason: new ArcjetErrorReason(err), + }); + } finally { + log.timeEnd?.(rule.type); + } + + if (results[idx].isDenied()) { + const decision = new ArcjetDenyDecision({ + ttl: results[idx].ttl, + reason: results[idx].reason, + results, + }); - // If we're not in DRY_RUN mode, we want to cache non-zero TTL results - // and return this DENY decision. - if (rule.mode !== "DRY_RUN") { - if (results[idx].ttl > 0) { - log.debug( - { + // Only a DENY decision is reported to avoid creating 2 entries for a + // request. Upon ALLOW, the `decide` call will create an entry for the + // request. + client.report(context, details, decision, rules); + + // If we're not in DRY_RUN mode, we want to cache non-zero TTL results + // and return this DENY decision. + if (rule.mode !== "DRY_RUN") { + if (results[idx].ttl > 0) { + log.debug( + { + fingerprint, + conclusion: decision.conclusion, + reason: decision.reason, + }, + "Caching decision for %d seconds", + decision.ttl, + ); + + blockCache.set( fingerprint, - conclusion: decision.conclusion, - reason: decision.reason, - }, - "Caching decision for %d seconds", - decision.ttl, - ); - - blockCache.set( - fingerprint, - decision.reason, - nowInSeconds() + decision.ttl, - ); + decision.reason, + nowInSeconds() + decision.ttl, + ); + } + + return decision; } - return decision; + log.warn( + `Dry run mode is enabled for "%s" rule. Overriding decision. Decision was: %s`, + rule.type, + decision.conclusion, + ); } - - log.warn( - `Dry run mode is enabled for "%s" rule. Overriding decision. Decision was: %s`, - rule.type, - decision.conclusion, - ); } + } finally { + log.timeEnd?.("local"); } - log.timeEnd?.("local"); - log.time?.("remote"); - // With no cached values, we take a decision remotely. We use a timeout to // fail open. try { + log.time?.("remote"); + log.time?.("decideApi"); - const decision = await client.decide(context, details, rules); - log.timeEnd?.("decideApi"); + const decision = await client + .decide(context, details, rules) + .finally(() => { + log.timeEnd?.("decideApi"); + }); // If the decision is to block and we have a non-zero TTL, we cache the // block locally diff --git a/arcjet/package.json b/arcjet/package.json index 481016d10..95880e267 100644 --- a/arcjet/package.json +++ b/arcjet/package.json @@ -52,7 +52,7 @@ "@arcjet/tsconfig": "1.0.0-alpha.27", "@edge-runtime/jest-environment": "3.0.3", "@jest/globals": "29.7.0", - "@rollup/wasm-node": "4.23.0", + "@rollup/wasm-node": "4.24.0", "@types/node": "18.18.0", "jest": "29.7.0", "typescript": "5.6.2" diff --git a/package-lock.json b/package-lock.json index f40e8a06b..c12930555 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,6 +21,29 @@ "name": "@arcjet/analyze", "version": "1.0.0-alpha.27", "license": "Apache-2.0", + "dependencies": { + "@arcjet/analyze-wasm": "1.0.0-alpha.27", + "@arcjet/protocol": "1.0.0-alpha.27" + }, + "devDependencies": { + "@arcjet/eslint-config": "1.0.0-alpha.27", + "@arcjet/rollup-config": "1.0.0-alpha.27", + "@arcjet/tsconfig": "1.0.0-alpha.27", + "@bytecodealliance/jco": "1.5.0", + "@jest/globals": "29.7.0", + "@rollup/wasm-node": "4.23.0", + "@types/node": "18.18.0", + "jest": "29.7.0", + "typescript": "5.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "analyze-wasm": { + "name": "@arcjet/analyze-wasm", + "version": "1.0.0-alpha.27", + "license": "Apache-2.0", "dependencies": { "@arcjet/protocol": "1.0.0-alpha.27" }, @@ -55,7 +78,7 @@ "@arcjet/tsconfig": "1.0.0-alpha.27", "@edge-runtime/jest-environment": "3.0.3", "@jest/globals": "29.7.0", - "@rollup/wasm-node": "4.23.0", + "@rollup/wasm-node": "4.24.0", "@types/node": "18.18.0", "jest": "29.7.0", "typescript": "5.6.2" @@ -240,6 +263,26 @@ "node": ">=18" } }, + "arcjet/node_modules/@rollup/wasm-node": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.24.0.tgz", + "integrity": "sha512-LL6oALR6fKG6GihtH0K0uWLAl19Q/QJst+oKJT1VWwFo4sPLA0/7JeZaSqrpFWq8OPloiKx/NDG4BWppFSX2vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "body": { "name": "@arcjet/body", "version": "1.0.0-alpha.27", @@ -417,6 +460,10 @@ "resolved": "analyze", "link": true }, + "node_modules/@arcjet/analyze-wasm": { + "resolved": "analyze-wasm", + "link": true + }, "node_modules/@arcjet/body": { "resolved": "body", "link": true From 626123621c0e0a1ab57a7b27961c753cc1d36466 Mon Sep 17 00:00:00 2001 From: e-moran Date: Tue, 15 Oct 2024 15:15:16 +0100 Subject: [PATCH 04/16] npm i --- .github/.release-please-manifest.json | 1 + .github/release-please-config.json | 5 +++++ package-lock.json | 24 ++++++++++++++++++++++-- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/.github/.release-please-manifest.json b/.github/.release-please-manifest.json index e4326c84b..ea5755afc 100644 --- a/.github/.release-please-manifest.json +++ b/.github/.release-please-manifest.json @@ -1,6 +1,7 @@ { ".": "1.0.0-alpha.27", "analyze": "1.0.0-alpha.27", + "analyze-wasm": "1.0.0-alpha.27", "arcjet": "1.0.0-alpha.27", "arcjet-bun": "1.0.0-alpha.27", "arcjet-deno": "1.0.0-alpha.27", diff --git a/.github/release-please-config.json b/.github/release-please-config.json index 540f9e1f3..5d83c0d46 100644 --- a/.github/release-please-config.json +++ b/.github/release-please-config.json @@ -32,6 +32,10 @@ "component": "@arcjet/analyze", "skip-github-release": true }, + "analyze-wasm": { + "component": "@arcjet/analyze", + "skip-github-release": true + }, "arcjet": { "component": "arcjet", "skip-github-release": true @@ -140,6 +144,7 @@ "components": [ "root", "@arcjet/analyze", + "@arcjet/analyze-wasm", "arcjet", "@arcjet/bun", "@arcjet/deno", diff --git a/package-lock.json b/package-lock.json index b58f83f75..3e71709fa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,7 +31,7 @@ "@arcjet/tsconfig": "1.0.0-alpha.27", "@bytecodealliance/jco": "1.5.0", "@jest/globals": "29.7.0", - "@rollup/wasm-node": "4.23.0", + "@rollup/wasm-node": "4.24.0", "@types/node": "18.18.0", "jest": "29.7.0", "typescript": "5.6.2" @@ -53,7 +53,7 @@ "@arcjet/tsconfig": "1.0.0-alpha.27", "@bytecodealliance/jco": "1.5.0", "@jest/globals": "29.7.0", - "@rollup/wasm-node": "4.24.0", + "@rollup/wasm-node": "4.23.0", "@types/node": "18.18.0", "jest": "29.7.0", "typescript": "5.6.2" @@ -62,6 +62,26 @@ "node": ">=18" } }, + "analyze-wasm/node_modules/@rollup/wasm-node": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.23.0.tgz", + "integrity": "sha512-jEeXqGlX+FpWml3/A15rv1mgNqhY5dyvtX8U5w2ff0p5PkxIjU1Y/GABHEjkoE7EF29ayGBtKR6kUZ+JELtjyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "arcjet": { "version": "1.0.0-alpha.27", "license": "Apache-2.0", From feb5a813c73541f30ae3239c0d12ae03e76a0d79 Mon Sep 17 00:00:00 2001 From: e-moran Date: Tue, 15 Oct 2024 15:19:10 +0100 Subject: [PATCH 05/16] passWithNoTests --- analyze/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/analyze/package.json b/analyze/package.json index ace07d0b7..52c8880a7 100644 --- a/analyze/package.json +++ b/analyze/package.json @@ -39,7 +39,7 @@ "build": "rollup --config rollup.config.js", "lint": "eslint .", "pretest": "npm run build", - "test": "NODE_OPTIONS=--experimental-vm-modules jest" + "test": "NODE_OPTIONS=--experimental-vm-modules jest --passWithNoTests" }, "dependencies": { "@arcjet/analyze-wasm": "1.0.0-alpha.27", From 98a3ba1e8ebbf1d4b1327a9a3cace0300212c648 Mon Sep 17 00:00:00 2001 From: e-moran Date: Tue, 15 Oct 2024 15:20:12 +0100 Subject: [PATCH 06/16] npm i --- analyze-wasm/newFile.js | 0 analyze-wasm/newFile.ts | 0 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 analyze-wasm/newFile.js delete mode 100644 analyze-wasm/newFile.ts diff --git a/analyze-wasm/newFile.js b/analyze-wasm/newFile.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/analyze-wasm/newFile.ts b/analyze-wasm/newFile.ts deleted file mode 100644 index e69de29bb..000000000 From e2635ec78417df324d1d92a7ad319819592677a5 Mon Sep 17 00:00:00 2001 From: e-moran Date: Tue, 15 Oct 2024 15:20:56 +0100 Subject: [PATCH 07/16] update trunk cfg --- .trunk/trunk.yaml | 2 +- .../wasm/arcjet_analyze_js_req.component.d.ts | 157 +++--- .../wasm/arcjet_analyze_js_req.component.js | 477 +++++++----------- ...cjet-js-req-email-validator-overrides.d.ts | 8 +- ...-req-sensitive-information-identifier.d.ts | 23 +- 5 files changed, 271 insertions(+), 396 deletions(-) diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml index 4413e91a8..d9512e4fc 100644 --- a/.trunk/trunk.yaml +++ b/.trunk/trunk.yaml @@ -38,7 +38,7 @@ lint: ignore: - linters: [ALL] paths: - - analyze/wasm/** + - analyze-wasm/wasm/** - redact-wasm/wasm/** - protocol/proto/** - "**/LICENSE" diff --git a/analyze-wasm/wasm/arcjet_analyze_js_req.component.d.ts b/analyze-wasm/wasm/arcjet_analyze_js_req.component.d.ts index 2acfef863..69d7f0304 100644 --- a/analyze-wasm/wasm/arcjet_analyze_js_req.component.d.ts +++ b/analyze-wasm/wasm/arcjet_analyze_js_req.component.d.ts @@ -1,124 +1,109 @@ -import type { SensitiveInfoEntity } from "./interfaces/arcjet-js-req-sensitive-information-identifier.js"; +import type { SensitiveInfoEntity } from './interfaces/arcjet-js-req-sensitive-information-identifier.js'; export { SensitiveInfoEntity }; /** - * # Variants - * - * ## `"valid"` - * - * ## `"invalid"` - */ -export type EmailValidity = "valid" | "invalid"; +* # Variants +* +* ## `"valid"` +* +* ## `"invalid"` +*/ +export type EmailValidity = 'valid' | 'invalid'; export interface EmailValidationResult { - validity: EmailValidity; - blocked: Array; + validity: EmailValidity, + blocked: Array, } export interface EmailValidationConfig { - requireTopLevelDomain: boolean; - allowDomainLiteral: boolean; - blockedEmails: Array; + requireTopLevelDomain: boolean, + allowDomainLiteral: boolean, + blockedEmails: Array, } -export type SensitiveInfoEntities = - | SensitiveInfoEntitiesAllow - | SensitiveInfoEntitiesDeny; +export type SensitiveInfoEntities = SensitiveInfoEntitiesAllow | SensitiveInfoEntitiesDeny; export interface SensitiveInfoEntitiesAllow { - tag: "allow"; - val: Array; + tag: 'allow', + val: Array, } export interface SensitiveInfoEntitiesDeny { - tag: "deny"; - val: Array; + tag: 'deny', + val: Array, } export interface SensitiveInfoConfig { - entities: SensitiveInfoEntities; - contextWindowSize?: number; - skipCustomDetect: boolean; + entities: SensitiveInfoEntities, + contextWindowSize?: number, + skipCustomDetect: boolean, } export interface DetectedSensitiveInfoEntity { - start: number; - end: number; - identifiedType: SensitiveInfoEntity; + start: number, + end: number, + identifiedType: SensitiveInfoEntity, } export interface SensitiveInfoResult { - allowed: Array; - denied: Array; + allowed: Array, + denied: Array, } export type BotEntity = string; export interface AllowedBotConfig { - entities: Array; - skipCustomDetect: boolean; + entities: Array, + skipCustomDetect: boolean, } export interface DeniedBotConfig { - entities: Array; - skipCustomDetect: boolean; + entities: Array, + skipCustomDetect: boolean, } export type BotConfig = BotConfigAllowedBotConfig | BotConfigDeniedBotConfig; export interface BotConfigAllowedBotConfig { - tag: "allowed-bot-config"; - val: AllowedBotConfig; + tag: 'allowed-bot-config', + val: AllowedBotConfig, } export interface BotConfigDeniedBotConfig { - tag: "denied-bot-config"; - val: DeniedBotConfig; + tag: 'denied-bot-config', + val: DeniedBotConfig, } export interface BotResult { - allowed: Array; - denied: Array; + allowed: Array, + denied: Array, } -import { ArcjetJsReqEmailValidatorOverrides } from "./interfaces/arcjet-js-req-email-validator-overrides.js"; -import { ArcjetJsReqLogger } from "./interfaces/arcjet-js-req-logger.js"; -import { ArcjetJsReqSensitiveInformationIdentifier } from "./interfaces/arcjet-js-req-sensitive-information-identifier.js"; +import { ArcjetJsReqEmailValidatorOverrides } from './interfaces/arcjet-js-req-email-validator-overrides.js'; +import { ArcjetJsReqLogger } from './interfaces/arcjet-js-req-logger.js'; +import { ArcjetJsReqSensitiveInformationIdentifier } from './interfaces/arcjet-js-req-sensitive-information-identifier.js'; export interface ImportObject { - "arcjet:js-req/email-validator-overrides": typeof ArcjetJsReqEmailValidatorOverrides; - "arcjet:js-req/logger": typeof ArcjetJsReqLogger; - "arcjet:js-req/sensitive-information-identifier": typeof ArcjetJsReqSensitiveInformationIdentifier; + 'arcjet:js-req/email-validator-overrides': typeof ArcjetJsReqEmailValidatorOverrides, + 'arcjet:js-req/logger': typeof ArcjetJsReqLogger, + 'arcjet:js-req/sensitive-information-identifier': typeof ArcjetJsReqSensitiveInformationIdentifier, } export interface Root { - detectBot(request: string, options: BotConfig): BotResult; - generateFingerprint(request: string, characteristics: Array): string; - isValidEmail( - candidate: string, - options: EmailValidationConfig, - ): EmailValidationResult; - detectSensitiveInfo( - content: string, - options: SensitiveInfoConfig, - ): SensitiveInfoResult; + detectBot(request: string, options: BotConfig): BotResult, + generateFingerprint(request: string, characteristics: Array): string, + isValidEmail(candidate: string, options: EmailValidationConfig): EmailValidationResult, + detectSensitiveInfo(content: string, options: SensitiveInfoConfig): SensitiveInfoResult, } /** - * Instantiates this component with the provided imports and - * returns a map of all the exports of the component. - * - * This function is intended to be similar to the - * `WebAssembly.instantiate` function. The second `imports` - * argument is the "import object" for wasm, except here it - * uses component-model-layer types instead of core wasm - * integers/numbers/etc. - * - * The first argument to this function, `getCoreModule`, is - * used to compile core wasm modules within the component. - * Components are composed of core wasm modules and this callback - * will be invoked per core wasm module. The caller of this - * function is responsible for reading the core wasm module - * identified by `path` and returning its compiled - * `WebAssembly.Module` object. This would use `compileStreaming` - * on the web, for example. - */ +* Instantiates this component with the provided imports and +* returns a map of all the exports of the component. +* +* This function is intended to be similar to the +* `WebAssembly.instantiate` function. The second `imports` +* argument is the "import object" for wasm, except here it +* uses component-model-layer types instead of core wasm +* integers/numbers/etc. +* +* The first argument to this function, `getCoreModule`, is +* used to compile core wasm modules within the component. +* Components are composed of core wasm modules and this callback +* will be invoked per core wasm module. The caller of this +* function is responsible for reading the core wasm module +* identified by `path` and returning its compiled +* `WebAssembly.Module` object. This would use `compileStreaming` +* on the web, for example. +*/ export function instantiate( - getCoreModule: (path: string) => WebAssembly.Module, - imports: ImportObject, - instantiateCore?: ( - module: WebAssembly.Module, - imports: Record, - ) => WebAssembly.Instance, +getCoreModule: (path: string) => WebAssembly.Module, +imports: ImportObject, +instantiateCore?: (module: WebAssembly.Module, imports: Record) => WebAssembly.Instance ): Root; export function instantiate( - getCoreModule: ( - path: string, - ) => WebAssembly.Module | Promise, - imports: ImportObject, - instantiateCore?: ( - module: WebAssembly.Module, - imports: Record, - ) => WebAssembly.Instance | Promise, +getCoreModule: (path: string) => WebAssembly.Module | Promise, +imports: ImportObject, +instantiateCore?: (module: WebAssembly.Module, imports: Record) => WebAssembly.Instance | Promise ): Root | Promise; + diff --git a/analyze-wasm/wasm/arcjet_analyze_js_req.component.js b/analyze-wasm/wasm/arcjet_analyze_js_req.component.js index d3f388e1f..4b0a81891 100644 --- a/analyze-wasm/wasm/arcjet_analyze_js_req.component.js +++ b/analyze-wasm/wasm/arcjet_analyze_js_req.component.js @@ -1,31 +1,27 @@ -function instantiate( - getCoreModule, - imports, - instantiateCore = WebAssembly.instantiate, -) { +function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.instantiate) { + class ComponentError extends Error { - constructor(value) { - const enumerable = typeof value !== "string"; + constructor (value) { + const enumerable = typeof value !== 'string'; super(enumerable ? `${String(value)} (see error.payload)` : value); - Object.defineProperty(this, "payload", { value, enumerable }); + Object.defineProperty(this, 'payload', { value, enumerable }); } } - + let dv = new DataView(new ArrayBuffer()); - const dataView = (mem) => - dv.buffer === mem.buffer ? dv : (dv = new DataView(mem.buffer)); - + const dataView = mem => dv.buffer === mem.buffer ? dv : dv = new DataView(mem.buffer); + function toUint32(val) { return val >>> 0; } - + const utf8Decoder = new TextDecoder(); - + const utf8Encoder = new TextEncoder(); - + let utf8EncodedLen = 0; function utf8Encode(s, realloc, memory) { - if (typeof s !== "string") throw new TypeError("expected a string"); + if (typeof s !== 'string') throw new TypeError('expected a string'); if (s.length === 0) { utf8EncodedLen = 0; return 1; @@ -36,179 +32,159 @@ function instantiate( utf8EncodedLen = buf.length; return ptr; } - - const module0 = getCoreModule("arcjet_analyze_js_req.component.core.wasm"); - const module1 = getCoreModule("arcjet_analyze_js_req.component.core2.wasm"); - const module2 = getCoreModule("arcjet_analyze_js_req.component.core3.wasm"); - - const { hasGravatar, hasMxRecords, isDisposableEmail, isFreeEmail } = - imports["arcjet:js-req/email-validator-overrides"]; - const { debug, error } = imports["arcjet:js-req/logger"]; - const { detect } = imports["arcjet:js-req/sensitive-information-identifier"]; - let gen = (function* init() { + + + const module0 = getCoreModule('arcjet_analyze_js_req.component.core.wasm'); + const module1 = getCoreModule('arcjet_analyze_js_req.component.core2.wasm'); + const module2 = getCoreModule('arcjet_analyze_js_req.component.core3.wasm'); + + const { hasGravatar, hasMxRecords, isDisposableEmail, isFreeEmail } = imports['arcjet:js-req/email-validator-overrides']; + const { debug, error } = imports['arcjet:js-req/logger']; + const { detect } = imports['arcjet:js-req/sensitive-information-identifier']; + let gen = (function* init () { let exports0; let exports1; let memory0; let realloc0; - + function trampoline0(arg0, arg1) { var ptr0 = arg0; var len0 = arg1; - var result0 = utf8Decoder.decode( - new Uint8Array(memory0.buffer, ptr0, len0), - ); + var result0 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr0, len0)); debug(result0); } - + function trampoline1(arg0, arg1) { var ptr0 = arg0; var len0 = arg1; - var result0 = utf8Decoder.decode( - new Uint8Array(memory0.buffer, ptr0, len0), - ); + var result0 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr0, len0)); error(result0); } - + function trampoline2(arg0, arg1) { var ptr0 = arg0; var len0 = arg1; - var result0 = utf8Decoder.decode( - new Uint8Array(memory0.buffer, ptr0, len0), - ); + var result0 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr0, len0)); const ret = isFreeEmail(result0); var val1 = ret; let enum1; switch (val1) { - case "yes": { + case 'yes': { enum1 = 0; break; } - case "no": { + case 'no': { enum1 = 1; break; } - case "unknown": { + case 'unknown': { enum1 = 2; break; } default: { - if (ret instanceof Error) { + if ((ret) instanceof Error) { console.error(ret); } - - throw new TypeError( - `"${val1}" is not one of the cases of validator-response`, - ); + + throw new TypeError(`"${val1}" is not one of the cases of validator-response`); } } return enum1; } - + function trampoline3(arg0, arg1) { var ptr0 = arg0; var len0 = arg1; - var result0 = utf8Decoder.decode( - new Uint8Array(memory0.buffer, ptr0, len0), - ); + var result0 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr0, len0)); const ret = isDisposableEmail(result0); var val1 = ret; let enum1; switch (val1) { - case "yes": { + case 'yes': { enum1 = 0; break; } - case "no": { + case 'no': { enum1 = 1; break; } - case "unknown": { + case 'unknown': { enum1 = 2; break; } default: { - if (ret instanceof Error) { + if ((ret) instanceof Error) { console.error(ret); } - - throw new TypeError( - `"${val1}" is not one of the cases of validator-response`, - ); + + throw new TypeError(`"${val1}" is not one of the cases of validator-response`); } } return enum1; } - + function trampoline4(arg0, arg1) { var ptr0 = arg0; var len0 = arg1; - var result0 = utf8Decoder.decode( - new Uint8Array(memory0.buffer, ptr0, len0), - ); + var result0 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr0, len0)); const ret = hasMxRecords(result0); var val1 = ret; let enum1; switch (val1) { - case "yes": { + case 'yes': { enum1 = 0; break; } - case "no": { + case 'no': { enum1 = 1; break; } - case "unknown": { + case 'unknown': { enum1 = 2; break; } default: { - if (ret instanceof Error) { + if ((ret) instanceof Error) { console.error(ret); } - - throw new TypeError( - `"${val1}" is not one of the cases of validator-response`, - ); + + throw new TypeError(`"${val1}" is not one of the cases of validator-response`); } } return enum1; } - + function trampoline5(arg0, arg1) { var ptr0 = arg0; var len0 = arg1; - var result0 = utf8Decoder.decode( - new Uint8Array(memory0.buffer, ptr0, len0), - ); + var result0 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr0, len0)); const ret = hasGravatar(result0); var val1 = ret; let enum1; switch (val1) { - case "yes": { + case 'yes': { enum1 = 0; break; } - case "no": { + case 'no': { enum1 = 1; break; } - case "unknown": { + case 'unknown': { enum1 = 2; break; } default: { - if (ret instanceof Error) { + if ((ret) instanceof Error) { console.error(ret); } - - throw new TypeError( - `"${val1}" is not one of the cases of validator-response`, - ); + + throw new TypeError(`"${val1}" is not one of the cases of validator-response`); } } return enum1; } - + function trampoline6(arg0, arg1, arg2) { var len1 = arg1; var base1 = arg0; @@ -217,9 +193,7 @@ function instantiate( const base = base1 + i * 8; var ptr0 = dataView(memory0).getInt32(base + 0, true); var len0 = dataView(memory0).getInt32(base + 4, true); - var result0 = utf8Decoder.decode( - new Uint8Array(memory0.buffer, ptr0, len0), - ); + var result0 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr0, len0)); result1.push(result0); } const ret = detect(result1); @@ -228,32 +202,31 @@ function instantiate( var result5 = realloc0(0, 0, 4, len5 * 16); for (let i = 0; i < vec5.length; i++) { const e = vec5[i]; - const base = result5 + i * 16; - var variant4 = e; - if (variant4 === null || variant4 === undefined) { + const base = result5 + i * 16;var variant4 = e; + if (variant4 === null || variant4=== undefined) { dataView(memory0).setInt8(base + 0, 0, true); } else { const e = variant4; dataView(memory0).setInt8(base + 0, 1, true); var variant3 = e; switch (variant3.tag) { - case "email": { + case 'email': { dataView(memory0).setInt8(base + 4, 0, true); break; } - case "phone-number": { + case 'phone-number': { dataView(memory0).setInt8(base + 4, 1, true); break; } - case "ip-address": { + case 'ip-address': { dataView(memory0).setInt8(base + 4, 2, true); break; } - case "credit-card-number": { + case 'credit-card-number': { dataView(memory0).setInt8(base + 4, 3, true); break; } - case "custom": { + case 'custom': { const e = variant3.val; dataView(memory0).setInt8(base + 4, 4, true); var ptr2 = utf8Encode(e, realloc0, memory0); @@ -263,9 +236,7 @@ function instantiate( break; } default: { - throw new TypeError( - `invalid variant tag value \`${JSON.stringify(variant3.tag)}\` (received \`${variant3}\`) specified for \`SensitiveInfoEntity\``, - ); + throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant3.tag)}\` (received \`${variant3}\`) specified for \`SensitiveInfoEntity\``); } } } @@ -280,39 +251,39 @@ function instantiate( Promise.all([module0, module1, module2]).catch(() => {}); ({ exports: exports0 } = yield instantiateCore(yield module1)); ({ exports: exports1 } = yield instantiateCore(yield module0, { - "arcjet:js-req/email-validator-overrides": { - "has-gravatar": exports0["5"], - "has-mx-records": exports0["4"], - "is-disposable-email": exports0["3"], - "is-free-email": exports0["2"], + 'arcjet:js-req/email-validator-overrides': { + 'has-gravatar': exports0['5'], + 'has-mx-records': exports0['4'], + 'is-disposable-email': exports0['3'], + 'is-free-email': exports0['2'], }, - "arcjet:js-req/logger": { - debug: exports0["0"], - error: exports0["1"], + 'arcjet:js-req/logger': { + debug: exports0['0'], + error: exports0['1'], }, - "arcjet:js-req/sensitive-information-identifier": { - detect: exports0["6"], + 'arcjet:js-req/sensitive-information-identifier': { + detect: exports0['6'], }, })); memory0 = exports1.memory; realloc0 = exports1.cabi_realloc; - yield instantiateCore(yield module2, { - "": { + (yield instantiateCore(yield module2, { + '': { $imports: exports0.$imports, - 0: trampoline0, - 1: trampoline1, - 2: trampoline2, - 3: trampoline3, - 4: trampoline4, - 5: trampoline5, - 6: trampoline6, + '0': trampoline0, + '1': trampoline1, + '2': trampoline2, + '3': trampoline3, + '4': trampoline4, + '5': trampoline5, + '6': trampoline6, }, - }); - postReturn0 = exports1["cabi_post_detect-bot"]; - postReturn1 = exports1["cabi_post_generate-fingerprint"]; - postReturn2 = exports1["cabi_post_is-valid-email"]; - postReturn3 = exports1["cabi_post_detect-sensitive-info"]; - + })); + postReturn0 = exports1['cabi_post_detect-bot']; + postReturn1 = exports1['cabi_post_generate-fingerprint']; + postReturn2 = exports1['cabi_post_is-valid-email']; + postReturn3 = exports1['cabi_post_detect-sensitive-info']; + function detectBot(arg0, arg1) { var ptr0 = utf8Encode(arg0, realloc0, memory0); var len0 = utf8EncodedLen; @@ -322,16 +293,15 @@ function instantiate( let variant7_2; let variant7_3; switch (variant7.tag) { - case "allowed-bot-config": { + case 'allowed-bot-config': { const e = variant7.val; - var { entities: v1_0, skipCustomDetect: v1_1 } = e; + var {entities: v1_0, skipCustomDetect: v1_1 } = e; var vec3 = v1_0; var len3 = vec3.length; var result3 = realloc0(0, 0, 4, len3 * 8); for (let i = 0; i < vec3.length; i++) { const e = vec3[i]; - const base = result3 + i * 8; - var ptr2 = utf8Encode(e, realloc0, memory0); + const base = result3 + i * 8;var ptr2 = utf8Encode(e, realloc0, memory0); var len2 = utf8EncodedLen; dataView(memory0).setInt32(base + 4, len2, true); dataView(memory0).setInt32(base + 0, ptr2, true); @@ -342,16 +312,15 @@ function instantiate( variant7_3 = v1_1 ? 1 : 0; break; } - case "denied-bot-config": { + case 'denied-bot-config': { const e = variant7.val; - var { entities: v4_0, skipCustomDetect: v4_1 } = e; + var {entities: v4_0, skipCustomDetect: v4_1 } = e; var vec6 = v4_0; var len6 = vec6.length; var result6 = realloc0(0, 0, 4, len6 * 8); for (let i = 0; i < vec6.length; i++) { const e = vec6[i]; - const base = result6 + i * 8; - var ptr5 = utf8Encode(e, realloc0, memory0); + const base = result6 + i * 8;var ptr5 = utf8Encode(e, realloc0, memory0); var len5 = utf8EncodedLen; dataView(memory0).setInt32(base + 4, len5, true); dataView(memory0).setInt32(base + 0, ptr5, true); @@ -363,19 +332,10 @@ function instantiate( break; } default: { - throw new TypeError( - `invalid variant tag value \`${JSON.stringify(variant7.tag)}\` (received \`${variant7}\`) specified for \`BotConfig\``, - ); + throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant7.tag)}\` (received \`${variant7}\`) specified for \`BotConfig\``); } } - const ret = exports1["detect-bot"]( - ptr0, - len0, - variant7_0, - variant7_1, - variant7_2, - variant7_3, - ); + const ret = exports1['detect-bot'](ptr0, len0, variant7_0, variant7_1, variant7_2, variant7_3); let variant13; switch (dataView(memory0).getUint8(ret + 0, true)) { case 0: { @@ -386,9 +346,7 @@ function instantiate( const base = base9 + i * 8; var ptr8 = dataView(memory0).getInt32(base + 0, true); var len8 = dataView(memory0).getInt32(base + 4, true); - var result8 = utf8Decoder.decode( - new Uint8Array(memory0.buffer, ptr8, len8), - ); + var result8 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr8, len8)); result9.push(result8); } var len11 = dataView(memory0).getInt32(ret + 16, true); @@ -398,44 +356,40 @@ function instantiate( const base = base11 + i * 8; var ptr10 = dataView(memory0).getInt32(base + 0, true); var len10 = dataView(memory0).getInt32(base + 4, true); - var result10 = utf8Decoder.decode( - new Uint8Array(memory0.buffer, ptr10, len10), - ); + var result10 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr10, len10)); result11.push(result10); } - variant13 = { - tag: "ok", + variant13= { + tag: 'ok', val: { allowed: result9, denied: result11, - }, + } }; break; } case 1: { var ptr12 = dataView(memory0).getInt32(ret + 4, true); var len12 = dataView(memory0).getInt32(ret + 8, true); - var result12 = utf8Decoder.decode( - new Uint8Array(memory0.buffer, ptr12, len12), - ); - variant13 = { - tag: "err", - val: result12, + var result12 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr12, len12)); + variant13= { + tag: 'err', + val: result12 }; break; } default: { - throw new TypeError("invalid variant discriminant for expected"); + throw new TypeError('invalid variant discriminant for expected'); } } const retVal = variant13; postReturn0(ret); - if (typeof retVal === "object" && retVal.tag === "err") { + if (typeof retVal === 'object' && retVal.tag === 'err') { throw new ComponentError(retVal.val); } return retVal.val; } - + function generateFingerprint(arg0, arg1) { var ptr0 = utf8Encode(arg0, realloc0, memory0); var len0 = utf8EncodedLen; @@ -444,67 +398,50 @@ function instantiate( var result2 = realloc0(0, 0, 4, len2 * 8); for (let i = 0; i < vec2.length; i++) { const e = vec2[i]; - const base = result2 + i * 8; - var ptr1 = utf8Encode(e, realloc0, memory0); + const base = result2 + i * 8;var ptr1 = utf8Encode(e, realloc0, memory0); var len1 = utf8EncodedLen; dataView(memory0).setInt32(base + 4, len1, true); dataView(memory0).setInt32(base + 0, ptr1, true); } - const ret = exports1["generate-fingerprint"](ptr0, len0, result2, len2); + const ret = exports1['generate-fingerprint'](ptr0, len0, result2, len2); var ptr3 = dataView(memory0).getInt32(ret + 0, true); var len3 = dataView(memory0).getInt32(ret + 4, true); - var result3 = utf8Decoder.decode( - new Uint8Array(memory0.buffer, ptr3, len3), - ); + var result3 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr3, len3)); const retVal = result3; postReturn1(ret); return retVal; } - + function isValidEmail(arg0, arg1) { var ptr0 = utf8Encode(arg0, realloc0, memory0); var len0 = utf8EncodedLen; - var { - requireTopLevelDomain: v1_0, - allowDomainLiteral: v1_1, - blockedEmails: v1_2, - } = arg1; + var {requireTopLevelDomain: v1_0, allowDomainLiteral: v1_1, blockedEmails: v1_2 } = arg1; var vec3 = v1_2; var len3 = vec3.length; var result3 = realloc0(0, 0, 4, len3 * 8); for (let i = 0; i < vec3.length; i++) { const e = vec3[i]; - const base = result3 + i * 8; - var ptr2 = utf8Encode(e, realloc0, memory0); + const base = result3 + i * 8;var ptr2 = utf8Encode(e, realloc0, memory0); var len2 = utf8EncodedLen; dataView(memory0).setInt32(base + 4, len2, true); dataView(memory0).setInt32(base + 0, ptr2, true); } - const ret = exports1["is-valid-email"]( - ptr0, - len0, - v1_0 ? 1 : 0, - v1_1 ? 1 : 0, - result3, - len3, - ); + const ret = exports1['is-valid-email'](ptr0, len0, v1_0 ? 1 : 0, v1_1 ? 1 : 0, result3, len3); let variant8; switch (dataView(memory0).getUint8(ret + 0, true)) { case 0: { let enum4; switch (dataView(memory0).getUint8(ret + 4, true)) { case 0: { - enum4 = "valid"; + enum4 = 'valid'; break; } case 1: { - enum4 = "invalid"; + enum4 = 'invalid'; break; } default: { - throw new TypeError( - "invalid discriminant specified for EmailValidity", - ); + throw new TypeError('invalid discriminant specified for EmailValidity'); } } var len6 = dataView(memory0).getInt32(ret + 12, true); @@ -514,84 +451,75 @@ function instantiate( const base = base6 + i * 8; var ptr5 = dataView(memory0).getInt32(base + 0, true); var len5 = dataView(memory0).getInt32(base + 4, true); - var result5 = utf8Decoder.decode( - new Uint8Array(memory0.buffer, ptr5, len5), - ); + var result5 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr5, len5)); result6.push(result5); } - variant8 = { - tag: "ok", + variant8= { + tag: 'ok', val: { validity: enum4, blocked: result6, - }, + } }; break; } case 1: { var ptr7 = dataView(memory0).getInt32(ret + 4, true); var len7 = dataView(memory0).getInt32(ret + 8, true); - var result7 = utf8Decoder.decode( - new Uint8Array(memory0.buffer, ptr7, len7), - ); - variant8 = { - tag: "err", - val: result7, + var result7 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr7, len7)); + variant8= { + tag: 'err', + val: result7 }; break; } default: { - throw new TypeError("invalid variant discriminant for expected"); + throw new TypeError('invalid variant discriminant for expected'); } } const retVal = variant8; postReturn2(ret); - if (typeof retVal === "object" && retVal.tag === "err") { + if (typeof retVal === 'object' && retVal.tag === 'err') { throw new ComponentError(retVal.val); } return retVal.val; } - + function detectSensitiveInfo(arg0, arg1) { var ptr0 = utf8Encode(arg0, realloc0, memory0); var len0 = utf8EncodedLen; - var { - entities: v1_0, - contextWindowSize: v1_1, - skipCustomDetect: v1_2, - } = arg1; + var {entities: v1_0, contextWindowSize: v1_1, skipCustomDetect: v1_2 } = arg1; var variant8 = v1_0; let variant8_0; let variant8_1; let variant8_2; switch (variant8.tag) { - case "allow": { + case 'allow': { const e = variant8.val; var vec4 = e; var len4 = vec4.length; var result4 = realloc0(0, 0, 4, len4 * 12); for (let i = 0; i < vec4.length; i++) { const e = vec4[i]; - const base = result4 + i * 12; - var variant3 = e; + const base = result4 + i * 12;var variant3 = e; switch (variant3.tag) { - case "email": { + case 'email': { dataView(memory0).setInt8(base + 0, 0, true); break; } - case "phone-number": { + case 'phone-number': { dataView(memory0).setInt8(base + 0, 1, true); break; } - case "ip-address": { + case 'ip-address': { dataView(memory0).setInt8(base + 0, 2, true); break; } - case "credit-card-number": { + case 'credit-card-number': { dataView(memory0).setInt8(base + 0, 3, true); break; } - case "custom": { + case 'custom': { const e = variant3.val; dataView(memory0).setInt8(base + 0, 4, true); var ptr2 = utf8Encode(e, realloc0, memory0); @@ -601,9 +529,7 @@ function instantiate( break; } default: { - throw new TypeError( - `invalid variant tag value \`${JSON.stringify(variant3.tag)}\` (received \`${variant3}\`) specified for \`SensitiveInfoEntity\``, - ); + throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant3.tag)}\` (received \`${variant3}\`) specified for \`SensitiveInfoEntity\``); } } } @@ -612,33 +538,32 @@ function instantiate( variant8_2 = len4; break; } - case "deny": { + case 'deny': { const e = variant8.val; var vec7 = e; var len7 = vec7.length; var result7 = realloc0(0, 0, 4, len7 * 12); for (let i = 0; i < vec7.length; i++) { const e = vec7[i]; - const base = result7 + i * 12; - var variant6 = e; + const base = result7 + i * 12;var variant6 = e; switch (variant6.tag) { - case "email": { + case 'email': { dataView(memory0).setInt8(base + 0, 0, true); break; } - case "phone-number": { + case 'phone-number': { dataView(memory0).setInt8(base + 0, 1, true); break; } - case "ip-address": { + case 'ip-address': { dataView(memory0).setInt8(base + 0, 2, true); break; } - case "credit-card-number": { + case 'credit-card-number': { dataView(memory0).setInt8(base + 0, 3, true); break; } - case "custom": { + case 'custom': { const e = variant6.val; dataView(memory0).setInt8(base + 0, 4, true); var ptr5 = utf8Encode(e, realloc0, memory0); @@ -648,9 +573,7 @@ function instantiate( break; } default: { - throw new TypeError( - `invalid variant tag value \`${JSON.stringify(variant6.tag)}\` (received \`${variant6}\`) specified for \`SensitiveInfoEntity\``, - ); + throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant6.tag)}\` (received \`${variant6}\`) specified for \`SensitiveInfoEntity\``); } } } @@ -660,15 +583,13 @@ function instantiate( break; } default: { - throw new TypeError( - `invalid variant tag value \`${JSON.stringify(variant8.tag)}\` (received \`${variant8}\`) specified for \`SensitiveInfoEntities\``, - ); + throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant8.tag)}\` (received \`${variant8}\`) specified for \`SensitiveInfoEntities\``); } } var variant9 = v1_1; let variant9_0; let variant9_1; - if (variant9 === null || variant9 === undefined) { + if (variant9 === null || variant9=== undefined) { variant9_0 = 0; variant9_1 = 0; } else { @@ -676,16 +597,7 @@ function instantiate( variant9_0 = 1; variant9_1 = toUint32(e); } - const ret = exports1["detect-sensitive-info"]( - ptr0, - len0, - variant8_0, - variant8_1, - variant8_2, - variant9_0, - variant9_1, - v1_2 ? 1 : 0, - ); + const ret = exports1['detect-sensitive-info'](ptr0, len0, variant8_0, variant8_1, variant8_2, variant9_0, variant9_1, v1_2 ? 1 : 0); var len12 = dataView(memory0).getInt32(ret + 4, true); var base12 = dataView(memory0).getInt32(ret + 0, true); var result12 = []; @@ -694,45 +606,41 @@ function instantiate( let variant11; switch (dataView(memory0).getUint8(base + 8, true)) { case 0: { - variant11 = { - tag: "email", + variant11= { + tag: 'email', }; break; } case 1: { - variant11 = { - tag: "phone-number", + variant11= { + tag: 'phone-number', }; break; } case 2: { - variant11 = { - tag: "ip-address", + variant11= { + tag: 'ip-address', }; break; } case 3: { - variant11 = { - tag: "credit-card-number", + variant11= { + tag: 'credit-card-number', }; break; } case 4: { var ptr10 = dataView(memory0).getInt32(base + 12, true); var len10 = dataView(memory0).getInt32(base + 16, true); - var result10 = utf8Decoder.decode( - new Uint8Array(memory0.buffer, ptr10, len10), - ); - variant11 = { - tag: "custom", - val: result10, + var result10 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr10, len10)); + variant11= { + tag: 'custom', + val: result10 }; break; } default: { - throw new TypeError( - "invalid variant discriminant for SensitiveInfoEntity", - ); + throw new TypeError('invalid variant discriminant for SensitiveInfoEntity'); } } result12.push({ @@ -749,45 +657,41 @@ function instantiate( let variant14; switch (dataView(memory0).getUint8(base + 8, true)) { case 0: { - variant14 = { - tag: "email", + variant14= { + tag: 'email', }; break; } case 1: { - variant14 = { - tag: "phone-number", + variant14= { + tag: 'phone-number', }; break; } case 2: { - variant14 = { - tag: "ip-address", + variant14= { + tag: 'ip-address', }; break; } case 3: { - variant14 = { - tag: "credit-card-number", + variant14= { + tag: 'credit-card-number', }; break; } case 4: { var ptr13 = dataView(memory0).getInt32(base + 12, true); var len13 = dataView(memory0).getInt32(base + 16, true); - var result13 = utf8Decoder.decode( - new Uint8Array(memory0.buffer, ptr13, len13), - ); - variant14 = { - tag: "custom", - val: result13, + var result13 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr13, len13)); + variant14= { + tag: 'custom', + val: result13 }; break; } default: { - throw new TypeError( - "invalid variant discriminant for SensitiveInfoEntity", - ); + throw new TypeError('invalid variant discriminant for SensitiveInfoEntity'); } } result15.push({ @@ -803,16 +707,11 @@ function instantiate( postReturn3(ret); return retVal; } - - return { - detectBot, - detectSensitiveInfo, - generateFingerprint, - isValidEmail, - }; + + return { detectBot, detectSensitiveInfo, generateFingerprint, isValidEmail, }; })(); let promise, resolve, reject; - function runNext(value) { + function runNext (value) { try { let done; do { @@ -822,12 +721,10 @@ function instantiate( if (resolve) resolve(value); else return value; } - if (!promise) - promise = new Promise( - (_resolve, _reject) => ((resolve = _resolve), (reject = _reject)), - ); - value.then((nextVal) => (done ? resolve() : runNext(nextVal)), reject); - } catch (e) { + if (!promise) promise = new Promise((_resolve, _reject) => (resolve = _resolve, reject = _reject)); + value.then(nextVal => done ? resolve() : runNext(nextVal), reject); + } + catch (e) { if (reject) reject(e); else throw e; } diff --git a/analyze-wasm/wasm/interfaces/arcjet-js-req-email-validator-overrides.d.ts b/analyze-wasm/wasm/interfaces/arcjet-js-req-email-validator-overrides.d.ts index f5ae1e2c8..82cca6d2a 100644 --- a/analyze-wasm/wasm/interfaces/arcjet-js-req-email-validator-overrides.d.ts +++ b/analyze-wasm/wasm/interfaces/arcjet-js-req-email-validator-overrides.d.ts @@ -6,11 +6,11 @@ export namespace ArcjetJsReqEmailValidatorOverrides { } /** * # Variants - * + * * ## `"yes"` - * + * * ## `"no"` - * + * * ## `"unknown"` */ -export type ValidatorResponse = "yes" | "no" | "unknown"; +export type ValidatorResponse = 'yes' | 'no' | 'unknown'; diff --git a/analyze-wasm/wasm/interfaces/arcjet-js-req-sensitive-information-identifier.d.ts b/analyze-wasm/wasm/interfaces/arcjet-js-req-sensitive-information-identifier.d.ts index a0b862ff0..17ca756ca 100644 --- a/analyze-wasm/wasm/interfaces/arcjet-js-req-sensitive-information-identifier.d.ts +++ b/analyze-wasm/wasm/interfaces/arcjet-js-req-sensitive-information-identifier.d.ts @@ -1,27 +1,20 @@ export namespace ArcjetJsReqSensitiveInformationIdentifier { - export function detect( - tokens: Array, - ): Array; + export function detect(tokens: Array): Array; } -export type SensitiveInfoEntity = - | SensitiveInfoEntityEmail - | SensitiveInfoEntityPhoneNumber - | SensitiveInfoEntityIpAddress - | SensitiveInfoEntityCreditCardNumber - | SensitiveInfoEntityCustom; +export type SensitiveInfoEntity = SensitiveInfoEntityEmail | SensitiveInfoEntityPhoneNumber | SensitiveInfoEntityIpAddress | SensitiveInfoEntityCreditCardNumber | SensitiveInfoEntityCustom; export interface SensitiveInfoEntityEmail { - tag: "email"; + tag: 'email', } export interface SensitiveInfoEntityPhoneNumber { - tag: "phone-number"; + tag: 'phone-number', } export interface SensitiveInfoEntityIpAddress { - tag: "ip-address"; + tag: 'ip-address', } export interface SensitiveInfoEntityCreditCardNumber { - tag: "credit-card-number"; + tag: 'credit-card-number', } export interface SensitiveInfoEntityCustom { - tag: "custom"; - val: string; + tag: 'custom', + val: string, } From 8cf549382f62c241e6f1c33efd0ac1ee3bd6fab2 Mon Sep 17 00:00:00 2001 From: e-moran Date: Tue, 15 Oct 2024 15:35:35 +0100 Subject: [PATCH 08/16] update readmes --- analyze-wasm/README.md | 26 +++++--------------------- analyze/README.md | 29 +++++------------------------ 2 files changed, 10 insertions(+), 45 deletions(-) diff --git a/analyze-wasm/README.md b/analyze-wasm/README.md index 16faf79fd..6ee5436ae 100644 --- a/analyze-wasm/README.md +++ b/analyze-wasm/README.md @@ -5,13 +5,13 @@ -# `@arcjet/analyze` +# `@arcjet/analyze-wasm`

- + - npm badge + npm badge

@@ -20,24 +20,12 @@ code. Implement rate limiting, bot protection, email verification, and defense against common attacks. -This is the [Arcjet][arcjet] local analysis engine. +This is the [Arcjet][arcjet] local analysis engine WASM bindings ## Installation ```shell -npm install -S @arcjet/analyze -``` - -## Example - -```ts -import { generateFingerprint, isValidEmail } from "@arcjet/analyze"; - -const fingerprint = generateFingerprint("127.0.0.1"); -console.log("fingerprint: ", fingerprint); - -const valid = isValidEmail("hello@example.com"); -console.log("is email valid?", valid); +npm install -S @arcjet/analyze-wasm ``` ## Implementation @@ -64,10 +52,6 @@ Wasm file if we don't do this. In the future, we hope to do away with this workaround when all bundlers properly support consistent asset bundling techniques. -## API - -In progress. - ## License Licensed under the [Apache License, Version 2.0][apache-license]. diff --git a/analyze/README.md b/analyze/README.md index 16faf79fd..b87785e99 100644 --- a/analyze/README.md +++ b/analyze/README.md @@ -42,31 +42,12 @@ console.log("is email valid?", valid); ## Implementation -This package provides analyze logic implemented as a WebAssembly module which -will run local analysis on request details before calling the Arcjet API. +This package uses the wasm bindings provided by `@arcjet/analyze-wasm` to +call various functions that are exported by our wasm bindings. -The [arcjet.wasm.js](./wasm/arcjet.wasm.js) file contains the binary inlined as -a base64 [Data URL][mdn-data-url] with the `application/wasm` MIME type. - -This was chosen to save on storage space over inlining the file directly as a -Uint8Array, which would take up ~3x the space of the Wasm file. See -[Better Binary Batter: Mixing Base64 and Uint8Array][wasm-base64-blog] for more -details. - -It is then decoded into an ArrayBuffer to be used directly via WebAssembly's -`compile()` function in our entry point file. - -This is all done to avoid trying to read or bundle the Wasm asset in various -ways based on the platform or bundler a user is targeting. One example being -that Next.js requires special `asyncWebAssembly` webpack config to load our -Wasm file if we don't do this. - -In the future, we hope to do away with this workaround when all bundlers -properly support consistent asset bundling techniques. - -## API - -In progress. +We chose to put this logic in a separate package because we need to change the +import structure for each runtime that we support in the wasm bindings. Moving +this to a separate package allows us not to have to duplicate code. ## License From e3b40b6d8473ef5987672609e5bf8c2f88708cc7 Mon Sep 17 00:00:00 2001 From: e-moran Date: Tue, 15 Oct 2024 15:52:55 +0100 Subject: [PATCH 09/16] remove jco dep from analyze --- analyze-wasm/CHANGELOG.md | 501 -------------------------------------- analyze/package.json | 1 - package-lock.json | 1 - 3 files changed, 503 deletions(-) diff --git a/analyze-wasm/CHANGELOG.md b/analyze-wasm/CHANGELOG.md index ea8f60a1b..4dc68c6ff 100644 --- a/analyze-wasm/CHANGELOG.md +++ b/analyze-wasm/CHANGELOG.md @@ -1,503 +1,2 @@ # Changelog -## [1.0.0-alpha.27](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.26...@arcjet/analyze-v1.0.0-alpha.27) (2024-10-01) - - -### ๐Ÿงน Miscellaneous Chores - -* **analyze:** Update well known bots ([#1784](https://github.com/arcjet/arcjet-js/issues/1784)) ([52f1ee3](https://github.com/arcjet/arcjet-js/commit/52f1ee35fde144d152ef2face2546ed79ca35f49)) -* Update WebAssembly modules ([#1721](https://github.com/arcjet/arcjet-js/issues/1721)) ([2dbb9eb](https://github.com/arcjet/arcjet-js/commit/2dbb9eb90755dca6dc99dc0092246304b98889f9)) - - -### Dependencies - -* The following workspace dependencies were updated - * dependencies - * @arcjet/protocol bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27 - * devDependencies - * @arcjet/eslint-config bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27 - * @arcjet/rollup-config bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27 - * @arcjet/tsconfig bumped from 1.0.0-alpha.26 to 1.0.0-alpha.27 - -## [1.0.0-alpha.26](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.25...@arcjet/analyze-v1.0.0-alpha.26) (2024-09-16) - - -### ๐Ÿš€ New Features - -* Implement bot detection categories ([#1618](https://github.com/arcjet/arcjet-js/issues/1618)) ([540cfe8](https://github.com/arcjet/arcjet-js/commit/540cfe8d74b9f029248cfeb6f27e4c7b47fbb9b7)) - - -### Dependencies - -* The following workspace dependencies were updated - * dependencies - * @arcjet/protocol bumped from 1.0.0-alpha.25 to 1.0.0-alpha.26 - * devDependencies - * @arcjet/eslint-config bumped from 1.0.0-alpha.25 to 1.0.0-alpha.26 - * @arcjet/rollup-config bumped from 1.0.0-alpha.25 to 1.0.0-alpha.26 - * @arcjet/tsconfig bumped from 1.0.0-alpha.25 to 1.0.0-alpha.26 - -## [1.0.0-alpha.25](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.24...@arcjet/analyze-v1.0.0-alpha.25) (2024-09-10) - - -### ๐Ÿงน Miscellaneous Chores - -* **analyze:** Regenerate WebAssembly with updated bot list ([#1546](https://github.com/arcjet/arcjet-js/issues/1546)) ([0a38e0f](https://github.com/arcjet/arcjet-js/commit/0a38e0f954eb9cfe52289720f3724b0f8f337744)), closes [#1545](https://github.com/arcjet/arcjet-js/issues/1545) -* **analyze:** Update crawler list with Coda Server Fetcher ([#1580](https://github.com/arcjet/arcjet-js/issues/1580)) ([91dd435](https://github.com/arcjet/arcjet-js/commit/91dd435bc5abeafbe7955b6e186668e7af6307a1)) - - -### Dependencies - -* The following workspace dependencies were updated - * dependencies - * @arcjet/protocol bumped from 1.0.0-alpha.24 to 1.0.0-alpha.25 - * devDependencies - * @arcjet/eslint-config bumped from 1.0.0-alpha.24 to 1.0.0-alpha.25 - * @arcjet/rollup-config bumped from 1.0.0-alpha.24 to 1.0.0-alpha.25 - * @arcjet/tsconfig bumped from 1.0.0-alpha.24 to 1.0.0-alpha.25 - -## [1.0.0-alpha.24](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.23...@arcjet/analyze-v1.0.0-alpha.24) (2024-09-05) - - -### โš  BREAKING CHANGES - -* Rework bot detection rule with allow/deny configuration ([#1437](https://github.com/arcjet/arcjet-js/issues/1437)) - -### ๐Ÿš€ New Features - -* Rework bot detection rule with allow/deny configuration ([#1437](https://github.com/arcjet/arcjet-js/issues/1437)) ([eef18e3](https://github.com/arcjet/arcjet-js/commit/eef18e3a7c52a849fbc1766439dc28bf0cb2da27)) - - -### Dependencies - -* The following workspace dependencies were updated - * dependencies - * @arcjet/protocol bumped from 1.0.0-alpha.23 to 1.0.0-alpha.24 - * devDependencies - * @arcjet/eslint-config bumped from 1.0.0-alpha.23 to 1.0.0-alpha.24 - * @arcjet/rollup-config bumped from 1.0.0-alpha.23 to 1.0.0-alpha.24 - * @arcjet/tsconfig bumped from 1.0.0-alpha.23 to 1.0.0-alpha.24 - -## [1.0.0-alpha.23](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.22...@arcjet/analyze-v1.0.0-alpha.23) (2024-09-02) - - -### ๐Ÿชฒ Bug Fixes - -* **analyze:** Ensure headers are serialized correctly ([#1435](https://github.com/arcjet/arcjet-js/issues/1435)) ([0319412](https://github.com/arcjet/arcjet-js/commit/0319412a56e6227f71ab981e23ccdd460a3515cd)) -* Ensure instantiation throws if WebAssembly is unavailable ([#1458](https://github.com/arcjet/arcjet-js/issues/1458)) ([0edfd45](https://github.com/arcjet/arcjet-js/commit/0edfd457d9f1428d360787e8c78dce3471abdee8)) - - -### ๐Ÿงน Miscellaneous Chores - -* remove sideEffects from analyze ([#1444](https://github.com/arcjet/arcjet-js/issues/1444)) ([572aaa0](https://github.com/arcjet/arcjet-js/commit/572aaa067ba8d2e132e608997b15953896474ca9)) - - -### Dependencies - -* The following workspace dependencies were updated - * dependencies - * @arcjet/protocol bumped from 1.0.0-alpha.22 to 1.0.0-alpha.23 - * devDependencies - * @arcjet/eslint-config bumped from 1.0.0-alpha.22 to 1.0.0-alpha.23 - * @arcjet/rollup-config bumped from 1.0.0-alpha.22 to 1.0.0-alpha.23 - * @arcjet/tsconfig bumped from 1.0.0-alpha.22 to 1.0.0-alpha.23 - -## [1.0.0-alpha.22](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.21...@arcjet/analyze-v1.0.0-alpha.22) (2024-08-26) - - -### ๐Ÿš€ New Features - -* add detect sensitive info rule ([#1300](https://github.com/arcjet/arcjet-js/issues/1300)) ([006e344](https://github.com/arcjet/arcjet-js/commit/006e34449a1af0768fe2c265c40161e0ecf90d82)) - - -### Dependencies - -* The following workspace dependencies were updated - * dependencies - * @arcjet/protocol bumped from 1.0.0-alpha.21 to 1.0.0-alpha.22 - * devDependencies - * @arcjet/eslint-config bumped from 1.0.0-alpha.21 to 1.0.0-alpha.22 - * @arcjet/rollup-config bumped from 1.0.0-alpha.21 to 1.0.0-alpha.22 - * @arcjet/tsconfig bumped from 1.0.0-alpha.21 to 1.0.0-alpha.22 - -## [1.0.0-alpha.21](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.20...@arcjet/analyze-v1.0.0-alpha.21) (2024-08-05) - - -### ๐Ÿงน Miscellaneous Chores - -* **@arcjet/analyze:** Synchronize arcjet-js versions - - -### Dependencies - -* The following workspace dependencies were updated - * dependencies - * @arcjet/protocol bumped from 1.0.0-alpha.20 to 1.0.0-alpha.21 - * devDependencies - * @arcjet/eslint-config bumped from 1.0.0-alpha.20 to 1.0.0-alpha.21 - * @arcjet/rollup-config bumped from 1.0.0-alpha.20 to 1.0.0-alpha.21 - * @arcjet/tsconfig bumped from 1.0.0-alpha.20 to 1.0.0-alpha.21 - -## [1.0.0-alpha.20](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.19...@arcjet/analyze-v1.0.0-alpha.20) (2024-07-24) - - -### ๐Ÿชฒ Bug Fixes - -* **analyze:** Ensure locally-unknown email information doesn't deny ([#1176](https://github.com/arcjet/arcjet-js/issues/1176)) ([c4ca3f8](https://github.com/arcjet/arcjet-js/commit/c4ca3f8c986f87f16fad016e9f204ab817df9ab3)), closes [#1175](https://github.com/arcjet/arcjet-js/issues/1175) - - -### ๐Ÿ“ฆ Dependencies - -* **dev:** bump @rollup/wasm-node from 4.18.1 to 4.19.0 ([#1160](https://github.com/arcjet/arcjet-js/issues/1160)) ([7062ca0](https://github.com/arcjet/arcjet-js/commit/7062ca00012dd73b2e80f0679609be6e45ec5f5d)) -* **dev:** bump typescript from 5.5.3 to 5.5.4 ([#1166](https://github.com/arcjet/arcjet-js/issues/1166)) ([644e3a6](https://github.com/arcjet/arcjet-js/commit/644e3a6e69d092626fdf4f356aaa8e8f974ae46b)) - - -### Dependencies - -* The following workspace dependencies were updated - * dependencies - * @arcjet/protocol bumped from 1.0.0-alpha.19 to 1.0.0-alpha.20 - * devDependencies - * @arcjet/eslint-config bumped from 1.0.0-alpha.19 to 1.0.0-alpha.20 - * @arcjet/rollup-config bumped from 1.0.0-alpha.19 to 1.0.0-alpha.20 - * @arcjet/tsconfig bumped from 1.0.0-alpha.19 to 1.0.0-alpha.20 - -## [1.0.0-alpha.19](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.18...@arcjet/analyze-v1.0.0-alpha.19) (2024-07-15) - - -### ๐Ÿš€ New Features - -* detect common free/disposable email providers locally ([#1096](https://github.com/arcjet/arcjet-js/issues/1096)) ([115d016](https://github.com/arcjet/arcjet-js/commit/115d01662d4ff456cf4d81825338ef1099626fdf)), closes [#1095](https://github.com/arcjet/arcjet-js/issues/1095) - - -### ๐Ÿ“ฆ Dependencies - -* **dev:** Bump @rollup/wasm-node from 4.18.0 to 4.18.1 ([#1092](https://github.com/arcjet/arcjet-js/issues/1092)) ([ffc298a](https://github.com/arcjet/arcjet-js/commit/ffc298ad030721519af02c6c2da26fd2bd3fbdbd)) -* **dev:** Bump typescript from 5.5.2 to 5.5.3 ([#1065](https://github.com/arcjet/arcjet-js/issues/1065)) ([ef05395](https://github.com/arcjet/arcjet-js/commit/ef053953cf4a6cba621b778cba2e0dd4e114b626)) - - -### Dependencies - -* The following workspace dependencies were updated - * dependencies - * @arcjet/protocol bumped from 1.0.0-alpha.18 to 1.0.0-alpha.19 - * devDependencies - * @arcjet/eslint-config bumped from 1.0.0-alpha.18 to 1.0.0-alpha.19 - * @arcjet/rollup-config bumped from 1.0.0-alpha.18 to 1.0.0-alpha.19 - * @arcjet/tsconfig bumped from 1.0.0-alpha.18 to 1.0.0-alpha.19 - -## [1.0.0-alpha.18](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.17...@arcjet/analyze-v1.0.0-alpha.18) (2024-07-01) - - -### ๐Ÿš€ New Features - -* Allow characteristics to be specified on the SDK for fingerprint generation & propagate to rate limit rule ([#1016](https://github.com/arcjet/arcjet-js/issues/1016)) ([6b692da](https://github.com/arcjet/arcjet-js/commit/6b692da8e6da506a977ec5617a223b6512035a19)), closes [#1015](https://github.com/arcjet/arcjet-js/issues/1015) - - -### ๐Ÿ“ฆ Dependencies - -* **dev:** Bump typescript from 5.4.5 to 5.5.2 ([#1011](https://github.com/arcjet/arcjet-js/issues/1011)) ([c17a101](https://github.com/arcjet/arcjet-js/commit/c17a101c5729db44ddf8a7e14d5e4184dcf38949)) - - -### ๐Ÿงน Miscellaneous Chores - -* **analyze:** Regenerate WebAssembly ([#1041](https://github.com/arcjet/arcjet-js/issues/1041)) ([a45faa3](https://github.com/arcjet/arcjet-js/commit/a45faa3e39005bf089b7c37c7a5a15f1951c6529)) - - -### Dependencies - -* The following workspace dependencies were updated - * dependencies - * @arcjet/protocol bumped from 1.0.0-alpha.17 to 1.0.0-alpha.18 - * devDependencies - * @arcjet/eslint-config bumped from 1.0.0-alpha.17 to 1.0.0-alpha.18 - * @arcjet/rollup-config bumped from 1.0.0-alpha.17 to 1.0.0-alpha.18 - * @arcjet/tsconfig bumped from 1.0.0-alpha.17 to 1.0.0-alpha.18 - -## [1.0.0-alpha.17](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.16...@arcjet/analyze-v1.0.0-alpha.17) (2024-06-17) - - -### ๐Ÿงน Miscellaneous Chores - -* **@arcjet/analyze:** Synchronize arcjet-js versions - - -### Dependencies - -* The following workspace dependencies were updated - * dependencies - * @arcjet/protocol bumped from 1.0.0-alpha.16 to 1.0.0-alpha.17 - * devDependencies - * @arcjet/eslint-config bumped from 1.0.0-alpha.16 to 1.0.0-alpha.17 - * @arcjet/rollup-config bumped from 1.0.0-alpha.16 to 1.0.0-alpha.17 - * @arcjet/tsconfig bumped from 1.0.0-alpha.16 to 1.0.0-alpha.17 - -## [1.0.0-alpha.16](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.15...@arcjet/analyze-v1.0.0-alpha.16) (2024-06-14) - - -### ๐Ÿงน Miscellaneous Chores - -* **@arcjet/analyze:** Synchronize arcjet-js versions - - -### Dependencies - -* The following workspace dependencies were updated - * dependencies - * @arcjet/protocol bumped from 1.0.0-alpha.15 to 1.0.0-alpha.16 - * devDependencies - * @arcjet/eslint-config bumped from 1.0.0-alpha.15 to 1.0.0-alpha.16 - * @arcjet/rollup-config bumped from 1.0.0-alpha.15 to 1.0.0-alpha.16 - * @arcjet/tsconfig bumped from 1.0.0-alpha.15 to 1.0.0-alpha.16 - -## [1.0.0-alpha.15](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.14...@arcjet/analyze-v1.0.0-alpha.15) (2024-06-12) - - -### ๐Ÿงน Miscellaneous Chores - -* **@arcjet/analyze:** Synchronize arcjet-js versions - - -### Dependencies - -* The following workspace dependencies were updated - * dependencies - * @arcjet/protocol bumped from 1.0.0-alpha.14 to 1.0.0-alpha.15 - * devDependencies - * @arcjet/eslint-config bumped from 1.0.0-alpha.14 to 1.0.0-alpha.15 - * @arcjet/rollup-config bumped from 1.0.0-alpha.14 to 1.0.0-alpha.15 - * @arcjet/tsconfig bumped from 1.0.0-alpha.14 to 1.0.0-alpha.15 - -## [1.0.0-alpha.14](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.13...@arcjet/analyze-v1.0.0-alpha.14) (2024-06-10) - - -### โš  BREAKING CHANGES - -* **analyze:** Leverage conditional exports to load Wasm appropriately ([#887](https://github.com/arcjet/arcjet-js/issues/887)) -* **logger:** Align logger with Pino API ([#858](https://github.com/arcjet/arcjet-js/issues/858)) - -### ๐Ÿš€ New Features - -* **logger:** Align logger with Pino API ([#858](https://github.com/arcjet/arcjet-js/issues/858)) ([1806b94](https://github.com/arcjet/arcjet-js/commit/1806b94d7f7d0a7fd052e3121892d4dc1fdb719b)), closes [#822](https://github.com/arcjet/arcjet-js/issues/822) [#855](https://github.com/arcjet/arcjet-js/issues/855) - - -### ๐Ÿชฒ Bug Fixes - -* **analyze:** Disable cache during base64 decode ([#838](https://github.com/arcjet/arcjet-js/issues/838)) ([72fb961](https://github.com/arcjet/arcjet-js/commit/72fb9610aa2ead7bf26121bb793ec2086b8d4f70)) - - -### ๐Ÿ“ฆ Dependencies - -* **dev:** Bump @rollup/wasm-node from 4.17.2 to 4.18.0 ([#803](https://github.com/arcjet/arcjet-js/issues/803)) ([e6321af](https://github.com/arcjet/arcjet-js/commit/e6321afbad7127442d78b9c760c0e4c1ef73a77c)) - - -### ๐Ÿ“ Documentation - -* Add quick start links & update Bun example ([#870](https://github.com/arcjet/arcjet-js/issues/870)) ([ee3079f](https://github.com/arcjet/arcjet-js/commit/ee3079f21484ed3b5cf67ae03a45cb9d07b3d911)) -* Remove wording that implies is Shield is added by default ([#796](https://github.com/arcjet/arcjet-js/issues/796)) ([a85d18c](https://github.com/arcjet/arcjet-js/commit/a85d18ca6f6da589cfad58d3167b1c8a4b1edc55)) - - -### ๐Ÿงน Miscellaneous Chores - -* **analyze:** Leverage conditional exports to load Wasm appropriately ([#887](https://github.com/arcjet/arcjet-js/issues/887)) ([d7a698f](https://github.com/arcjet/arcjet-js/commit/d7a698f136e93dc927c0cb9a9a8c48d15ed48f83)) - - -### Dependencies - -* The following workspace dependencies were updated - * dependencies - * @arcjet/protocol bumped from 1.0.0-alpha.13 to 1.0.0-alpha.14 - * devDependencies - * @arcjet/eslint-config bumped from 1.0.0-alpha.13 to 1.0.0-alpha.14 - * @arcjet/rollup-config bumped from 1.0.0-alpha.13 to 1.0.0-alpha.14 - * @arcjet/tsconfig bumped from 1.0.0-alpha.13 to 1.0.0-alpha.14 - -## [1.0.0-alpha.13](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.12...@arcjet/analyze-v1.0.0-alpha.13) (2024-05-20) - - -### ๐Ÿชฒ Bug Fixes - -* **analyze:** Leverage string interpolation to import Wasm files on edge runtime ([#784](https://github.com/arcjet/arcjet-js/issues/784)) ([9b85908](https://github.com/arcjet/arcjet-js/commit/9b8590817091971581735c39406fe6cf40472e5b)) - - -### ๐Ÿ“ฆ Dependencies - -* **dev:** Bump @bytecodealliance/jco from 1.1.1 to 1.2.2 ([#707](https://github.com/arcjet/arcjet-js/issues/707)) ([39989b8](https://github.com/arcjet/arcjet-js/commit/39989b8278fa9329b4e2a2a6d3326b5f37e573e4)) -* **dev:** Bump @bytecodealliance/jco from 1.2.2 to 1.2.4 ([#725](https://github.com/arcjet/arcjet-js/issues/725)) ([7c43124](https://github.com/arcjet/arcjet-js/commit/7c431248ffc99e3a59688264ec4c2876ab113000)) -* **dev:** Bump @rollup/wasm-node from 4.14.3 to 4.17.2 ([#708](https://github.com/arcjet/arcjet-js/issues/708)) ([6e548bf](https://github.com/arcjet/arcjet-js/commit/6e548bf30743d06615dc9a0b46b3cbdabd6a89e4)) - - -### Dependencies - -* The following workspace dependencies were updated - * dependencies - * @arcjet/logger bumped from 1.0.0-alpha.12 to 1.0.0-alpha.13 - * devDependencies - * @arcjet/eslint-config bumped from 1.0.0-alpha.12 to 1.0.0-alpha.13 - * @arcjet/rollup-config bumped from 1.0.0-alpha.12 to 1.0.0-alpha.13 - * @arcjet/tsconfig bumped from 1.0.0-alpha.12 to 1.0.0-alpha.13 - -## [1.0.0-alpha.12](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.11...@arcjet/analyze-v1.0.0-alpha.12) (2024-04-18) - - -### ๐Ÿ“ฆ Dependencies - -* **dev:** Bump @rollup/wasm-node from 4.14.1 to 4.14.3 ([#597](https://github.com/arcjet/arcjet-js/issues/597)) ([598adf0](https://github.com/arcjet/arcjet-js/commit/598adf0b3d61b9e9bce046c7c3e8ddef2802a37c)) -* **dev:** Bump typescript from 5.4.4 to 5.4.5 ([#557](https://github.com/arcjet/arcjet-js/issues/557)) ([16af391](https://github.com/arcjet/arcjet-js/commit/16af3914d66f05eb3b0d79a9623d2c5ade52bddd)) - - -### Dependencies - -* The following workspace dependencies were updated - * dependencies - * @arcjet/logger bumped from 1.0.0-alpha.11 to 1.0.0-alpha.12 - * devDependencies - * @arcjet/eslint-config bumped from 1.0.0-alpha.11 to 1.0.0-alpha.12 - * @arcjet/rollup-config bumped from 1.0.0-alpha.11 to 1.0.0-alpha.12 - * @arcjet/tsconfig bumped from 1.0.0-alpha.11 to 1.0.0-alpha.12 - -## [1.0.0-alpha.11](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.10...@arcjet/analyze-v1.0.0-alpha.11) (2024-04-08) - - -### ๐Ÿ“ฆ Dependencies - -* **dev:** Bump @bytecodealliance/jco from 1.0.3 to 1.1.1 ([#473](https://github.com/arcjet/arcjet-js/issues/473)) ([4584fe4](https://github.com/arcjet/arcjet-js/commit/4584fe43af549d4ec42565276f2fcf64cfdf3e57)) -* **dev:** Bump @rollup/wasm-node from 4.13.0 to 4.13.2 ([#472](https://github.com/arcjet/arcjet-js/issues/472)) ([0268e51](https://github.com/arcjet/arcjet-js/commit/0268e51eb8967b2379014c1d16c65d1fbca13186)) -* **dev:** Bump @rollup/wasm-node from 4.13.2 to 4.14.0 ([#493](https://github.com/arcjet/arcjet-js/issues/493)) ([ac14f3f](https://github.com/arcjet/arcjet-js/commit/ac14f3fb12157f9b2306ce2e703f80c081dcd9bc)) -* **dev:** Bump @rollup/wasm-node from 4.14.0 to 4.14.1 ([#519](https://github.com/arcjet/arcjet-js/issues/519)) ([f859c0e](https://github.com/arcjet/arcjet-js/commit/f859c0eb071fcd83c68c8c94b60071217a600b3a)) -* **dev:** Bump typescript from 5.4.2 to 5.4.3 ([#412](https://github.com/arcjet/arcjet-js/issues/412)) ([a69b76b](https://github.com/arcjet/arcjet-js/commit/a69b76b011a58bad21dc0763661927003c6b2a2e)) -* **dev:** Bump typescript from 5.4.3 to 5.4.4 ([#509](https://github.com/arcjet/arcjet-js/issues/509)) ([8976fb1](https://github.com/arcjet/arcjet-js/commit/8976fb1b49f06b50b2a1d52b8a4619548993c737)) - - -### Dependencies - -* The following workspace dependencies were updated - * dependencies - * @arcjet/logger bumped from 1.0.0-alpha.10 to 1.0.0-alpha.11 - * devDependencies - * @arcjet/eslint-config bumped from 1.0.0-alpha.10 to 1.0.0-alpha.11 - * @arcjet/rollup-config bumped from 1.0.0-alpha.10 to 1.0.0-alpha.11 - * @arcjet/tsconfig bumped from 1.0.0-alpha.10 to 1.0.0-alpha.11 - -## [1.0.0-alpha.10](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.9...@arcjet/analyze-v1.0.0-alpha.10) (2024-03-13) - - -### ๐Ÿš€ New Features - -* **analyze:** Replace wasm-bindgen with jco generated bindings ([#334](https://github.com/arcjet/arcjet-js/issues/334)) ([48359ff](https://github.com/arcjet/arcjet-js/commit/48359ff986cc0ff4888fc2df6a89e9b6f9a5b697)) - - -### ๐Ÿ“ฆ Dependencies - -* **dev:** Bump @bytecodealliance/jco from 1.0.2 to 1.0.3 ([#365](https://github.com/arcjet/arcjet-js/issues/365)) ([bb1470e](https://github.com/arcjet/arcjet-js/commit/bb1470e2c4133501aafe685f76b65e09b19b4df2)) -* **dev:** Bump @rollup/wasm-node from 4.12.0 to 4.12.1 ([#320](https://github.com/arcjet/arcjet-js/issues/320)) ([7f07a8f](https://github.com/arcjet/arcjet-js/commit/7f07a8f78e2f2bf67ab0eba032eeb311704c4eee)) -* **dev:** Bump @rollup/wasm-node from 4.12.1 to 4.13.0 ([#359](https://github.com/arcjet/arcjet-js/issues/359)) ([8658316](https://github.com/arcjet/arcjet-js/commit/8658316b252f9224069d5c11b8fc6acb6681c90e)) -* **dev:** Bump typescript from 5.3.3 to 5.4.2 ([#321](https://github.com/arcjet/arcjet-js/issues/321)) ([e0c2914](https://github.com/arcjet/arcjet-js/commit/e0c2914ab868d4a3e571c959f4b00284bbbc3050)) - - -### ๐Ÿงน Miscellaneous Chores - -* **analyze:** Replace node import with crypto global ([#335](https://github.com/arcjet/arcjet-js/issues/335)) ([bcc27f2](https://github.com/arcjet/arcjet-js/commit/bcc27f26dc740914c15f7adc99c1ad845b9458ff)) - - -### Dependencies - -* The following workspace dependencies were updated - * dependencies - * @arcjet/logger bumped from 1.0.0-alpha.9 to 1.0.0-alpha.10 - * devDependencies - * @arcjet/eslint-config bumped from 1.0.0-alpha.9 to 1.0.0-alpha.10 - * @arcjet/rollup-config bumped from 1.0.0-alpha.9 to 1.0.0-alpha.10 - * @arcjet/tsconfig bumped from 1.0.0-alpha.9 to 1.0.0-alpha.10 - -## [1.0.0-alpha.9](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.8...@arcjet/analyze-v1.0.0-alpha.9) (2024-03-04) - - -### ๐Ÿ“ฆ Dependencies - -* **dev:** Bump @rollup/wasm-node from 4.10.0 to 4.12.0 ([#235](https://github.com/arcjet/arcjet-js/issues/235)) ([cf7ffc2](https://github.com/arcjet/arcjet-js/commit/cf7ffc2ae35d75884a04c88818f8c780ca7af223)) -* **dev:** Bump @rollup/wasm-node from 4.9.6 to 4.10.0 ([#223](https://github.com/arcjet/arcjet-js/issues/223)) ([47c24b4](https://github.com/arcjet/arcjet-js/commit/47c24b40a8419f1dabcf8607c90dfcb97f6a4195)) - - -### ๐Ÿงน Miscellaneous Chores - -* Add bugs and author info & update readme ([#254](https://github.com/arcjet/arcjet-js/issues/254)) ([9b0d2fc](https://github.com/arcjet/arcjet-js/commit/9b0d2fc674fdc1ddf9952b9a2ef3f5f3c860d41a)) - - -### Dependencies - -* The following workspace dependencies were updated - * dependencies - * @arcjet/logger bumped from 1.0.0-alpha.8 to 1.0.0-alpha.9 - * devDependencies - * @arcjet/eslint-config bumped from 1.0.0-alpha.8 to 1.0.0-alpha.9 - * @arcjet/rollup-config bumped from 1.0.0-alpha.8 to 1.0.0-alpha.9 - * @arcjet/tsconfig bumped from 1.0.0-alpha.8 to 1.0.0-alpha.9 - -## [1.0.0-alpha.8](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.7...@arcjet/analyze-v1.0.0-alpha.8) (2024-02-09) - - -### ๐Ÿ“ฆ Dependencies - -* **dev:** bump @rollup/wasm-node from 4.9.1 to 4.9.2 ([#97](https://github.com/arcjet/arcjet-js/issues/97)) ([eff4226](https://github.com/arcjet/arcjet-js/commit/eff4226ad0581dd7c5dff69bd3f259f058679f6e)) -* **dev:** bump @rollup/wasm-node from 4.9.2 to 4.9.4 ([#119](https://github.com/arcjet/arcjet-js/issues/119)) ([ec50b96](https://github.com/arcjet/arcjet-js/commit/ec50b96ed3e96735d80a8f556d5a1cd8a68287c5)) -* **dev:** bump @rollup/wasm-node from 4.9.4 to 4.9.5 ([#131](https://github.com/arcjet/arcjet-js/issues/131)) ([9fff856](https://github.com/arcjet/arcjet-js/commit/9fff856af1291bd05f7d5b6a02e007f5619e73c9)) -* **dev:** bump @rollup/wasm-node from 4.9.5 to 4.9.6 ([#152](https://github.com/arcjet/arcjet-js/issues/152)) ([3e54cff](https://github.com/arcjet/arcjet-js/commit/3e54cffa4419470fdfc52712a34a20b919189fc5)) - - -### ๐Ÿ“ Documentation - -* Update Arcjet description ([#122](https://github.com/arcjet/arcjet-js/issues/122)) ([c011bc2](https://github.com/arcjet/arcjet-js/commit/c011bc262159c8f09fadff381ea71f475fed0b16)) - - -### ๐Ÿงน Miscellaneous Chores - -* **analyze:** Regenerate WebAssembly and bindings ([#92](https://github.com/arcjet/arcjet-js/issues/92)) ([b10ce31](https://github.com/arcjet/arcjet-js/commit/b10ce310c3a0170000c362510e785d81506e5b88)) -* **rollup:** Externalize all imports that end with `.wasm?module` ([#217](https://github.com/arcjet/arcjet-js/issues/217)) ([ee6f387](https://github.com/arcjet/arcjet-js/commit/ee6f387d517eb78e974a92e7e39f60e7f1d3231c)) - - -### Dependencies - -* The following workspace dependencies were updated - * dependencies - * @arcjet/logger bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8 - * devDependencies - * @arcjet/eslint-config bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8 - * @arcjet/rollup-config bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8 - * @arcjet/tsconfig bumped from 1.0.0-alpha.7 to 1.0.0-alpha.8 - -## [1.0.0-alpha.7](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.6...@arcjet/analyze-v1.0.0-alpha.7) (2023-12-21) - - -### ๐Ÿ“ฆ Dependencies - -* **dev:** Bump the dev-dependencies group with 5 updates ([#82](https://github.com/arcjet/arcjet-js/issues/82)) ([a67be47](https://github.com/arcjet/arcjet-js/commit/a67be47b76e623f1aef6687f9dcc87de8eb2f1da)) - - -### Dependencies - -* The following workspace dependencies were updated - * dependencies - * @arcjet/logger bumped from 1.0.0-alpha.6 to 1.0.0-alpha.7 - * devDependencies - * @arcjet/eslint-config bumped from 1.0.0-alpha.6 to 1.0.0-alpha.7 - * @arcjet/rollup-config bumped from 1.0.0-alpha.6 to 1.0.0-alpha.7 - * @arcjet/tsconfig bumped from 1.0.0-alpha.6 to 1.0.0-alpha.7 - -## [1.0.0-alpha.6](https://github.com/arcjet/arcjet-js/compare/v1.0.0-alpha.5...@arcjet/analyze-v1.0.0-alpha.6) (2023-12-18) - - -### ๐Ÿงน Miscellaneous Chores - -* **deps-dev:** Bump the dev-dependencies group with 2 updates ([#55](https://github.com/arcjet/arcjet-js/issues/55)) ([94839f3](https://github.com/arcjet/arcjet-js/commit/94839f3105ab2be5f1e5cdf02278ca7cc24850c1)) - - -### Dependencies - -* The following workspace dependencies were updated - * dependencies - * @arcjet/logger bumped from 1.0.0-alpha.5 to 1.0.0-alpha.6 - * devDependencies - * @arcjet/eslint-config bumped from 1.0.0-alpha.5 to 1.0.0-alpha.6 - * @arcjet/rollup-config bumped from 1.0.0-alpha.5 to 1.0.0-alpha.6 - * @arcjet/tsconfig bumped from 1.0.0-alpha.5 to 1.0.0-alpha.6 diff --git a/analyze/package.json b/analyze/package.json index 52c8880a7..b5141d7a2 100644 --- a/analyze/package.json +++ b/analyze/package.json @@ -49,7 +49,6 @@ "@arcjet/eslint-config": "1.0.0-alpha.27", "@arcjet/rollup-config": "1.0.0-alpha.27", "@arcjet/tsconfig": "1.0.0-alpha.27", - "@bytecodealliance/jco": "1.5.0", "@jest/globals": "29.7.0", "@rollup/wasm-node": "4.24.0", "@types/node": "18.18.0", diff --git a/package-lock.json b/package-lock.json index 3e71709fa..8060504eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,6 @@ "@arcjet/eslint-config": "1.0.0-alpha.27", "@arcjet/rollup-config": "1.0.0-alpha.27", "@arcjet/tsconfig": "1.0.0-alpha.27", - "@bytecodealliance/jco": "1.5.0", "@jest/globals": "29.7.0", "@rollup/wasm-node": "4.24.0", "@types/node": "18.18.0", From fb35216986162288adfcbf362ed696762a6134fb Mon Sep 17 00:00:00 2001 From: Eoin Power-Moran <37004949+e-moran@users.noreply.github.com> Date: Fri, 13 Dec 2024 13:55:09 +0100 Subject: [PATCH 10/16] Apply suggestions from code review Co-authored-by: blaine-arcjet <146491715+blaine-arcjet@users.noreply.github.com> --- .github/release-please-config.json | 2 +- analyze-wasm/README.md | 8 ++++---- analyze-wasm/index.ts | 1 - analyze-wasm/package.json | 7 +++---- analyze/README.md | 2 +- 5 files changed, 9 insertions(+), 11 deletions(-) diff --git a/.github/release-please-config.json b/.github/release-please-config.json index 6dbd2f7d3..48a29ba33 100644 --- a/.github/release-please-config.json +++ b/.github/release-please-config.json @@ -33,7 +33,7 @@ "skip-github-release": true }, "analyze-wasm": { - "component": "@arcjet/analyze", + "component": "@arcjet/analyze-wasm", "skip-github-release": true }, "arcjet": { diff --git a/analyze-wasm/README.md b/analyze-wasm/README.md index 6ee5436ae..1ba194c9c 100644 --- a/analyze-wasm/README.md +++ b/analyze-wasm/README.md @@ -10,7 +10,7 @@

- + npm badge @@ -20,7 +20,7 @@ code. Implement rate limiting, bot protection, email verification, and defense against common attacks. -This is the [Arcjet][arcjet] local analysis engine WASM bindings +This package provides WebAssembly bindings to [Arcjet's][arcjet] local analysis engine. ## Installation @@ -31,9 +31,9 @@ npm install -S @arcjet/analyze-wasm ## Implementation This package provides analyze logic implemented as a WebAssembly module which -will run local analysis on request details before calling the Arcjet API. +will run local analysis on request details. -The [arcjet.wasm.js](./wasm/arcjet.wasm.js) file contains the binary inlined as +The `_virtual/arcjet_analyze_js_req.component.core.js` file contains the binary inlined as a base64 [Data URL][mdn-data-url] with the `application/wasm` MIME type. This was chosen to save on storage space over inlining the file directly as a diff --git a/analyze-wasm/index.ts b/analyze-wasm/index.ts index 638f67d23..3e1d93982 100644 --- a/analyze-wasm/index.ts +++ b/analyze-wasm/index.ts @@ -34,7 +34,6 @@ interface AnalyzeContext { type DetectSensitiveInfoFunction = typeof ArcjetJsReqSensitiveInformationIdentifier.detect; -// TODO: Do we actually need this wasmCache or does `import` cache correctly? const wasmCache = new Map(); async function moduleFromPath(path: string): Promise { diff --git a/analyze-wasm/package.json b/analyze-wasm/package.json index 32a93ba3a..b8974354c 100644 --- a/analyze-wasm/package.json +++ b/analyze-wasm/package.json @@ -1,7 +1,7 @@ { "name": "@arcjet/analyze-wasm", "version": "1.0.0-alpha.34", - "description": "Arcjet local analysis engine", + "description": "WebAssembly bindings to Arcjet's local analysis engine", "license": "Apache-2.0", "homepage": "https://arcjet.com", "repository": { @@ -45,7 +45,7 @@ "build": "npm run jco; rollup --config rollup.config.js", "lint": "eslint .", "pretest": "npm run build", - "test": "NODE_OPTIONS=--experimental-vm-modules jest --passWithNoTests" + "test": "node --test" }, "dependencies": { "@arcjet/protocol": "1.0.0-alpha.27" @@ -55,10 +55,9 @@ "@arcjet/rollup-config": "1.0.0-alpha.27", "@arcjet/tsconfig": "1.0.0-alpha.27", "@bytecodealliance/jco": "1.5.0", - "@jest/globals": "29.7.0", "@rollup/wasm-node": "4.23.0", "@types/node": "18.18.0", - "jest": "29.7.0", + "expect": "29.7.0", "typescript": "5.6.2" }, "publishConfig": { diff --git a/analyze/README.md b/analyze/README.md index b87785e99..77ce014cb 100644 --- a/analyze/README.md +++ b/analyze/README.md @@ -42,7 +42,7 @@ console.log("is email valid?", valid); ## Implementation -This package uses the wasm bindings provided by `@arcjet/analyze-wasm` to +This package uses the Wasm bindings provided by `@arcjet/analyze-wasm` to call various functions that are exported by our wasm bindings. We chose to put this logic in a separate package because we need to change the From dbbb981530591c881dbfea00951fb3c1e301319b Mon Sep 17 00:00:00 2001 From: Eoin Power-Moran <37004949+e-moran@users.noreply.github.com> Date: Fri, 13 Dec 2024 16:19:45 +0100 Subject: [PATCH 11/16] Apply suggestions from code review Co-authored-by: blaine-arcjet <146491715+blaine-arcjet@users.noreply.github.com> --- analyze-wasm/package.json | 2 +- analyze/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/analyze-wasm/package.json b/analyze-wasm/package.json index b8974354c..bf0548f80 100644 --- a/analyze-wasm/package.json +++ b/analyze-wasm/package.json @@ -7,7 +7,7 @@ "repository": { "type": "git", "url": "git+https://github.com/arcjet/arcjet-js.git", - "directory": "analyze" + "directory": "analyze-wasm" }, "bugs": { "url": "https://github.com/arcjet/arcjet-js/issues", diff --git a/analyze/package.json b/analyze/package.json index ec28466b7..fb225d354 100644 --- a/analyze/package.json +++ b/analyze/package.json @@ -7,7 +7,7 @@ "repository": { "type": "git", "url": "git+https://github.com/arcjet/arcjet-js.git", - "directory": "analyze-wasm" + "directory": "analyze" }, "bugs": { "url": "https://github.com/arcjet/arcjet-js/issues", From 2ed8f7cd0b250e61aa71a003f914f22933270f6d Mon Sep 17 00:00:00 2001 From: e-moran Date: Fri, 13 Dec 2024 16:20:08 +0100 Subject: [PATCH 12/16] pr suggestions --- analyze-wasm/edge-light.ts | 47 ++--------------------------- analyze-wasm/index.ts | 47 ++--------------------------- analyze-wasm/package.json | 3 -- analyze-wasm/workerd.ts | 47 ++--------------------------- analyze/index.ts | 60 +++++++++++++++++++++++++++++++++++--- package-lock.json | 29 +----------------- 6 files changed, 63 insertions(+), 170 deletions(-) diff --git a/analyze-wasm/edge-light.ts b/analyze-wasm/edge-light.ts index d25905873..0ee1e1a30 100644 --- a/analyze-wasm/edge-light.ts +++ b/analyze-wasm/edge-light.ts @@ -18,14 +18,6 @@ import componentCoreWasm from "./wasm/arcjet_analyze_js_req.component.core.wasm? import componentCore2Wasm from "./wasm/arcjet_analyze_js_req.component.core2.wasm?module"; import componentCore3Wasm from "./wasm/arcjet_analyze_js_req.component.core3.wasm?module"; -const FREE_EMAIL_PROVIDERS = [ - "gmail.com", - "yahoo.com", - "hotmail.com", - "aol.com", - "hotmail.co.uk", -]; - interface AnalyzeContext { log: ArcjetLogger; characteristics: string[]; @@ -48,48 +40,12 @@ async function moduleFromPath(path: string): Promise { throw new Error(`Unknown path: ${path}`); } -function noOpDetect(): SensitiveInfoEntity[] { - return []; -} - export async function initializeWasm( context: AnalyzeContext, - detect?: DetectSensitiveInfoFunction, + coreImports: ImportObject, ) { const { log } = context; - if (typeof detect !== "function") { - detect = noOpDetect; - } - - const coreImports: ImportObject = { - "arcjet:js-req/email-validator-overrides": { - isFreeEmail(domain) { - if (FREE_EMAIL_PROVIDERS.includes(domain)) { - return "yes"; - } - return "unknown"; - }, - isDisposableEmail() { - return "unknown"; - }, - hasMxRecords() { - return "unknown"; - }, - hasGravatar() { - return "unknown"; - }, - }, - "arcjet:js-req/sensitive-information-identifier": { - detect, - }, - "arcjet:js-req/verify-bot": { - verify() { - return "unverifiable"; - }, - }, - }; - try { // Await the instantiation to catch the failure return instantiate(moduleFromPath, coreImports); @@ -109,4 +65,5 @@ export { type SensitiveInfoResult, type SensitiveInfoEntities, type DetectSensitiveInfoFunction, + type ImportObject, }; diff --git a/analyze-wasm/index.ts b/analyze-wasm/index.ts index 3e1d93982..3fa419912 100644 --- a/analyze-wasm/index.ts +++ b/analyze-wasm/index.ts @@ -18,14 +18,6 @@ import { wasm as componentCoreWasm } from "./wasm/arcjet_analyze_js_req.componen import { wasm as componentCore2Wasm } from "./wasm/arcjet_analyze_js_req.component.core2.wasm?js"; import { wasm as componentCore3Wasm } from "./wasm/arcjet_analyze_js_req.component.core3.wasm?js"; -const FREE_EMAIL_PROVIDERS = [ - "gmail.com", - "yahoo.com", - "hotmail.com", - "aol.com", - "hotmail.co.uk", -]; - interface AnalyzeContext { log: ArcjetLogger; characteristics: string[]; @@ -61,48 +53,12 @@ async function moduleFromPath(path: string): Promise { throw new Error(`Unknown path: ${path}`); } -function noOpDetect(): SensitiveInfoEntity[] { - return []; -} - export async function initializeWasm( context: AnalyzeContext, - detect?: DetectSensitiveInfoFunction, + coreImports: ImportObject, ) { const { log } = context; - if (typeof detect !== "function") { - detect = noOpDetect; - } - - const coreImports: ImportObject = { - "arcjet:js-req/email-validator-overrides": { - isFreeEmail(domain) { - if (FREE_EMAIL_PROVIDERS.includes(domain)) { - return "yes"; - } - return "unknown"; - }, - isDisposableEmail() { - return "unknown"; - }, - hasMxRecords() { - return "unknown"; - }, - hasGravatar() { - return "unknown"; - }, - }, - "arcjet:js-req/sensitive-information-identifier": { - detect, - }, - "arcjet:js-req/verify-bot": { - verify() { - return "unverifiable"; - }, - }, - }; - try { // Await the instantiation to catch the failure return instantiate(moduleFromPath, coreImports); @@ -122,4 +78,5 @@ export { type SensitiveInfoResult, type SensitiveInfoEntities, type DetectSensitiveInfoFunction, + type ImportObject, }; diff --git a/analyze-wasm/package.json b/analyze-wasm/package.json index b8974354c..6f820aa6d 100644 --- a/analyze-wasm/package.json +++ b/analyze-wasm/package.json @@ -47,9 +47,6 @@ "pretest": "npm run build", "test": "node --test" }, - "dependencies": { - "@arcjet/protocol": "1.0.0-alpha.27" - }, "devDependencies": { "@arcjet/eslint-config": "1.0.0-alpha.27", "@arcjet/rollup-config": "1.0.0-alpha.27", diff --git a/analyze-wasm/workerd.ts b/analyze-wasm/workerd.ts index ceb4c6f01..8987fbd5f 100644 --- a/analyze-wasm/workerd.ts +++ b/analyze-wasm/workerd.ts @@ -18,14 +18,6 @@ import componentCoreWasm from "./wasm/arcjet_analyze_js_req.component.core.wasm" import componentCore2Wasm from "./wasm/arcjet_analyze_js_req.component.core2.wasm"; import componentCore3Wasm from "./wasm/arcjet_analyze_js_req.component.core3.wasm"; -const FREE_EMAIL_PROVIDERS = [ - "gmail.com", - "yahoo.com", - "hotmail.com", - "aol.com", - "hotmail.co.uk", -]; - interface AnalyzeContext { log: ArcjetLogger; characteristics: string[]; @@ -48,48 +40,12 @@ async function moduleFromPath(path: string): Promise { throw new Error(`Unknown path: ${path}`); } -function noOpDetect(): SensitiveInfoEntity[] { - return []; -} - export async function initializeWasm( context: AnalyzeContext, - detect?: DetectSensitiveInfoFunction, + coreImports: ImportObject, ) { const { log } = context; - if (typeof detect !== "function") { - detect = noOpDetect; - } - - const coreImports: ImportObject = { - "arcjet:js-req/email-validator-overrides": { - isFreeEmail(domain) { - if (FREE_EMAIL_PROVIDERS.includes(domain)) { - return "yes"; - } - return "unknown"; - }, - isDisposableEmail() { - return "unknown"; - }, - hasMxRecords() { - return "unknown"; - }, - hasGravatar() { - return "unknown"; - }, - }, - "arcjet:js-req/sensitive-information-identifier": { - detect, - }, - "arcjet:js-req/verify-bot": { - verify() { - return "unverifiable"; - }, - }, - }; - try { // Await the instantiation to catch the failure return instantiate(moduleFromPath, coreImports); @@ -109,4 +65,5 @@ export { type SensitiveInfoResult, type SensitiveInfoEntities, type DetectSensitiveInfoFunction, + type ImportObject, }; diff --git a/analyze/index.ts b/analyze/index.ts index 2869d31a4..8f3d21c55 100644 --- a/analyze/index.ts +++ b/analyze/index.ts @@ -11,6 +11,8 @@ import type { SensitiveInfoEntity, SensitiveInfoResult, } from "@arcjet/analyze-wasm"; +import type { ImportObject } from "@arcjet/analyze-wasm/wasm/arcjet_analyze_js_req.component"; +import { create } from "domain"; type AnalyzeRequest = { ip?: string; @@ -31,6 +33,52 @@ export { type DetectedSensitiveInfoEntity, }; +const FREE_EMAIL_PROVIDERS = [ + "gmail.com", + "yahoo.com", + "hotmail.com", + "aol.com", + "hotmail.co.uk", +]; + +function noOpDetect(): SensitiveInfoEntity[] { + return []; +} + +function createCoreImports(detect?: DetectSensitiveInfoFunction): ImportObject { + if (typeof detect !== "function") { + detect = noOpDetect; + } + + return { + "arcjet:js-req/email-validator-overrides": { + isFreeEmail(domain) { + if (FREE_EMAIL_PROVIDERS.includes(domain)) { + return "yes"; + } + return "unknown"; + }, + isDisposableEmail() { + return "unknown"; + }, + hasMxRecords() { + return "unknown"; + }, + hasGravatar() { + return "unknown"; + }, + }, + "arcjet:js-req/sensitive-information-identifier": { + detect, + }, + "arcjet:js-req/verify-bot": { + verify() { + return "unverifiable"; + }, + }, + }; +} + /** * Generate a fingerprint for the client. This is used to identify the client * across multiple requests. @@ -42,7 +90,8 @@ export async function generateFingerprint( context: AnalyzeContext, request: AnalyzeRequest, ): Promise { - const analyze = await initializeWasm(context); + const coreImports = createCoreImports(); + const analyze = await initializeWasm(context, coreImports); if (typeof analyze !== "undefined") { return analyze.generateFingerprint( @@ -59,7 +108,8 @@ export async function isValidEmail( candidate: string, options?: EmailValidationConfig, ): Promise { - const analyze = await initializeWasm(context); + const coreImports = createCoreImports(); + const analyze = await initializeWasm(context, coreImports); const optionsOrDefault = { requireTopLevelDomain: true, allowDomainLiteral: false, @@ -83,7 +133,8 @@ export async function detectBot( request: AnalyzeRequest, options: BotConfig, ): Promise { - const analyze = await initializeWasm(context); + const coreImports = createCoreImports(); + const analyze = await initializeWasm(context, coreImports); if (typeof analyze !== "undefined") { return analyze.detectBot(JSON.stringify(request), options); @@ -105,7 +156,8 @@ export async function detectSensitiveInfo( contextWindowSize: number, detect?: DetectSensitiveInfoFunction, ): Promise { - const analyze = await initializeWasm(context, detect); + const coreImports = createCoreImports(detect); + const analyze = await initializeWasm(context, coreImports); if (typeof analyze !== "undefined") { const skipCustomDetect = typeof detect !== "function"; diff --git a/package-lock.json b/package-lock.json index d7afd7ae0..86b43e975 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,18 +44,14 @@ "name": "@arcjet/analyze-wasm", "version": "1.0.0-alpha.34", "license": "Apache-2.0", - "dependencies": { - "@arcjet/protocol": "1.0.0-alpha.27" - }, "devDependencies": { "@arcjet/eslint-config": "1.0.0-alpha.27", "@arcjet/rollup-config": "1.0.0-alpha.27", "@arcjet/tsconfig": "1.0.0-alpha.27", "@bytecodealliance/jco": "1.5.0", - "@jest/globals": "29.7.0", "@rollup/wasm-node": "4.23.0", "@types/node": "18.18.0", - "jest": "29.7.0", + "expect": "29.7.0", "typescript": "5.6.2" }, "engines": { @@ -81,20 +77,6 @@ "eslint": "^8" } }, - "analyze-wasm/node_modules/@arcjet/protocol": { - "version": "1.0.0-alpha.27", - "resolved": "https://registry.npmjs.org/@arcjet/protocol/-/protocol-1.0.0-alpha.27.tgz", - "integrity": "sha512-nbt4/gEIrgzTqILQVzSOW8Ns8cLz6q7wr0DxcQoqnkBoQP9kPGjHn868IxZb8Yjt2k2PeueLNxV4RD+bpY+j+Q==", - "license": "Apache-2.0", - "dependencies": { - "@bufbuild/protobuf": "1.10.0", - "@connectrpc/connect": "1.5.0", - "typeid-js": "1.1.0" - }, - "engines": { - "node": ">=18" - } - }, "analyze-wasm/node_modules/@arcjet/rollup-config": { "version": "1.0.0-alpha.27", "resolved": "https://registry.npmjs.org/@arcjet/rollup-config/-/rollup-config-1.0.0-alpha.27.tgz", @@ -125,15 +107,6 @@ "typescript": "^5" } }, - "analyze-wasm/node_modules/@connectrpc/connect": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@connectrpc/connect/-/connect-1.5.0.tgz", - "integrity": "sha512-1gGg0M6c2Y3lnr5itis9dNj9r8hbOIuBMqoGSbUy7L7Vjw4MAttjJzJfj9HCDgytGCJkGanYEYI6MQVDijdVQw==", - "license": "Apache-2.0", - "peerDependencies": { - "@bufbuild/protobuf": "^1.10.0" - } - }, "analyze-wasm/node_modules/@rollup/plugin-typescript": { "version": "12.1.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.1.0.tgz", From 1578e3d192c4b846daea695e088108a32ea74209 Mon Sep 17 00:00:00 2001 From: e-moran Date: Fri, 13 Dec 2024 16:32:24 +0100 Subject: [PATCH 13/16] sync deps --- analyze-wasm/CHANGELOG.md | 2 -- analyze-wasm/package.json | 10 +++++----- analyze/package.json | 2 +- package-lock.json | 16 +--------------- 4 files changed, 7 insertions(+), 23 deletions(-) delete mode 100644 analyze-wasm/CHANGELOG.md diff --git a/analyze-wasm/CHANGELOG.md b/analyze-wasm/CHANGELOG.md deleted file mode 100644 index 4dc68c6ff..000000000 --- a/analyze-wasm/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Changelog - diff --git a/analyze-wasm/package.json b/analyze-wasm/package.json index 7408cf77d..3792e2c56 100644 --- a/analyze-wasm/package.json +++ b/analyze-wasm/package.json @@ -48,14 +48,14 @@ "test": "node --test" }, "devDependencies": { - "@arcjet/eslint-config": "1.0.0-alpha.27", - "@arcjet/rollup-config": "1.0.0-alpha.27", - "@arcjet/tsconfig": "1.0.0-alpha.27", + "@arcjet/eslint-config": "1.0.0-alpha.34", + "@arcjet/rollup-config": "1.0.0-alpha.34", + "@arcjet/tsconfig": "1.0.0-alpha.34", "@bytecodealliance/jco": "1.5.0", - "@rollup/wasm-node": "4.23.0", + "@rollup/wasm-node": "4.28.1", "@types/node": "18.18.0", "expect": "29.7.0", - "typescript": "5.6.2" + "typescript": "5.7.2" }, "publishConfig": { "access": "public", diff --git a/analyze/package.json b/analyze/package.json index 22d5d525f..1bcf30474 100644 --- a/analyze/package.json +++ b/analyze/package.json @@ -42,7 +42,7 @@ }, "dependencies": { "@arcjet/analyze-wasm": "1.0.0-alpha.34", - "@arcjet/protocol": "1.0.0-alpha.27" + "@arcjet/protocol": "1.0.0-alpha.34" }, "devDependencies": { "@arcjet/eslint-config": "1.0.0-alpha.34", diff --git a/package-lock.json b/package-lock.json index 3a7d6e342..dc453e58b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "license": "Apache-2.0", "dependencies": { "@arcjet/analyze-wasm": "1.0.0-alpha.34", - "@arcjet/protocol": "1.0.0-alpha.27" + "@arcjet/protocol": "1.0.0-alpha.34" }, "devDependencies": { "@arcjet/eslint-config": "1.0.0-alpha.34", @@ -412,20 +412,6 @@ "node": ">=14.17" } }, - "analyze/node_modules/@arcjet/protocol": { - "version": "1.0.0-alpha.27", - "resolved": "https://registry.npmjs.org/@arcjet/protocol/-/protocol-1.0.0-alpha.27.tgz", - "integrity": "sha512-nbt4/gEIrgzTqILQVzSOW8Ns8cLz6q7wr0DxcQoqnkBoQP9kPGjHn868IxZb8Yjt2k2PeueLNxV4RD+bpY+j+Q==", - "license": "Apache-2.0", - "dependencies": { - "@bufbuild/protobuf": "1.10.0", - "@connectrpc/connect": "1.5.0", - "typeid-js": "1.1.0" - }, - "engines": { - "node": ">=18" - } - }, "analyze/node_modules/@connectrpc/connect": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@connectrpc/connect/-/connect-1.5.0.tgz", From d1bf29ac4cc02a4b238c441b1b3e9d98487aa43b Mon Sep 17 00:00:00 2001 From: e-moran Date: Fri, 13 Dec 2024 16:48:47 +0100 Subject: [PATCH 14/16] move log --- analyze-wasm/edge-light.ts | 5 +- analyze-wasm/index.ts | 9 +- analyze-wasm/workerd.ts | 9 +- analyze/README.md | 5 +- analyze/index.ts | 18 +- package-lock.json | 408 +------------------------------------ 6 files changed, 25 insertions(+), 429 deletions(-) diff --git a/analyze-wasm/edge-light.ts b/analyze-wasm/edge-light.ts index 0ee1e1a30..a6ecadf97 100644 --- a/analyze-wasm/edge-light.ts +++ b/analyze-wasm/edge-light.ts @@ -44,13 +44,10 @@ export async function initializeWasm( context: AnalyzeContext, coreImports: ImportObject, ) { - const { log } = context; - try { - // Await the instantiation to catch the failure return instantiate(moduleFromPath, coreImports); } catch { - log.debug("WebAssembly is not supported in this runtime"); + return undefined; } } diff --git a/analyze-wasm/index.ts b/analyze-wasm/index.ts index 3fa419912..ca9276e8e 100644 --- a/analyze-wasm/index.ts +++ b/analyze-wasm/index.ts @@ -53,17 +53,12 @@ async function moduleFromPath(path: string): Promise { throw new Error(`Unknown path: ${path}`); } -export async function initializeWasm( - context: AnalyzeContext, - coreImports: ImportObject, -) { - const { log } = context; - +export async function initializeWasm(coreImports: ImportObject) { try { // Await the instantiation to catch the failure return instantiate(moduleFromPath, coreImports); } catch { - log.debug("WebAssembly is not supported in this runtime"); + return undefined; } } diff --git a/analyze-wasm/workerd.ts b/analyze-wasm/workerd.ts index 8987fbd5f..66e18cfa5 100644 --- a/analyze-wasm/workerd.ts +++ b/analyze-wasm/workerd.ts @@ -40,17 +40,12 @@ async function moduleFromPath(path: string): Promise { throw new Error(`Unknown path: ${path}`); } -export async function initializeWasm( - context: AnalyzeContext, - coreImports: ImportObject, -) { - const { log } = context; - +export async function initializeWasm(coreImports: ImportObject) { try { // Await the instantiation to catch the failure return instantiate(moduleFromPath, coreImports); } catch { - log.debug("WebAssembly is not supported in this runtime"); + return undefined; } } diff --git a/analyze/README.md b/analyze/README.md index 77ce014cb..b97d5aa58 100644 --- a/analyze/README.md +++ b/analyze/README.md @@ -47,13 +47,12 @@ call various functions that are exported by our wasm bindings. We chose to put this logic in a separate package because we need to change the import structure for each runtime that we support in the wasm bindings. Moving -this to a separate package allows us not to have to duplicate code. +this to a separate package allows us not to have to duplicate code while providing +a combined higher-level api for calling our core functionality in Wasm. ## License Licensed under the [Apache License, Version 2.0][apache-license]. [arcjet]: https://arcjet.com -[mdn-data-url]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs -[wasm-base64-blog]: https://blobfolio.com/2019/better-binary-batter-mixing-base64-and-uint8array/ [apache-license]: http://www.apache.org/licenses/LICENSE-2.0 diff --git a/analyze/index.ts b/analyze/index.ts index 8f3d21c55..572aedafd 100644 --- a/analyze/index.ts +++ b/analyze/index.ts @@ -12,7 +12,6 @@ import type { SensitiveInfoResult, } from "@arcjet/analyze-wasm"; import type { ImportObject } from "@arcjet/analyze-wasm/wasm/arcjet_analyze_js_req.component"; -import { create } from "domain"; type AnalyzeRequest = { ip?: string; @@ -90,14 +89,17 @@ export async function generateFingerprint( context: AnalyzeContext, request: AnalyzeRequest, ): Promise { + const { log } = context; const coreImports = createCoreImports(); - const analyze = await initializeWasm(context, coreImports); + const analyze = await initializeWasm(coreImports); if (typeof analyze !== "undefined") { return analyze.generateFingerprint( JSON.stringify(request), context.characteristics, ); + } else { + log.debug("WebAssembly is not supported in this runtime"); } return ""; @@ -108,8 +110,9 @@ export async function isValidEmail( candidate: string, options?: EmailValidationConfig, ): Promise { + const { log } = context; const coreImports = createCoreImports(); - const analyze = await initializeWasm(context, coreImports); + const analyze = await initializeWasm(coreImports); const optionsOrDefault = { requireTopLevelDomain: true, allowDomainLiteral: false, @@ -120,6 +123,7 @@ export async function isValidEmail( if (typeof analyze !== "undefined") { return analyze.isValidEmail(candidate, optionsOrDefault); } else { + log.debug("WebAssembly is not supported in this runtime"); // Skip the local evaluation of the rule if WASM is not available return { validity: "valid", @@ -133,12 +137,14 @@ export async function detectBot( request: AnalyzeRequest, options: BotConfig, ): Promise { + const { log } = context; const coreImports = createCoreImports(); - const analyze = await initializeWasm(context, coreImports); + const analyze = await initializeWasm(coreImports); if (typeof analyze !== "undefined") { return analyze.detectBot(JSON.stringify(request), options); } else { + log.debug("WebAssembly is not supported in this runtime"); // Skip the local evaluation of the rule if Wasm is not available return { allowed: [], @@ -156,8 +162,9 @@ export async function detectSensitiveInfo( contextWindowSize: number, detect?: DetectSensitiveInfoFunction, ): Promise { + const { log } = context; const coreImports = createCoreImports(detect); - const analyze = await initializeWasm(context, coreImports); + const analyze = await initializeWasm(coreImports); if (typeof analyze !== "undefined") { const skipCustomDetect = typeof detect !== "function"; @@ -167,6 +174,7 @@ export async function detectSensitiveInfo( skipCustomDetect, }); } else { + log.debug("WebAssembly is not supported in this runtime"); throw new Error( "SENSITIVE_INFO rule failed to run because Wasm is not supported in this environment.", ); diff --git a/package-lock.json b/package-lock.json index dc453e58b..6e0f472c8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,93 +44,17 @@ "version": "1.0.0-alpha.34", "license": "Apache-2.0", "devDependencies": { - "@arcjet/eslint-config": "1.0.0-alpha.27", - "@arcjet/rollup-config": "1.0.0-alpha.27", - "@arcjet/tsconfig": "1.0.0-alpha.27", + "@arcjet/eslint-config": "1.0.0-alpha.34", + "@arcjet/rollup-config": "1.0.0-alpha.34", + "@arcjet/tsconfig": "1.0.0-alpha.34", "@bytecodealliance/jco": "1.5.0", - "@rollup/wasm-node": "4.23.0", + "@rollup/wasm-node": "4.28.1", "@types/node": "18.18.0", "expect": "29.7.0", - "typescript": "5.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "analyze-wasm/node_modules/@arcjet/eslint-config": { - "version": "1.0.0-alpha.27", - "resolved": "https://registry.npmjs.org/@arcjet/eslint-config/-/eslint-config-1.0.0-alpha.27.tgz", - "integrity": "sha512-iTCH8ycuQYa7LrTatNYwr23mlpQyGu78thwbXknAZ3r/An6ENHu1sSPJBrc5abnAU+fu1TKRBEOoPmeVp+QT+w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@typescript-eslint/eslint-plugin": "7.18.0", - "@typescript-eslint/parser": "7.18.0", - "eslint-config-prettier": "9.1.0", - "eslint-config-turbo": "2.1.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "eslint": "^8" - } - }, - "analyze-wasm/node_modules/@arcjet/rollup-config": { - "version": "1.0.0-alpha.27", - "resolved": "https://registry.npmjs.org/@arcjet/rollup-config/-/rollup-config-1.0.0-alpha.27.tgz", - "integrity": "sha512-w5gyxzRarl+MFsOmeISyV3DD/7JVDzwx103FtZiiA9JA6MsQHGsYwyWKz2slPZpxdsoi+BvHoqHUneBbX/+OYg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@rollup/plugin-replace": "6.0.1", - "@rollup/plugin-typescript": "12.1.0" - }, - "engines": { - "node": ">=18" + "typescript": "5.7.2" }, - "peerDependencies": { - "@rollup/wasm-node": "^4" - } - }, - "analyze-wasm/node_modules/@arcjet/tsconfig": { - "version": "1.0.0-alpha.27", - "resolved": "https://registry.npmjs.org/@arcjet/tsconfig/-/tsconfig-1.0.0-alpha.27.tgz", - "integrity": "sha512-5z8Mzyp3FEnWIlxlLDq4rFDjIsWqIww4XylEWc7H310Mgs1iBSZngLgsb5O+0nSuvefcKxCQmYwxGXTbpc5gug==", - "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=18" - }, - "peerDependencies": { - "typescript": "^5" - } - }, - "analyze-wasm/node_modules/@rollup/plugin-typescript": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.1.0.tgz", - "integrity": "sha512-Kzs8KGJofe7cfTRODsnG1jNGxSvU8gVoNNd7Z/QaY25AYwe2LSSUpx/kPxqF38NYkpR8de3m51r9uwJpDlz6dg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.1.0", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.14.0||^3.0.0||^4.0.0", - "tslib": "*", - "typescript": ">=3.7.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - }, - "tslib": { - "optional": true - } } }, "analyze-wasm/node_modules/@rollup/wasm-node": { @@ -153,274 +77,6 @@ "fsevents": "~2.3.2" } }, - "analyze-wasm/node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", - "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/type-utils": "7.18.0", - "@typescript-eslint/utils": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "analyze-wasm/node_modules/@typescript-eslint/parser": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", - "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "analyze-wasm/node_modules/@typescript-eslint/scope-manager": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", - "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "analyze-wasm/node_modules/@typescript-eslint/type-utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", - "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/utils": "7.18.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "analyze-wasm/node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "analyze-wasm/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", - "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "analyze-wasm/node_modules/@typescript-eslint/utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", - "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - } - }, - "analyze-wasm/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", - "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "analyze-wasm/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "analyze-wasm/node_modules/eslint-config-turbo": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/eslint-config-turbo/-/eslint-config-turbo-2.1.3.tgz", - "integrity": "sha512-smdkhd01V/e/I4EjJxaZA1kxZ1vdFCHpyryolxLtRBP0bZTrHDYh1H6NAyZ3Fy1jkhsQzXw+L+6m17ygROvNFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-plugin-turbo": "2.1.3" - }, - "peerDependencies": { - "eslint": ">6.6.0" - } - }, - "analyze-wasm/node_modules/eslint-config-turbo/node_modules/eslint-plugin-turbo": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-turbo/-/eslint-plugin-turbo-2.1.3.tgz", - "integrity": "sha512-I9vPArzyOSYa6bm0iMCgD07MgdExc1VK2wGuVz21g4BUdj83w7mDKyCXR2rwOtCEW+wemFwgxanJ81imQZijNg==", - "dev": true, - "license": "MIT", - "dependencies": { - "dotenv": "16.0.3" - }, - "peerDependencies": { - "eslint": ">6.6.0" - } - }, - "analyze-wasm/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "analyze-wasm/node_modules/typescript": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", - "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "analyze/node_modules/@connectrpc/connect": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@connectrpc/connect/-/connect-1.5.0.tgz", - "integrity": "sha512-1gGg0M6c2Y3lnr5itis9dNj9r8hbOIuBMqoGSbUy7L7Vjw4MAttjJzJfj9HCDgytGCJkGanYEYI6MQVDijdVQw==", - "license": "Apache-2.0", - "peerDependencies": { - "@bufbuild/protobuf": "^1.10.0" - } - }, "arcjet": { "version": "1.0.0-alpha.34", "license": "Apache-2.0", @@ -2956,16 +2612,6 @@ "node": ">= 0.4" } }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/axobject-query": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", @@ -3320,19 +2966,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -3816,27 +3449,6 @@ "dev": true, "license": "MIT" }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/globrex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", @@ -4642,16 +4254,6 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", From bd773ee55028abb4cf1feb971e407c23fd44cbdd Mon Sep 17 00:00:00 2001 From: e-moran Date: Fri, 13 Dec 2024 17:03:41 +0100 Subject: [PATCH 15/16] fix: reorganise imports --- analyze-wasm/edge-light.ts | 13 +------------ analyze-wasm/index.ts | 8 -------- analyze-wasm/package.json | 1 + analyze-wasm/workerd.ts | 8 -------- analyze/index.ts | 9 +++++++-- package-lock.json | 20 -------------------- 6 files changed, 9 insertions(+), 50 deletions(-) diff --git a/analyze-wasm/edge-light.ts b/analyze-wasm/edge-light.ts index a6ecadf97..a00bd9f42 100644 --- a/analyze-wasm/edge-light.ts +++ b/analyze-wasm/edge-light.ts @@ -1,5 +1,3 @@ -import type { ArcjetLogger } from "@arcjet/protocol"; - import { instantiate } from "./wasm/arcjet_analyze_js_req.component.js"; import type { ImportObject, @@ -18,11 +16,6 @@ import componentCoreWasm from "./wasm/arcjet_analyze_js_req.component.core.wasm? import componentCore2Wasm from "./wasm/arcjet_analyze_js_req.component.core2.wasm?module"; import componentCore3Wasm from "./wasm/arcjet_analyze_js_req.component.core3.wasm?module"; -interface AnalyzeContext { - log: ArcjetLogger; - characteristics: string[]; -} - type DetectSensitiveInfoFunction = typeof ArcjetJsReqSensitiveInformationIdentifier.detect; @@ -40,10 +33,7 @@ async function moduleFromPath(path: string): Promise { throw new Error(`Unknown path: ${path}`); } -export async function initializeWasm( - context: AnalyzeContext, - coreImports: ImportObject, -) { +export async function initializeWasm(coreImports: ImportObject) { try { return instantiate(moduleFromPath, coreImports); } catch { @@ -52,7 +42,6 @@ export async function initializeWasm( } export { - type AnalyzeContext, type BotConfig, type DetectedSensitiveInfoEntity, type SensitiveInfoEntity, diff --git a/analyze-wasm/index.ts b/analyze-wasm/index.ts index ca9276e8e..6a8b30bf5 100644 --- a/analyze-wasm/index.ts +++ b/analyze-wasm/index.ts @@ -1,5 +1,3 @@ -import type { ArcjetLogger } from "@arcjet/protocol"; - import { instantiate } from "./wasm/arcjet_analyze_js_req.component.js"; import type { ImportObject, @@ -18,11 +16,6 @@ import { wasm as componentCoreWasm } from "./wasm/arcjet_analyze_js_req.componen import { wasm as componentCore2Wasm } from "./wasm/arcjet_analyze_js_req.component.core2.wasm?js"; import { wasm as componentCore3Wasm } from "./wasm/arcjet_analyze_js_req.component.core3.wasm?js"; -interface AnalyzeContext { - log: ArcjetLogger; - characteristics: string[]; -} - type DetectSensitiveInfoFunction = typeof ArcjetJsReqSensitiveInformationIdentifier.detect; @@ -63,7 +56,6 @@ export async function initializeWasm(coreImports: ImportObject) { } export { - type AnalyzeContext, type BotConfig, type DetectedSensitiveInfoEntity, type SensitiveInfoEntity, diff --git a/analyze-wasm/package.json b/analyze-wasm/package.json index 3792e2c56..f7053a477 100644 --- a/analyze-wasm/package.json +++ b/analyze-wasm/package.json @@ -47,6 +47,7 @@ "pretest": "npm run build", "test": "node --test" }, + "dependencies": {}, "devDependencies": { "@arcjet/eslint-config": "1.0.0-alpha.34", "@arcjet/rollup-config": "1.0.0-alpha.34", diff --git a/analyze-wasm/workerd.ts b/analyze-wasm/workerd.ts index 66e18cfa5..a7cb70f91 100644 --- a/analyze-wasm/workerd.ts +++ b/analyze-wasm/workerd.ts @@ -1,5 +1,3 @@ -import type { ArcjetLogger } from "@arcjet/protocol"; - import { instantiate } from "./wasm/arcjet_analyze_js_req.component.js"; import type { ImportObject, @@ -18,11 +16,6 @@ import componentCoreWasm from "./wasm/arcjet_analyze_js_req.component.core.wasm" import componentCore2Wasm from "./wasm/arcjet_analyze_js_req.component.core2.wasm"; import componentCore3Wasm from "./wasm/arcjet_analyze_js_req.component.core3.wasm"; -interface AnalyzeContext { - log: ArcjetLogger; - characteristics: string[]; -} - type DetectSensitiveInfoFunction = typeof ArcjetJsReqSensitiveInformationIdentifier.detect; @@ -50,7 +43,6 @@ export async function initializeWasm(coreImports: ImportObject) { } export { - type AnalyzeContext, type BotConfig, type DetectedSensitiveInfoEntity, type SensitiveInfoEntity, diff --git a/analyze/index.ts b/analyze/index.ts index 572aedafd..4fa8608dc 100644 --- a/analyze/index.ts +++ b/analyze/index.ts @@ -1,6 +1,5 @@ import { initializeWasm } from "@arcjet/analyze-wasm"; import type { - AnalyzeContext, BotConfig, BotResult, DetectedSensitiveInfoEntity, @@ -10,8 +9,14 @@ import type { SensitiveInfoEntities, SensitiveInfoEntity, SensitiveInfoResult, + ImportObject, } from "@arcjet/analyze-wasm"; -import type { ImportObject } from "@arcjet/analyze-wasm/wasm/arcjet_analyze_js_req.component"; +import type { ArcjetLogger } from "@arcjet/protocol"; + +interface AnalyzeContext { + log: ArcjetLogger; + characteristics: string[]; +} type AnalyzeRequest = { ip?: string; diff --git a/package-lock.json b/package-lock.json index 6e0f472c8..fb2a95041 100644 --- a/package-lock.json +++ b/package-lock.json @@ -57,26 +57,6 @@ "node": ">=18" } }, - "analyze-wasm/node_modules/@rollup/wasm-node": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/@rollup/wasm-node/-/wasm-node-4.23.0.tgz", - "integrity": "sha512-jEeXqGlX+FpWml3/A15rv1mgNqhY5dyvtX8U5w2ff0p5PkxIjU1Y/GABHEjkoE7EF29ayGBtKR6kUZ+JELtjyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "arcjet": { "version": "1.0.0-alpha.34", "license": "Apache-2.0", From 8e86fb680c3891e0052ead4989a3620c3d1f0499 Mon Sep 17 00:00:00 2001 From: e-moran Date: Fri, 13 Dec 2024 17:47:27 +0100 Subject: [PATCH 16/16] regen wasm --- .../arcjet_analyze_js_req.component.core.wasm | Bin 2385105 -> 2386263 bytes .../wasm/arcjet_analyze_js_req.component.wasm | Bin 2388456 -> 2389614 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/analyze-wasm/wasm/arcjet_analyze_js_req.component.core.wasm b/analyze-wasm/wasm/arcjet_analyze_js_req.component.core.wasm index cc4b24d781fce0fccf247160768065da619e7bbc..969d04b3509819634290c2085e4850e116547f1b 100644 GIT binary patch delta 273250 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%0AUAw=KUo*)qJJ= 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

ZpmK^9DiJe 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 diff --git a/analyze-wasm/wasm/arcjet_analyze_js_req.component.wasm b/analyze-wasm/wasm/arcjet_analyze_js_req.component.wasm index d67c9e7b219503119de8d6dc7a3d56790e2aeec4..cfa68c8f34df1ec46cf765f02e766cf5dc381508 100644 GIT binary patch delta 273268 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 dol