{"version":3,"sources":["jsdelivr-header.js","/npm/@gptsafe/promptguard@0.2.0/dist/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;ACLA,aACA,IAAI,UAAa,MAAQ,KAAK,WAAc,SAAU,EAAS,EAAY,EAAG,GAE1E,OAAO,IAAK,IAAM,EAAI,WAAU,SAAU,EAAS,GAC/C,SAAS,EAAU,GAAS,IAAM,EAAK,EAAU,KAAK,GAAS,CAAE,MAAO,GAAK,EAAO,EAAI,CAAE,CAC1F,SAAS,EAAS,GAAS,IAAM,EAAK,EAAiB,MAAE,GAAS,CAAE,MAAO,GAAK,EAAO,EAAI,CAAE,CAC7F,SAAS,EAAK,GAJlB,IAAe,EAIa,EAAO,KAAO,EAAQ,EAAO,QAJ1C,EAIyD,EAAO,MAJhD,aAAiB,EAAI,EAAQ,IAAI,GAAE,SAAU,GAAW,EAAQ,EAAQ,KAIjB,KAAK,EAAW,EAAW,CAC7G,GAAM,EAAY,EAAU,MAAM,EAAS,GAAc,KAAK,OAClE,GACJ,EACA,OAAO,eAAe,QAAS,aAAc,CAAE,OAAO,IACtD,QAAQ,iBAAc,EACtB,MAAM,QAAU,QAAQ,WACxB,IAAI,gBACJ,SAAW,GACP,EAA0B,UAAI,0BAC9B,EAAoC,oBAAI,8BACxC,EAA6B,aAAI,uBACpC,CAJD,CAIG,iBAAmB,eAAiB,CAAC,IACxC,MAAM,YACF,WAAA,CAAY,EAAoB,CAAC,GAQ7B,KAAK,kBAAoB,OAAO,OAAO,OAAO,OAAO,CAAC,EAPrB,CAC7B,UAAW,KACX,SAAU,CAAC,IACX,yBAAyB,EACzB,cAAc,IAGkE,EACxF,CACA,OAAA,CAAQ,GACJ,OAAO,UAAU,UAAM,OAAQ,GAAQ,YAInC,OAAI,EAAI,QAAQ,mBAAmB,GAAU,KAAK,kBAAkB,UACzD,CAAE,MAAM,EAAO,OAAQ,eAAe,sBAE5C,KAAK,kBAAkB,gCACd,EAAI,QAAQ,2BAA2B,IACtC,CAAE,MAAM,EAAO,OAAQ,eAAe,qBAG3C,EAAI,QAAQ,6BAA6B,EAAQ,KAAK,kBAAkB,WACvE,CAAE,MAAM,EAAO,OAAQ,eAAe,YAE7C,KAAK,kBAAkB,eACvB,GAAS,EAAI,QAAQ,oBAAoB,IACtC,CAAE,MAAM,EAAM,OAAQ,GACjC,GACJ,EAEJ,QAAQ,YAAc","file":"/npm/@gptsafe/promptguard@0.2.0/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@gptsafe/promptguard@0.2.0/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","#!/usr/bin/env ts-node\n\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PromptGuard = void 0;\nconst utils_1 = require(\"./utils\");\nvar FAILURE_REASON;\n(function (FAILURE_REASON) {\n    FAILURE_REASON[\"DENY_LIST\"] = \"CONTAINS_DENY_LIST_ITEM\";\n    FAILURE_REASON[\"MAX_TOKEN_THRESHOLD\"] = \"EXCEEDS_MAX_TOKEN_THRESHOLD\";\n    FAILURE_REASON[\"KNOWN_ATTACK\"] = \"CONTAINS_KNOWN_ATTACK\";\n})(FAILURE_REASON || (FAILURE_REASON = {}));\nclass PromptGuard {\n    constructor(userPolicyOptions = {}) {\n        const defaultPromptGuardPolicy = {\n            maxTokens: 4096,\n            denyList: [''],\n            disableAttackMitigation: false,\n            encodeOutput: false\n        };\n        // merge the user policy with the default policy to create the policy\n        this.promptGuardPolicy = Object.assign(Object.assign({}, defaultPromptGuardPolicy), userPolicyOptions);\n    }\n    process(prompt) {\n        return __awaiter(this, void 0, void 0, function* () {\n            // processing order\n            // normalize -> quote -> escape -> check tokens -> check cache -> check for known attacks -> check allow list -> check deny list -> encode output\n            // check the prompt token count\n            if ((0, utils_1.countPromptTokens)(prompt) > this.promptGuardPolicy.maxTokens)\n                return { pass: false, output: FAILURE_REASON.MAX_TOKEN_THRESHOLD };\n            // check prompt against known prompt attacks\n            if (!this.promptGuardPolicy.disableAttackMitigation) {\n                if (yield (0, utils_1.promptContainsKnownAttack)(prompt))\n                    return { pass: false, output: FAILURE_REASON.KNOWN_ATTACK };\n            }\n            // check prompt again the user defined deny list\n            if (yield (0, utils_1.promptContainsDenyListItems)(prompt, this.promptGuardPolicy.denyList))\n                return { pass: false, output: FAILURE_REASON.DENY_LIST };\n            // encode the prompt output if encodeOutput is set by the user\n            if (this.promptGuardPolicy.encodeOutput)\n                prompt = (0, utils_1.encodePromptOutput)(prompt);\n            return { pass: true, output: prompt };\n        });\n    }\n}\nexports.PromptGuard = PromptGuard;\n"]}