@simulacrum/auth0-simulator
Version:
Run local instance of Auth0 API for local development and integration testing
1 lines • 2.56 kB
Source Map (JSON)
{"version":3,"file":"web-message.mjs","names":[],"sources":["../../src/views/web-message.ts"],"sourcesContent":["import jsesc from \"jsesc\";\nimport type { QueryParams } from \"../types.ts\";\n\nexport const webMessage = ({\n state,\n code,\n redirect_uri,\n nonce,\n}: Pick<QueryParams, \"state\" | \"code\" | \"redirect_uri\" | \"nonce\">): string => {\n let data = jsesc(\n {\n redirect_uri,\n },\n { json: true, isScriptContext: true }\n );\n\n return /*html*/ `\n <!DOCTYPE html>\n <html lang=\"en\">\n <head>\n <title>Authorization Response</title>\n </head>\n <body>\n <script ${nonce ? `nonce=\"${nonce}\"` : \"\"} type=\"application/javascript\">\n (function(window, document) {\n var data = ${data};\n var targetOrigin = data.redirect_uri;\n var webMessageRequest = {};\n \n var authorizationResponse = {\n type: \"authorization_response\",\n response: {\n \"code\":\"${code}\",\n \"state\":\"${state}\"}\n };\n \n var mainWin = (window.opener) ? window.opener : window.parent;\n \n if (webMessageRequest[\"web_message_uri\"] && webMessageRequest[\"web_message_target\"]) {\n window.addEventListener(\"message\", function(evt) {\n if (evt.origin != targetOrigin) {\n return;\n }\n \n switch (evt.data.type) {\n case \"relay_response\":\n var messageTargetWindow = evt.source.frames[webMessageRequest[\"web_message_target\"]];\n \n if (messageTargetWindow) {\n messageTargetWindow.postMessage(authorizationResponse, webMessageRequest[\"web_message_uri\"]);\n window.close();\n }\n break;\n }\n }\n );\n \n mainWin.postMessage({\n type: \"relay_request\"\n }, targetOrigin);\n } else {\n mainWin.postMessage(authorizationResponse, targetOrigin);\n }\n })(this, this.document);\n </script>\n </body>\n </html>\n `;\n};\n"],"mappings":";;;AAGA,MAAa,cAAc,EACzB,OACA,MACA,cACA,YAC4E;CAC5E,IAAI,OAAO,MACT,EACE,cACD,EACD;EAAE,MAAM;EAAM,iBAAiB;EAAM,CACtC;AAED,QAAgB;;;;;;;gBAOF,QAAQ,UAAU,MAAM,KAAK,GAAG;;uBAEzB,KAAK;;;;;;;wBAOJ,KAAK;yBACJ,MAAM"}