@zuplo/cli 6.70.69 → 6.70.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/node_modules/@types/node/README.md +1 -1
- package/node_modules/@types/node/http2.d.ts +1 -0
- package/node_modules/@types/node/package.json +2 -2
- package/node_modules/@zuplo/core/package.json +1 -1
- package/node_modules/@zuplo/graphql/package.json +1 -1
- package/node_modules/@zuplo/openapi-tools/package.json +1 -1
- package/node_modules/@zuplo/otel/package.json +1 -1
- package/node_modules/@zuplo/runtime/out/esm/{chunk-GEVKFSKR.js → chunk-AZIRK6TC.js} +1 -1
- package/node_modules/@zuplo/runtime/out/esm/{chunk-GEVKFSKR.js.map → chunk-AZIRK6TC.js.map} +1 -1
- package/node_modules/@zuplo/runtime/out/esm/{chunk-YLRLRHUN.js → chunk-E7U425SB.js} +93 -92
- package/node_modules/@zuplo/runtime/out/esm/chunk-E7U425SB.js.map +1 -0
- package/node_modules/@zuplo/runtime/out/esm/index.js +1 -1
- package/node_modules/@zuplo/runtime/out/esm/index.js.map +1 -1
- package/node_modules/@zuplo/runtime/out/esm/mcp-gateway/index.js +7 -7
- package/node_modules/@zuplo/runtime/out/esm/mcp-gateway/index.js.map +1 -1
- package/node_modules/@zuplo/runtime/out/esm/mocks/index.js +1 -1
- package/node_modules/@zuplo/runtime/out/types/index.d.ts +384 -0
- package/node_modules/@zuplo/runtime/out/types/mcp-gateway/index.d.ts +3 -1
- package/node_modules/@zuplo/runtime/package.json +1 -1
- package/node_modules/acorn/CHANGELOG.md +14 -0
- package/node_modules/acorn/README.md +3 -0
- package/node_modules/acorn/dist/acorn.d.mts +6 -0
- package/node_modules/acorn/dist/acorn.d.ts +6 -0
- package/node_modules/acorn/dist/acorn.js +87 -49
- package/node_modules/acorn/dist/acorn.mjs +87 -49
- package/node_modules/acorn/package.json +2 -2
- package/node_modules/protobufjs/dist/light/protobuf.js +161 -203
- package/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
- package/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
- package/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
- package/node_modules/protobufjs/dist/minimal/protobuf.js +34 -77
- package/node_modules/protobufjs/dist/minimal/protobuf.js.map +1 -1
- package/node_modules/protobufjs/dist/minimal/protobuf.min.js +3 -3
- package/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +1 -1
- package/node_modules/protobufjs/dist/protobuf.js +181 -223
- package/node_modules/protobufjs/dist/protobuf.js.map +1 -1
- package/node_modules/protobufjs/dist/protobuf.min.js +3 -3
- package/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
- package/node_modules/protobufjs/index.d.ts +0 -8
- package/node_modules/protobufjs/package.json +2 -3
- package/node_modules/protobufjs/src/converter.js +5 -4
- package/node_modules/protobufjs/src/decoder.js +1 -1
- package/node_modules/protobufjs/src/service.js +5 -7
- package/node_modules/protobufjs/src/type.js +3 -1
- package/node_modules/protobufjs/src/util/minimal.js +1 -4
- package/node_modules/protobufjs/src/verifier.js +1 -1
- package/package.json +6 -6
- package/node_modules/@protobufjs/inquire/CHANGELOG.md +0 -8
- package/node_modules/@protobufjs/inquire/LICENSE +0 -26
- package/node_modules/@protobufjs/inquire/README.md +0 -13
- package/node_modules/@protobufjs/inquire/index.d.ts +0 -10
- package/node_modules/@protobufjs/inquire/index.js +0 -38
- package/node_modules/@protobufjs/inquire/package.json +0 -21
- package/node_modules/@protobufjs/inquire/tests/data/array.js +0 -1
- package/node_modules/@protobufjs/inquire/tests/data/emptyArray.js +0 -1
- package/node_modules/@protobufjs/inquire/tests/data/emptyObject.js +0 -1
- package/node_modules/@protobufjs/inquire/tests/data/object.js +0 -1
- package/node_modules/@protobufjs/inquire/tests/index.js +0 -20
- package/node_modules/@zuplo/runtime/out/esm/chunk-YLRLRHUN.js.map +0 -1
- /package/node_modules/@zuplo/runtime/out/esm/{chunk-YLRLRHUN.js.LEGAL.txt → chunk-E7U425SB.js.LEGAL.txt} +0 -0
|
@@ -22,5 +22,5 @@
|
|
|
22
22
|
* DEALINGS IN THE SOFTWARE.
|
|
23
23
|
*--------------------------------------------------------------------------------------------*/
|
|
24
24
|
|
|
25
|
-
import{b as l}from"../chunk-
|
|
25
|
+
import{b as l}from"../chunk-AZIRK6TC.js";import{a as o,da as n}from"../chunk-ZIKV2LUM.js";function g(u={request:new Request("https://api.example.com")}){let e=[];function t(i){e.push(Promise.resolve(i))}return o(t,"waitUntil"),{context:new s({event:{waitUntil:t},route:u.route}),invokeResponse:o(async()=>{await Promise.all(e)},"invokeResponse")}}o(g,"createMockContext");var p={path:"/",methods:["GET"],handler:{module:{},export:"default"},raw:o(()=>({}),"raw")},s=class extends EventTarget{static{o(this,"MockZuploContext")}#e;contextId;requestId;log;route;custom;incomingRequestProperties;parentContext;analyticsContext;constructor({event:e,route:t=p,parentContext:r}){super(),this.requestId=crypto.randomUUID(),this.contextId=crypto.randomUUID(),this.log={info:n.console.info,log:n.console.log,debug:n.console.debug,warn:n.console.warn,error:n.console.error,setLogProperties:o(()=>{},"setLogProperties")},this.custom={},this.route=t,this.incomingRequestProperties={asn:1234,asOrganization:"ORGANIZATION",city:"Seattle",region:"Washington",regionCode:"WA",colo:"SEA",continent:"NA",country:"US",postalCode:"98004",metroCode:"SEA",latitude:void 0,longitude:void 0,timezone:void 0,httpProtocol:void 0,clientCert:void 0,clientMtlsVerificationStatus:void 0,clientMtlsVerificationReason:void 0,clientCertFingerprintSha256:void 0,clientCertNotBefore:void 0,clientCertNotAfter:void 0,clientCertIssuerDn:void 0,clientCertSubjectDn:void 0},this.parentContext=r,this.#e=e,this.analyticsContext=new l(this.requestId)}waitUntil(e){this.#e.waitUntil(e)}invokeInboundPolicy(e,t){throw new Error("Not implemented")}invokeOutboundPolicy(e,t,r){throw new Error("Not implemented")}invokeRoute(e,t){throw new Error("Not implemented")}addResponseSendingHook(e){throw new Error("Not implemented")}addResponseSendingFinalHook(e){throw new Error("Not implemented")}addEventListener(e,t,r){let d=o(i=>{try{typeof t=="function"?t(i):t.handleEvent(i)}catch(a){throw this.log.error(`Error invoking event ${e}. See following logs for details.`),a}},"wrapped");super.addEventListener(e,d,r)}};export{s as MockZuploContext,g as createMockContext};
|
|
26
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -2899,6 +2899,291 @@ export declare class DataDogMetricsPlugin extends MetricsPlugin {
|
|
|
2899
2899
|
static setContext(context: ZuploContext, data: DataDogMetricsContext): void;
|
|
2900
2900
|
}
|
|
2901
2901
|
|
|
2902
|
+
/**
|
|
2903
|
+
* Scans the incoming request body for sensitive data — PII, secrets, and
|
|
2904
|
+
* financial identifiers — using an extensible catalog of built-in recognizers
|
|
2905
|
+
* plus any custom patterns, and takes a configurable action when a match is
|
|
2906
|
+
* found.
|
|
2907
|
+
*
|
|
2908
|
+
* The action is one of `mask` (redact matches before forwarding the request),
|
|
2909
|
+
* `block` (reject with a `422` listing the detected entity names only), or
|
|
2910
|
+
* `log` (record a warning and forward unchanged). Only text content types are
|
|
2911
|
+
* inspected; binary bodies pass through untouched, and the body is read from a
|
|
2912
|
+
* clone so the upstream still receives the original stream.
|
|
2913
|
+
*
|
|
2914
|
+
* @title Data Loss Prevention
|
|
2915
|
+
* @product api-gateway
|
|
2916
|
+
* @public
|
|
2917
|
+
* @param request - The ZuploRequest
|
|
2918
|
+
* @param context - The ZuploContext
|
|
2919
|
+
* @param options - The policy options set in policies.json
|
|
2920
|
+
* @param policyName - The name of the policy as set in policies.json
|
|
2921
|
+
* @returns A Request or a Response
|
|
2922
|
+
*/
|
|
2923
|
+
export declare const DataLossPreventionInboundPolicy: InboundPolicyHandler<DataLossPreventionInboundPolicyOptions>;
|
|
2924
|
+
|
|
2925
|
+
/**
|
|
2926
|
+
* The options for the Data Loss Prevention inbound policy. Scans the incoming request body for sensitive data and applies the configured action (mask, block, or log).
|
|
2927
|
+
* @public
|
|
2928
|
+
*/
|
|
2929
|
+
export declare interface DataLossPreventionInboundPolicyOptions {
|
|
2930
|
+
/**
|
|
2931
|
+
* The detection engine. Only `builtin` (in-isolate regex + checksum detection with context-word scoring) is available today. This is the extension point for a future hosted `presidio-service` mode; declaring it now keeps adding that mode an additive, non-breaking change.
|
|
2932
|
+
*/
|
|
2933
|
+
engine?: "builtin";
|
|
2934
|
+
/**
|
|
2935
|
+
* Built-in recognizer ids and/or group selectors to enable. Entity ids follow a {category}-{scope}-{name} taxonomy, and any dash-aligned id prefix acts as a selector (for example `secret` is every secret, `id-au` is Australia's identifiers, `secret-aws` is both AWS entities), plus the named groups `pii` and `region-eu`. Available selectors: `contact`, `finance`, `finance-us`, `id`, `id-au`, `id-br`, `id-ca`, `id-es`, `id-fr`, `id-in`, `id-it`, `id-nl`, `id-pl`, `id-sg`, `id-uk`, `id-us`, `network`, `pii`, `region-eu`, `secret`, `secret-aws`. When omitted, the full built-in catalog is used.
|
|
2936
|
+
*/
|
|
2937
|
+
entities?: (
|
|
2938
|
+
| "contact"
|
|
2939
|
+
| "finance"
|
|
2940
|
+
| "finance-us"
|
|
2941
|
+
| "id"
|
|
2942
|
+
| "id-au"
|
|
2943
|
+
| "id-br"
|
|
2944
|
+
| "id-ca"
|
|
2945
|
+
| "id-es"
|
|
2946
|
+
| "id-fr"
|
|
2947
|
+
| "id-in"
|
|
2948
|
+
| "id-it"
|
|
2949
|
+
| "id-nl"
|
|
2950
|
+
| "id-pl"
|
|
2951
|
+
| "id-sg"
|
|
2952
|
+
| "id-uk"
|
|
2953
|
+
| "id-us"
|
|
2954
|
+
| "network"
|
|
2955
|
+
| "pii"
|
|
2956
|
+
| "region-eu"
|
|
2957
|
+
| "secret"
|
|
2958
|
+
| "secret-aws"
|
|
2959
|
+
| "contact-email"
|
|
2960
|
+
| "contact-phone"
|
|
2961
|
+
| "finance-credit-card"
|
|
2962
|
+
| "finance-crypto-wallet"
|
|
2963
|
+
| "finance-cvv"
|
|
2964
|
+
| "finance-iban"
|
|
2965
|
+
| "finance-swift-bic"
|
|
2966
|
+
| "finance-us-aba-routing"
|
|
2967
|
+
| "finance-us-bank-account"
|
|
2968
|
+
| "id-au-abn"
|
|
2969
|
+
| "id-au-acn"
|
|
2970
|
+
| "id-au-medicare"
|
|
2971
|
+
| "id-au-tfn"
|
|
2972
|
+
| "id-br-cpf"
|
|
2973
|
+
| "id-ca-sin"
|
|
2974
|
+
| "id-es-nif"
|
|
2975
|
+
| "id-fr-nir"
|
|
2976
|
+
| "id-in-aadhaar"
|
|
2977
|
+
| "id-in-pan"
|
|
2978
|
+
| "id-it-fiscal-code"
|
|
2979
|
+
| "id-nl-bsn"
|
|
2980
|
+
| "id-pl-pesel"
|
|
2981
|
+
| "id-sg-nric"
|
|
2982
|
+
| "id-uk-nhs"
|
|
2983
|
+
| "id-uk-nino"
|
|
2984
|
+
| "id-us-itin"
|
|
2985
|
+
| "id-us-passport"
|
|
2986
|
+
| "id-us-ssn"
|
|
2987
|
+
| "network-ipv4"
|
|
2988
|
+
| "network-ipv6"
|
|
2989
|
+
| "network-mac"
|
|
2990
|
+
| "secret-anthropic"
|
|
2991
|
+
| "secret-aws-access-key"
|
|
2992
|
+
| "secret-aws-bedrock"
|
|
2993
|
+
| "secret-azure-client"
|
|
2994
|
+
| "secret-databricks"
|
|
2995
|
+
| "secret-digitalocean"
|
|
2996
|
+
| "secret-discord-webhook"
|
|
2997
|
+
| "secret-github"
|
|
2998
|
+
| "secret-gitlab"
|
|
2999
|
+
| "secret-google-api-key"
|
|
3000
|
+
| "secret-heroku"
|
|
3001
|
+
| "secret-hugging-face"
|
|
3002
|
+
| "secret-jwt"
|
|
3003
|
+
| "secret-mailchimp"
|
|
3004
|
+
| "secret-mailgun"
|
|
3005
|
+
| "secret-npm"
|
|
3006
|
+
| "secret-openai"
|
|
3007
|
+
| "secret-perplexity"
|
|
3008
|
+
| "secret-postman"
|
|
3009
|
+
| "secret-private-key"
|
|
3010
|
+
| "secret-pypi"
|
|
3011
|
+
| "secret-sendgrid"
|
|
3012
|
+
| "secret-sentry"
|
|
3013
|
+
| "secret-shopify"
|
|
3014
|
+
| "secret-slack"
|
|
3015
|
+
| "secret-square"
|
|
3016
|
+
| "secret-stripe"
|
|
3017
|
+
| "secret-telegram-bot"
|
|
3018
|
+
| "secret-terraform"
|
|
3019
|
+
| "secret-twilio"
|
|
3020
|
+
| "secret-zuplo"
|
|
3021
|
+
)[];
|
|
3022
|
+
/**
|
|
3023
|
+
* Additional customer-defined regex recognizers. Invalid patterns are logged and skipped rather than failing the request.
|
|
3024
|
+
*/
|
|
3025
|
+
customPatterns?: DlpCustomPattern[];
|
|
3026
|
+
/**
|
|
3027
|
+
* What to do when sensitive data is detected. `mask` redacts matches before forwarding the request, `block` rejects with a 422 listing only the detected entity names, and `log` records a warning and forwards the request unchanged.
|
|
3028
|
+
*/
|
|
3029
|
+
action?: "mask" | "block" | "log";
|
|
3030
|
+
/**
|
|
3031
|
+
* The string that replaces detected values when `action` is `mask`.
|
|
3032
|
+
*/
|
|
3033
|
+
mask?: string;
|
|
3034
|
+
/**
|
|
3035
|
+
* Minimum confidence (0-1) a match must reach to count as a finding. Context-dependent recognizers (for example `finance-us-bank-account` or `finance-us-aba-routing`) sit below the default threshold of 0.5 until a context word near the match boosts them above it. Lower the threshold to surface them everywhere; raise it to keep only prefix- or checksum-validated matches.
|
|
3036
|
+
*/
|
|
3037
|
+
minConfidence?: number;
|
|
3038
|
+
/**
|
|
3039
|
+
* Override the set of scannable content-type prefixes. When omitted, the built-in text content-type allow-list (JSON, XML, form-encoded, text/*) is used.
|
|
3040
|
+
*/
|
|
3041
|
+
contentTypes?: string[];
|
|
3042
|
+
}
|
|
3043
|
+
|
|
3044
|
+
/**
|
|
3045
|
+
* Scans the upstream response body for sensitive data — PII, secrets, and
|
|
3046
|
+
* financial identifiers — using an extensible catalog of built-in recognizers
|
|
3047
|
+
* plus any custom patterns, and takes a configurable action when a match is
|
|
3048
|
+
* found.
|
|
3049
|
+
*
|
|
3050
|
+
* The action is one of `mask` (redact matches before returning the response),
|
|
3051
|
+
* `block` (replace the response with a `422` listing the detected entity names
|
|
3052
|
+
* only), or `log` (record a warning and return unchanged). Only text content
|
|
3053
|
+
* types are inspected; binary bodies pass through untouched, and the body is
|
|
3054
|
+
* read from a clone so the client still receives the original stream.
|
|
3055
|
+
*
|
|
3056
|
+
* @title Data Loss Prevention
|
|
3057
|
+
* @product api-gateway
|
|
3058
|
+
* @public
|
|
3059
|
+
* @param response - The outgoing Response from the handler
|
|
3060
|
+
* @param request - The original incoming Request
|
|
3061
|
+
* @param context - The current context of the Request
|
|
3062
|
+
* @param options - The configuration options for the policy
|
|
3063
|
+
* @param policyName - The name of the policy as set in policies.json
|
|
3064
|
+
* @returns A Response
|
|
3065
|
+
*/
|
|
3066
|
+
export declare const DataLossPreventionOutboundPolicy: OutboundPolicyHandler<DataLossPreventionOutboundPolicyOptions>;
|
|
3067
|
+
|
|
3068
|
+
/**
|
|
3069
|
+
* The options for the Data Loss Prevention outbound policy. Scans the upstream response body for sensitive data and applies the configured action (mask, block, or log).
|
|
3070
|
+
* @public
|
|
3071
|
+
*/
|
|
3072
|
+
export declare interface DataLossPreventionOutboundPolicyOptions {
|
|
3073
|
+
/**
|
|
3074
|
+
* The detection engine. Only `builtin` (in-isolate regex + checksum detection with context-word scoring) is available today. This is the extension point for a future hosted `presidio-service` mode; declaring it now keeps adding that mode an additive, non-breaking change.
|
|
3075
|
+
*/
|
|
3076
|
+
engine?: "builtin";
|
|
3077
|
+
/**
|
|
3078
|
+
* Built-in recognizer ids and/or group selectors to enable. Entity ids follow a {category}-{scope}-{name} taxonomy, and any dash-aligned id prefix acts as a selector (for example `secret` is every secret, `id-au` is Australia's identifiers, `secret-aws` is both AWS entities), plus the named groups `pii` and `region-eu`. Available selectors: `contact`, `finance`, `finance-us`, `id`, `id-au`, `id-br`, `id-ca`, `id-es`, `id-fr`, `id-in`, `id-it`, `id-nl`, `id-pl`, `id-sg`, `id-uk`, `id-us`, `network`, `pii`, `region-eu`, `secret`, `secret-aws`. When omitted, the full built-in catalog is used.
|
|
3079
|
+
*/
|
|
3080
|
+
entities?: (
|
|
3081
|
+
| "contact"
|
|
3082
|
+
| "finance"
|
|
3083
|
+
| "finance-us"
|
|
3084
|
+
| "id"
|
|
3085
|
+
| "id-au"
|
|
3086
|
+
| "id-br"
|
|
3087
|
+
| "id-ca"
|
|
3088
|
+
| "id-es"
|
|
3089
|
+
| "id-fr"
|
|
3090
|
+
| "id-in"
|
|
3091
|
+
| "id-it"
|
|
3092
|
+
| "id-nl"
|
|
3093
|
+
| "id-pl"
|
|
3094
|
+
| "id-sg"
|
|
3095
|
+
| "id-uk"
|
|
3096
|
+
| "id-us"
|
|
3097
|
+
| "network"
|
|
3098
|
+
| "pii"
|
|
3099
|
+
| "region-eu"
|
|
3100
|
+
| "secret"
|
|
3101
|
+
| "secret-aws"
|
|
3102
|
+
| "contact-email"
|
|
3103
|
+
| "contact-phone"
|
|
3104
|
+
| "finance-credit-card"
|
|
3105
|
+
| "finance-crypto-wallet"
|
|
3106
|
+
| "finance-cvv"
|
|
3107
|
+
| "finance-iban"
|
|
3108
|
+
| "finance-swift-bic"
|
|
3109
|
+
| "finance-us-aba-routing"
|
|
3110
|
+
| "finance-us-bank-account"
|
|
3111
|
+
| "id-au-abn"
|
|
3112
|
+
| "id-au-acn"
|
|
3113
|
+
| "id-au-medicare"
|
|
3114
|
+
| "id-au-tfn"
|
|
3115
|
+
| "id-br-cpf"
|
|
3116
|
+
| "id-ca-sin"
|
|
3117
|
+
| "id-es-nif"
|
|
3118
|
+
| "id-fr-nir"
|
|
3119
|
+
| "id-in-aadhaar"
|
|
3120
|
+
| "id-in-pan"
|
|
3121
|
+
| "id-it-fiscal-code"
|
|
3122
|
+
| "id-nl-bsn"
|
|
3123
|
+
| "id-pl-pesel"
|
|
3124
|
+
| "id-sg-nric"
|
|
3125
|
+
| "id-uk-nhs"
|
|
3126
|
+
| "id-uk-nino"
|
|
3127
|
+
| "id-us-itin"
|
|
3128
|
+
| "id-us-passport"
|
|
3129
|
+
| "id-us-ssn"
|
|
3130
|
+
| "network-ipv4"
|
|
3131
|
+
| "network-ipv6"
|
|
3132
|
+
| "network-mac"
|
|
3133
|
+
| "secret-anthropic"
|
|
3134
|
+
| "secret-aws-access-key"
|
|
3135
|
+
| "secret-aws-bedrock"
|
|
3136
|
+
| "secret-azure-client"
|
|
3137
|
+
| "secret-databricks"
|
|
3138
|
+
| "secret-digitalocean"
|
|
3139
|
+
| "secret-discord-webhook"
|
|
3140
|
+
| "secret-github"
|
|
3141
|
+
| "secret-gitlab"
|
|
3142
|
+
| "secret-google-api-key"
|
|
3143
|
+
| "secret-heroku"
|
|
3144
|
+
| "secret-hugging-face"
|
|
3145
|
+
| "secret-jwt"
|
|
3146
|
+
| "secret-mailchimp"
|
|
3147
|
+
| "secret-mailgun"
|
|
3148
|
+
| "secret-npm"
|
|
3149
|
+
| "secret-openai"
|
|
3150
|
+
| "secret-perplexity"
|
|
3151
|
+
| "secret-postman"
|
|
3152
|
+
| "secret-private-key"
|
|
3153
|
+
| "secret-pypi"
|
|
3154
|
+
| "secret-sendgrid"
|
|
3155
|
+
| "secret-sentry"
|
|
3156
|
+
| "secret-shopify"
|
|
3157
|
+
| "secret-slack"
|
|
3158
|
+
| "secret-square"
|
|
3159
|
+
| "secret-stripe"
|
|
3160
|
+
| "secret-telegram-bot"
|
|
3161
|
+
| "secret-terraform"
|
|
3162
|
+
| "secret-twilio"
|
|
3163
|
+
| "secret-zuplo"
|
|
3164
|
+
)[];
|
|
3165
|
+
/**
|
|
3166
|
+
* Additional customer-defined regex recognizers. Invalid patterns are logged and skipped rather than failing the response.
|
|
3167
|
+
*/
|
|
3168
|
+
customPatterns?: DlpCustomPattern_2[];
|
|
3169
|
+
/**
|
|
3170
|
+
* What to do when sensitive data is detected. `mask` redacts matches before returning the response, `block` replaces the response with a 422 listing only the detected entity names, and `log` records a warning and returns the response unchanged.
|
|
3171
|
+
*/
|
|
3172
|
+
action?: "mask" | "block" | "log";
|
|
3173
|
+
/**
|
|
3174
|
+
* The string that replaces detected values when `action` is `mask`.
|
|
3175
|
+
*/
|
|
3176
|
+
mask?: string;
|
|
3177
|
+
/**
|
|
3178
|
+
* Minimum confidence (0-1) a match must reach to count as a finding. Context-dependent recognizers (for example `finance-us-bank-account` or `finance-us-aba-routing`) sit below the default threshold of 0.5 until a context word near the match boosts them above it. Lower the threshold to surface them everywhere; raise it to keep only prefix- or checksum-validated matches.
|
|
3179
|
+
*/
|
|
3180
|
+
minConfidence?: number;
|
|
3181
|
+
/**
|
|
3182
|
+
* Override the set of scannable content-type prefixes. When omitted, the built-in text content-type allow-list (JSON, XML, form-encoded, text/*) is used.
|
|
3183
|
+
*/
|
|
3184
|
+
contentTypes?: string[];
|
|
3185
|
+
}
|
|
3186
|
+
|
|
2902
3187
|
/**
|
|
2903
3188
|
* Default function to generate Hydrolix log entries
|
|
2904
3189
|
* @public
|
|
@@ -2924,6 +3209,44 @@ export declare interface DispatchRequestLoggerEntries<T> {
|
|
|
2924
3209
|
(entries: T[]): Promise<void>;
|
|
2925
3210
|
}
|
|
2926
3211
|
|
|
3212
|
+
declare interface DlpCustomPattern {
|
|
3213
|
+
/**
|
|
3214
|
+
* Identifier reported in findings and block details for this pattern.
|
|
3215
|
+
*/
|
|
3216
|
+
name: string;
|
|
3217
|
+
/**
|
|
3218
|
+
* A JavaScript regular expression source string. Remember to escape backslashes for JSON (for example `\\d` for a digit).
|
|
3219
|
+
*/
|
|
3220
|
+
pattern: string;
|
|
3221
|
+
/**
|
|
3222
|
+
* Base confidence (0-1) for matches of this pattern. The default of 0.85 is above the default detection threshold; combine a low value with `context` words for patterns that are only sensitive in context.
|
|
3223
|
+
*/
|
|
3224
|
+
confidence?: number;
|
|
3225
|
+
/**
|
|
3226
|
+
* Context words that boost a match's confidence by 0.45 when one appears near the match (in the surrounding field, label, or key).
|
|
3227
|
+
*/
|
|
3228
|
+
context?: string[];
|
|
3229
|
+
}
|
|
3230
|
+
|
|
3231
|
+
declare interface DlpCustomPattern_2 {
|
|
3232
|
+
/**
|
|
3233
|
+
* Identifier reported in findings and block details for this pattern.
|
|
3234
|
+
*/
|
|
3235
|
+
name: string;
|
|
3236
|
+
/**
|
|
3237
|
+
* A JavaScript regular expression source string. Remember to escape backslashes for JSON (for example `\\d` for a digit).
|
|
3238
|
+
*/
|
|
3239
|
+
pattern: string;
|
|
3240
|
+
/**
|
|
3241
|
+
* Base confidence (0-1) for matches of this pattern. The default of 0.85 is above the default detection threshold; combine a low value with `context` words for patterns that are only sensitive in context.
|
|
3242
|
+
*/
|
|
3243
|
+
confidence?: number;
|
|
3244
|
+
/**
|
|
3245
|
+
* Context words that boost a match's confidence by 0.45 when one appears near the match (in the surrounding field, label, or key).
|
|
3246
|
+
*/
|
|
3247
|
+
context?: string[];
|
|
3248
|
+
}
|
|
3249
|
+
|
|
2927
3250
|
declare interface DynaTraceLoggingOptions {
|
|
2928
3251
|
url: string;
|
|
2929
3252
|
apiToken: string;
|
|
@@ -3259,6 +3582,67 @@ export declare class GoogleCloudLoggingPlugin extends LogPlugin {
|
|
|
3259
3582
|
/* Excluded from this release type: getTransport */
|
|
3260
3583
|
}
|
|
3261
3584
|
|
|
3585
|
+
/**
|
|
3586
|
+
* Reports GraphQL errors returned in response bodies to Zuplo's GraphQL
|
|
3587
|
+
* analytics. GraphQL servers following the standard Apollo / graphql-yoga
|
|
3588
|
+
* pattern return `200 OK` with an `errors[]` array in the body when an
|
|
3589
|
+
* operation fails, which HTTP-level analytics alone report as a success —
|
|
3590
|
+
* add this policy to a GraphQL route and failed operations show up as
|
|
3591
|
+
* failures on the GraphQL dashboard, classified by error type.
|
|
3592
|
+
*
|
|
3593
|
+
* Each error in `errors[]` is classified from its `extensions.code`
|
|
3594
|
+
* following the Apollo Server conventions (`GRAPHQL_PARSE_FAILED` →
|
|
3595
|
+
* `syntax`, `GRAPHQL_VALIDATION_FAILED` → `validation`, `UNAUTHENTICATED` /
|
|
3596
|
+
* `FORBIDDEN` → `auth`, timeout codes → `timeout`); custom codes can be
|
|
3597
|
+
* mapped with `errorCodeClassification`, and anything unrecognized falls
|
|
3598
|
+
* back to `defaultErrorClass` (`resolver`). Optionally set `logErrors` to
|
|
3599
|
+
* also write a structured warning per errored response. Bodies larger
|
|
3600
|
+
* than `maxResponseBytes` (default 5 MiB) are not inspected.
|
|
3601
|
+
*
|
|
3602
|
+
* The response always passes through unchanged — the body is read from a
|
|
3603
|
+
* clone, and any internal failure is swallowed so reporting can never
|
|
3604
|
+
* break the request. The route must be marked `x-graphql: true` in
|
|
3605
|
+
* `routes.oas.json` (which enables GraphQL analytics for the route);
|
|
3606
|
+
* without the marker the policy logs a warning and does nothing.
|
|
3607
|
+
*
|
|
3608
|
+
* @title GraphQL Analytics
|
|
3609
|
+
* @product api-gateway
|
|
3610
|
+
* @beta
|
|
3611
|
+
* @public
|
|
3612
|
+
* @param response - The outgoing Response from the handler
|
|
3613
|
+
* @param request - The original incoming Request
|
|
3614
|
+
* @param context - The current context of the Request
|
|
3615
|
+
* @param options - The configuration options for the policy
|
|
3616
|
+
* @param policyName - The name of the policy as set in policies.json
|
|
3617
|
+
* @returns A Response
|
|
3618
|
+
*/
|
|
3619
|
+
export declare const GraphqlAnalyticsOutboundPolicy: OutboundPolicyHandler<GraphqlAnalyticsOutboundPolicyOptions>;
|
|
3620
|
+
|
|
3621
|
+
/**
|
|
3622
|
+
* The options for the GraphQL Analytics outbound policy. Reads GraphQL `errors[]` from the response body and reports them to Zuplo's GraphQL analytics.
|
|
3623
|
+
* @public
|
|
3624
|
+
*/
|
|
3625
|
+
export declare interface GraphqlAnalyticsOutboundPolicyOptions {
|
|
3626
|
+
/**
|
|
3627
|
+
* Additional `extensions.code` → error-class mappings for codes your GraphQL server emits. Entries are merged over (and win against) the built-in Apollo-convention map (`GRAPHQL_PARSE_FAILED` → `syntax`, `GRAPHQL_VALIDATION_FAILED` / `BAD_USER_INPUT` → `validation`, `UNAUTHENTICATED` / `FORBIDDEN` → `auth`, timeout codes → `timeout`, `INTERNAL_SERVER_ERROR` → `resolver`). Keys are matched case-sensitively; built-in codes are matched case-insensitively.
|
|
3628
|
+
*/
|
|
3629
|
+
errorCodeClassification?: {
|
|
3630
|
+
[k: string]: "syntax" | "validation" | "auth" | "timeout" | "resolver";
|
|
3631
|
+
};
|
|
3632
|
+
/**
|
|
3633
|
+
* The error class reported for a GraphQL error whose `extensions.code` is missing or not in the classification map.
|
|
3634
|
+
*/
|
|
3635
|
+
defaultErrorClass?: "syntax" | "validation" | "auth" | "timeout" | "resolver";
|
|
3636
|
+
/**
|
|
3637
|
+
* When `true`, also write a structured warning to the request log (message, `extensions.code`, and path of each error — capped at the first 10) whenever a response contains GraphQL errors.
|
|
3638
|
+
*/
|
|
3639
|
+
logErrors?: boolean;
|
|
3640
|
+
/**
|
|
3641
|
+
* Maximum response body size in bytes the policy will inspect. Larger bodies — by `Content-Length`, or measured while reading when the header is absent — pass through without being scanned, so their GraphQL errors (if any) go unreported. The default is 5 MiB.
|
|
3642
|
+
*/
|
|
3643
|
+
maxResponseBytes?: number;
|
|
3644
|
+
}
|
|
3645
|
+
|
|
3262
3646
|
/**
|
|
3263
3647
|
* The main request handler for the Zuplo runtime. This class initializes the gateway
|
|
3264
3648
|
* and handles all incoming HTTP requests through the configured pipeline.
|
|
@@ -1462,7 +1462,9 @@ export declare interface McpEntraOAuthInboundPolicyOptions {
|
|
|
1462
1462
|
/**
|
|
1463
1463
|
* Activates the MCP Gateway internal routes (OAuth authorization server,
|
|
1464
1464
|
* upstream connection management, well-known metadata) on the runtime router.
|
|
1465
|
-
*
|
|
1465
|
+
* When no MCP-related policy is present the plugin registers no routes; it
|
|
1466
|
+
* still records `plugin.mcp-gateway` feature usage on construction so gateway
|
|
1467
|
+
* adoption is visible in telemetry regardless of route configuration.
|
|
1466
1468
|
*
|
|
1467
1469
|
* Importing from `@zuplo/runtime/mcp-gateway` is the opt-in: the runtime core
|
|
1468
1470
|
* does not statically reference any MCP gateway code, so unrelated projects
|
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## 8.17.0 (2026-06-11)
|
|
2
|
+
|
|
3
|
+
### New features
|
|
4
|
+
|
|
5
|
+
The new `strict` option can be used to start script sources in strict mode.
|
|
6
|
+
|
|
7
|
+
### Bug fixes
|
|
8
|
+
|
|
9
|
+
Fix a number of corner case bugs when `using` or `await using` appear in `for` loop specs.
|
|
10
|
+
|
|
11
|
+
Disallow `new super()` expressions.
|
|
12
|
+
|
|
13
|
+
Don't allow the conditional in a ternary expression to be a (naked) arrow function.
|
|
14
|
+
|
|
1
15
|
## 8.16.0 (2026-02-19)
|
|
2
16
|
|
|
3
17
|
### New features
|
|
@@ -86,6 +86,9 @@ required):
|
|
|
86
86
|
will be valid, even if `ecmaVersion` is less than 6. If set to `"commonjs"`,
|
|
87
87
|
it is the same as `"script"` except that the top-level scope behaves like a function.
|
|
88
88
|
|
|
89
|
+
- **strict**: When set to true, enable strict parsing mode even if
|
|
90
|
+
`sourceType` is `"script"`.
|
|
91
|
+
|
|
89
92
|
- **onInsertedSemicolon**: If given a callback, that callback will be
|
|
90
93
|
called whenever a missing semicolon is inserted by the parser. The
|
|
91
94
|
callback will be given the character offset of the point where the
|
|
@@ -619,6 +619,12 @@ export interface Options {
|
|
|
619
619
|
*/
|
|
620
620
|
sourceType?: "script" | "module" | "commonjs"
|
|
621
621
|
|
|
622
|
+
/**
|
|
623
|
+
* When set to true, enable strict parsing mode even if `sourceType`
|
|
624
|
+
* is `"script"`.
|
|
625
|
+
*/
|
|
626
|
+
strict?: boolean
|
|
627
|
+
|
|
622
628
|
/**
|
|
623
629
|
* a callback that will be called when a semicolon is automatically inserted.
|
|
624
630
|
* @param lastTokEnd the position of the comma as an offset
|
|
@@ -619,6 +619,12 @@ export interface Options {
|
|
|
619
619
|
*/
|
|
620
620
|
sourceType?: "script" | "module" | "commonjs"
|
|
621
621
|
|
|
622
|
+
/**
|
|
623
|
+
* When set to true, enable strict parsing mode even if `sourceType`
|
|
624
|
+
* is `"script"`.
|
|
625
|
+
*/
|
|
626
|
+
strict?: boolean
|
|
627
|
+
|
|
622
628
|
/**
|
|
623
629
|
* a callback that will be called when a semicolon is automatically inserted.
|
|
624
630
|
* @param lastTokEnd the position of the comma as an offset
|