@prisma/studio-core-licensed 0.0.0-dev.202506241303 → 0.0.0-dev.202506241823

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.
@@ -6,5 +6,5 @@ function require(mod) {
6
6
  if (mod === 'react-dom') return ___react_dom___;
7
7
  throw new Error(`Unknown module ${mod}`);
8
8
  }
9
- import{b as a}from"../../chunk-GFTEV2G4.js";import{j as y,l as m,m as P}from"../../chunk-HRW7Y3N2.js";import"../../chunk-EEN4LCTK.js";import{e as g}from"../../chunk-P5LRZ6C2.js";g();function q(r,t){let{logging:e=!1}=t??{};return{execute:async(o,x)=>{let{abortSignal:n}=x||{},c,u;try{let s=typeof e=="function"?e(o):e,l;if(s&&console.log("PGLiteExecutor: Executing query:",l=JSON.stringify(o,null,2)),n?.aborted)return a();let S=Date.now();u=await r.reserve();let d,v=new Promise(i=>d=i);if(n){if(n.aborted)return a();let i=await E(u);if(n.aborted)return a();i!=null&&n.addEventListener("abort",c=()=>d(i))}let f=await Promise.race([r.unsafe(o.sql,o.parameters),v]),p=Date.now()-S;return typeof f!="object"?(b(r,f),s&&console.log("PostgresJSExecutor: Query cancelled after",p,"ms:",l),a()):(s&&console.log("PostgresJSExecutor: Query executed in",p,"ms:",l),[null,f])}catch(s){return[s]}finally{c&&n?.removeEventListener("abort",c),u?.release()}}}}function O(r,t){return y({executor:q(r,t)})}async function b(r,t){let e=P(t);try{await r.unsafe(e.sql,e.parameters)}catch(o){console.error("Failed to cancel query:",o)}}async function E(r){let t=m();try{let[e]=await r.unsafe(t.sql,t.parameters);return e?.pid}catch(e){console.error("Failed to get connection PID:",e);return}}export{O as createPostgresJSAdapter,q as createPostgresJSExecutor};
10
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vZGF0YS9wb3N0Z3Jlc2pzL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgdHlwZSB7IFJlc2VydmVkU3FsLCBTcWwgfSBmcm9tIFwicG9zdGdyZXNcIjtcblxuaW1wb3J0IHR5cGUgeyBBZGFwdGVyIH0gZnJvbSBcIi4uL2FkYXB0ZXJcIjtcbmltcG9ydCB7IHR5cGUgRXhlY3V0b3IsIGdldEFib3J0UmVzdWx0IH0gZnJvbSBcIi4uL2V4ZWN1dG9yXCI7XG5pbXBvcnQgeyBjcmVhdGVQb3N0Z3Jlc0FkYXB0ZXIgfSBmcm9tIFwiLi4vcG9zdGdyZXMtY29yZVwiO1xuaW1wb3J0IHsgZ2V0Q2FuY2VsUXVlcnksIGdldFBJRFF1ZXJ5IH0gZnJvbSBcIi4uL3Bvc3RncmVzLWNvcmUvdXRpbGl0eVwiO1xuaW1wb3J0IHR5cGUgeyBRdWVyeSwgUXVlcnlSZXN1bHQgfSBmcm9tIFwiLi4vcXVlcnlcIjtcblxuZXhwb3J0IGludGVyZmFjZSBQb3N0Z3Jlc0pTRXhlY3V0b3JPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gbG9nIHRoZSBxdWVyeSBhbmQgaXRzIHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICAqL1xuICBsb2dnaW5nPzogYm9vbGVhbiB8ICgocXVlcnk6IFF1ZXJ5KSA9PiBib29sZWFuKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBvc3RncmVzSlNFeGVjdXRvcihwb3N0Z3Jlc2pzOiBTcWwsIG9wdGlvbnM/OiBQb3N0Z3Jlc0pTRXhlY3V0b3JPcHRpb25zKTogRXhlY3V0b3Ige1xuICBjb25zdCB7IGxvZ2dpbmcgPSBmYWxzZSB9ID0gb3B0aW9ucyA/PyB7fTtcblxuICByZXR1cm4ge1xuICAgIGV4ZWN1dGU6IGFzeW5jIChxdWVyeSwgb3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgeyBhYm9ydFNpZ25hbCB9ID0gb3B0aW9ucyB8fCB7fTtcblxuICAgICAgbGV0IGFib3J0TGlzdGVuZXI6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcbiAgICAgIGxldCBjb25uZWN0aW9uOiBSZXNlcnZlZFNxbCB8IHVuZGVmaW5lZDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgc2hvdWxkTG9nID0gdHlwZW9mIGxvZ2dpbmcgPT09IFwiZnVuY3Rpb25cIiA/IGxvZ2dpbmcocXVlcnkpIDogbG9nZ2luZztcblxuICAgICAgICBsZXQgbG9nZ2FibGVRdWVyeTogc3RyaW5nO1xuICAgICAgICBpZiAoc2hvdWxkTG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJQR0xpdGVFeGVjdXRvcjogRXhlY3V0aW5nIHF1ZXJ5OlwiLCAobG9nZ2FibGVRdWVyeSA9IEpTT04uc3RyaW5naWZ5KHF1ZXJ5LCBudWxsLCAyKSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGFib3J0U2lnbmFsPy5hYm9ydGVkKSB7XG4gICAgICAgICAgcmV0dXJuIGdldEFib3J0UmVzdWx0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuXG4gICAgICAgIGNvbm5lY3Rpb24gPSBhd2FpdCBwb3N0Z3Jlc2pzLnJlc2VydmUoKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1vYmplY3QtdHlwZVxuICAgICAgICBsZXQgdHJpZ2dlcjogKHBpZDoge30pID0+IHZvaWQ7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktb2JqZWN0LXR5cGVcbiAgICAgICAgY29uc3QgYWJvcnRpb25Qcm9taXNlID0gbmV3IFByb21pc2U8e30+KChyZXNvbHZlKSA9PiAodHJpZ2dlciA9IHJlc29sdmUpKTtcblxuICAgICAgICBpZiAoYWJvcnRTaWduYWwpIHtcbiAgICAgICAgICBpZiAoYWJvcnRTaWduYWwuYWJvcnRlZCkge1xuICAgICAgICAgICAgcmV0dXJuIGdldEFib3J0UmVzdWx0KCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcGlkID0gYXdhaXQgZ2V0Q29ubmVjdGlvblBJRChjb25uZWN0aW9uKTtcblxuICAgICAgICAgIGlmIChhYm9ydFNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0QWJvcnRSZXN1bHQoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocGlkICE9IG51bGwpIHtcbiAgICAgICAgICAgIGFib3J0U2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCAoYWJvcnRMaXN0ZW5lciA9ICgpID0+IHRyaWdnZXIocGlkKSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFByb21pc2UucmFjZShbcG9zdGdyZXNqcy51bnNhZmUocXVlcnkuc3FsLCBxdWVyeS5wYXJhbWV0ZXJzIGFzIG5ldmVyKSwgYWJvcnRpb25Qcm9taXNlXSk7XG5cbiAgICAgICAgY29uc3QgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gbm93O1xuXG4gICAgICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgLy8gbm90IGltcG9ydGFudCBlbm91Z2ggdG8gYXdhaXQuXG4gICAgICAgICAgdm9pZCBjYW5jZWxRdWVyeShwb3N0Z3Jlc2pzLCByZXN1bHQpO1xuXG4gICAgICAgICAgaWYgKHNob3VsZExvZykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJQb3N0Z3Jlc0pTRXhlY3V0b3I6IFF1ZXJ5IGNhbmNlbGxlZCBhZnRlclwiLCBkdXJhdGlvbiwgXCJtczpcIiwgbG9nZ2FibGVRdWVyeSEpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBnZXRBYm9ydFJlc3VsdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNob3VsZExvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFwiUG9zdGdyZXNKU0V4ZWN1dG9yOiBRdWVyeSBleGVjdXRlZCBpblwiLCBkdXJhdGlvbiwgXCJtczpcIiwgbG9nZ2FibGVRdWVyeSEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtudWxsLCByZXN1bHQgYXMgbmV2ZXJdO1xuICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgcmV0dXJuIFtlcnJvciBhcyBFcnJvcl07XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpZiAoYWJvcnRMaXN0ZW5lcikge1xuICAgICAgICAgIGFib3J0U2lnbmFsPy5yZW1vdmVFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgYWJvcnRMaXN0ZW5lcik7XG4gICAgICAgIH1cblxuICAgICAgICBjb25uZWN0aW9uPy5yZWxlYXNlKCk7XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1vYmplY3QtdHlwZVxuZXhwb3J0IGludGVyZmFjZSBQb3N0Z3Jlc0pTQWRhcHRlck9wdGlvbnMgZXh0ZW5kcyBQb3N0Z3Jlc0pTRXhlY3V0b3JPcHRpb25zIHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQb3N0Z3Jlc0pTQWRhcHRlcihwb3N0Z3Jlc2pzOiBTcWwsIG9wdGlvbnM/OiBQb3N0Z3Jlc0pTQWRhcHRlck9wdGlvbnMpOiBBZGFwdGVyIHtcbiAgcmV0dXJuIGNyZWF0ZVBvc3RncmVzQWRhcHRlcih7XG4gICAgZXhlY3V0b3I6IGNyZWF0ZVBvc3RncmVzSlNFeGVjdXRvcihwb3N0Z3Jlc2pzLCBvcHRpb25zKSxcbiAgfSk7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktb2JqZWN0LXR5cGVcbmFzeW5jIGZ1bmN0aW9uIGNhbmNlbFF1ZXJ5KHBvc3RncmVzanM6IFNxbCwgcGlkOiB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBxdWVyeSA9IGdldENhbmNlbFF1ZXJ5KHBpZCk7XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCBwb3N0Z3Jlc2pzLnVuc2FmZShxdWVyeS5zcWwsIHF1ZXJ5LnBhcmFtZXRlcnMgYXMgbmV2ZXIpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoXCJGYWlsZWQgdG8gY2FuY2VsIHF1ZXJ5OlwiLCBlcnJvcik7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0Q29ubmVjdGlvblBJRChjb25uZWN0aW9uOiBSZXNlcnZlZFNxbCk6IFByb21pc2U8dW5rbm93bj4ge1xuICBjb25zdCBxdWVyeSA9IGdldFBJRFF1ZXJ5KCk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBbcmVzdWx0XSA9IGF3YWl0IGNvbm5lY3Rpb24udW5zYWZlPFF1ZXJ5UmVzdWx0PHR5cGVvZiBxdWVyeT4+KHF1ZXJ5LnNxbCwgcXVlcnkucGFyYW1ldGVycyBhcyBuZXZlcik7XG5cbiAgICByZXR1cm4gcmVzdWx0Py5waWQ7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCB0byBnZXQgY29ubmVjdGlvbiBQSUQ6XCIsIGVycm9yKTtcblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7O2tMQUFBQSxJQWlCTyxTQUFTQyxFQUF5QkMsRUFBaUJDLEVBQStDLENBQ3ZHLEdBQU0sQ0FBRSxRQUFBQyxFQUFVLEVBQU0sRUFBSUQsR0FBVyxDQUFDLEVBRXhDLE1BQU8sQ0FDTCxRQUFTLE1BQU9FLEVBQU9GLElBQVksQ0FDakMsR0FBTSxDQUFFLFlBQUFHLENBQVksRUFBSUgsR0FBVyxDQUFDLEVBRWhDSSxFQUNBQyxFQUVKLEdBQUksQ0FDRixJQUFNQyxFQUFZLE9BQU9MLEdBQVksV0FBYUEsRUFBUUMsQ0FBSyxFQUFJRCxFQUUvRE0sRUFLSixHQUpJRCxHQUNGLFFBQVEsSUFBSSxtQ0FBcUNDLEVBQWdCLEtBQUssVUFBVUwsRUFBTyxLQUFNLENBQUMsQ0FBRSxFQUc5RkMsR0FBYSxRQUNmLE9BQU9LLEVBQWUsRUFHeEIsSUFBTUMsRUFBTSxLQUFLLElBQUksRUFFckJKLEVBQWEsTUFBTU4sRUFBVyxRQUFRLEVBRXRDLElBQUlXLEVBRUVDLEVBQWtCLElBQUksUUFBYUMsR0FBYUYsRUFBVUUsQ0FBUSxFQUV4RSxHQUFJVCxFQUFhLENBQ2YsR0FBSUEsRUFBWSxRQUNkLE9BQU9LLEVBQWUsRUFHeEIsSUFBTUssRUFBTSxNQUFNQyxFQUFpQlQsQ0FBVSxFQUU3QyxHQUFJRixFQUFZLFFBQ2QsT0FBT0ssRUFBZSxFQUdwQkssR0FBTyxNQUNUVixFQUFZLGlCQUFpQixRQUFVQyxFQUFnQixJQUFNTSxFQUFRRyxDQUFHLENBQUUsQ0FFOUUsQ0FFQSxJQUFNRSxFQUFTLE1BQU0sUUFBUSxLQUFLLENBQUNoQixFQUFXLE9BQU9HLEVBQU0sSUFBS0EsRUFBTSxVQUFtQixFQUFHUyxDQUFlLENBQUMsRUFFdEdLLEVBQVcsS0FBSyxJQUFJLEVBQUlQLEVBRTlCLE9BQUksT0FBT00sR0FBVyxVQUVmRSxFQUFZbEIsRUFBWWdCLENBQU0sRUFFL0JULEdBQ0YsUUFBUSxJQUFJLDRDQUE2Q1UsRUFBVSxNQUFPVCxDQUFjLEVBR25GQyxFQUFlLElBR3BCRixHQUNGLFFBQVEsSUFBSSx3Q0FBeUNVLEVBQVUsTUFBT1QsQ0FBYyxFQUcvRSxDQUFDLEtBQU1RLENBQWUsRUFDL0IsT0FBU0csRUFBZ0IsQ0FDdkIsTUFBTyxDQUFDQSxDQUFjLENBQ3hCLFFBQUUsQ0FDSWQsR0FDRkQsR0FBYSxvQkFBb0IsUUFBU0MsQ0FBYSxFQUd6REMsR0FBWSxRQUFRLENBQ3RCLENBQ0YsQ0FDRixDQUNGLENBS08sU0FBU2MsRUFBd0JwQixFQUFpQkMsRUFBNkMsQ0FDcEcsT0FBT29CLEVBQXNCLENBQzNCLFNBQVV0QixFQUF5QkMsRUFBWUMsQ0FBTyxDQUN4RCxDQUFDLENBQ0gsQ0FHQSxlQUFlaUIsRUFBWWxCLEVBQWlCYyxFQUF3QixDQUNsRSxJQUFNWCxFQUFRbUIsRUFBZVIsQ0FBRyxFQUVoQyxHQUFJLENBQ0YsTUFBTWQsRUFBVyxPQUFPRyxFQUFNLElBQUtBLEVBQU0sVUFBbUIsQ0FDOUQsT0FBU2dCLEVBQU8sQ0FDZCxRQUFRLE1BQU0sMEJBQTJCQSxDQUFLLENBQ2hELENBQ0YsQ0FFQSxlQUFlSixFQUFpQlQsRUFBMkMsQ0FDekUsSUFBTUgsRUFBUW9CLEVBQVksRUFFMUIsR0FBSSxDQUNGLEdBQU0sQ0FBQ1AsQ0FBTSxFQUFJLE1BQU1WLEVBQVcsT0FBa0NILEVBQU0sSUFBS0EsRUFBTSxVQUFtQixFQUV4RyxPQUFPYSxHQUFRLEdBQ2pCLE9BQVNHLEVBQU8sQ0FDZCxRQUFRLE1BQU0sZ0NBQWlDQSxDQUFLLEVBRXBELE1BQ0YsQ0FDRiIsCiAgIm5hbWVzIjogWyJpbml0X2RlZmluZV9BQ0NFTEVSQVRFX1NDSEVNQV9CWV9QUk9WSURFUiIsICJjcmVhdGVQb3N0Z3Jlc0pTRXhlY3V0b3IiLCAicG9zdGdyZXNqcyIsICJvcHRpb25zIiwgImxvZ2dpbmciLCAicXVlcnkiLCAiYWJvcnRTaWduYWwiLCAiYWJvcnRMaXN0ZW5lciIsICJjb25uZWN0aW9uIiwgInNob3VsZExvZyIsICJsb2dnYWJsZVF1ZXJ5IiwgImdldEFib3J0UmVzdWx0IiwgIm5vdyIsICJ0cmlnZ2VyIiwgImFib3J0aW9uUHJvbWlzZSIsICJyZXNvbHZlIiwgInBpZCIsICJnZXRDb25uZWN0aW9uUElEIiwgInJlc3VsdCIsICJkdXJhdGlvbiIsICJjYW5jZWxRdWVyeSIsICJlcnJvciIsICJjcmVhdGVQb3N0Z3Jlc0pTQWRhcHRlciIsICJjcmVhdGVQb3N0Z3Jlc0FkYXB0ZXIiLCAiZ2V0Q2FuY2VsUXVlcnkiLCAiZ2V0UElEUXVlcnkiXQp9Cg==
9
+ import{b as a}from"../../chunk-GFTEV2G4.js";import{j as y,l as m,m as P}from"../../chunk-HRW7Y3N2.js";import"../../chunk-EEN4LCTK.js";import{e as g}from"../../chunk-P5LRZ6C2.js";g();function q(r,t){let{logging:e=!1}=t??{};return{execute:async(o,S)=>{let{abortSignal:n}=S||{},u,i;try{let s=typeof e=="function"?e(o):e,l;if(s&&console.log("PostgresJSExecutor: Executing query:",l=JSON.stringify(o,null,2)),n?.aborted)return a();let x=Date.now(),d,v=new Promise(c=>d=c);if(n){if(i=await r.reserve(),n.aborted)return a();let c=await E(i);if(n.aborted)return a();c!=null&&n.addEventListener("abort",u=()=>d(c))}let f=await Promise.race([(i||r).unsafe(o.sql,o.parameters),v]),p=Date.now()-x;return typeof f!="object"?(b(r,f),s&&console.log("PostgresJSExecutor: Query cancelled after",p,"ms:",l),a()):(s&&console.log("PostgresJSExecutor: Query executed in",p,"ms:",l),[null,f])}catch(s){return[s]}finally{u&&n?.removeEventListener("abort",u),i?.release()}}}}function O(r,t){return y({executor:q(r,t)})}async function b(r,t){let e=P(t);try{await r.unsafe(e.sql,e.parameters)}catch(o){console.error("Failed to cancel query:",o)}}async function E(r){let t=m();try{let[e]=await r.unsafe(t.sql,t.parameters);return e?.pid}catch(e){console.error("Failed to get connection PID:",e);return}}export{O as createPostgresJSAdapter,q as createPostgresJSExecutor};
10
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vZGF0YS9wb3N0Z3Jlc2pzL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgdHlwZSB7IFJlc2VydmVkU3FsLCBTcWwgfSBmcm9tIFwicG9zdGdyZXNcIjtcblxuaW1wb3J0IHR5cGUgeyBBZGFwdGVyIH0gZnJvbSBcIi4uL2FkYXB0ZXJcIjtcbmltcG9ydCB7IHR5cGUgRXhlY3V0b3IsIGdldEFib3J0UmVzdWx0IH0gZnJvbSBcIi4uL2V4ZWN1dG9yXCI7XG5pbXBvcnQgeyBjcmVhdGVQb3N0Z3Jlc0FkYXB0ZXIgfSBmcm9tIFwiLi4vcG9zdGdyZXMtY29yZVwiO1xuaW1wb3J0IHsgZ2V0Q2FuY2VsUXVlcnksIGdldFBJRFF1ZXJ5IH0gZnJvbSBcIi4uL3Bvc3RncmVzLWNvcmUvdXRpbGl0eVwiO1xuaW1wb3J0IHR5cGUgeyBRdWVyeSwgUXVlcnlSZXN1bHQgfSBmcm9tIFwiLi4vcXVlcnlcIjtcblxuZXhwb3J0IGludGVyZmFjZSBQb3N0Z3Jlc0pTRXhlY3V0b3JPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gbG9nIHRoZSBxdWVyeSBhbmQgaXRzIHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICAqL1xuICBsb2dnaW5nPzogYm9vbGVhbiB8ICgocXVlcnk6IFF1ZXJ5KSA9PiBib29sZWFuKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBvc3RncmVzSlNFeGVjdXRvcihwb3N0Z3Jlc2pzOiBTcWwsIG9wdGlvbnM/OiBQb3N0Z3Jlc0pTRXhlY3V0b3JPcHRpb25zKTogRXhlY3V0b3Ige1xuICBjb25zdCB7IGxvZ2dpbmcgPSBmYWxzZSB9ID0gb3B0aW9ucyA/PyB7fTtcblxuICByZXR1cm4ge1xuICAgIGV4ZWN1dGU6IGFzeW5jIChxdWVyeSwgb3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgeyBhYm9ydFNpZ25hbCB9ID0gb3B0aW9ucyB8fCB7fTtcblxuICAgICAgbGV0IGFib3J0TGlzdGVuZXI6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcbiAgICAgIGxldCBjb25uZWN0aW9uOiBSZXNlcnZlZFNxbCB8IHVuZGVmaW5lZDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgc2hvdWxkTG9nID0gdHlwZW9mIGxvZ2dpbmcgPT09IFwiZnVuY3Rpb25cIiA/IGxvZ2dpbmcocXVlcnkpIDogbG9nZ2luZztcblxuICAgICAgICBsZXQgbG9nZ2FibGVRdWVyeTogc3RyaW5nO1xuICAgICAgICBpZiAoc2hvdWxkTG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJQb3N0Z3Jlc0pTRXhlY3V0b3I6IEV4ZWN1dGluZyBxdWVyeTpcIiwgKGxvZ2dhYmxlUXVlcnkgPSBKU09OLnN0cmluZ2lmeShxdWVyeSwgbnVsbCwgMikpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhYm9ydFNpZ25hbD8uYWJvcnRlZCkge1xuICAgICAgICAgIHJldHVybiBnZXRBYm9ydFJlc3VsdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LW9iamVjdC10eXBlXG4gICAgICAgIGxldCB0cmlnZ2VyOiAocGlkOiB7fSkgPT4gdm9pZDtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1vYmplY3QtdHlwZVxuICAgICAgICBjb25zdCBhYm9ydGlvblByb21pc2UgPSBuZXcgUHJvbWlzZTx7fT4oKHJlc29sdmUpID0+ICh0cmlnZ2VyID0gcmVzb2x2ZSkpO1xuXG4gICAgICAgIGlmIChhYm9ydFNpZ25hbCkge1xuICAgICAgICAgIGNvbm5lY3Rpb24gPSBhd2FpdCBwb3N0Z3Jlc2pzLnJlc2VydmUoKTtcblxuICAgICAgICAgIGlmIChhYm9ydFNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0QWJvcnRSZXN1bHQoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBwaWQgPSBhd2FpdCBnZXRDb25uZWN0aW9uUElEKGNvbm5lY3Rpb24pO1xuXG4gICAgICAgICAgaWYgKGFib3J0U2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRBYm9ydFJlc3VsdCgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChwaWQgIT0gbnVsbCkge1xuICAgICAgICAgICAgYWJvcnRTaWduYWwuYWRkRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsIChhYm9ydExpc3RlbmVyID0gKCkgPT4gdHJpZ2dlcihwaWQpKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICAgICAgICAoY29ubmVjdGlvbiB8fCBwb3N0Z3Jlc2pzKS51bnNhZmUocXVlcnkuc3FsLCBxdWVyeS5wYXJhbWV0ZXJzIGFzIG5ldmVyKSxcbiAgICAgICAgICBhYm9ydGlvblByb21pc2UsXG4gICAgICAgIF0pO1xuXG4gICAgICAgIGNvbnN0IGR1cmF0aW9uID0gRGF0ZS5ub3coKSAtIG5vdztcblxuICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgIC8vIG5vdCBpbXBvcnRhbnQgZW5vdWdoIHRvIGF3YWl0LlxuICAgICAgICAgIHZvaWQgY2FuY2VsUXVlcnkocG9zdGdyZXNqcywgcmVzdWx0KTtcblxuICAgICAgICAgIGlmIChzaG91bGRMb2cpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiUG9zdGdyZXNKU0V4ZWN1dG9yOiBRdWVyeSBjYW5jZWxsZWQgYWZ0ZXJcIiwgZHVyYXRpb24sIFwibXM6XCIsIGxvZ2dhYmxlUXVlcnkhKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gZ2V0QWJvcnRSZXN1bHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzaG91bGRMb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIlBvc3RncmVzSlNFeGVjdXRvcjogUXVlcnkgZXhlY3V0ZWQgaW5cIiwgZHVyYXRpb24sIFwibXM6XCIsIGxvZ2dhYmxlUXVlcnkhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbbnVsbCwgcmVzdWx0IGFzIG5ldmVyXTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICAgIHJldHVybiBbZXJyb3IgYXMgRXJyb3JdO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaWYgKGFib3J0TGlzdGVuZXIpIHtcbiAgICAgICAgICBhYm9ydFNpZ25hbD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsIGFib3J0TGlzdGVuZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29ubmVjdGlvbj8ucmVsZWFzZSgpO1xuICAgICAgfVxuICAgIH0sXG4gIH07XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktb2JqZWN0LXR5cGVcbmV4cG9ydCBpbnRlcmZhY2UgUG9zdGdyZXNKU0FkYXB0ZXJPcHRpb25zIGV4dGVuZHMgUG9zdGdyZXNKU0V4ZWN1dG9yT3B0aW9ucyB7fVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUG9zdGdyZXNKU0FkYXB0ZXIocG9zdGdyZXNqczogU3FsLCBvcHRpb25zPzogUG9zdGdyZXNKU0FkYXB0ZXJPcHRpb25zKTogQWRhcHRlciB7XG4gIHJldHVybiBjcmVhdGVQb3N0Z3Jlc0FkYXB0ZXIoe1xuICAgIGV4ZWN1dG9yOiBjcmVhdGVQb3N0Z3Jlc0pTRXhlY3V0b3IocG9zdGdyZXNqcywgb3B0aW9ucyksXG4gIH0pO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LW9iamVjdC10eXBlXG5hc3luYyBmdW5jdGlvbiBjYW5jZWxRdWVyeShwb3N0Z3Jlc2pzOiBTcWwsIHBpZDoge30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcXVlcnkgPSBnZXRDYW5jZWxRdWVyeShwaWQpO1xuXG4gIHRyeSB7XG4gICAgYXdhaXQgcG9zdGdyZXNqcy51bnNhZmUocXVlcnkuc3FsLCBxdWVyeS5wYXJhbWV0ZXJzIGFzIG5ldmVyKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKFwiRmFpbGVkIHRvIGNhbmNlbCBxdWVyeTpcIiwgZXJyb3IpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENvbm5lY3Rpb25QSUQoY29ubmVjdGlvbjogUmVzZXJ2ZWRTcWwpOiBQcm9taXNlPHVua25vd24+IHtcbiAgY29uc3QgcXVlcnkgPSBnZXRQSURRdWVyeSgpO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgW3Jlc3VsdF0gPSBhd2FpdCBjb25uZWN0aW9uLnVuc2FmZTxRdWVyeVJlc3VsdDx0eXBlb2YgcXVlcnk+PihxdWVyeS5zcWwsIHF1ZXJ5LnBhcmFtZXRlcnMgYXMgbmV2ZXIpO1xuXG4gICAgcmV0dXJuIHJlc3VsdD8ucGlkO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoXCJGYWlsZWQgdG8gZ2V0IGNvbm5lY3Rpb24gUElEOlwiLCBlcnJvcik7XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7OztrTEFBQUEsSUFpQk8sU0FBU0MsRUFBeUJDLEVBQWlCQyxFQUErQyxDQUN2RyxHQUFNLENBQUUsUUFBQUMsRUFBVSxFQUFNLEVBQUlELEdBQVcsQ0FBQyxFQUV4QyxNQUFPLENBQ0wsUUFBUyxNQUFPRSxFQUFPRixJQUFZLENBQ2pDLEdBQU0sQ0FBRSxZQUFBRyxDQUFZLEVBQUlILEdBQVcsQ0FBQyxFQUVoQ0ksRUFDQUMsRUFFSixHQUFJLENBQ0YsSUFBTUMsRUFBWSxPQUFPTCxHQUFZLFdBQWFBLEVBQVFDLENBQUssRUFBSUQsRUFFL0RNLEVBS0osR0FKSUQsR0FDRixRQUFRLElBQUksdUNBQXlDQyxFQUFnQixLQUFLLFVBQVVMLEVBQU8sS0FBTSxDQUFDLENBQUUsRUFHbEdDLEdBQWEsUUFDZixPQUFPSyxFQUFlLEVBR3hCLElBQU1DLEVBQU0sS0FBSyxJQUFJLEVBR2pCQyxFQUVFQyxFQUFrQixJQUFJLFFBQWFDLEdBQWFGLEVBQVVFLENBQVEsRUFFeEUsR0FBSVQsRUFBYSxDQUdmLEdBRkFFLEVBQWEsTUFBTU4sRUFBVyxRQUFRLEVBRWxDSSxFQUFZLFFBQ2QsT0FBT0ssRUFBZSxFQUd4QixJQUFNSyxFQUFNLE1BQU1DLEVBQWlCVCxDQUFVLEVBRTdDLEdBQUlGLEVBQVksUUFDZCxPQUFPSyxFQUFlLEVBR3BCSyxHQUFPLE1BQ1RWLEVBQVksaUJBQWlCLFFBQVVDLEVBQWdCLElBQU1NLEVBQVFHLENBQUcsQ0FBRSxDQUU5RSxDQUVBLElBQU1FLEVBQVMsTUFBTSxRQUFRLEtBQUssRUFDL0JWLEdBQWNOLEdBQVksT0FBT0csRUFBTSxJQUFLQSxFQUFNLFVBQW1CLEVBQ3RFUyxDQUNGLENBQUMsRUFFS0ssRUFBVyxLQUFLLElBQUksRUFBSVAsRUFFOUIsT0FBSSxPQUFPTSxHQUFXLFVBRWZFLEVBQVlsQixFQUFZZ0IsQ0FBTSxFQUUvQlQsR0FDRixRQUFRLElBQUksNENBQTZDVSxFQUFVLE1BQU9ULENBQWMsRUFHbkZDLEVBQWUsSUFHcEJGLEdBQ0YsUUFBUSxJQUFJLHdDQUF5Q1UsRUFBVSxNQUFPVCxDQUFjLEVBRy9FLENBQUMsS0FBTVEsQ0FBZSxFQUMvQixPQUFTRyxFQUFnQixDQUN2QixNQUFPLENBQUNBLENBQWMsQ0FDeEIsUUFBRSxDQUNJZCxHQUNGRCxHQUFhLG9CQUFvQixRQUFTQyxDQUFhLEVBR3pEQyxHQUFZLFFBQVEsQ0FDdEIsQ0FDRixDQUNGLENBQ0YsQ0FLTyxTQUFTYyxFQUF3QnBCLEVBQWlCQyxFQUE2QyxDQUNwRyxPQUFPb0IsRUFBc0IsQ0FDM0IsU0FBVXRCLEVBQXlCQyxFQUFZQyxDQUFPLENBQ3hELENBQUMsQ0FDSCxDQUdBLGVBQWVpQixFQUFZbEIsRUFBaUJjLEVBQXdCLENBQ2xFLElBQU1YLEVBQVFtQixFQUFlUixDQUFHLEVBRWhDLEdBQUksQ0FDRixNQUFNZCxFQUFXLE9BQU9HLEVBQU0sSUFBS0EsRUFBTSxVQUFtQixDQUM5RCxPQUFTZ0IsRUFBTyxDQUNkLFFBQVEsTUFBTSwwQkFBMkJBLENBQUssQ0FDaEQsQ0FDRixDQUVBLGVBQWVKLEVBQWlCVCxFQUEyQyxDQUN6RSxJQUFNSCxFQUFRb0IsRUFBWSxFQUUxQixHQUFJLENBQ0YsR0FBTSxDQUFDUCxDQUFNLEVBQUksTUFBTVYsRUFBVyxPQUFrQ0gsRUFBTSxJQUFLQSxFQUFNLFVBQW1CLEVBRXhHLE9BQU9hLEdBQVEsR0FDakIsT0FBU0csRUFBTyxDQUNkLFFBQVEsTUFBTSxnQ0FBaUNBLENBQUssRUFFcEQsTUFDRixDQUNGIiwKICAibmFtZXMiOiBbImluaXRfZGVmaW5lX0FDQ0VMRVJBVEVfU0NIRU1BX0JZX1BST1ZJREVSIiwgImNyZWF0ZVBvc3RncmVzSlNFeGVjdXRvciIsICJwb3N0Z3Jlc2pzIiwgIm9wdGlvbnMiLCAibG9nZ2luZyIsICJxdWVyeSIsICJhYm9ydFNpZ25hbCIsICJhYm9ydExpc3RlbmVyIiwgImNvbm5lY3Rpb24iLCAic2hvdWxkTG9nIiwgImxvZ2dhYmxlUXVlcnkiLCAiZ2V0QWJvcnRSZXN1bHQiLCAibm93IiwgInRyaWdnZXIiLCAiYWJvcnRpb25Qcm9taXNlIiwgInJlc29sdmUiLCAicGlkIiwgImdldENvbm5lY3Rpb25QSUQiLCAicmVzdWx0IiwgImR1cmF0aW9uIiwgImNhbmNlbFF1ZXJ5IiwgImVycm9yIiwgImNyZWF0ZVBvc3RncmVzSlNBZGFwdGVyIiwgImNyZWF0ZVBvc3RncmVzQWRhcHRlciIsICJnZXRDYW5jZWxRdWVyeSIsICJnZXRQSURRdWVyeSJdCn0K