8 lines
5.5 KiB
PHP
8 lines
5.5 KiB
PHP
<?php
|
|
header("Content-Type: application/json");
|
|
$base = "/var/www/html/api/ambre-pw-tests/tests";
|
|
$spec = base64_decode("Y29uc3QgeyB0ZXN0IH0gPSByZXF1aXJlKCJAcGxheXdyaWdodC90ZXN0Iik7Cgp0ZXN0KCJWMTEgwrcgQ2xhdWRlIFBhdHRlcm4gRGFzaGJvYXJkIMK3IFNTRSBzdHJlYW1pbmcgbG9uZyDCtyBmdWxsIHZpZGVvIiwgYXN5bmMgKHsgcGFnZSB9KSA9PiB7CiAgdGVzdC5zZXRUaW1lb3V0KDYwMDAwMCk7CiAgCiAgYXdhaXQgcGFnZS5nb3RvKCIvd2V2aWEtY2xhdWRlLXBhdHRlcm4uaHRtbCIpOwogIGF3YWl0IHBhZ2Uud2FpdEZvckxvYWRTdGF0ZSgibmV0d29ya2lkbGUiKTsKICBhd2FpdCBwYWdlLndhaXRGb3JUaW1lb3V0KDI1MDApOwogIGF3YWl0IHBhZ2Uuc2NyZWVuc2hvdCh7IHBhdGg6ICJvdXRwdXQvdjExLTAwLWxhbmRpbmcucG5nIiB9KTsKICBjb25zb2xlLmxvZygi8J+TuCBMYW5kaW5nIHBhZ2UgY2FwdHVyZWQiKTsKICAKICAvLyBGaWxsIHF1ZXJ5CiAgY29uc3QgcXVlcnkgPSAiQ29tbWVudCBXRVZJQSBwZXV0IG9yY2hlc3RyZXIgdW5lIHN0cmF0ZWdpZSBwaGFybWEgbXVsdGljYW5hbCBNRU5BIGF2ZWMgYWdlbnRzIGF1dG9ub21lcyBldCBSQUcgUWRyYW50ID8iOwogIGF3YWl0IHBhZ2UubG9jYXRvcigiaW5wdXQuaW5wdXQiKS5maWxsKHF1ZXJ5KTsKICBhd2FpdCBwYWdlLndhaXRGb3JUaW1lb3V0KDUwMCk7CiAgYXdhaXQgcGFnZS5zY3JlZW5zaG90KHsgcGF0aDogIm91dHB1dC92MTEtMDEtcXVlcnktZmlsbGVkLnBuZyIgfSk7CiAgY29uc29sZS5sb2coIvCfk7ggUXVlcnkgZmlsbGVkIik7CiAgCiAgLy8gQ2xpY2sgbGF1bmNoCiAgYXdhaXQgcGFnZS5sb2NhdG9yKCJidXR0b24uYnRuIikuY2xpY2soKTsKICBjb25zb2xlLmxvZygi8J+agCBMYXVuY2hlZCBTU0Ugc3RyZWFtIik7CiAgCiAgLy8gQ2FwdHVyZSBwaGFzZXMgaW4gcmVhbC10aW1lCiAgY29uc3QgcGhhc2VzID0gWyJ0aGlua2luZyIsICJwbGFuIiwgInJhZyIsICJleGVjdXRlIiwgInRlc3QiLCAicmVzdWx0IiwgImNyaXRpcXVlIl07CiAgY29uc3QgY2FwdHVyZWQgPSB7fTsKICAKICAvLyBXYWl0IGZvciBlYWNoIHBoYXNlIHByb2dyZXNzaXZlbHkKICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpOwogIGZvciAobGV0IGkgPSAwOyBpIDwgMzA7IGkrKykgeyAgLy8gbWF4IDMwcyDDlyAycyB3YWl0CiAgICBhd2FpdCBwYWdlLndhaXRGb3JUaW1lb3V0KDIwMDApOwogICAgY29uc3Qgc3RhdGUgPSBhd2FpdCBwYWdlLmV2YWx1YXRlKCgpID0+IHsKICAgICAgY29uc3QgY2hpcHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY2hpcC1zdWNjZXNzIik7CiAgICAgIGNvbnN0IGRvbmVEb3RzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnBoYXNlLWRvdC5kb25lIik7CiAgICAgIGNvbnN0IGgzcyA9IEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiaDMiKSkubWFwKGg9PmguaW5uZXJUZXh0KTsKICAgICAgY29uc3QgcmVzdWx0X2NhcmQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuY2FyZFtzdHlsZSo9J2JvcmRlckNvbG9yJ10iKTsKICAgICAgcmV0dXJuIHsKICAgICAgICBkb25lRG90czogZG9uZURvdHMubGVuZ3RoLAogICAgICAgIHN1Y2Nlc3NDaGlwczogY2hpcHMubGVuZ3RoLAogICAgICAgIGhlYWRlcnM6IGgzcywKICAgICAgICBoYXNSZXN1bHQ6ICEhcmVzdWx0X2NhcmQsCiAgICAgICAgYm9keUxlbjogZG9jdW1lbnQuYm9keS5pbm5lclRleHQubGVuZ3RoLAogICAgICB9OwogICAgfSk7CiAgICBjb25zdCBlbGFwc2VkID0gKChEYXRlLm5vdygpIC0gc3RhcnRUaW1lKSAvIDEwMDApLnRvRml4ZWQoMSk7CiAgICBjb25zb2xlLmxvZyhgICB0PSR7ZWxhcHNlZH1zIMK3IGRvbmVEb3RzPSR7c3RhdGUuZG9uZURvdHN9LzcgwrcgY2hpcHM9JHtzdGF0ZS5zdWNjZXNzQ2hpcHN9IMK3IGJvZHlMZW49JHtzdGF0ZS5ib2R5TGVufWApOwogICAgCiAgICAvLyBDYXB0dXJlIHByb2dyZXNzaXZlIHNjcmVlbnNob3QKICAgIGlmIChpICUgMyA9PT0gMCkgewogICAgICBhd2FpdCBwYWdlLnNjcmVlbnNob3QoeyBwYXRoOiBgb3V0cHV0L3YxMS0wMi1wcm9ncmVzcy0ke2l9LnBuZ2AgfSk7CiAgICB9CiAgICAKICAgIGlmIChzdGF0ZS5kb25lRG90cyA+PSA3IHx8IHN0YXRlLmhhc1Jlc3VsdCkgewogICAgICBjb25zb2xlLmxvZyhgICDinIUgQWxsIDcgcGhhc2VzIGRvbmUgYXQgdD0ke2VsYXBzZWR9c2ApOwogICAgICBicmVhazsKICAgIH0KICB9CiAgCiAgLy8gV2FpdCBhIGZpbmFsIG1vbWVudCBmb3IgY3JpdGlxdWUgdG8gcmVuZGVyCiAgYXdhaXQgcGFnZS53YWl0Rm9yVGltZW91dCgyNTAwKTsKICAKICAvLyBGdWxsIHBhZ2UgZmluYWwgc2NyZWVuc2hvdAogIGF3YWl0IHBhZ2Uuc2NyZWVuc2hvdCh7IHBhdGg6ICJvdXRwdXQvdjExLTAzLWNvbXBsZXRlLnBuZyIsIGZ1bGxQYWdlOiB0cnVlIH0pOwogIGNvbnNvbGUubG9nKCLwn5O4IENvbXBsZXRlIGRhc2hib2FyZCBjYXB0dXJlZCIpOwogIAogIC8vIFNjcm9sbCB0byB0b3AgYW5kIGNhcHR1cmUgaGVhZGVyIGFyZWEKICBhd2FpdCBwYWdlLmV2YWx1YXRlKCgpID0+IHdpbmRvdy5zY3JvbGxUbygwLCAwKSk7CiAgYXdhaXQgcGFnZS53YWl0Rm9yVGltZW91dCg4MDApOwogIGF3YWl0IHBhZ2Uuc2NyZWVuc2hvdCh7IHBhdGg6ICJvdXRwdXQvdjExLTA0LXRvcC5wbmciIH0pOwogIAogIC8vIENhcHR1cmUgdGhlIGNyaXRpcXVlIGNhcmQgc3BlY2lmaWNhbGx5CiAgY29uc3QgY3JpdGlxdWVDYXJkID0gcGFnZS5sb2NhdG9yKCIuY2FyZCIpLmZpbHRlcih7IGhhc1RleHQ6ICJTZWxmLWNyaXRpcXVlIiB9KTsKICBpZiAoYXdhaXQgY3JpdGlxdWVDYXJkLmNvdW50KCkgPiAwKSB7CiAgICBhd2FpdCBjcml0aXF1ZUNhcmQuZmlyc3QoKS5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKCk7CiAgICBhd2FpdCBwYWdlLndhaXRGb3JUaW1lb3V0KDgwMCk7CiAgICBhd2FpdCBwYWdlLnNjcmVlbnNob3QoeyBwYXRoOiAib3V0cHV0L3YxMS0wNS1jcml0aXF1ZS5wbmciIH0pOwogICAgY29uc29sZS5sb2coIvCfk7ggQ3JpdGlxdWUgY2FyZCBjYXB0dXJlZCIpOwogIH0KICAKICAvLyBGaW5hbCBtZXRyaWNzCiAgY29uc3QgbWV0cmljcyA9IGF3YWl0IHBhZ2UuZXZhbHVhdGUoKCkgPT4gKHsKICAgIHBoYXNlc19kb25lOiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucGhhc2UtZG90LmRvbmUiKS5sZW5ndGgsCiAgICB0b3RhbF9jaGlwczogZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmNoaXAtc3VjY2VzcyIpLmxlbmd0aCwKICAgIHJlc3VsdF90ZXh0OiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmNhcmRbc3R5bGUqPSdyZ2JhKDE2LDE4NSwxMjknXSIpIHx8IHt9KS5pbm5lclRleHQgfHwgIiIsCiAgICBjb25maWRlbmNlOiAoKCkgPT4gewogICAgICBjb25zdCB0ID0gQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGV4dC0zeGwiKSkuZmluZChlID0+IGUuaW5uZXJUZXh0LmluY2x1ZGVzKCIlIikpOwogICAgICByZXR1cm4gdCA/IHQuaW5uZXJUZXh0IDogbnVsbDsKICAgIH0pKCksCiAgfSkpOwogIAogIGNvbnNvbGUubG9nKCJcbuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCBWMTEgQklMQU4g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQIik7CiAgY29uc29sZS5sb2coYOKchSAke21ldHJpY3MucGhhc2VzX2RvbmV9LzcgcGhhc2VzIHN0cmVhbcOpZXMgdmlhIFNTRWApOwogIGNvbnNvbGUubG9nKGDinIUgJHttZXRyaWNzLnRvdGFsX2NoaXBzfSBiYWRnZXMgc3VjY2Vzc2ApOwogIGNvbnNvbGUubG9nKGDinIUgQ29uZmlkZW5jZTogJHttZXRyaWNzLmNvbmZpZGVuY2V9YCk7CiAgY29uc29sZS5sb2coYOKchSBSZXN1bHQgbGVuZ3RoOiAke21ldHJpY3MucmVzdWx0X3RleHQubGVuZ3RofSBjaGFyc2ApOwogIGNvbnNvbGUubG9nKGBSZXN1bHQgcHJldmlldzogJHttZXRyaWNzLnJlc3VsdF90ZXh0LnN1YnN0cmluZygwLCAyMDApfWApOwp9KTsK");
|
|
$written = @file_put_contents("$base/claude-pattern-v11.spec.js", $spec);
|
|
@unlink("$base/capabilities-v10.spec.js");
|
|
echo json_encode(["written"=>$written, "specs"=>array_map("basename", glob("$base/*.spec.js"))]);
|