vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
216 lines (214 loc) • 24 kB
JavaScript
/**
* vite-plugin-react-server
* Copyright (c) Nico Brinkkemper
* MIT License
*/
const baseConfig = {
rsc: {
client: {
browser: {
production: "react-server-dom-esm/client.browser",
development: "react-server-dom-esm/client.browser",
test: "react-server-dom-esm/client.browser",
exports: {
createFromFetch: "createFromFetch",
createFromReadableStream: "createFromReadableStream",
createServerReference: "createServerReference",
createTemporaryReferenceSet: "createTemporaryReferenceSet",
encodeReply: "encodeReply",
registerServerReference: "registerServerReference"
}
},
node: {
production: "react-server-dom-esm/client",
development: "react-server-dom-esm/client.node",
test: "react-server-dom-esm/client.node",
exports: {
createFromNodeStream: "createFromNodeStream",
createServerReference: "createServerReference",
registerServerReference: "registerServerReference"
}
}
},
server: {
production: "react-server-dom-esm/server",
development: "react-server-dom-esm/server.node",
test: "react-server-dom-esm/server.node",
exports: {
createTemporaryReferenceSet: "createTemporaryReferenceSet",
decodeAction: "decodeAction",
decodeFormState: "decodeFormState",
decodeReply: "decodeReply",
decodeReplyFromBusboy: "decodeReplyFromBusboy",
registerClientReference: "registerClientReference",
registerServerReference: "registerServerReference",
renderToPipeableStream: "renderToPipeableStream",
unstable_prerenderToNodeStream: "unstable_prerenderToNodeStream"
}
}
},
vendor: {
react: "react",
reactDOMServer: "react-dom/server"
}
};
const targetConfigs = {
default: {},
webpack: {
rsc: {
client: {
browser: {
production: "react-server-dom-webpack/client",
development: "react-server-dom-webpack/client",
test: "react-server-dom-webpack/client",
exports: baseConfig.rsc.client.browser.exports
},
node: {
production: "react-server-dom-webpack/client",
development: "react-server-dom-webpack/client",
test: "react-server-dom-webpack/client",
exports: baseConfig.rsc.client.node.exports
}
},
server: {
production: "react-server-dom-webpack/server",
development: "react-server-dom-webpack/server",
test: "react-server-dom-webpack/server",
exports: baseConfig.rsc.server.exports
}
}
},
nextjs: {
rsc: {
client: {
browser: {
production: "react-server-dom-webpack/client",
development: "react-server-dom-webpack/client",
test: "react-server-dom-webpack/client",
exports: baseConfig.rsc.client.browser.exports
},
node: {
production: "react-server-dom-webpack/client",
development: "react-server-dom-webpack/client",
test: "react-server-dom-webpack/client",
exports: baseConfig.rsc.client.node.exports
}
},
server: {
production: "react-server-dom-webpack/server.edge",
development: "react-server-dom-webpack/server.edge",
test: "react-server-dom-webpack/server.edge",
exports: baseConfig.rsc.server.exports
}
}
},
"react-server-dom-esm": {
rsc: {
client: {
browser: {
production: "react-server-dom-esm/client.browser",
development: "react-server-dom-esm/client.browser",
test: "react-server-dom-esm/client.browser",
exports: baseConfig.rsc.client.browser.exports
},
node: {
production: "react-server-dom-esm/client",
development: "react-server-dom-esm/client.node",
test: "react-server-dom-esm/client.node",
exports: baseConfig.rsc.client.node.exports
}
},
server: {
production: "react-server-dom-esm/server",
development: "react-server-dom-esm/server.node",
test: "react-server-dom-esm/server.node",
exports: baseConfig.rsc.server.exports
}
}
},
"react-server-dom-webpack": {
rsc: {
client: {
browser: {
production: "react-server-dom-webpack/client",
development: "react-server-dom-webpack/client",
test: "react-server-dom-webpack/client",
exports: baseConfig.rsc.client.browser.exports
},
node: {
production: "react-server-dom-webpack/client",
development: "react-server-dom-webpack/client",
test: "react-server-dom-webpack/client",
exports: baseConfig.rsc.client.node.exports
}
},
server: {
production: "react-server-dom-webpack/server",
development: "react-server-dom-webpack/server",
test: "react-server-dom-webpack/server",
exports: baseConfig.rsc.server.exports
}
}
},
"react-server-dom-parcel": {
rsc: {
client: {
browser: {
production: "react-server-dom-parcel/client",
development: "react-server-dom-parcel/client",
test: "react-server-dom-parcel/client",
exports: baseConfig.rsc.client.browser.exports
},
node: {
production: "react-server-dom-parcel/client",
development: "react-server-dom-parcel/client",
test: "react-server-dom-parcel/client",
exports: baseConfig.rsc.client.node.exports
}
},
server: {
production: "react-server-dom-parcel/server",
development: "react-server-dom-parcel/server",
test: "react-server-dom-parcel/server",
exports: baseConfig.rsc.server.exports
}
}
}
};
function createFlightBindings(target = "default", overrides) {
return {
...baseConfig,
...targetConfigs[target],
...overrides,
rsc: {
...baseConfig.rsc,
...targetConfigs[target].rsc,
...overrides?.rsc,
client: {
browser: {
...baseConfig.rsc.client.browser,
...targetConfigs[target].rsc?.client?.browser,
...overrides?.rsc?.client?.browser
},
node: {
...baseConfig.rsc.client.node,
...targetConfigs[target].rsc?.client?.node,
...overrides?.rsc?.client?.node
}
},
server: {
...baseConfig.rsc.server,
...targetConfigs[target].rsc?.server,
...overrides?.rsc?.server
}
},
vendor: {
...baseConfig.vendor,
...targetConfigs[target].vendor,
...overrides?.vendor
}
};
}
const defaultFlightBindings = createFlightBindings("default");
export { createFlightBindings, defaultFlightBindings };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxpZ2h0QmluZGluZ3MuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BsdWdpbi9jb25maWcvZmxpZ2h0QmluZGluZ3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGbGlnaHRDb25maWcsIEZsaWdodFRhcmdldCB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuLy8gQmFzZSBjb25maWd1cmF0aW9uIHdpdGggZGVmYXVsdCBleHBvcnRzXG4vLyBtb3N0IG9mIHRoZXNlIGFyZSBwcm9iYWJseSB3cm9uZywgYnV0IGluIHRoZSBmdXR1cmUgd2UgbWlnaHQgYmUgYWJsZSB0byB0YXJnZXQgXG4vLyBvdGhlciB0YXJnZXRzIHRoYW4gLWVzbSwgZm9yIGV4YW1wbGUgZm9yIHVzZSBpbiBuZXh0anMuXG5jb25zdCBiYXNlQ29uZmlnOiBGbGlnaHRDb25maWcgPSB7XG4gIHJzYzoge1xuICAgIGNsaWVudDoge1xuICAgICAgYnJvd3Nlcjoge1xuICAgICAgICBwcm9kdWN0aW9uOiBcInJlYWN0LXNlcnZlci1kb20tZXNtL2NsaWVudC5icm93c2VyXCIsXG4gICAgICAgIGRldmVsb3BtZW50OiBcInJlYWN0LXNlcnZlci1kb20tZXNtL2NsaWVudC5icm93c2VyXCIsXG4gICAgICAgIHRlc3Q6IFwicmVhY3Qtc2VydmVyLWRvbS1lc20vY2xpZW50LmJyb3dzZXJcIixcbiAgICAgICAgZXhwb3J0czoge1xuICAgICAgICAgIGNyZWF0ZUZyb21GZXRjaDogXCJjcmVhdGVGcm9tRmV0Y2hcIixcbiAgICAgICAgICBjcmVhdGVGcm9tUmVhZGFibGVTdHJlYW06IFwiY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtXCIsXG4gICAgICAgICAgY3JlYXRlU2VydmVyUmVmZXJlbmNlOiBcImNyZWF0ZVNlcnZlclJlZmVyZW5jZVwiLFxuICAgICAgICAgIGNyZWF0ZVRlbXBvcmFyeVJlZmVyZW5jZVNldDogXCJjcmVhdGVUZW1wb3JhcnlSZWZlcmVuY2VTZXRcIixcbiAgICAgICAgICBlbmNvZGVSZXBseTogXCJlbmNvZGVSZXBseVwiLFxuICAgICAgICAgIHJlZ2lzdGVyU2VydmVyUmVmZXJlbmNlOiBcInJlZ2lzdGVyU2VydmVyUmVmZXJlbmNlXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG5vZGU6IHtcbiAgICAgICAgcHJvZHVjdGlvbjogXCJyZWFjdC1zZXJ2ZXItZG9tLWVzbS9jbGllbnRcIixcbiAgICAgICAgZGV2ZWxvcG1lbnQ6IFwicmVhY3Qtc2VydmVyLWRvbS1lc20vY2xpZW50Lm5vZGVcIixcbiAgICAgICAgdGVzdDogXCJyZWFjdC1zZXJ2ZXItZG9tLWVzbS9jbGllbnQubm9kZVwiLFxuICAgICAgICBleHBvcnRzOiB7XG4gICAgICAgICAgY3JlYXRlRnJvbU5vZGVTdHJlYW06IFwiY3JlYXRlRnJvbU5vZGVTdHJlYW1cIixcbiAgICAgICAgICBjcmVhdGVTZXJ2ZXJSZWZlcmVuY2U6IFwiY3JlYXRlU2VydmVyUmVmZXJlbmNlXCIsXG4gICAgICAgICAgcmVnaXN0ZXJTZXJ2ZXJSZWZlcmVuY2U6IFwicmVnaXN0ZXJTZXJ2ZXJSZWZlcmVuY2VcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBzZXJ2ZXI6IHtcbiAgICAgIHByb2R1Y3Rpb246IFwicmVhY3Qtc2VydmVyLWRvbS1lc20vc2VydmVyXCIsXG4gICAgICBkZXZlbG9wbWVudDogXCJyZWFjdC1zZXJ2ZXItZG9tLWVzbS9zZXJ2ZXIubm9kZVwiLFxuICAgICAgdGVzdDogXCJyZWFjdC1zZXJ2ZXItZG9tLWVzbS9zZXJ2ZXIubm9kZVwiLFxuICAgICAgZXhwb3J0czoge1xuICAgICAgICBjcmVhdGVUZW1wb3JhcnlSZWZlcmVuY2VTZXQ6IFwiY3JlYXRlVGVtcG9yYXJ5UmVmZXJlbmNlU2V0XCIsXG4gICAgICAgIGRlY29kZUFjdGlvbjogXCJkZWNvZGVBY3Rpb25cIixcbiAgICAgICAgZGVjb2RlRm9ybVN0YXRlOiBcImRlY29kZUZvcm1TdGF0ZVwiLFxuICAgICAgICBkZWNvZGVSZXBseTogXCJkZWNvZGVSZXBseVwiLFxuICAgICAgICBkZWNvZGVSZXBseUZyb21CdXNib3k6IFwiZGVjb2RlUmVwbHlGcm9tQnVzYm95XCIsXG4gICAgICAgIHJlZ2lzdGVyQ2xpZW50UmVmZXJlbmNlOiBcInJlZ2lzdGVyQ2xpZW50UmVmZXJlbmNlXCIsXG4gICAgICAgIHJlZ2lzdGVyU2VydmVyUmVmZXJlbmNlOiBcInJlZ2lzdGVyU2VydmVyUmVmZXJlbmNlXCIsXG4gICAgICAgIHJlbmRlclRvUGlwZWFibGVTdHJlYW06IFwicmVuZGVyVG9QaXBlYWJsZVN0cmVhbVwiLFxuICAgICAgICB1bnN0YWJsZV9wcmVyZW5kZXJUb05vZGVTdHJlYW06IFwidW5zdGFibGVfcHJlcmVuZGVyVG9Ob2RlU3RyZWFtXCJcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIHZlbmRvcjoge1xuICAgIHJlYWN0OiBcInJlYWN0XCIsXG4gICAgcmVhY3RET01TZXJ2ZXI6IFwicmVhY3QtZG9tL3NlcnZlclwiXG4gIH1cbn07XG5cbi8vIFRhcmdldC1zcGVjaWZpYyBjb25maWd1cmF0aW9uc1xuY29uc3QgdGFyZ2V0Q29uZmlnczogUmVjb3JkPEZsaWdodFRhcmdldCwgUGFydGlhbDxGbGlnaHRDb25maWc+PiA9IHtcbiAgZGVmYXVsdDoge30sXG4gIHdlYnBhY2s6IHtcbiAgICByc2M6IHtcbiAgICAgIGNsaWVudDoge1xuICAgICAgICBicm93c2VyOiB7XG4gICAgICAgICAgcHJvZHVjdGlvbjogXCJyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svY2xpZW50XCIsXG4gICAgICAgICAgZGV2ZWxvcG1lbnQ6IFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL2NsaWVudFwiLFxuICAgICAgICAgIHRlc3Q6IFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL2NsaWVudFwiLFxuICAgICAgICAgIGV4cG9ydHM6IGJhc2VDb25maWcucnNjLmNsaWVudC5icm93c2VyLmV4cG9ydHNcbiAgICAgICAgfSxcbiAgICAgICAgbm9kZToge1xuICAgICAgICAgIHByb2R1Y3Rpb246IFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL2NsaWVudFwiLFxuICAgICAgICAgIGRldmVsb3BtZW50OiBcInJlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnRcIixcbiAgICAgICAgICB0ZXN0OiBcInJlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnRcIixcbiAgICAgICAgICBleHBvcnRzOiBiYXNlQ29uZmlnLnJzYy5jbGllbnQubm9kZS5leHBvcnRzXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzZXJ2ZXI6IHtcbiAgICAgICAgcHJvZHVjdGlvbjogXCJyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svc2VydmVyXCIsXG4gICAgICAgIGRldmVsb3BtZW50OiBcInJlYWN0LXNlcnZlci1kb20td2VicGFjay9zZXJ2ZXJcIixcbiAgICAgICAgdGVzdDogXCJyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svc2VydmVyXCIsXG4gICAgICAgIGV4cG9ydHM6IGJhc2VDb25maWcucnNjLnNlcnZlci5leHBvcnRzXG4gICAgICB9XG4gICAgfVxuICB9LFxuICBuZXh0anM6IHtcbiAgICByc2M6IHtcbiAgICAgIGNsaWVudDoge1xuICAgICAgICBicm93c2VyOiB7XG4gICAgICAgICAgcHJvZHVjdGlvbjogXCJyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svY2xpZW50XCIsXG4gICAgICAgICAgZGV2ZWxvcG1lbnQ6IFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL2NsaWVudFwiLFxuICAgICAgICAgIHRlc3Q6IFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL2NsaWVudFwiLFxuICAgICAgICAgIGV4cG9ydHM6IGJhc2VDb25maWcucnNjLmNsaWVudC5icm93c2VyLmV4cG9ydHNcbiAgICAgICAgfSxcbiAgICAgICAgbm9kZToge1xuICAgICAgICAgIHByb2R1Y3Rpb246IFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL2NsaWVudFwiLFxuICAgICAgICAgIGRldmVsb3BtZW50OiBcInJlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnRcIixcbiAgICAgICAgICB0ZXN0OiBcInJlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnRcIixcbiAgICAgICAgICBleHBvcnRzOiBiYXNlQ29uZmlnLnJzYy5jbGllbnQubm9kZS5leHBvcnRzXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzZXJ2ZXI6IHtcbiAgICAgICAgcHJvZHVjdGlvbjogXCJyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svc2VydmVyLmVkZ2VcIixcbiAgICAgICAgZGV2ZWxvcG1lbnQ6IFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL3NlcnZlci5lZGdlXCIsXG4gICAgICAgIHRlc3Q6IFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL3NlcnZlci5lZGdlXCIsXG4gICAgICAgIGV4cG9ydHM6IGJhc2VDb25maWcucnNjLnNlcnZlci5leHBvcnRzXG4gICAgICB9XG4gICAgfVxuICB9LFxuICAncmVhY3Qtc2VydmVyLWRvbS1lc20nOiB7XG4gICAgcnNjOiB7XG4gICAgICBjbGllbnQ6IHtcbiAgICAgICAgYnJvd3Nlcjoge1xuICAgICAgICAgIHByb2R1Y3Rpb246IFwicmVhY3Qtc2VydmVyLWRvbS1lc20vY2xpZW50LmJyb3dzZXJcIixcbiAgICAgICAgICBkZXZlbG9wbWVudDogXCJyZWFjdC1zZXJ2ZXItZG9tLWVzbS9jbGllbnQuYnJvd3NlclwiLFxuICAgICAgICAgIHRlc3Q6IFwicmVhY3Qtc2VydmVyLWRvbS1lc20vY2xpZW50LmJyb3dzZXJcIixcbiAgICAgICAgICBleHBvcnRzOiBiYXNlQ29uZmlnLnJzYy5jbGllbnQuYnJvd3Nlci5leHBvcnRzXG4gICAgICAgIH0sXG4gICAgICAgIG5vZGU6IHtcbiAgICAgICAgICBwcm9kdWN0aW9uOiBcInJlYWN0LXNlcnZlci1kb20tZXNtL2NsaWVudFwiLFxuICAgICAgICAgIGRldmVsb3BtZW50OiBcInJlYWN0LXNlcnZlci1kb20tZXNtL2NsaWVudC5ub2RlXCIsXG4gICAgICAgICAgdGVzdDogXCJyZWFjdC1zZXJ2ZXItZG9tLWVzbS9jbGllbnQubm9kZVwiLFxuICAgICAgICAgIGV4cG9ydHM6IGJhc2VDb25maWcucnNjLmNsaWVudC5ub2RlLmV4cG9ydHNcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHNlcnZlcjoge1xuICAgICAgICBwcm9kdWN0aW9uOiBcInJlYWN0LXNlcnZlci1kb20tZXNtL3NlcnZlclwiLFxuICAgICAgICBkZXZlbG9wbWVudDogXCJyZWFjdC1zZXJ2ZXItZG9tLWVzbS9zZXJ2ZXIubm9kZVwiLFxuICAgICAgICB0ZXN0OiBcInJlYWN0LXNlcnZlci1kb20tZXNtL3NlcnZlci5ub2RlXCIsXG4gICAgICAgIGV4cG9ydHM6IGJhc2VDb25maWcucnNjLnNlcnZlci5leHBvcnRzXG4gICAgICB9XG4gICAgfVxuICB9LFxuICAncmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrJzoge1xuICAgIHJzYzoge1xuICAgICAgY2xpZW50OiB7XG4gICAgICAgIGJyb3dzZXI6IHtcbiAgICAgICAgICBwcm9kdWN0aW9uOiBcInJlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnRcIixcbiAgICAgICAgICBkZXZlbG9wbWVudDogXCJyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svY2xpZW50XCIsXG4gICAgICAgICAgdGVzdDogXCJyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svY2xpZW50XCIsXG4gICAgICAgICAgZXhwb3J0czogYmFzZUNvbmZpZy5yc2MuY2xpZW50LmJyb3dzZXIuZXhwb3J0c1xuICAgICAgICB9LFxuICAgICAgICBub2RlOiB7XG4gICAgICAgICAgcHJvZHVjdGlvbjogXCJyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svY2xpZW50XCIsXG4gICAgICAgICAgZGV2ZWxvcG1lbnQ6IFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL2NsaWVudFwiLFxuICAgICAgICAgIHRlc3Q6IFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL2NsaWVudFwiLFxuICAgICAgICAgIGV4cG9ydHM6IGJhc2VDb25maWcucnNjLmNsaWVudC5ub2RlLmV4cG9ydHNcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHNlcnZlcjoge1xuICAgICAgICBwcm9kdWN0aW9uOiBcInJlYWN0LXNlcnZlci1kb20td2VicGFjay9zZXJ2ZXJcIixcbiAgICAgICAgZGV2ZWxvcG1lbnQ6IFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL3NlcnZlclwiLFxuICAgICAgICB0ZXN0OiBcInJlYWN0LXNlcnZlci1kb20td2VicGFjay9zZXJ2ZXJcIixcbiAgICAgICAgZXhwb3J0czogYmFzZUNvbmZpZy5yc2Muc2VydmVyLmV4cG9ydHNcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gICdyZWFjdC1zZXJ2ZXItZG9tLXBhcmNlbCc6IHtcbiAgICByc2M6IHtcbiAgICAgIGNsaWVudDoge1xuICAgICAgICBicm93c2VyOiB7XG4gICAgICAgICAgcHJvZHVjdGlvbjogXCJyZWFjdC1zZXJ2ZXItZG9tLXBhcmNlbC9jbGllbnRcIixcbiAgICAgICAgICBkZXZlbG9wbWVudDogXCJyZWFjdC1zZXJ2ZXItZG9tLXBhcmNlbC9jbGllbnRcIixcbiAgICAgICAgICB0ZXN0OiBcInJlYWN0LXNlcnZlci1kb20tcGFyY2VsL2NsaWVudFwiLFxuICAgICAgICAgIGV4cG9ydHM6IGJhc2VDb25maWcucnNjLmNsaWVudC5icm93c2VyLmV4cG9ydHNcbiAgICAgICAgfSxcbiAgICAgICAgbm9kZToge1xuICAgICAgICAgIHByb2R1Y3Rpb246IFwicmVhY3Qtc2VydmVyLWRvbS1wYXJjZWwvY2xpZW50XCIsXG4gICAgICAgICAgZGV2ZWxvcG1lbnQ6IFwicmVhY3Qtc2VydmVyLWRvbS1wYXJjZWwvY2xpZW50XCIsXG4gICAgICAgICAgdGVzdDogXCJyZWFjdC1zZXJ2ZXItZG9tLXBhcmNlbC9jbGllbnRcIixcbiAgICAgICAgICBleHBvcnRzOiBiYXNlQ29uZmlnLnJzYy5jbGllbnQubm9kZS5leHBvcnRzXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzZXJ2ZXI6IHtcbiAgICAgICAgcHJvZHVjdGlvbjogXCJyZWFjdC1zZXJ2ZXItZG9tLXBhcmNlbC9zZXJ2ZXJcIixcbiAgICAgICAgZGV2ZWxvcG1lbnQ6IFwicmVhY3Qtc2VydmVyLWRvbS1wYXJjZWwvc2VydmVyXCIsXG4gICAgICAgIHRlc3Q6IFwicmVhY3Qtc2VydmVyLWRvbS1wYXJjZWwvc2VydmVyXCIsXG4gICAgICAgIGV4cG9ydHM6IGJhc2VDb25maWcucnNjLnNlcnZlci5leHBvcnRzXG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRmxpZ2h0QmluZGluZ3MoXG4gIHRhcmdldDogRmxpZ2h0VGFyZ2V0ID0gJ2RlZmF1bHQnLFxuICBvdmVycmlkZXM/OiBQYXJ0aWFsPEZsaWdodENvbmZpZz5cbik6IEZsaWdodENvbmZpZyB7XG4gIC8vIE1lcmdlIGNvbmZpZ3VyYXRpb25zIGluIG9yZGVyOiBiYXNlIC0+IHRhcmdldCAtPiBvdmVycmlkZXNcbiAgcmV0dXJuIHtcbiAgICAuLi5iYXNlQ29uZmlnLFxuICAgIC4uLnRhcmdldENvbmZpZ3NbdGFyZ2V0XSxcbiAgICAuLi5vdmVycmlkZXMsXG4gICAgcnNjOiB7XG4gICAgICAuLi5iYXNlQ29uZmlnLnJzYyxcbiAgICAgIC4uLnRhcmdldENvbmZpZ3NbdGFyZ2V0XS5yc2MsXG4gICAgICAuLi5vdmVycmlkZXM/LnJzYyxcbiAgICAgIGNsaWVudDoge1xuICAgICAgICBicm93c2VyOiB7XG4gICAgICAgICAgLi4uYmFzZUNvbmZpZy5yc2MuY2xpZW50LmJyb3dzZXIsXG4gICAgICAgICAgLi4udGFyZ2V0Q29uZmlnc1t0YXJnZXRdLnJzYz8uY2xpZW50Py5icm93c2VyLFxuICAgICAgICAgIC4uLm92ZXJyaWRlcz8ucnNjPy5jbGllbnQ/LmJyb3dzZXJcbiAgICAgICAgfSxcbiAgICAgICAgbm9kZToge1xuICAgICAgICAgIC4uLmJhc2VDb25maWcucnNjLmNsaWVudC5ub2RlLFxuICAgICAgICAgIC4uLnRhcmdldENvbmZpZ3NbdGFyZ2V0XS5yc2M/LmNsaWVudD8ubm9kZSxcbiAgICAgICAgICAuLi5vdmVycmlkZXM/LnJzYz8uY2xpZW50Py5ub2RlXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzZXJ2ZXI6IHtcbiAgICAgICAgLi4uYmFzZUNvbmZpZy5yc2Muc2VydmVyLFxuICAgICAgICAuLi50YXJnZXRDb25maWdzW3RhcmdldF0ucnNjPy5zZXJ2ZXIsXG4gICAgICAgIC4uLm92ZXJyaWRlcz8ucnNjPy5zZXJ2ZXJcbiAgICAgIH1cbiAgICB9LFxuICAgIHZlbmRvcjoge1xuICAgICAgLi4uYmFzZUNvbmZpZy52ZW5kb3IsXG4gICAgICAuLi50YXJnZXRDb25maWdzW3RhcmdldF0udmVuZG9yLFxuICAgICAgLi4ub3ZlcnJpZGVzPy52ZW5kb3JcbiAgICB9XG4gIH07XG59XG5cbi8vIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG5leHBvcnQgY29uc3QgZGVmYXVsdEZsaWdodEJpbmRpbmdzID0gY3JlYXRlRmxpZ2h0QmluZGluZ3MoJ2RlZmF1bHQnKTsgIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0EsTUFBTSxVQUEyQixHQUFBO0FBQUEsRUFDL0IsR0FBSyxFQUFBO0FBQUEsSUFDSCxNQUFRLEVBQUE7QUFBQSxNQUNOLE9BQVMsRUFBQTtBQUFBLFFBQ1AsVUFBWSxFQUFBLHFDQUFBO0FBQUEsUUFDWixXQUFhLEVBQUEscUNBQUE7QUFBQSxRQUNiLElBQU0sRUFBQSxxQ0FBQTtBQUFBLFFBQ04sT0FBUyxFQUFBO0FBQUEsVUFDUCxlQUFpQixFQUFBLGlCQUFBO0FBQUEsVUFDakIsd0JBQTBCLEVBQUEsMEJBQUE7QUFBQSxVQUMxQixxQkFBdUIsRUFBQSx1QkFBQTtBQUFBLFVBQ3ZCLDJCQUE2QixFQUFBLDZCQUFBO0FBQUEsVUFDN0IsV0FBYSxFQUFBLGFB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