Plugin Directory

Changeset 2612549


Ignore:
Timestamp:
10/11/2021 02:07:03 PM (4 years ago)
Author:
prokerala
Message:

Update to version 1.0.5 from GitHub

Location:
astrology
Files:
14 added
110 edited
1 copied

Legend:

Unmodified
Added
Removed
  • astrology/tags/1.0.5/assets/dist/js/main.js

    r2513947 r2612549  
    2727/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
    2828
    29 eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"Main\": function() { return /* binding */ Main; }\n/* harmony export */ });\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Class Main.\n *\n * @since 1.0.0\n */\nvar Main = /*#__PURE__*/function () {\n  /**\n   * Main constructor.\n   *\n   * @since 1.0.0\n   */\n  function Main() {\n    _classCallCheck(this, Main);\n\n    var inputs = document.querySelectorAll('.prokerala-location-input');\n    this.register(inputs);\n  }\n\n  _createClass(Main, [{\n    key: \"register\",\n    value: function register(inputs) {\n      _toConsumableArray(inputs).map(function (input) {\n        var inputPrefix = input.dataset.location_input_prefix ? input.dataset.location_input_prefix : '';\n        new LocationSearch(input, function (data) {\n          var hiddenDiv = document.getElementById('form-hidden-fields');\n          var coordinates = document.createElement('input');\n          coordinates.name = inputPrefix + 'coordinates';\n          coordinates.type = 'hidden';\n          coordinates.value = \"\".concat(data.latitude, \",\").concat(data.longitude);\n          var timezone = document.createElement('input');\n          timezone.name = inputPrefix + 'timezone';\n          timezone.type = 'hidden';\n          timezone.value = data.timezone;\n          hiddenDiv.appendChild(coordinates);\n          hiddenDiv.appendChild(timezone);\n        }, {\n          clientId: CLIENT_ID,\n          persistKey: inputPrefix\n        });\n      });\n    }\n  }]);\n\n  return Main;\n}();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hc3NldHMvc3JjL2pzL2Zyb250L21haW4vbWFpbi5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL2FzdHJvbG9neS8uL2Fzc2V0cy9zcmMvanMvZnJvbnQvbWFpbi9tYWluLmpzP2Q3MDAiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KGFycikgeyByZXR1cm4gX2FycmF5V2l0aG91dEhvbGVzKGFycikgfHwgX2l0ZXJhYmxlVG9BcnJheShhcnIpIHx8IF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShhcnIpIHx8IF9ub25JdGVyYWJsZVNwcmVhZCgpOyB9XG5cbmZ1bmN0aW9uIF9ub25JdGVyYWJsZVNwcmVhZCgpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7IH1cblxuZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikgeyBpZiAoIW8pIHJldHVybjsgaWYgKHR5cGVvZiBvID09PSBcInN0cmluZ1wiKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTsgdmFyIG4gPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykuc2xpY2UoOCwgLTEpOyBpZiAobiA9PT0gXCJPYmplY3RcIiAmJiBvLmNvbnN0cnVjdG9yKSBuID0gby5jb25zdHJ1Y3Rvci5uYW1lOyBpZiAobiA9PT0gXCJNYXBcIiB8fCBuID09PSBcIlNldFwiKSByZXR1cm4gQXJyYXkuZnJvbShvKTsgaWYgKG4gPT09IFwiQXJndW1lbnRzXCIgfHwgL14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pOyB9XG5cbmZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkoaXRlcikgeyBpZiAodHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGl0ZXIpKSByZXR1cm4gQXJyYXkuZnJvbShpdGVyKTsgfVxuXG5mdW5jdGlvbiBfYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB7IGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShhcnIpOyB9XG5cbmZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KGFyciwgbGVuKSB7IGlmIChsZW4gPT0gbnVsbCB8fCBsZW4gPiBhcnIubGVuZ3RoKSBsZW4gPSBhcnIubGVuZ3RoOyBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIHsgYXJyMltpXSA9IGFycltpXTsgfSByZXR1cm4gYXJyMjsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbi8qKlxuICogQ2xhc3MgTWFpbi5cbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuZXhwb3J0IHZhciBNYWluID0gLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHtcbiAgLyoqXG4gICAqIE1haW4gY29uc3RydWN0b3IuXG4gICAqXG4gICAqIEBzaW5jZSAxLjAuMFxuICAgKi9cbiAgZnVuY3Rpb24gTWFpbigpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTWFpbik7XG5cbiAgICB2YXIgaW5wdXRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnByb2tlcmFsYS1sb2NhdGlvbi1pbnB1dCcpO1xuICAgIHRoaXMucmVnaXN0ZXIoaW5wdXRzKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhNYWluLCBbe1xuICAgIGtleTogXCJyZWdpc3RlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZWdpc3RlcihpbnB1dHMpIHtcbiAgICAgIF90b0NvbnN1bWFibGVBcnJheShpbnB1dHMpLm1hcChmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgdmFyIGlucHV0UHJlZml4ID0gaW5wdXQuZGF0YXNldC5sb2NhdGlvbl9pbnB1dF9wcmVmaXggPyBpbnB1dC5kYXRhc2V0LmxvY2F0aW9uX2lucHV0X3ByZWZpeCA6ICcnO1xuICAgICAgICBuZXcgTG9jYXRpb25TZWFyY2goaW5wdXQsIGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgICAgdmFyIGhpZGRlbkRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3JtLWhpZGRlbi1maWVsZHMnKTtcbiAgICAgICAgICB2YXIgY29vcmRpbmF0ZXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgICAgIGNvb3JkaW5hdGVzLm5hbWUgPSBpbnB1dFByZWZpeCArICdjb29yZGluYXRlcyc7XG4gICAgICAgICAgY29vcmRpbmF0ZXMudHlwZSA9ICdoaWRkZW4nO1xuICAgICAgICAgIGNvb3JkaW5hdGVzLnZhbHVlID0gXCJcIi5jb25jYXQoZGF0YS5sYXRpdHVkZSwgXCIsXCIpLmNvbmNhdChkYXRhLmxvbmdpdHVkZSk7XG4gICAgICAgICAgdmFyIHRpbWV6b25lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgICAgICB0aW1lem9uZS5uYW1lID0gaW5wdXRQcmVmaXggKyAndGltZXpvbmUnO1xuICAgICAgICAgIHRpbWV6b25lLnR5cGUgPSAnaGlkZGVuJztcbiAgICAgICAgICB0aW1lem9uZS52YWx1ZSA9IGRhdGEudGltZXpvbmU7XG4gICAgICAgICAgaGlkZGVuRGl2LmFwcGVuZENoaWxkKGNvb3JkaW5hdGVzKTtcbiAgICAgICAgICBoaWRkZW5EaXYuYXBwZW5kQ2hpbGQodGltZXpvbmUpO1xuICAgICAgICB9LCB7XG4gICAgICAgICAgY2xpZW50SWQ6IENMSUVOVF9JRCxcbiAgICAgICAgICBwZXJzaXN0S2V5OiBpbnB1dFByZWZpeFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBNYWluO1xufSgpOyJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./assets/src/js/front/main/main.js\n");
     29eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"Main\": function() { return /* binding */ Main; }\n/* harmony export */ });\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Class Main.\n *\n * @since 1.0.0\n */\nvar Main = /*#__PURE__*/function () {\n  /**\n   * Main constructor.\n   *\n   * @since 1.0.0\n   */\n  function Main() {\n    _classCallCheck(this, Main);\n\n    var inputs = document.querySelectorAll('.prokerala-location-input');\n    this.register(inputs);\n  }\n\n  _createClass(Main, [{\n    key: \"register\",\n    value: function register(inputs) {\n      _toConsumableArray(inputs).map(function (input) {\n        var inputPrefix = input.dataset.location_input_prefix ? input.dataset.location_input_prefix + '_' : '';\n        new LocationSearch(input, function (data) {\n          var hiddenDiv = document.getElementById('form-hidden-fields');\n          var coordinates = document.createElement('input');\n          coordinates.name = inputPrefix + 'coordinates';\n          coordinates.type = 'hidden';\n          coordinates.value = \"\".concat(data.latitude, \",\").concat(data.longitude);\n          var timezone = document.createElement('input');\n          timezone.name = inputPrefix + 'timezone';\n          timezone.type = 'hidden';\n          timezone.value = data.timezone;\n          hiddenDiv.appendChild(coordinates);\n          hiddenDiv.appendChild(timezone);\n        }, {\n          clientId: CLIENT_ID,\n          persistKey: \"\".concat(inputPrefix, \"loc\")\n        });\n      });\n    }\n  }]);\n\n  return Main;\n}();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hc3NldHMvc3JjL2pzL2Zyb250L21haW4vbWFpbi5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL2FzdHJvbG9neS8uL2Fzc2V0cy9zcmMvanMvZnJvbnQvbWFpbi9tYWluLmpzP2Q3MDAiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KGFycikgeyByZXR1cm4gX2FycmF5V2l0aG91dEhvbGVzKGFycikgfHwgX2l0ZXJhYmxlVG9BcnJheShhcnIpIHx8IF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShhcnIpIHx8IF9ub25JdGVyYWJsZVNwcmVhZCgpOyB9XG5cbmZ1bmN0aW9uIF9ub25JdGVyYWJsZVNwcmVhZCgpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7IH1cblxuZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikgeyBpZiAoIW8pIHJldHVybjsgaWYgKHR5cGVvZiBvID09PSBcInN0cmluZ1wiKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTsgdmFyIG4gPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykuc2xpY2UoOCwgLTEpOyBpZiAobiA9PT0gXCJPYmplY3RcIiAmJiBvLmNvbnN0cnVjdG9yKSBuID0gby5jb25zdHJ1Y3Rvci5uYW1lOyBpZiAobiA9PT0gXCJNYXBcIiB8fCBuID09PSBcIlNldFwiKSByZXR1cm4gQXJyYXkuZnJvbShvKTsgaWYgKG4gPT09IFwiQXJndW1lbnRzXCIgfHwgL14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pOyB9XG5cbmZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkoaXRlcikgeyBpZiAodHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGl0ZXIpKSByZXR1cm4gQXJyYXkuZnJvbShpdGVyKTsgfVxuXG5mdW5jdGlvbiBfYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB7IGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShhcnIpOyB9XG5cbmZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KGFyciwgbGVuKSB7IGlmIChsZW4gPT0gbnVsbCB8fCBsZW4gPiBhcnIubGVuZ3RoKSBsZW4gPSBhcnIubGVuZ3RoOyBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIHsgYXJyMltpXSA9IGFycltpXTsgfSByZXR1cm4gYXJyMjsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbi8qKlxuICogQ2xhc3MgTWFpbi5cbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuZXhwb3J0IHZhciBNYWluID0gLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHtcbiAgLyoqXG4gICAqIE1haW4gY29uc3RydWN0b3IuXG4gICAqXG4gICAqIEBzaW5jZSAxLjAuMFxuICAgKi9cbiAgZnVuY3Rpb24gTWFpbigpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTWFpbik7XG5cbiAgICB2YXIgaW5wdXRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnByb2tlcmFsYS1sb2NhdGlvbi1pbnB1dCcpO1xuICAgIHRoaXMucmVnaXN0ZXIoaW5wdXRzKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhNYWluLCBbe1xuICAgIGtleTogXCJyZWdpc3RlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZWdpc3RlcihpbnB1dHMpIHtcbiAgICAgIF90b0NvbnN1bWFibGVBcnJheShpbnB1dHMpLm1hcChmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgdmFyIGlucHV0UHJlZml4ID0gaW5wdXQuZGF0YXNldC5sb2NhdGlvbl9pbnB1dF9wcmVmaXggPyBpbnB1dC5kYXRhc2V0LmxvY2F0aW9uX2lucHV0X3ByZWZpeCArICdfJyA6ICcnO1xuICAgICAgICBuZXcgTG9jYXRpb25TZWFyY2goaW5wdXQsIGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgICAgdmFyIGhpZGRlbkRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3JtLWhpZGRlbi1maWVsZHMnKTtcbiAgICAgICAgICB2YXIgY29vcmRpbmF0ZXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgICAgIGNvb3JkaW5hdGVzLm5hbWUgPSBpbnB1dFByZWZpeCArICdjb29yZGluYXRlcyc7XG4gICAgICAgICAgY29vcmRpbmF0ZXMudHlwZSA9ICdoaWRkZW4nO1xuICAgICAgICAgIGNvb3JkaW5hdGVzLnZhbHVlID0gXCJcIi5jb25jYXQoZGF0YS5sYXRpdHVkZSwgXCIsXCIpLmNvbmNhdChkYXRhLmxvbmdpdHVkZSk7XG4gICAgICAgICAgdmFyIHRpbWV6b25lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgICAgICB0aW1lem9uZS5uYW1lID0gaW5wdXRQcmVmaXggKyAndGltZXpvbmUnO1xuICAgICAgICAgIHRpbWV6b25lLnR5cGUgPSAnaGlkZGVuJztcbiAgICAgICAgICB0aW1lem9uZS52YWx1ZSA9IGRhdGEudGltZXpvbmU7XG4gICAgICAgICAgaGlkZGVuRGl2LmFwcGVuZENoaWxkKGNvb3JkaW5hdGVzKTtcbiAgICAgICAgICBoaWRkZW5EaXYuYXBwZW5kQ2hpbGQodGltZXpvbmUpO1xuICAgICAgICB9LCB7XG4gICAgICAgICAgY2xpZW50SWQ6IENMSUVOVF9JRCxcbiAgICAgICAgICBwZXJzaXN0S2V5OiBcIlwiLmNvbmNhdChpbnB1dFByZWZpeCwgXCJsb2NcIilcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gTWFpbjtcbn0oKTsiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./assets/src/js/front/main/main.js\n");
    3030
    3131/***/ })
  • astrology/tags/1.0.5/dependencies/vendor/autoload.php

    r2516408 r2612549  
    55require_once __DIR__ . '/composer/autoload_real.php';
    66
    7 return ComposerAutoloaderInitb7b83f594773eb9c7444f58dd4447ff2::getLoader();
     7return ComposerAutoloaderInit16dece52f7a59be557a72d427533fae0::getLoader();
  • astrology/tags/1.0.5/dependencies/vendor/composer/autoload_classmap.php

    r2513947 r2612549  
    154154    'Prokerala\\Astrology\\Vendor\\Http\\Promise\\Promise' => $vendorDir . '/php-http/promise/src/Promise.php',
    155155    'Prokerala\\Astrology\\Vendor\\Http\\Promise\\RejectedPromise' => $vendorDir . '/php-http/promise/src/RejectedPromise.php',
     156    'Prokerala\\Astrology\\Vendor\\JsonException' => $vendorDir . '/symfony/polyfill-php73/Resources/stubs/JsonException.php',
    156157    'Prokerala\\Astrology\\Vendor\\Slim\\Psr7\\Cookies' => $vendorDir . '/slim/psr7/src/Cookies.php',
    157158    'Prokerala\\Astrology\\Vendor\\Slim\\Psr7\\Environment' => $vendorDir . '/slim/psr7/src/Environment.php',
     
    244245    'Prokerala\\Astrology\\Vendor\\Symfony\\Component\\Cache\\Traits\\PhpFilesTrait' => $vendorDir . '/symfony/cache/Traits/PhpFilesTrait.php',
    245246    'Prokerala\\Astrology\\Vendor\\Symfony\\Component\\Cache\\Traits\\ProxyTrait' => $vendorDir . '/symfony/cache/Traits/ProxyTrait.php',
     247    'Prokerala\\Astrology\\Vendor\\Symfony\\Component\\Cache\\Traits\\RedisClusterNodeProxy' => $vendorDir . '/symfony/cache/Traits/RedisClusterNodeProxy.php',
    246248    'Prokerala\\Astrology\\Vendor\\Symfony\\Component\\Cache\\Traits\\RedisClusterProxy' => $vendorDir . '/symfony/cache/Traits/RedisClusterProxy.php',
    247249    'Prokerala\\Astrology\\Vendor\\Symfony\\Component\\Cache\\Traits\\RedisProxy' => $vendorDir . '/symfony/cache/Traits/RedisProxy.php',
     
    280282    'Prokerala\\Astrology\\Vendor\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberTrait.php',
    281283    'Prokerala\\Astrology\\Vendor\\Symfony\\Contracts\\Service\\Test\\ServiceLocatorTest' => $vendorDir . '/symfony/service-contracts/Test/ServiceLocatorTest.php',
     284    'Prokerala\\Astrology\\Vendor\\Symfony\\Polyfill\\Php73\\Php73' => $vendorDir . '/symfony/polyfill-php73/Php73.php',
    282285    'Prokerala\\Astrology\\Vendor\\Symfony\\Polyfill\\Php80\\Php80' => $vendorDir . '/symfony/polyfill-php80/Php80.php',
    283286    'Prokerala\\Astrology\\Vendor\\UnhandledMatchError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php',
  • astrology/tags/1.0.5/dependencies/vendor/composer/autoload_files.php

    r2513947 r2612549  
    77
    88return array(
     9    'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
     10    '0d59ee240a4cd96ddbb4ff164fccea4d' => $vendorDir . '/symfony/polyfill-php73/bootstrap.php',
    911    '7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php',
    10     'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
    1112);
  • astrology/tags/1.0.5/dependencies/vendor/composer/autoload_real.php

    r2516408 r2612549  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInitb7b83f594773eb9c7444f58dd4447ff2
     5class ComposerAutoloaderInit16dece52f7a59be557a72d427533fae0
    66{
    77    private static $loader;
     
    2323        }
    2424
    25         spl_autoload_register(array('ComposerAutoloaderInitb7b83f594773eb9c7444f58dd4447ff2', 'loadClassLoader'), true, true);
     25        spl_autoload_register(array('ComposerAutoloaderInit16dece52f7a59be557a72d427533fae0', 'loadClassLoader'), true, true);
    2626        self::$loader = $loader = new \Prokerala_WP_Astrology_Composer\Autoload\ClassLoader();
    27         spl_autoload_unregister(array('ComposerAutoloaderInitb7b83f594773eb9c7444f58dd4447ff2', 'loadClassLoader'));
     27        spl_autoload_unregister(array('ComposerAutoloaderInit16dece52f7a59be557a72d427533fae0', 'loadClassLoader'));
    2828
    2929        $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
     
    3131            require_once __DIR__ . '/autoload_static.php';
    3232
    33             call_user_func(\Prokerala_WP_Astrology_Composer\Autoload\ComposerStaticInitb7b83f594773eb9c7444f58dd4447ff2::getInitializer($loader));
     33            call_user_func(\Prokerala_WP_Astrology_Composer\Autoload\ComposerStaticInit16dece52f7a59be557a72d427533fae0::getInitializer($loader));
    3434        } else {
    3535            $classMap = require __DIR__ . '/autoload_classmap.php';
  • astrology/tags/1.0.5/dependencies/vendor/composer/autoload_static.php

    r2516408 r2612549  
    55namespace Prokerala_WP_Astrology_Composer\Autoload;
    66
    7 class ComposerStaticInitb7b83f594773eb9c7444f58dd4447ff2
     7class ComposerStaticInit16dece52f7a59be557a72d427533fae0
    88{
    99    public static $classMap = array (
     
    155155        'Prokerala\\Astrology\\Vendor\\Http\\Promise\\Promise' => __DIR__ . '/..' . '/php-http/promise/src/Promise.php',
    156156        'Prokerala\\Astrology\\Vendor\\Http\\Promise\\RejectedPromise' => __DIR__ . '/..' . '/php-http/promise/src/RejectedPromise.php',
     157        'Prokerala\\Astrology\\Vendor\\JsonException' => __DIR__ . '/..' . '/symfony/polyfill-php73/Resources/stubs/JsonException.php',
    157158        'Prokerala\\Astrology\\Vendor\\Slim\\Psr7\\Cookies' => __DIR__ . '/..' . '/slim/psr7/src/Cookies.php',
    158159        'Prokerala\\Astrology\\Vendor\\Slim\\Psr7\\Environment' => __DIR__ . '/..' . '/slim/psr7/src/Environment.php',
     
    245246        'Prokerala\\Astrology\\Vendor\\Symfony\\Component\\Cache\\Traits\\PhpFilesTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/PhpFilesTrait.php',
    246247        'Prokerala\\Astrology\\Vendor\\Symfony\\Component\\Cache\\Traits\\ProxyTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/ProxyTrait.php',
     248        'Prokerala\\Astrology\\Vendor\\Symfony\\Component\\Cache\\Traits\\RedisClusterNodeProxy' => __DIR__ . '/..' . '/symfony/cache/Traits/RedisClusterNodeProxy.php',
    247249        'Prokerala\\Astrology\\Vendor\\Symfony\\Component\\Cache\\Traits\\RedisClusterProxy' => __DIR__ . '/..' . '/symfony/cache/Traits/RedisClusterProxy.php',
    248250        'Prokerala\\Astrology\\Vendor\\Symfony\\Component\\Cache\\Traits\\RedisProxy' => __DIR__ . '/..' . '/symfony/cache/Traits/RedisProxy.php',
     
    281283        'Prokerala\\Astrology\\Vendor\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberTrait.php',
    282284        'Prokerala\\Astrology\\Vendor\\Symfony\\Contracts\\Service\\Test\\ServiceLocatorTest' => __DIR__ . '/..' . '/symfony/service-contracts/Test/ServiceLocatorTest.php',
     285        'Prokerala\\Astrology\\Vendor\\Symfony\\Polyfill\\Php73\\Php73' => __DIR__ . '/..' . '/symfony/polyfill-php73/Php73.php',
    283286        'Prokerala\\Astrology\\Vendor\\Symfony\\Polyfill\\Php80\\Php80' => __DIR__ . '/..' . '/symfony/polyfill-php80/Php80.php',
    284287        'Prokerala\\Astrology\\Vendor\\UnhandledMatchError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php',
     
    342345    {
    343346        return \Closure::bind(function () use ($loader) {
    344             $loader->classMap = ComposerStaticInitb7b83f594773eb9c7444f58dd4447ff2::$classMap;
     347            $loader->classMap = ComposerStaticInit16dece52f7a59be557a72d427533fae0::$classMap;
    345348
    346349        }, null, ClassLoader::class);
  • astrology/tags/1.0.5/dependencies/vendor/prokerala/astrology-sdk/src/Api/Astrology/Transformer.php

    r2513947 r2612549  
    110110            }
    111111            $dataType = $this->getType($paramValue);
    112             $paramClass = $param->getClass();
     112            $paramClass = $param->getType() && !$param->getType()->isBuiltin() ? new \ReflectionClass($param->getType()->getName()) : null;
    113113            if ($paramClass) {
    114114                $paramType = [$paramClass->getName()];
  • astrology/tags/1.0.5/dependencies/vendor/psr/container/src/ContainerExceptionInterface.php

    r2513947 r2612549  
    11<?php
    22
    3 /**
    4  * @license http://www.opensource.org/licenses/mit-license.php MIT (see the LICENSE file)
    5  */
    63namespace Psr\Container;
    74
  • astrology/tags/1.0.5/dependencies/vendor/psr/container/src/ContainerInterface.php

    r2513947 r2612549  
    11<?php
    22
    3 /**
    4  * @license http://www.opensource.org/licenses/mit-license.php MIT (see the LICENSE file)
    5  */
     3declare (strict_types=1);
    64namespace Psr\Container;
    75
     
    2119     * @return mixed Entry.
    2220     */
    23     public function get($id);
     21    public function get(string $id);
    2422    /**
    2523     * Returns true if the container can return an entry for the given identifier.
     
    3331     * @return bool
    3432     */
    35     public function has($id);
     33    public function has(string $id);
    3634}
  • astrology/tags/1.0.5/dependencies/vendor/psr/container/src/NotFoundExceptionInterface.php

    r2513947 r2612549  
    11<?php
    22
    3 /**
    4  * @license http://www.opensource.org/licenses/mit-license.php MIT (see the LICENSE file)
    5  */
    63namespace Psr\Container;
    74
  • astrology/tags/1.0.5/dependencies/vendor/psr/log/Psr/Log/AbstractLogger.php

    r2513947 r2612549  
    1515     * System is unusable.
    1616     *
    17      * @param string $message
    18      * @param array $context
     17     * @param string  $message
     18     * @param mixed[] $context
    1919     *
    2020     * @return void
     
    3030     * trigger the SMS alerts and wake you up.
    3131     *
    32      * @param string $message
    33      * @param array $context
     32     * @param string  $message
     33     * @param mixed[] $context
    3434     *
    3535     * @return void
     
    4444     * Example: Application component unavailable, unexpected exception.
    4545     *
    46      * @param string $message
    47      * @param array $context
     46     * @param string  $message
     47     * @param mixed[] $context
    4848     *
    4949     * @return void
     
    5757     * be logged and monitored.
    5858     *
    59      * @param string $message
    60      * @param array $context
     59     * @param string  $message
     60     * @param mixed[] $context
    6161     *
    6262     * @return void
     
    7272     * that are not necessarily wrong.
    7373     *
    74      * @param string $message
    75      * @param array $context
     74     * @param string  $message
     75     * @param mixed[] $context
    7676     *
    7777     * @return void
     
    8484     * Normal but significant events.
    8585     *
    86      * @param string $message
    87      * @param array $context
     86     * @param string  $message
     87     * @param mixed[] $context
    8888     *
    8989     * @return void
     
    9898     * Example: User logs in, SQL logs.
    9999     *
    100      * @param string $message
    101      * @param array $context
     100     * @param string  $message
     101     * @param mixed[] $context
    102102     *
    103103     * @return void
     
    110110     * Detailed debug information.
    111111     *
    112      * @param string $message
    113      * @param array $context
     112     * @param string  $message
     113     * @param mixed[] $context
    114114     *
    115115     * @return void
  • astrology/tags/1.0.5/dependencies/vendor/psr/log/Psr/Log/LoggerAwareTrait.php

    r2513947 r2612549  
    1111     * The logger instance.
    1212     *
    13      * @var LoggerInterface
     13     * @var LoggerInterface|null
    1414     */
    1515    protected $logger;
  • astrology/tags/1.0.5/dependencies/vendor/slim/psr7/src/Factory/StreamFactory.php

    r2513947 r2612549  
    2121use function rewind;
    2222use function set_error_handler;
    23 use function sprintf;
    2423class StreamFactory implements \Psr\Http\Message\StreamFactoryInterface
    2524{
     
    4443    public function createStreamFromFile(string $filename, string $mode = 'r', \Psr\Http\Message\StreamInterface $cache = null) : \Psr\Http\Message\StreamInterface
    4544    {
    46         // When fopen fails, PHP 7 normally raises a warning. Add an error
    47         // handler to check for errors and throw an exception instead.
    48         // On PHP 8, exceptions are thrown.
    49         $exc = null;
    50         // Would not be initialized if fopen throws on PHP >= 8.0
    51         $resource = null;
    52         $errorHandler = function (string $errorMessage) use($filename, $mode, &$exc) {
    53             $exc = new \RuntimeException(\sprintf('Unable to open %s using mode %s: %s', $filename, $mode, $errorMessage));
    54         };
    55         \set_error_handler(function (int $errno, string $errstr) use($errorHandler) {
    56             $errorHandler($errstr);
     45        \set_error_handler(static function (int $errno, string $errstr) use($filename, $mode) : void {
     46            throw new \RuntimeException("Unable to open {$filename} using mode {$mode}: {$errstr}", $errno);
    5747        });
    5848        try {
    5949            $resource = \fopen($filename, $mode);
    60             // @codeCoverageIgnoreStart
    61             // (Can only be executed in PHP >= 8.0)
    6250        } catch (\ValueError $exception) {
    63             $errorHandler($exception->getMessage());
    64         }
    65         // @codeCoverageIgnoreEnd
    66         \restore_error_handler();
    67         if ($exc) {
    68             /** @var RuntimeException $exc */
    69             throw $exc;
     51            throw new \RuntimeException("Unable to open {$filename} using mode {$mode}: " . $exception->getMessage());
     52        } finally {
     53            \restore_error_handler();
    7054        }
    7155        if (!\is_resource($resource)) {
  • astrology/tags/1.0.5/dependencies/vendor/slim/psr7/src/Headers.php

    r2513947 r2612549  
    150150    protected function parseAuthorizationHeader(array $headers) : array
    151151    {
    152         if (!isset($headers['Authorization'])) {
     152        $hasAuthorizationHeader = \false;
     153        foreach ($headers as $name => $value) {
     154            if (\strtolower($name) === 'authorization') {
     155                $hasAuthorizationHeader = \true;
     156                break;
     157            }
     158        }
     159        if (!$hasAuthorizationHeader) {
    153160            if (isset($this->globals['REDIRECT_HTTP_AUTHORIZATION'])) {
    154161                $headers['Authorization'] = $this->globals['REDIRECT_HTTP_AUTHORIZATION'];
     
    242249            throw new \InvalidArgumentException('Header values must be a string or an array of strings, empty array given.');
    243250        }
    244         $pattern = "@^[ \t!-~€-ÿ]*\$@";
     251        $pattern = "@^[ \t!-~\x80-\xff]*\$@";
    245252        foreach ($items as $item) {
    246253            $hasInvalidType = !\is_numeric($item) && !\is_string($item);
  • astrology/tags/1.0.5/dependencies/vendor/slim/psr7/src/Uri.php

    r2513947 r2612549  
    2626class Uri implements \Psr\Http\Message\UriInterface
    2727{
     28    public const SUPPORTED_SCHEMES = ['' => null, 'http' => 80, 'https' => 443];
    2829    /**
    2930     * Uri scheme (without "://" suffix)
     
    110111     *
    111112     * @throws InvalidArgumentException If the Uri scheme is not a string.
    112      * @throws InvalidArgumentException If Uri scheme is not "", "https", or "http".
     113     * @throws InvalidArgumentException If Uri scheme is not exists in SUPPORTED_SCHEMES
    113114     */
    114115    protected function filterScheme($scheme) : string
     
    117118            throw new \InvalidArgumentException('Uri scheme must be a string.');
    118119        }
    119         static $valid = ['' => \true, 'https' => \true, 'http' => \true];
    120120        $scheme = \str_replace('://', '', \strtolower($scheme));
    121         if (!isset($valid[$scheme])) {
    122             throw new \InvalidArgumentException('Uri scheme must be one of: "", "https", "http"');
     121        if (!\key_exists($scheme, self::SUPPORTED_SCHEMES)) {
     122            throw new \InvalidArgumentException('Uri scheme must be one of: "' . \implode('", "', \array_keys(static::SUPPORTED_SCHEMES)) . '"');
    123123        }
    124124        return $scheme;
     
    243243    protected function hasStandardPort() : bool
    244244    {
    245         return $this->scheme === 'http' && $this->port === 80 || $this->scheme === 'https' && $this->port === 443;
     245        return static::SUPPORTED_SCHEMES[$this->scheme] === $this->port;
    246246    }
    247247    /**
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/Adapter/AbstractAdapter.php

    r2513947 r2612549  
    2424abstract class AbstractAdapter implements \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\AdapterInterface, \Prokerala\Astrology\Vendor\Symfony\Contracts\Cache\CacheInterface, \Psr\Log\LoggerAwareInterface, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\ResettableInterface
    2525{
     26    use AbstractAdapterTrait;
     27    use ContractsTrait;
    2628    /**
    2729     * @internal
    2830     */
    2931    protected const NS_SEPARATOR = ':';
    30     use AbstractAdapterTrait;
    31     use ContractsTrait;
    3232    private static $apcuSupported;
    3333    private static $phpFilesSupported;
     
    4646            // For compactness, these values are packed in the key of an array using
    4747            // magic numbers in the form 9D-..-..-..-..-00-..-..-..-5F
    48             if (\is_array($v) && 1 === \count($v) && 10 === \strlen($k = (string) \key($v)) && "" === $k[0] && "\0" === $k[5] && "_" === $k[9]) {
     48            if (\is_array($v) && 1 === \count($v) && 10 === \strlen($k = (string) \array_key_first($v)) && "\x9d" === $k[0] && "\x00" === $k[5] && "_" === $k[9]) {
    4949                $item->value = $v[$k];
    5050                $v = \unpack('Ve/Nc', \substr($k, 1, -1));
     
    7373                }
    7474                // For compactness, expiry and creation duration are packed in the key of an array, using magic numbers as separators
    75                 $byLifetime[$ttl][$getId($key)] = $metadata ? ["" . \pack('VN', (int) (0.1 + $metadata[self::METADATA_EXPIRY] - self::METADATA_EXPIRY_OFFSET), $metadata[self::METADATA_CTIME]) . "_" => $item->value] : $item->value;
     75                $byLifetime[$ttl][$getId($key)] = $metadata ? ["\x9d" . \pack('VN', (int) (0.1 + $metadata[self::METADATA_EXPIRY] - self::METADATA_EXPIRY_OFFSET), $metadata[self::METADATA_CTIME]) . "_" => $item->value] : $item->value;
    7676            }
    7777            return $byLifetime;
     
    102102            return $opcache;
    103103        }
    104         $apcu = new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\ApcuAdapter($namespace, (int) $defaultLifetime / 5, $version);
     104        $apcu = new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\ApcuAdapter($namespace, \intdiv($defaultLifetime, 5), $version);
    105105        if (null !== $logger) {
    106106            $apcu->setLogger($logger);
     
    113113            throw new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\InvalidArgumentException(\sprintf('The "%s()" method expect argument #1 to be string, "%s" given.', __METHOD__, \gettype($dsn)));
    114114        }
    115         if (0 === \strpos($dsn, 'redis:') || 0 === \strpos($dsn, 'rediss:')) {
     115        if (\str_starts_with($dsn, 'redis:') || \str_starts_with($dsn, 'rediss:')) {
    116116            return \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\RedisAdapter::createConnection($dsn, $options);
    117117        }
    118         if (0 === \strpos($dsn, 'memcached:')) {
     118        if (\str_starts_with($dsn, 'memcached:')) {
    119119            return \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\MemcachedAdapter::createConnection($dsn, $options);
    120120        }
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/Adapter/AbstractTagAwareAdapter.php

    r2513947 r2612549  
    3333    use AbstractAdapterTrait;
    3434    use ContractsTrait;
    35     private const TAGS_PREFIX = "\0tags\0";
     35    private const TAGS_PREFIX = "\x00tags\x00";
    3636    protected function __construct(string $namespace = '', int $defaultLifetime = 0)
    3737    {
     
    9797                }
    9898                $byLifetime[$ttl][$getId($key)] = $value;
     99                $item->metadata = $item->newMetadata;
    99100            }
    100101            return $byLifetime;
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/Adapter/ArrayAdapter.php

    r2513947 r2612549  
    102102        }
    103103        $item = (array) $item;
    104         $key = $item["\0*\0key"];
    105         $value = $item["\0*\0value"];
    106         $expiry = $item["\0*\0expiry"];
     104        $key = $item["\x00*\x00key"];
     105        $value = $item["\x00*\x00value"];
     106        $expiry = $item["\x00*\x00expiry"];
    107107        if (0 === $expiry) {
    108108            $expiry = \PHP_INT_MAX;
     
    119119        }
    120120        $this->values[$key] = $value;
    121         $this->expiries[$key] = null !== $expiry ? $expiry : \PHP_INT_MAX;
     121        $this->expiries[$key] = $expiry ?? \PHP_INT_MAX;
    122122        return \true;
    123123    }
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/Adapter/FilesystemTagAwareAdapter.php

    r2513947 r2612549  
    1919 *
    2020 * @author Nicolas Grekas <p@tchwork.com>
    21  * @author André Rømcke <andre.romcke+symfony@gmail.com>
     21 * @author André Rømcke <andre.romcke+symfony@gmail.com>
    2222 */
    2323class FilesystemTagAwareAdapter extends \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\AbstractTagAwareAdapter implements \Prokerala\Astrology\Vendor\Symfony\Component\Cache\PruneableInterface
     
    129129            $meta = \explode("\n", \fread($h, 4096), 3)[2] ?? '';
    130130            // detect the compact format used in marshall() using magic numbers in the form 9D-..-..-..-..-00-..-..-..-5F
    131             if (13 < \strlen($meta) && "" === $meta[0] && "\0" === $meta[5] && "_" === $meta[9]) {
    132                 $meta[9] = "\0";
     131            if (13 < \strlen($meta) && "\x9d" === $meta[0] && "\x00" === $meta[5] && "_" === $meta[9]) {
     132                $meta[9] = "\x00";
    133133                $tagLen = \unpack('Nlen', $meta, 9)['len'];
    134134                $meta = \substr($meta, 13, $tagLen);
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/Adapter/NullAdapter.php

    r2513947 r2612549  
    9797    public function save(\Psr\Cache\CacheItemInterface $item)
    9898    {
    99         return \false;
     99        return \true;
    100100    }
    101101    /**
     
    106106    public function saveDeferred(\Psr\Cache\CacheItemInterface $item)
    107107    {
    108         return \false;
     108        return \true;
    109109    }
    110110    /**
     
    115115    public function commit()
    116116    {
    117         return \false;
     117        return \true;
    118118    }
    119119    /**
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/Adapter/ProxyAdapter.php

    r2513947 r2612549  
    5252            // For compactness, these values are packed in the key of an array using
    5353            // magic numbers in the form 9D-..-..-..-..-00-..-..-..-5F
    54             if (\is_array($v) && 1 === \count($v) && 10 === \strlen($k = (string) \key($v)) && "" === $k[0] && "\0" === $k[5] && "_" === $k[9]) {
     54            if (\is_array($v) && 1 === \count($v) && 10 === \strlen($k = (string) \array_key_first($v)) && "\x9d" === $k[0] && "\x00" === $k[5] && "_" === $k[9]) {
    5555                $item->value = $v[$k];
    5656                $v = \unpack('Ve/Nc', \substr($k, 1, -1));
     
    6969            static function (\Psr\Cache\CacheItemInterface $innerItem, array $item) {
    7070                // Tags are stored separately, no need to account for them when considering this item's newly set metadata
    71                 if (isset(($metadata = $item["\0*\0newMetadata"])[\Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem::METADATA_TAGS])) {
     71                if (isset(($metadata = $item["\x00*\x00newMetadata"])[\Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem::METADATA_TAGS])) {
    7272                    unset($metadata[\Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem::METADATA_TAGS]);
    7373                }
    7474                if ($metadata) {
    7575                    // For compactness, expiry and creation duration are packed in the key of an array, using magic numbers as separators
    76                     $item["\0*\0value"] = ["" . \pack('VN', (int) (0.1 + $metadata[self::METADATA_EXPIRY] - self::METADATA_EXPIRY_OFFSET), $metadata[self::METADATA_CTIME]) . "_" => $item["\0*\0value"]];
     76                    $item["\x00*\x00value"] = ["\x9d" . \pack('VN', (int) (0.1 + $metadata[self::METADATA_EXPIRY] - self::METADATA_EXPIRY_OFFSET), $metadata[self::METADATA_CTIME]) . "_" => $item["\x00*\x00value"]];
    7777                }
    78                 $innerItem->set($item["\0*\0value"]);
    79                 $innerItem->expiresAt(null !== $item["\0*\0expiry"] ? \DateTime::createFromFormat('U.u', \sprintf('%.6F', 0 === $item["\0*\0expiry"] ? \PHP_INT_MAX : $item["\0*\0expiry"])) : null);
     78                $innerItem->set($item["\x00*\x00value"]);
     79                $innerItem->expiresAt(null !== $item["\x00*\x00expiry"] ? \DateTime::createFromFormat('U.u', \sprintf('%.6F', 0 === $item["\x00*\x00expiry"] ? \PHP_INT_MAX : $item["\x00*\x00expiry"])) : null);
    8080            },
    8181            null,
     
    199199        }
    200200        $item = (array) $item;
    201         if (null === $item["\0*\0expiry"] && 0 < $this->defaultLifetime) {
    202             $item["\0*\0expiry"] = \microtime(\true) + $this->defaultLifetime;
    203         }
    204         if ($item["\0*\0poolHash"] === $this->poolHash && $item["\0*\0innerItem"]) {
    205             $innerItem = $item["\0*\0innerItem"];
     201        if (null === $item["\x00*\x00expiry"] && 0 < $this->defaultLifetime) {
     202            $item["\x00*\x00expiry"] = \microtime(\true) + $this->defaultLifetime;
     203        }
     204        if ($item["\x00*\x00poolHash"] === $this->poolHash && $item["\x00*\x00innerItem"]) {
     205            $innerItem = $item["\x00*\x00innerItem"];
    206206        } elseif ($this->pool instanceof \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\AdapterInterface) {
    207207            // this is an optimization specific for AdapterInterface implementations
    208208            // so we can save a round-trip to the backend by just creating a new item
    209209            $f = $this->createCacheItem;
    210             $innerItem = $f($this->namespace . $item["\0*\0key"], null);
     210            $innerItem = $f($this->namespace . $item["\x00*\x00key"], null);
    211211        } else {
    212             $innerItem = $this->pool->getItem($this->namespace . $item["\0*\0key"]);
     212            $innerItem = $this->pool->getItem($this->namespace . $item["\x00*\x00key"]);
    213213        }
    214214        ($this->setInnerItem)($innerItem, $item);
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/Adapter/Psr16Adapter.php

    r2513947 r2612549  
    2222class Psr16Adapter extends \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\AbstractAdapter implements \Prokerala\Astrology\Vendor\Symfony\Component\Cache\PruneableInterface, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\ResettableInterface
    2323{
     24    use ProxyTrait;
    2425    /**
    2526     * @internal
    2627     */
    2728    protected const NS_SEPARATOR = '_';
    28     use ProxyTrait;
    2929    private $miss;
    3030    public function __construct(\Psr\SimpleCache\CacheInterface $pool, string $namespace = '', int $defaultLifetime = 0)
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/Adapter/RedisAdapter.php

    r2513947 r2612549  
    1212
    1313use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\MarshallerInterface;
     14use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisClusterProxy;
     15use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisProxy;
    1416use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisTrait;
    1517class RedisAdapter extends \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\AbstractAdapter
     
    1719    use RedisTrait;
    1820    /**
    19      * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface $redisClient     The redis client
    20      * @param string                                                   $namespace       The default namespace
    21      * @param int                                                      $defaultLifetime The default lifetime
     21     * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface|RedisProxy|RedisClusterProxy $redis           The redis client
     22     * @param string                                                                                $namespace       The default namespace
     23     * @param int                                                                                   $defaultLifetime The default lifetime
    2224     */
    23     public function __construct($redisClient, string $namespace = '', int $defaultLifetime = 0, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\MarshallerInterface $marshaller = null)
     25    public function __construct($redis, string $namespace = '', int $defaultLifetime = 0, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\MarshallerInterface $marshaller = null)
    2426    {
    25         $this->init($redisClient, $namespace, $defaultLifetime, $marshaller);
     27        $this->init($redis, $namespace, $defaultLifetime, $marshaller);
    2628    }
    2729}
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/Adapter/RedisTagAwareAdapter.php

    r2513947 r2612549  
    1313use Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\ClusterInterface;
    1414use Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\PredisCluster;
     15use Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\ReplicationInterface;
    1516use Prokerala\Astrology\Vendor\Predis\Response\Status;
     17use Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem;
    1618use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\InvalidArgumentException;
    1719use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\LogicException;
     
    1921use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\MarshallerInterface;
    2022use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\TagAwareMarshaller;
     23use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisClusterProxy;
     24use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisProxy;
    2125use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisTrait;
    2226/**
    23  * Stores tag id <> cache id relationship as a Redis Set, lookup on invalidation using RENAME+SMEMBERS.
     27 * Stores tag id <> cache id relationship as a Redis Set.
    2428 *
    2529 * Set (tag relation info) is stored without expiry (non-volatile), while cache always gets an expiry (volatile) even
     
    2731 * relationship survives eviction (cache cleanup when Redis runs out of memory).
    2832 *
    29  * Requirements:
    30  *  - Client: PHP Redis or Predis
    31  *            Note: Due to lack of RENAME support it is NOT recommended to use Cluster on Predis, instead use phpredis.
    32  *  - Server: Redis 2.8+
    33  *            Configured with any `volatile-*` eviction policy, OR `noeviction` if it will NEVER fill up memory
     33 * Redis server 2.8+ with any `volatile-*` eviction policy, OR `noeviction` if you're sure memory will NEVER fill up
    3434 *
    3535 * Design limitations:
     
    4747    use RedisTrait;
    4848    /**
    49      * Limits for how many keys are deleted in batch.
    50      */
    51     private const BULK_DELETE_LIMIT = 10000;
    52     /**
    5349     * On cache items without a lifetime set, we set it to 100 days. This is to make sure cache items are
    5450     * preferred to be evicted over tag Sets, if eviction policy is configured according to requirements.
     
    6056    private $redisEvictionPolicy;
    6157    /**
    62      * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface $redisClient     The redis client
    63      * @param string                                                   $namespace       The default namespace
    64      * @param int                                                      $defaultLifetime The default lifetime
    65      */
    66     public function __construct($redisClient, string $namespace = '', int $defaultLifetime = 0, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\MarshallerInterface $marshaller = null)
    67     {
    68         if ($redisClient instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface && $redisClient->getConnection() instanceof \Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\ClusterInterface && !$redisClient->getConnection() instanceof \Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\PredisCluster) {
    69             throw new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\InvalidArgumentException(\sprintf('Unsupported Predis cluster connection: only "%s" is, "%s" given.', \Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\PredisCluster::class, \get_class($redisClient->getConnection())));
    70         }
    71         if (\defined('Redis::OPT_COMPRESSION') && ($redisClient instanceof \Redis || $redisClient instanceof \RedisArray || $redisClient instanceof \RedisCluster)) {
    72             $compression = $redisClient->getOption(\Redis::OPT_COMPRESSION);
     58     * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface|RedisProxy|RedisClusterProxy $redis           The redis client
     59     * @param string                                                                                $namespace       The default namespace
     60     * @param int                                                                                   $defaultLifetime The default lifetime
     61     */
     62    public function __construct($redis, string $namespace = '', int $defaultLifetime = 0, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\MarshallerInterface $marshaller = null)
     63    {
     64        if ($redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface && $redis->getConnection() instanceof \Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\ClusterInterface && !$redis->getConnection() instanceof \Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\PredisCluster) {
     65            throw new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\InvalidArgumentException(\sprintf('Unsupported Predis cluster connection: only "%s" is, "%s" given.', \Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\PredisCluster::class, \get_class($redis->getConnection())));
     66        }
     67        if (\defined('Redis::OPT_COMPRESSION') && ($redis instanceof \Redis || $redis instanceof \RedisArray || $redis instanceof \RedisCluster)) {
     68            $compression = $redis->getOption(\Redis::OPT_COMPRESSION);
    7369            foreach (\is_array($compression) ? $compression : [$compression] as $c) {
    7470                if (\Redis::COMPRESSION_NONE !== $c) {
     
    7773            }
    7874        }
    79         $this->init($redisClient, $namespace, $defaultLifetime, new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\TagAwareMarshaller($marshaller));
     75        $this->init($redis, $namespace, $defaultLifetime, new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\TagAwareMarshaller($marshaller));
    8076    }
    8177    /**
     
    8581    {
    8682        $eviction = $this->getRedisEvictionPolicy();
    87         if ('noeviction' !== $eviction && 0 !== \strpos($eviction, 'volatile-')) {
    88             throw new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\LogicException(\sprintf('Redis maxmemory-policy setting "%s" is *not* supported by RedisTagAwareAdapter, use "noeviction" or  "volatile-*" eviction policies.', $eviction));
     83        if ('noeviction' !== $eviction && !\str_starts_with($eviction, 'volatile-')) {
     84            throw new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\LogicException(\sprintf('Redis maxmemory-policy setting "%s" is *not* supported by RedisTagAwareAdapter, use "noeviction" or "volatile-*" eviction policies.', $eviction));
    8985        }
    9086        // serialize values
     
    137133            return v:sub(14, 13 + v:byte(13) + v:byte(12) * 256 + v:byte(11) * 65536)
    138134EOLUA;
    139         if ($this->redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface) {
    140             $evalArgs = [$lua, 1, &$id];
    141         } else {
    142             $evalArgs = [$lua, [&$id], 1];
    143         }
    144         $results = $this->pipeline(function () use($ids, &$id, $evalArgs) {
     135        $results = $this->pipeline(function () use($ids, $lua) {
    145136            foreach ($ids as $id) {
    146                 (yield 'eval' => $evalArgs);
     137                (yield 'eval' => $this->redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface ? [$lua, 1, $id] : [$lua, [$id], 1]);
    147138            }
    148139        });
    149140        foreach ($results as $id => $result) {
     141            if ($result instanceof \RedisException) {
     142                \Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem::log($this->logger, 'Failed to delete key "{key}": ' . $result->getMessage(), ['key' => \substr($id, \strlen($this->namespace)), 'exception' => $result]);
     143                continue;
     144            }
    150145            try {
    151146                (yield $id => !\is_string($result) || '' === $result ? [] : $this->marshaller->unmarshall($result));
     
    160155    protected function doDeleteTagRelations(array $tagData) : bool
    161156    {
    162         $this->pipeline(static function () use($tagData) {
     157        $results = $this->pipeline(static function () use($tagData) {
    163158            foreach ($tagData as $tagId => $idList) {
    164159                \array_unshift($idList, $tagId);
    165160                (yield 'sRem' => $idList);
    166161            }
    167         })->rewind();
     162        });
     163        foreach ($results as $result) {
     164            // no-op
     165        }
    168166        return \true;
    169167    }
     
    173171    protected function doInvalidate(array $tagIds) : bool
    174172    {
    175         if (!$this->redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface || !$this->redis->getConnection() instanceof \Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\PredisCluster) {
    176             $movedTagSetIds = $this->renameKeys($this->redis, $tagIds);
    177         } else {
    178             $clusterConnection = $this->redis->getConnection();
    179             $tagIdsByConnection = new \SplObjectStorage();
    180             $movedTagSetIds = [];
     173        // This script scans the set of items linked to tag: it empties the set
     174        // and removes the linked items. When the set is still not empty after
     175        // the scan, it means we're in cluster mode and that the linked items
     176        // are on other nodes: we move the links to a temporary set and we
     177        // gargage collect that set from the client side.
     178        $lua = <<<'EOLUA'
     179            redis.replicate_commands()
     180
     181            local cursor = '0'
     182            local id = KEYS[1]
     183            repeat
     184                local result = redis.call('SSCAN', id, cursor, 'COUNT', 5000);
     185                cursor = result[1];
     186                local rems = {}
     187
     188                for _, v in ipairs(result[2]) do
     189                    local ok, _ = pcall(redis.call, 'DEL', ARGV[1]..v)
     190                    if ok then
     191                        table.insert(rems, v)
     192                    end
     193                end
     194                if 0 < #rems then
     195                    redis.call('SREM', id, unpack(rems))
     196                end
     197            until '0' == cursor;
     198
     199            redis.call('SUNIONSTORE', '{'..id..'}'..id, id)
     200            redis.call('DEL', id)
     201
     202            return redis.call('SSCAN', '{'..id..'}'..id, '0', 'COUNT', 5000)
     203EOLUA;
     204        $results = $this->pipeline(function () use($tagIds, $lua) {
     205            if ($this->redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface) {
     206                $prefix = $this->redis->getOptions()->prefix ? $this->redis->getOptions()->prefix->getPrefix() : '';
     207            } elseif (\is_array($prefix = $this->redis->getOption(\Redis::OPT_PREFIX) ?? '')) {
     208                $prefix = \current($prefix);
     209            }
    181210            foreach ($tagIds as $id) {
    182                 $connection = $clusterConnection->getConnectionByKey($id);
    183                 $slot = $tagIdsByConnection[$connection] ?? ($tagIdsByConnection[$connection] = new \ArrayObject());
    184                 $slot[] = $id;
    185             }
    186             foreach ($tagIdsByConnection as $connection) {
    187                 $slot = $tagIdsByConnection[$connection];
    188                 $movedTagSetIds = \array_merge($movedTagSetIds, $this->renameKeys(new $this->redis($connection, $this->redis->getOptions()), $slot->getArrayCopy()));
    189             }
    190         }
    191         // No Sets found
    192         if (!$movedTagSetIds) {
    193             return \false;
    194         }
    195         // Now safely take the time to read the keys in each set and collect ids we need to delete
    196         $tagIdSets = $this->pipeline(static function () use($movedTagSetIds) {
    197             foreach ($movedTagSetIds as $movedTagId) {
    198                 (yield 'sMembers' => [$movedTagId]);
    199             }
    200         });
    201         // Return combination of the temporary Tag Set ids and their values (cache ids)
    202         $ids = \array_merge($movedTagSetIds, ...\iterator_to_array($tagIdSets, \false));
    203         // Delete cache in chunks to avoid overloading the connection
    204         foreach (\array_chunk(\array_unique($ids), self::BULK_DELETE_LIMIT) as $chunkIds) {
    205             $this->doDelete($chunkIds);
    206         }
    207         return \true;
    208     }
    209     /**
    210      * Renames several keys in order to be able to operate on them without risk of race conditions.
    211      *
    212      * Filters out keys that do not exist before returning new keys.
    213      *
    214      * @see https://redis.io/commands/rename
    215      * @see https://redis.io/topics/cluster-spec#keys-hash-tags
    216      *
    217      * @return array Filtered list of the valid moved keys (only those that existed)
    218      */
    219     private function renameKeys($redis, array $ids) : array
    220     {
    221         $newIds = [];
    222         $uniqueToken = \bin2hex(\random_bytes(10));
    223         $results = $this->pipeline(static function () use($ids, $uniqueToken) {
    224             foreach ($ids as $id) {
    225                 (yield 'rename' => [$id, '{' . $id . '}' . $uniqueToken]);
    226             }
    227         }, $redis);
    228         foreach ($results as $id => $result) {
    229             if (\true === $result || $result instanceof \Prokerala\Astrology\Vendor\Predis\Response\Status && \Prokerala\Astrology\Vendor\Predis\Response\Status::get('OK') === $result) {
    230                 // Only take into account if ok (key existed), will be false on phpredis if it did not exist
    231                 $newIds[] = '{' . $id . '}' . $uniqueToken;
    232             }
    233         }
    234         return $newIds;
     211                (yield 'eval' => $this->redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface ? [$lua, 1, $id, $prefix] : [$lua, [$id, $prefix], 1]);
     212            }
     213        });
     214        $lua = <<<'EOLUA'
     215            redis.replicate_commands()
     216
     217            local id = KEYS[1]
     218            local cursor = table.remove(ARGV)
     219            redis.call('SREM', '{'..id..'}'..id, unpack(ARGV))
     220
     221            return redis.call('SSCAN', '{'..id..'}'..id, cursor, 'COUNT', 5000)
     222EOLUA;
     223        $success = \true;
     224        foreach ($results as $id => $values) {
     225            if ($values instanceof \RedisException) {
     226                \Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem::log($this->logger, 'Failed to invalidate key "{key}": ' . $values->getMessage(), ['key' => \substr($id, \strlen($this->namespace)), 'exception' => $values]);
     227                $success = \false;
     228                continue;
     229            }
     230            [$cursor, $ids] = $values;
     231            while ($ids || '0' !== $cursor) {
     232                $this->doDelete($ids);
     233                $evalArgs = [$id, $cursor];
     234                \array_splice($evalArgs, 1, 0, $ids);
     235                if ($this->redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface) {
     236                    \array_unshift($evalArgs, $lua, 1);
     237                } else {
     238                    $evalArgs = [$lua, $evalArgs, 1];
     239                }
     240                $results = $this->pipeline(function () use($evalArgs) {
     241                    (yield 'eval' => $evalArgs);
     242                });
     243                foreach ($results as [$cursor, $ids]) {
     244                    // no-op
     245                }
     246            }
     247        }
     248        return $success;
    235249    }
    236250    private function getRedisEvictionPolicy() : string
     
    239253            return $this->redisEvictionPolicy;
    240254        }
    241         foreach ($this->getHosts() as $host) {
     255        $hosts = $this->getHosts();
     256        $host = \reset($hosts);
     257        if ($host instanceof \Prokerala\Astrology\Vendor\Predis\Client && $host->getConnection() instanceof \Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\ReplicationInterface) {
     258            // Predis supports info command only on the master in replication environments
     259            $hosts = [$host->getClientFor('master')];
     260        }
     261        foreach ($hosts as $host) {
    242262            $info = $host->info('Memory');
    243263            $info = $info['Memory'] ?? $info;
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/Adapter/TagAwareAdapter.php

    r2513947 r2612549  
    1313use Psr\Cache\CacheItemInterface;
    1414use Psr\Cache\InvalidArgumentException;
     15use Psr\Log\LoggerAwareInterface;
     16use Psr\Log\LoggerAwareTrait;
    1517use Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem;
    1618use Prokerala\Astrology\Vendor\Symfony\Component\Cache\PruneableInterface;
     
    2224 * @author Nicolas Grekas <p@tchwork.com>
    2325 */
    24 class TagAwareAdapter implements \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\TagAwareAdapterInterface, \Prokerala\Astrology\Vendor\Symfony\Contracts\Cache\TagAwareCacheInterface, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\PruneableInterface, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\ResettableInterface
     26class TagAwareAdapter implements \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\TagAwareAdapterInterface, \Prokerala\Astrology\Vendor\Symfony\Contracts\Cache\TagAwareCacheInterface, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\PruneableInterface, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\ResettableInterface, \Psr\Log\LoggerAwareInterface
    2527{
    26     public const TAGS_PREFIX = "\0tags\0";
    2728    use ContractsTrait;
     29    use LoggerAwareTrait;
    2830    use ProxyTrait;
     31    public const TAGS_PREFIX = "\x00tags\x00";
    2932    private $deferred = [];
    3033    private $createCacheItem;
     
    6871            foreach ($deferred as $key => $item) {
    6972                $tagsByKey[$key] = $item->newMetadata[\Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem::METADATA_TAGS] ?? [];
     73                $item->metadata = $item->newMetadata;
    7074            }
    7175            return $tagsByKey;
     
    188192        if ('' !== $prefix) {
    189193            foreach ($this->deferred as $key => $item) {
    190                 if (0 === \strpos($key, $prefix)) {
     194                if (\str_starts_with($key, $prefix)) {
    191195                    unset($this->deferred[$key]);
    192196                }
     
    258262        return $this->invalidateTags([]);
    259263    }
     264    /**
     265     * @return array
     266     */
    260267    public function __sleep()
    261268    {
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/CacheItem.php

    r2513947 r2612549  
    146146     * Validates a cache key according to PSR-6.
    147147     *
    148      * @param string $key The key to validate
     148     * @param mixed $key The key to validate
    149149     *
    150150     * @throws InvalidArgumentException When $key is not valid
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/DependencyInjection/CachePoolPass.php

    r2513947 r2612549  
    1414use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\ArrayAdapter;
    1515use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\ChainAdapter;
     16use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\NullAdapter;
    1617use Prokerala\Astrology\Vendor\Symfony\Component\DependencyInjection\ChildDefinition;
    1718use Prokerala\Astrology\Vendor\Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
     
    111112                        $chainedPool->replaceArgument($i++, new \Prokerala\Astrology\Vendor\Symfony\Component\DependencyInjection\Reference(static::getServiceProvider($container, $chainedTags[0]['provider'])));
    112113                    }
    113                     if (isset($tags[0]['namespace']) && \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\ArrayAdapter::class !== $adapter->getClass()) {
     114                    if (isset($tags[0]['namespace']) && !\in_array($adapter->getClass(), [\Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\ArrayAdapter::class, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\NullAdapter::class], \true)) {
    114115                        $chainedPool->replaceArgument($i++, $tags[0]['namespace']);
    115116                    }
     
    132133                        $pool->addTag($this->kernelResetTag, ['method' => $tags[0][$attr]]);
    133134                    }
    134                 } elseif ('namespace' !== $attr || \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\ArrayAdapter::class !== $class) {
     135                } elseif ('namespace' !== $attr || !\in_array($class, [\Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\ArrayAdapter::class, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\NullAdapter::class], \true)) {
    135136                    $pool->replaceArgument($i++, $tags[0][$attr]);
    136137                }
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/DoctrineProvider.php

    r2513947 r2612549  
    4343    /**
    4444     * {@inheritdoc}
     45     *
     46     * @return mixed
    4547     */
    4648    protected function doFetch($id)
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/LockRegistry.php

    r2513947 r2612549  
    2626{
    2727    private static $openedFiles = [];
    28     private static $lockedFiles = [];
     28    private static $lockedFiles;
    2929    /**
    3030     * The number of items in this list controls the max number of concurrent processes.
     
    5151    public static function compute(callable $callback, \Prokerala\Astrology\Vendor\Symfony\Contracts\Cache\ItemInterface $item, bool &$save, \Prokerala\Astrology\Vendor\Symfony\Contracts\Cache\CacheInterface $pool, \Closure $setMetadata = null, \Psr\Log\LoggerInterface $logger = null)
    5252    {
    53         $key = self::$files ? \crc32($item->getKey()) % \count(self::$files) : -1;
     53        if ('\\' === \DIRECTORY_SEPARATOR && null === self::$lockedFiles) {
     54            // disable locking on Windows by default
     55            self::$files = self::$lockedFiles = [];
     56        }
     57        $key = self::$files ? \abs(\crc32($item->getKey())) % \count(self::$files) : -1;
    5458        if ($key < 0 || (self::$lockedFiles[$key] ?? \false) || !($lock = self::open($key))) {
    5559            return $callback($item, $save);
     
    8084            }
    8185            static $signalingException, $signalingCallback;
    82             $signalingException = $signalingException ?? \unserialize("O:9:\"Exception\":1:{s:16:\"\0Exception\0trace\";a:0:{}}");
     86            $signalingException = $signalingException ?? \unserialize("O:9:\"Exception\":1:{s:16:\"\x00Exception\x00trace\";a:0:{}}");
    8387            $signalingCallback = $signalingCallback ?? function () use($signalingException) {
    8488                throw $signalingException;
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/Marshaller/TagAwareMarshaller.php

    r2513947 r2612549  
    4141                        $v['tags'] = '';
    4242                    }
    43                     $serialized[$id] = "" . ($value['meta'] ?? "\0\0\0\0\0\0\0\0") . \pack('N', \strlen($v['tags'])) . $v['tags'] . $v['value'];
     43                    $serialized[$id] = "\x9d" . ($value['meta'] ?? "\x00\x00\x00\x00\x00\x00\x00\x00") . \pack('N', \strlen($v['tags'])) . $v['tags'] . $v['value'];
    4444                    $serialized[$id][9] = "_";
    4545                }
     
    6161    {
    6262        // detect the compact format used in marshall() using magic numbers in the form 9D-..-..-..-..-00-..-..-..-5F
    63         if (13 >= \strlen($value) || "" !== $value[0] || "\0" !== $value[5] || "_" !== $value[9]) {
     63        if (13 >= \strlen($value) || "\x9d" !== $value[0] || "\x00" !== $value[5] || "_" !== $value[9]) {
    6464            return $this->marshaller->unmarshall($value);
    6565        }
    6666        // data consists of value, tags and metadata which we need to unpack
    6767        $meta = \substr($value, 1, 12);
    68         $meta[8] = "\0";
     68        $meta[8] = "\x00";
    6969        $tagLen = \unpack('Nlen', $meta, 8)['len'];
    7070        $meta = \substr($meta, 0, 8);
    71         return ['value' => $this->marshaller->unmarshall(\substr($value, 13 + $tagLen)), 'tags' => $tagLen ? $this->marshaller->unmarshall(\substr($value, 13, $tagLen)) : [], 'meta' => "\0\0\0\0\0\0\0\0" === $meta ? null : $meta];
     71        return ['value' => $this->marshaller->unmarshall(\substr($value, 13 + $tagLen)), 'tags' => $tagLen ? $this->marshaller->unmarshall(\substr($value, 13, $tagLen)) : [], 'meta' => "\x00\x00\x00\x00\x00\x00\x00\x00" === $meta ? null : $meta];
    7272    }
    7373}
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/Psr16Cache.php

    r2513947 r2612549  
    156156            unset($metadata[\Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem::METADATA_TAGS]);
    157157            if ($metadata) {
    158                 $values[$key] = ["" . \pack('VN', (int) (0.1 + $metadata[\Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem::METADATA_EXPIRY] - self::METADATA_EXPIRY_OFFSET), $metadata[\Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem::METADATA_CTIME]) . "_" => $values[$key]];
     158                $values[$key] = ["\x9d" . \pack('VN', (int) (0.1 + $metadata[\Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem::METADATA_EXPIRY] - self::METADATA_EXPIRY_OFFSET), $metadata[\Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem::METADATA_CTIME]) . "_" => $values[$key]];
    159159            }
    160160        }
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/Simple/AbstractCache.php

    r2513947 r2612549  
    2525abstract class AbstractCache implements \Psr\SimpleCache\CacheInterface, \Psr\Log\LoggerAwareInterface, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\ResettableInterface
    2626{
    27     /**
    28      * @internal
    29      */
    30     protected const NS_SEPARATOR = ':';
    3127    use AbstractTrait {
    3228        deleteItems as private;
     
    3430        AbstractTrait::hasItem as has;
    3531    }
     32    /**
     33     * @internal
     34     */
     35    protected const NS_SEPARATOR = ':';
    3636    private $defaultLifetime;
    3737    protected function __construct(string $namespace = '', int $defaultLifetime = 0)
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/Simple/RedisCache.php

    r2513947 r2612549  
    1313use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\RedisAdapter;
    1414use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\MarshallerInterface;
     15use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisClusterProxy;
     16use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisProxy;
    1517use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisTrait;
    1618use Prokerala\Astrology\Vendor\Symfony\Contracts\Cache\CacheInterface;
     
    2325    use RedisTrait;
    2426    /**
    25      * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface $redisClient
     27     * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface|RedisProxy|RedisClusterProxy $redis
    2628     */
    27     public function __construct($redisClient, string $namespace = '', int $defaultLifetime = 0, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\MarshallerInterface $marshaller = null)
     29    public function __construct($redis, string $namespace = '', int $defaultLifetime = 0, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\MarshallerInterface $marshaller = null)
    2830    {
    29         $this->init($redisClient, $namespace, $defaultLifetime, $marshaller);
     31        $this->init($redis, $namespace, $defaultLifetime, $marshaller);
    3032    }
    3133}
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/Traits/AbstractAdapterTrait.php

    r2513947 r2612549  
    9999        return \true;
    100100    }
     101    /**
     102     * @return array
     103     */
    101104    public function __sleep()
    102105    {
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/Traits/ApcuTrait.php

    r2513947 r2612549  
    9898            if (1 === \count($values)) {
    9999                // Workaround https://github.com/krakjoe/apcu/issues/170
    100                 \apcu_delete(\key($values));
     100                \apcu_delete(\array_key_first($values));
    101101            }
    102102            throw $e;
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/Traits/ArrayTrait.php

    r2513947 r2612549  
    7070        if ('' !== $prefix) {
    7171            foreach ($this->values as $key => $value) {
    72                 if (0 === \strpos($key, $prefix)) {
     72                if (\str_starts_with($key, $prefix)) {
    7373                    unset($this->values[$key], $this->expiries[$key]);
    7474                }
     
    128128                $serialized = \serialize($value);
    129129            } catch (\Exception $e) {
     130                unset($this->values[$key]);
    130131                $type = \is_object($value) ? \get_class($value) : \gettype($value);
    131132                $message = \sprintf('Failed to save key "{key}" of type %s: ', $type) . $e->getMessage();
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/Traits/FilesystemCommonTrait.php

    r2513947 r2612549  
    5353        $ok = \true;
    5454        foreach ($this->scanHashDir($this->directory) as $file) {
    55             if ('' !== $namespace && 0 !== \strpos($this->getFileKey($file), $namespace)) {
     55            if ('' !== $namespace && !\str_starts_with($this->getFileKey($file), $namespace)) {
    5656                continue;
    5757            }
     
    8686                $h = \fopen($this->tmp, 'x');
    8787            } catch (\ErrorException $e) {
    88                 if (\false === \strpos($e->getMessage(), 'File exists')) {
     88                if (!\str_contains($e->getMessage(), 'File exists')) {
    8989                    throw $e;
    9090                }
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/Traits/MemcachedTrait.php

    r2513947 r2612549  
    2929     * Note: don’t use {@see \Symfony\Component\Cache\Adapter\AbstractAdapter::NS_SEPARATOR}.
    3030     */
    31     private static $RESERVED_MEMCACHED = " \n\r\t\v\f\0";
     31    private static $RESERVED_MEMCACHED = " \n\r\t\v\f\x00";
    3232    private static $RESERVED_PSR6 = '@()\\{}/';
    3333    private $marshaller;
     
    9595                    continue;
    9696                }
    97                 if (0 !== \strpos($dsn, 'memcached:')) {
     97                if (!\str_starts_with($dsn, 'memcached:')) {
    9898                    throw new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\InvalidArgumentException(\sprintf('Invalid Memcached DSN: "%s" does not start with "memcached:".', $dsn));
    9999                }
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/Traits/PdoTrait.php

    r2513947 r2612549  
    1717use Prokerala\Astrology\Vendor\Doctrine\DBAL\Exception;
    1818use Prokerala\Astrology\Vendor\Doctrine\DBAL\Exception\TableNotFoundException;
     19use Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType;
    1920use Prokerala\Astrology\Vendor\Doctrine\DBAL\Schema\Schema;
     21use Prokerala\Astrology\Vendor\Doctrine\DBAL\Statement;
    2022use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\InvalidArgumentException;
    2123use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\DefaultMarshaller;
     
    144146            $deleteSql .= " AND {$this->idCol} LIKE :namespace";
    145147        }
     148        $connection = $this->getConnection();
     149        $useDbalConstants = $connection instanceof \Prokerala\Astrology\Vendor\Doctrine\DBAL\Connection;
    146150        try {
    147             $delete = $this->getConnection()->prepare($deleteSql);
     151            $delete = $connection->prepare($deleteSql);
    148152        } catch (\Prokerala\Astrology\Vendor\Doctrine\DBAL\Exception\TableNotFoundException $e) {
    149153            return \true;
     
    151155            return \true;
    152156        }
    153         $delete->bindValue(':time', \time(), \PDO::PARAM_INT);
     157        $delete->bindValue(':time', \time(), $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
    154158        if ('' !== $this->namespace) {
    155             $delete->bindValue(':namespace', \sprintf('%s%%', $this->namespace), \PDO::PARAM_STR);
     159            $delete->bindValue(':namespace', \sprintf('%s%%', $this->namespace), $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::STRING : \PDO::PARAM_STR);
    156160        }
    157161        try {
     162            // Doctrine DBAL ^2.13 || >= 3.1
     163            if ($delete instanceof \Prokerala\Astrology\Vendor\Doctrine\DBAL\Statement && \method_exists($delete, 'executeStatement')) {
     164                $delete->executeStatement();
     165                return \true;
     166            }
    158167            return $delete->execute();
    159168        } catch (\Prokerala\Astrology\Vendor\Doctrine\DBAL\Exception\TableNotFoundException $e) {
     
    168177    protected function doFetch(array $ids)
    169178    {
     179        $connection = $this->getConnection();
     180        $useDbalConstants = $connection instanceof \Prokerala\Astrology\Vendor\Doctrine\DBAL\Connection;
    170181        $now = \time();
    171182        $expired = [];
    172183        $sql = \str_pad('', (\count($ids) << 1) - 1, '?,');
    173184        $sql = "SELECT {$this->idCol}, CASE WHEN {$this->lifetimeCol} IS NULL OR {$this->lifetimeCol} + {$this->timeCol} > ? THEN {$this->dataCol} ELSE NULL END FROM {$this->table} WHERE {$this->idCol} IN ({$sql})";
    174         $stmt = $this->getConnection()->prepare($sql);
    175         $stmt->bindValue($i = 1, $now, \PDO::PARAM_INT);
     185        $stmt = $connection->prepare($sql);
     186        $stmt->bindValue($i = 1, $now, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
    176187        foreach ($ids as $id) {
    177188            $stmt->bindValue(++$i, $id);
     
    194205            $sql = \str_pad('', (\count($expired) << 1) - 1, '?,');
    195206            $sql = "DELETE FROM {$this->table} WHERE {$this->lifetimeCol} + {$this->timeCol} <= ? AND {$this->idCol} IN ({$sql})";
    196             $stmt = $this->getConnection()->prepare($sql);
    197             $stmt->bindValue($i = 1, $now, \PDO::PARAM_INT);
     207            $stmt = $connection->prepare($sql);
     208            $stmt->bindValue($i = 1, $now, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
    198209            foreach ($expired as $id) {
    199210                $stmt->bindValue(++$i, $id);
     
    207218    protected function doHave($id)
    208219    {
     220        $connection = $this->getConnection();
     221        $useDbalConstants = $connection instanceof \Prokerala\Astrology\Vendor\Doctrine\DBAL\Connection;
    209222        $sql = "SELECT 1 FROM {$this->table} WHERE {$this->idCol} = :id AND ({$this->lifetimeCol} IS NULL OR {$this->lifetimeCol} + {$this->timeCol} > :time)";
    210         $stmt = $this->getConnection()->prepare($sql);
     223        $stmt = $connection->prepare($sql);
    211224        $stmt->bindValue(':id', $id);
    212         $stmt->bindValue(':time', \time(), \PDO::PARAM_INT);
     225        $stmt->bindValue(':time', \time(), $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
    213226        $result = $stmt->execute();
    214227        return (bool) (\is_object($result) ? $result->fetchOne() : $stmt->fetchColumn());
     
    264277        }
    265278        $conn = $this->getConnection();
     279        $useDbalConstants = $conn instanceof \Prokerala\Astrology\Vendor\Doctrine\DBAL\Connection;
    266280        $driver = $this->driver;
    267281        $insertSql = "INSERT INTO {$this->table} ({$this->idCol}, {$this->dataCol}, {$this->lifetimeCol}, {$this->timeCol}) VALUES (:id, :data, :lifetime, :time)";
     
    308322            $stmt->bindParam(1, $id);
    309323            $stmt->bindParam(2, $id);
    310             $stmt->bindParam(3, $data, \PDO::PARAM_LOB);
    311             $stmt->bindValue(4, $lifetime, \PDO::PARAM_INT);
    312             $stmt->bindValue(5, $now, \PDO::PARAM_INT);
    313             $stmt->bindParam(6, $data, \PDO::PARAM_LOB);
    314             $stmt->bindValue(7, $lifetime, \PDO::PARAM_INT);
    315             $stmt->bindValue(8, $now, \PDO::PARAM_INT);
     324            $stmt->bindParam(3, $data, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::LARGE_OBJECT : \PDO::PARAM_LOB);
     325            $stmt->bindValue(4, $lifetime, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
     326            $stmt->bindValue(5, $now, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
     327            $stmt->bindParam(6, $data, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::LARGE_OBJECT : \PDO::PARAM_LOB);
     328            $stmt->bindValue(7, $lifetime, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
     329            $stmt->bindValue(8, $now, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
    316330        } else {
    317331            $stmt->bindParam(':id', $id);
    318             $stmt->bindParam(':data', $data, \PDO::PARAM_LOB);
    319             $stmt->bindValue(':lifetime', $lifetime, \PDO::PARAM_INT);
    320             $stmt->bindValue(':time', $now, \PDO::PARAM_INT);
     332            $stmt->bindParam(':data', $data, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::LARGE_OBJECT : \PDO::PARAM_LOB);
     333            $stmt->bindValue(':lifetime', $lifetime, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
     334            $stmt->bindValue(':time', $now, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
    321335        }
    322336        if (null === $driver) {
    323337            $insertStmt = $conn->prepare($insertSql);
    324338            $insertStmt->bindParam(':id', $id);
    325             $insertStmt->bindParam(':data', $data, \PDO::PARAM_LOB);
    326             $insertStmt->bindValue(':lifetime', $lifetime, \PDO::PARAM_INT);
    327             $insertStmt->bindValue(':time', $now, \PDO::PARAM_INT);
     339            $insertStmt->bindParam(':data', $data, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::LARGE_OBJECT : \PDO::PARAM_LOB);
     340            $insertStmt->bindValue(':lifetime', $lifetime, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
     341            $insertStmt->bindValue(':time', $now, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
    328342        }
    329343        foreach ($values as $id => $data) {
     
    397411                        $this->driver = 'sqlsrv';
    398412                        break;
     413                    case $driver instanceof \Prokerala\Astrology\Vendor\Doctrine\DBAL\Driver:
     414                        $this->driver = ['mssql' => 'sqlsrv', 'oracle' => 'oci', 'postgresql' => 'pgsql', 'sqlite' => 'sqlite', 'mysql' => 'mysql'][$driver->getDatabasePlatform()->getName()] ?? \get_class($driver);
     415                        break;
    399416                    default:
    400417                        $this->driver = \get_class($driver);
  • astrology/tags/1.0.5/dependencies/vendor/symfony/cache/Traits/RedisTrait.php

    r2513947 r2612549  
    1313use Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\ClusterInterface;
    1414use Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\RedisCluster;
     15use Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\ReplicationInterface;
    1516use Prokerala\Astrology\Vendor\Predis\Response\Status;
    1617use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\CacheException;
     
    2627trait RedisTrait
    2728{
    28     private static $defaultConnectionOptions = ['class' => null, 'persistent' => 0, 'persistent_id' => null, 'timeout' => 30, 'read_timeout' => 0, 'retry_interval' => 0, 'tcp_keepalive' => 0, 'lazy' => null, 'redis_cluster' => \false, 'redis_sentinel' => null, 'dbindex' => 0, 'failover' => 'none'];
     29    private static $defaultConnectionOptions = ['class' => null, 'persistent' => 0, 'persistent_id' => null, 'timeout' => 30, 'read_timeout' => 0, 'retry_interval' => 0, 'tcp_keepalive' => 0, 'lazy' => null, 'redis_cluster' => \false, 'redis_sentinel' => null, 'dbindex' => 0, 'failover' => 'none', 'ssl' => null];
    2930    private $redis;
    3031    private $marshaller;
    3132    /**
    32      * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface $redisClient
    33      */
    34     private function init($redisClient, string $namespace, int $defaultLifetime, ?\Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\MarshallerInterface $marshaller)
     33     * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface|RedisProxy|RedisClusterProxy $redis
     34     */
     35    private function init($redis, string $namespace, int $defaultLifetime, ?\Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\MarshallerInterface $marshaller)
    3536    {
    3637        parent::__construct($namespace, $defaultLifetime);
     
    3839            throw new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\InvalidArgumentException(\sprintf('RedisAdapter namespace contains "%s" but only characters in [-+_.A-Za-z0-9] are allowed.', $match[0]));
    3940        }
    40         if (!$redisClient instanceof \Redis && !$redisClient instanceof \RedisArray && !$redisClient instanceof \RedisCluster && !$redisClient instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface && !$redisClient instanceof \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisProxy && !$redisClient instanceof \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisClusterProxy) {
    41             throw new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\InvalidArgumentException(\sprintf('"%s()" expects parameter 1 to be Redis, RedisArray, RedisCluster or Predis\\ClientInterface, "%s" given.', __METHOD__, \is_object($redisClient) ? \get_class($redisClient) : \gettype($redisClient)));
    42         }
    43         if ($redisClient instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface && $redisClient->getOptions()->exceptions) {
    44             $options = clone $redisClient->getOptions();
     41        if (!$redis instanceof \Redis && !$redis instanceof \RedisArray && !$redis instanceof \RedisCluster && !$redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface && !$redis instanceof \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisProxy && !$redis instanceof \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisClusterProxy) {
     42            throw new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\InvalidArgumentException(\sprintf('"%s()" expects parameter 1 to be Redis, RedisArray, RedisCluster or Predis\\ClientInterface, "%s" given.', __METHOD__, \is_object($redis) ? \get_class($redis) : \gettype($redis)));
     43        }
     44        if ($redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface && $redis->getOptions()->exceptions) {
     45            $options = clone $redis->getOptions();
    4546            \Closure::bind(function () {
    4647                $this->options['exceptions'] = \false;
    4748            }, $options, $options)();
    48             $redisClient = new $redisClient($redisClient->getConnection(), $options);
    49         }
    50         $this->redis = $redisClient;
     49            $redis = new $redis($redis->getConnection(), $options);
     50        }
     51        $this->redis = $redis;
    5152        $this->marshaller = $marshaller ?? new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\DefaultMarshaller();
    5253    }
     
    7071    public static function createConnection($dsn, array $options = [])
    7172    {
    72         if (0 === \strpos($dsn, 'redis:')) {
     73        if (\str_starts_with($dsn, 'redis:')) {
    7374            $scheme = 'redis';
    74         } elseif (0 === \strpos($dsn, 'rediss:')) {
     75        } elseif (\str_starts_with($dsn, 'rediss:')) {
    7576            $scheme = 'rediss';
    7677        } else {
     
    9394        }
    9495        $query = $hosts = [];
     96        $tls = 'rediss' === $scheme;
     97        $tcpScheme = $tls ? 'tls' : 'tcp';
    9598        if (isset($params['query'])) {
    9699            \parse_str($params['query'], $query);
     
    104107                    }
    105108                    if (\false === ($i = \strrpos($host, ':'))) {
    106                         $hosts[$host] = ['scheme' => 'tcp', 'host' => $host, 'port' => 6379] + $parameters;
     109                        $hosts[$host] = ['scheme' => $tcpScheme, 'host' => $host, 'port' => 6379] + $parameters;
    107110                    } elseif ($port = (int) \substr($host, 1 + $i)) {
    108                         $hosts[$host] = ['scheme' => 'tcp', 'host' => \substr($host, 0, $i), 'port' => $port] + $parameters;
     111                        $hosts[$host] = ['scheme' => $tcpScheme, 'host' => \substr($host, 0, $i), 'port' => $port] + $parameters;
    109112                    } else {
    110113                        $hosts[$host] = ['scheme' => 'unix', 'path' => \substr($host, 0, $i)] + $parameters;
     
    120123            }
    121124            if (isset($params['host'])) {
    122                 \array_unshift($hosts, ['scheme' => 'tcp', 'host' => $params['host'], 'port' => $params['port'] ?? 6379]);
     125                \array_unshift($hosts, ['scheme' => $tcpScheme, 'host' => $params['host'], 'port' => $params['port'] ?? 6379]);
    123126            } else {
    124127                \array_unshift($hosts, ['scheme' => 'unix', 'path' => $params['path']]);
     
    135138            $class = $params['redis_cluster'] ? \RedisCluster::class : (1 < \count($hosts) ? \RedisArray::class : \Redis::class);
    136139        } else {
    137             $class = null === $params['class'] ? \Prokerala\Astrology\Vendor\Predis\Client::class : $params['class'];
     140            $class = $params['class'] ?? \Prokerala\Astrology\Vendor\Predis\Client::class;
    138141        }
    139142        if (\is_a($class, \Redis::class, \true)) {
    140143            $connect = $params['persistent'] || $params['persistent_id'] ? 'pconnect' : 'connect';
    141144            $redis = new $class();
    142             $initializer = static function ($redis) use($connect, $params, $dsn, $auth, $hosts) {
     145            $initializer = static function ($redis) use($connect, $params, $dsn, $auth, $hosts, $tls) {
     146                $host = $hosts[0]['host'] ?? $hosts[0]['path'];
     147                $port = $hosts[0]['port'] ?? null;
     148                if (isset($hosts[0]['host']) && $tls) {
     149                    $host = 'tls://' . $host;
     150                }
    143151                try {
    144                     @$redis->{$connect}($hosts[0]['host'] ?? $hosts[0]['path'], $hosts[0]['port'] ?? null, $params['timeout'], (string) $params['persistent_id'], $params['retry_interval'], $params['read_timeout']);
     152                    @$redis->{$connect}($host, $port, $params['timeout'], (string) $params['persistent_id'], $params['retry_interval'], $params['read_timeout'], ...\defined('Redis::SCAN_PREFIX') ? [['stream' => $params['ssl'] ?? null]] : []);
    145153                    \set_error_handler(function ($type, $msg) use(&$error) {
    146154                        $error = $msg;
     
    171179        } elseif (\is_a($class, \RedisArray::class, \true)) {
    172180            foreach ($hosts as $i => $host) {
    173                 $hosts[$i] = 'tcp' === $host['scheme'] ? $host['host'] . ':' . $host['port'] : $host['path'];
     181                switch ($host['scheme']) {
     182                    case 'tcp':
     183                        $hosts[$i] = $host['host'] . ':' . $host['port'];
     184                        break;
     185                    case 'tls':
     186                        $hosts[$i] = 'tls://' . $host['host'] . ':' . $host['port'];
     187                        break;
     188                    default:
     189                        $hosts[$i] = $host['path'];
     190                }
    174191            }
    175192            $params['lazy_connect'] = $params['lazy'] ?? \true;
     
    186203            $initializer = static function () use($class, $params, $dsn, $hosts) {
    187204                foreach ($hosts as $i => $host) {
    188                     $hosts[$i] = 'tcp' === $host['scheme'] ? $host['host'] . ':' . $host['port'] : $host['path'];
     205                    switch ($host['scheme']) {
     206                        case 'tcp':
     207                            $hosts[$i] = $host['host'] . ':' . $host['port'];
     208                            break;
     209                        case 'tls':
     210                            $hosts[$i] = 'tls://' . $host['host'] . ':' . $host['port'];
     211                            break;
     212                        default:
     213                            $hosts[$i] = $host['path'];
     214                    }
    189215                }
    190216                try {
    191                     $redis = new $class(null, $hosts, $params['timeout'], $params['read_timeout'], (bool) $params['persistent'], $params['auth'] ?? '');
     217                    $redis = new $class(null, $hosts, $params['timeout'], $params['read_timeout'], (bool) $params['persistent'], $params['auth'] ?? '', ...\defined('Redis::SCAN_PREFIX') ? [$params['ssl'] ?? null] : []);
    192218                } catch (\RedisClusterException $e) {
    193219                    throw new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\InvalidArgumentException(\sprintf('Redis connection "%s" failed: ', $dsn) . $e->getMessage());
     
    235261            }
    236262            $params['exceptions'] = \false;
    237             $redis = new $class($hosts, \array_diff_key($params, self::$defaultConnectionOptions));
     263            $redis = new $class($hosts, \array_diff_key($params, \array_diff_key(self::$defaultConnectionOptions, ['ssl' => null])));
    238264            if (isset($params['redis_sentinel'])) {
    239265                $redis->getConnection()->setSentinelTimeout($params['timeout']);
     
    287313    protected function doClear($namespace)
    288314    {
     315        if ($this->redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface) {
     316            $prefix = $this->redis->getOptions()->prefix ? $this->redis->getOptions()->prefix->getPrefix() : '';
     317            $prefixLen = \strlen($prefix);
     318        }
    289319        $cleared = \true;
    290         if ($this->redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface) {
    291             $evalArgs = [0, $namespace];
    292         } else {
    293             $evalArgs = [[$namespace], 0];
    294         }
    295         foreach ($this->getHosts() as $host) {
     320        $hosts = $this->getHosts();
     321        $host = \reset($hosts);
     322        if ($host instanceof \Prokerala\Astrology\Vendor\Predis\Client && $host->getConnection() instanceof \Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\ReplicationInterface) {
     323            // Predis supports info command only on the master in replication environments
     324            $hosts = [$host->getClientFor('master')];
     325        }
     326        foreach ($hosts as $host) {
    296327            if (!isset($namespace[0])) {
    297328                $cleared = $host->flushDb() && $cleared;
     
    300331            $info = $host->info('Server');
    301332            $info = $info['Server'] ?? $info;
     333            if (!$host instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface) {
     334                $prefix = \defined('Redis::SCAN_PREFIX') && \Redis::SCAN_PREFIX & $host->getOption(\Redis::OPT_SCAN) ? '' : $host->getOption(\Redis::OPT_PREFIX);
     335                $prefixLen = \strlen($host->getOption(\Redis::OPT_PREFIX) ?? '');
     336            }
     337            $pattern = $prefix . $namespace . '*';
    302338            if (!\version_compare($info['redis_version'], '2.8', '>=')) {
    303339                // As documented in Redis documentation (http://redis.io/commands/keys) using KEYS
    304340                // can hang your server when it is executed against large databases (millions of items).
    305341                // Whenever you hit this scale, you should really consider upgrading to Redis 2.8 or above.
    306                 $cleared = $host->eval("local keys=redis.call('KEYS',ARGV[1]..'*') for i=1,#keys,5000 do redis.call('DEL',unpack(keys,i,math.min(i+4999,#keys))) end return 1", $evalArgs[0], $evalArgs[1]) && $cleared;
     342                $args = $this->redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface ? [0, $pattern] : [[$pattern], 0];
     343                $cleared = $host->eval("local keys=redis.call('KEYS',ARGV[1]) for i=1,#keys,5000 do redis.call('DEL',unpack(keys,i,math.min(i+4999,#keys))) end return 1", $args[0], $args[1]) && $cleared;
    307344                continue;
    308345            }
    309346            $cursor = null;
    310347            do {
    311                 $keys = $host instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface ? $host->scan($cursor, 'MATCH', $namespace . '*', 'COUNT', 1000) : $host->scan($cursor, $namespace . '*', 1000);
     348                $keys = $host instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface ? $host->scan($cursor, 'MATCH', $pattern, 'COUNT', 1000) : $host->scan($cursor, $pattern, 1000);
    312349                if (isset($keys[1]) && \is_array($keys[1])) {
    313350                    $cursor = $keys[0];
     
    315352                }
    316353                if ($keys) {
     354                    if ($prefixLen) {
     355                        foreach ($keys as $i => $key) {
     356                            $keys[$i] = \substr($key, $prefixLen);
     357                        }
     358                    }
    317359                    $this->doDelete($keys);
    318360                }
     
    410452            $results = $redis->exec();
    411453        }
     454        if (!$redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface && 'eval' === $command && $redis->getLastError()) {
     455            $e = new \RedisException($redis->getLastError());
     456            $results = \array_map(function ($v) use($e) {
     457                return \false === $v ? $e : $v;
     458            }, $results);
     459        }
    412460        foreach ($ids as $k => $id) {
    413461            (yield $id => $results[$k]);
     
    433481            $hosts = [];
    434482            foreach ($this->redis->_masters() as $host) {
    435                 $hosts[] = $h = new \Redis();
    436                 $h->connect($host[0], $host[1]);
     483                $hosts[] = new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisClusterNodeProxy($host, $this->redis);
    437484            }
    438485        }
  • astrology/tags/1.0.5/dependencies/vendor/symfony/options-resolver/OptionsResolver.php

    r2513947 r2612549  
    198198    }
    199199    /**
    200      * Sets a list of default values.
    201      *
    202      * @param array $defaults The default values to set
    203      *
    204200     * @return $this
    205201     *
     
    410406     * The resolved option value is set to the return value of the closure.
    411407     *
    412      * @param string   $option     The option name
    413      * @param \Closure $normalizer The normalizer
     408     * @param string $option The option name
    414409     *
    415410     * @return $this
     
    448443     *
    449444     * The resolved option value is set to the return value of the closure.
    450      *
    451      * @param string   $option       The option name
    452      * @param \Closure $normalizer   The normalizer
    453      * @param bool     $forcePrepend If set to true, prepend instead of appending
    454445     *
    455446     * @return $this
     
    672663     *  - Options have invalid values.
    673664     *
    674      * @param array $options A map of option names to values
    675      *
    676665     * @return array The merged and validated options
    677666     *
     
    736725     *                                   lazy options and/or normalizers
    737726     */
     727    #[\ReturnTypeWillChange]
    738728    public function offsetGet($option)
    739729    {
     
    816806                $fmtProvidedTypes = \implode('|', \array_keys($invalidTypes));
    817807                $allowedContainsArrayType = \count(\array_filter($this->allowedTypes[$option], static function ($item) {
    818                     return '[]' === \substr(self::TYPE_ALIASES[$item] ?? $item, -2);
     808                    return \str_ends_with(self::TYPE_ALIASES[$item] ?? $item, '[]');
    819809                })) > 0;
    820810                if (\is_array($value) && $allowedContainsArrayType) {
     
    929919     * @see \ArrayAccess::offsetExists()
    930920     */
     921    #[\ReturnTypeWillChange]
    931922    public function offsetExists($option)
    932923    {
     
    939930     * Not supported.
    940931     *
     932     * @return void
     933     *
    941934     * @throws AccessException
    942935     */
     936    #[\ReturnTypeWillChange]
    943937    public function offsetSet($option, $value)
    944938    {
     
    948942     * Not supported.
    949943     *
     944     * @return void
     945     *
    950946     * @throws AccessException
    951947     */
     948    #[\ReturnTypeWillChange]
    952949    public function offsetUnset($option)
    953950    {
     
    965962     * @see \Countable::count()
    966963     */
     964    #[\ReturnTypeWillChange]
    967965    public function count()
    968966    {
  • astrology/tags/1.0.5/dependencies/vendor/symfony/polyfill-php80/bootstrap.php

    r2513947 r2612549  
    2727}
    2828if (!function_exists('str_contains')) {
    29     function str_contains(string $haystack, string $needle): bool { return p\Php80::str_contains($haystack, $needle); }
     29    function str_contains(?string $haystack, ?string $needle): bool { return p\Php80::str_contains($haystack ?? '', $needle ?? ''); }
    3030}
    3131if (!function_exists('str_starts_with')) {
    32     function str_starts_with(string $haystack, string $needle): bool { return p\Php80::str_starts_with($haystack, $needle); }
     32    function str_starts_with(?string $haystack, ?string $needle): bool { return p\Php80::str_starts_with($haystack ?? '', $needle ?? ''); }
    3333}
    3434if (!function_exists('str_ends_with')) {
    35     function str_ends_with(string $haystack, string $needle): bool { return p\Php80::str_ends_with($haystack, $needle); }
     35    function str_ends_with(?string $haystack, ?string $needle): bool { return p\Php80::str_ends_with($haystack ?? '', $needle ?? ''); }
    3636}
    3737if (!function_exists('get_debug_type')) {
  • astrology/tags/1.0.5/dependencies/vendor/symfony/var-exporter/Internal/Exporter.php

    r2513947 r2612549  
    6161                }
    6262                goto handle_value;
    63             } elseif (!\is_object($value) && !$value instanceof \__PHP_Incomplete_Class) {
     63            } elseif (!\is_object($value) && !$value instanceof \__PHP_Incomplete_Class || $value instanceof \UnitEnum) {
    6464                goto handle_value;
    6565            }
     
    7777                }
    7878                if (!\is_array($properties = $value->__serialize())) {
    79                     throw new \Prokerala\Astrology\Vendor\Typerror($class . '::__serialize() must return an array');
     79                    throw new \TypeError($class . '::__serialize() must return an array');
    8080                }
    8181                goto prepare_value;
     
    9898                    $properties[] = $value[$v];
    9999                }
    100                 $properties = ['SplObjectStorage' => ["\0" => $properties]];
     100                $properties = ['SplObjectStorage' => ["\x00" => $properties]];
    101101            } elseif ($value instanceof \Serializable || $value instanceof \__PHP_Incomplete_Class) {
    102102                ++$objectsCount;
     
    122122                $i = 0;
    123123                $n = (string) $name;
    124                 if ('' === $n || "\0" !== $n[0]) {
     124                if ('' === $n || "\x00" !== $n[0]) {
    125125                    $c = 'stdClass';
    126126                } elseif ('*' === $n[1]) {
     
    133133                    }
    134134                } else {
    135                     $i = \strpos($n, "\0", 2);
     135                    $i = \strpos($n, "\x00", 2);
    136136                    $c = \substr($n, 1, $i - 1);
    137137                    $n = \substr($n, 1 + $i);
     
    143143                    $sleep[$n] = \false;
    144144                }
    145                 if (!\array_key_exists($name, $proto) || $proto[$name] !== $v || "\0Error\0trace" === $name || "\0Exception\0trace" === $name) {
     145                if (!\array_key_exists($name, $proto) || $proto[$name] !== $v || "\x00Error\x00trace" === $name || "\x00Exception\x00trace" === $name) {
    146146                    $properties[$c][$n] = $v;
    147147                }
     
    174174    {
    175175        switch (\true) {
    176             case \is_int($value) || \is_float($value):
     176            case \is_int($value) || \is_float($value) || $value instanceof \UnitEnum:
    177177                return \var_export($value, \true);
    178178            case [] === $value:
     
    201201            $code = \sprintf("'%s'", \addcslashes($value, "'\\"));
    202202            $code = \preg_replace_callback('/([\\0\\r\\n]++)(.)/', function ($m) use($subIndent) {
    203                 $m[1] = \sprintf('\'."%s".\'', \str_replace(["\0", "\r", "\n", '\\n\\'], ['\\0', '\\r', '\\n', '\\n"' . "\n" . $subIndent . '."\\'], $m[1]));
     203                $m[1] = \sprintf('\'."%s".\'', \str_replace(["\x00", "\r", "\n", '\\n\\'], ['\\0', '\\r', '\\n', '\\n"' . "\n" . $subIndent . '."\\'], $m[1]));
    204204                if ("'" === $m[2]) {
    205205                    return \substr($m[1], 0, -2);
     
    210210                return $m[1] . $m[2];
    211211            }, $code, -1, $count);
    212             if ($count && 0 === \strpos($code, "''.")) {
     212            if ($count && \str_starts_with($code, "''.")) {
    213213                $code = \substr($code, 3);
    214214            }
     
    266266                }
    267267                if (\is_subclass_of($class, 'Throwable')) {
    268                     $eol = \is_subclass_of($class, 'Error') ? "\0Error\0" : "\0Exception\0";
     268                    $eol = \is_subclass_of($class, 'Error') ? "\x00Error\x00" : "\x00Exception\x00";
    269269                    $serializables[$k] = \substr_replace($serializables[$k], '1:{s:' . (5 + \strlen($eol)) . ':"' . $eol . 'trace";a:0:{}}', -4);
    270270                }
     
    345345                unset($properties[2]);
    346346            }
    347             $properties = [$reflector->class => ["\0" => $properties]];
     347            $properties = [$reflector->class => ["\x00" => $properties]];
    348348        }
    349349        return $properties;
  • astrology/tags/1.0.5/dependencies/vendor/symfony/var-exporter/Internal/Hydrator.php

    r2513947 r2612549  
    7474                return self::$hydrators[$class] = static function ($properties, $objects) use($constructor) {
    7575                    foreach ($properties as $name => $values) {
    76                         if ("\0" !== $name) {
     76                        if ("\x00" !== $name) {
    7777                            foreach ($values as $i => $v) {
    7878                                $objects[$i]->{$name} = $v;
     
    8080                        }
    8181                    }
    82                     foreach ($properties["\0"] ?? [] as $i => $v) {
     82                    foreach ($properties["\x00"] ?? [] as $i => $v) {
    8383                        $constructor($objects[$i], $v);
    8484                    }
     
    9595                return self::$hydrators[$class] = static function ($properties, $objects) {
    9696                    foreach ($properties as $name => $values) {
    97                         if ("\0" === $name) {
     97                        if ("\x00" === $name) {
    9898                            foreach ($values as $i => $v) {
    9999                                for ($j = 0; $j < \count($v); ++$j) {
  • astrology/tags/1.0.5/dependencies/vendor/symfony/var-exporter/VarExporter.php

    r2513947 r2612549  
    4141    {
    4242        $isStaticValue = \true;
    43         if (!\is_object($value) && !(\is_array($value) && $value) && !$value instanceof \__PHP_Incomplete_Class && !\is_resource($value)) {
     43        if (!\is_object($value) && !(\is_array($value) && $value) && !$value instanceof \__PHP_Incomplete_Class && !\is_resource($value) || $value instanceof \UnitEnum) {
    4444            return \Prokerala\Astrology\Vendor\Symfony\Component\VarExporter\Internal\Exporter::export($value);
    4545        }
  • astrology/tags/1.0.5/readme.txt

    r2516408 r2612549  
    33Tags: astrology, prokerala
    44Requires at least: 5.5
    5 Tested up to: 5.7
    6 Stable tag: 1.0.4
     5Tested up to: 5.8.1
     6Stable tag: 1.0.5
    77Requires PHP: 7.2.0
    88License: GPLV2+
     
    117117== Changelog ==
    118118
     119= 1.0.5 =
     120* Location parameters where not being passed correctly
     121* Minor inconsistencies and mistakes in template files
     122* Fix PHP notices
     123
    119124= 1.0.4 =
    120125* Fix php notices
  • astrology/tags/1.0.5/src/Admin/SettingsPage.php

    r2513947 r2612549  
    9494        $input['client_id']     = trim( $input['client_id'] );
    9595        $input['client_secret'] = trim( $input['client_secret'] );
     96        $input['attribution']   = trim( $input['attribution'] );
    9697
    9798        $this->validate_client( $input['client_id'], $input['client_secret'] );
     
    196197        ?>
    197198        <label>
    198             <input type="checkbox" id="astrology_plugin_setting_attribution" name="astrology_plugin_options[attribution]" <?php echo '1' === (string) $attribution ? 'checked' : ''; ?> value="1" />
    199             Remove <em>Powered by Prokerala</em> attribution.
     199            <input type="checkbox" id="astrology_plugin_setting_attribution" name="astrology_plugin_options[attribution]" <?php echo '1' === (string) $attribution ? 'checked' : ''; ?> value="1" onclick="return this.checked || confirm('Please continue only if you are on our paid plan. Attribution is mandatory on free plan. Hiding attribution on free plan can lead to account suspension and domain blacklisting without further notice.')" />
     200            Show <em>Powered by Prokerala</em> attribution.
    200201        </label>
    201         <p class="help">Attribution is mandatory for free plan.</p>
     202        <p class="help">Attribution is mandatory on free plan. Violation can lead to account suspension and domain blacklisting without further notice.</p>
    202203        <?php
    203204    }
  • astrology/tags/1.0.5/src/Block.php

    r2513947 r2612549  
    103103                    'report'     => [
    104104                        'default' => 'Chart',
     105                        'type'    => 'string',
    105106                    ],
    106107                    'resultType' => [
    107108                        'default' => '',
     109                        'type'    => 'string',
    108110                    ],
    109111                ],
  • astrology/tags/1.0.5/src/vendor/autoload.php

    r2516408 r2612549  
    55require_once __DIR__ . '/composer/autoload_real.php';
    66
    7 return ComposerAutoloaderInit97350fc22183ab553e127f2ec2225b7e::getLoader();
     7return ComposerAutoloaderInitd7aac2e4ae75a33ae7be41266749683e::getLoader();
  • astrology/tags/1.0.5/src/vendor/composer/autoload_real.php

    r2516408 r2612549  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInit97350fc22183ab553e127f2ec2225b7e
     5class ComposerAutoloaderInitd7aac2e4ae75a33ae7be41266749683e
    66{
    77    private static $loader;
     
    2323        }
    2424
    25         spl_autoload_register(array('ComposerAutoloaderInit97350fc22183ab553e127f2ec2225b7e', 'loadClassLoader'), true, true);
     25        spl_autoload_register(array('ComposerAutoloaderInitd7aac2e4ae75a33ae7be41266749683e', 'loadClassLoader'), true, true);
    2626        self::$loader = $loader = new \Prokerala_WP_Astrology_Composer\Autoload\ClassLoader();
    27         spl_autoload_unregister(array('ComposerAutoloaderInit97350fc22183ab553e127f2ec2225b7e', 'loadClassLoader'));
     27        spl_autoload_unregister(array('ComposerAutoloaderInitd7aac2e4ae75a33ae7be41266749683e', 'loadClassLoader'));
    2828
    2929        $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
     
    3131            require_once __DIR__ . '/autoload_static.php';
    3232
    33             call_user_func(\Prokerala_WP_Astrology_Composer\Autoload\ComposerStaticInit97350fc22183ab553e127f2ec2225b7e::getInitializer($loader));
     33            call_user_func(\Prokerala_WP_Astrology_Composer\Autoload\ComposerStaticInitd7aac2e4ae75a33ae7be41266749683e::getInitializer($loader));
    3434        } else {
    3535            $classMap = require __DIR__ . '/autoload_classmap.php';
  • astrology/tags/1.0.5/src/vendor/composer/autoload_static.php

    r2516408 r2612549  
    55namespace Prokerala_WP_Astrology_Composer\Autoload;
    66
    7 class ComposerStaticInit97350fc22183ab553e127f2ec2225b7e
     7class ComposerStaticInitd7aac2e4ae75a33ae7be41266749683e
    88{
    99    public static $classMap = array (
     
    4141    {
    4242        return \Closure::bind(function () use ($loader) {
    43             $loader->classMap = ComposerStaticInit97350fc22183ab553e127f2ec2225b7e::$classMap;
     43            $loader->classMap = ComposerStaticInitd7aac2e4ae75a33ae7be41266749683e::$classMap;
    4444
    4545        }, null, ClassLoader::class);
  • astrology/tags/1.0.5/templates/front/form/horoscope-form.tpl.php

    r2513947 r2612549  
    5959    <label class="pk-astrology-col-sm-3 pk-astrology-col-md-4 pk-astrology-form-label">Place Of Birth:</label>
    6060    <div class="pk-astrology-col-sm-9 pk-astrology-col-md-8">
    61         <input type="text" name="location" autocomplete="off" class="pk-astrology-form-control prokerala-location-input" placeholder="Enter Location" value="" required data-location_input_prefix="loc">
     61        <input type="text" name="location" autocomplete="off" class="pk-astrology-form-control prokerala-location-input" placeholder="Enter Location" value="" required>
    6262    </div>
    6363</div>
  • astrology/tags/1.0.5/templates/front/form/horoscope-matching-form.tpl.php

    r2513947 r2612549  
    6363            <div class="pk-astrology-col-md-8">
    6464                <div id='g-location'>
    65                     <input type='text' id="g-autocomplete" name="girl_location" autocomplete="off" class="pk-astrology-form-control prokerala-location-input" placeholder="Place of birth" value="" required="required" data-location_input_prefix="girl_loc"/>
     65                    <input type='text' id="g-autocomplete" name="girl_location" autocomplete="off" class="pk-astrology-form-control prokerala-location-input" placeholder="Place of birth" value="" required="required" data-location_input_prefix="girl"/>
    6666                </div>
    6767            </div>
     
    8080            <div class="pk-astrology-col-md-8">
    8181                <div id='b-location'>
    82                     <input type='text' id="b-coordinates" name="boy_location" autocomplete="off" class="pk-astrology-form-control prokerala-location-input" placeholder="Place of birth" required="required" data-location_input_prefix="boy_loc"/>
     82                    <input type='text' id="b-coordinates" name="boy_location" autocomplete="off" class="pk-astrology-form-control prokerala-location-input" placeholder="Place of birth" required="required" data-location_input_prefix="boy"/>
    8383                </div>
    8484            </div>
  • astrology/tags/1.0.5/templates/front/form/panchang-form.tpl.php

    r2513947 r2612549  
    5959    <label class="pk-astrology-col-sm-3 pk-astrology-col-md-4 pk-astrology-form-label">Location:</label>
    6060    <div class="pk-astrology-col-sm-9 pk-astrology-col-md-8">
    61         <input type="text" name="location" autocomplete="off" class="pk-astrology-form-control prokerala-location-input" placeholder="Enter Location" value="" required data-location_input_prefix="loc">
     61        <input type="text" name="location" autocomplete="off" class="pk-astrology-form-control prokerala-location-input" placeholder="Enter Location" value="" required>
    6262    </div>
    6363</div>
  • astrology/tags/1.0.5/templates/front/result/panchang.tpl.php

    r2513947 r2612549  
    4848
    4949                            <?php if ( 'Nakshatra' === $key ) : ?>
    50                                 (Lord: <?php echo $value['nakshatra_lord']; // phpcs:ignore WordPress.Security.EscapeOutput ?>) :
     50                                (Lord: <?php echo $value['nakshatra_lord']; // phpcs:ignore WordPress.Security.EscapeOutput ?>)
    5151                            <?php endif; ?>
    52                             <?php echo $value['start']->format( 'h:i A' ) . ' - ' . $value['end']->format( 'h:i A' ); // phpcs:ignore WordPress.Security.EscapeOutput ?></span>
     52                            : <?php echo $value['start']->format( 'h:i A' ) . ' - ' . $value['end']->format( 'h:i A' ); // phpcs:ignore WordPress.Security.EscapeOutput ?></span>
    5353                    <?php endforeach; ?>
    5454
  • astrology/trunk/assets/dist/js/main.js

    r2513947 r2612549  
    2727/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
    2828
    29 eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"Main\": function() { return /* binding */ Main; }\n/* harmony export */ });\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Class Main.\n *\n * @since 1.0.0\n */\nvar Main = /*#__PURE__*/function () {\n  /**\n   * Main constructor.\n   *\n   * @since 1.0.0\n   */\n  function Main() {\n    _classCallCheck(this, Main);\n\n    var inputs = document.querySelectorAll('.prokerala-location-input');\n    this.register(inputs);\n  }\n\n  _createClass(Main, [{\n    key: \"register\",\n    value: function register(inputs) {\n      _toConsumableArray(inputs).map(function (input) {\n        var inputPrefix = input.dataset.location_input_prefix ? input.dataset.location_input_prefix : '';\n        new LocationSearch(input, function (data) {\n          var hiddenDiv = document.getElementById('form-hidden-fields');\n          var coordinates = document.createElement('input');\n          coordinates.name = inputPrefix + 'coordinates';\n          coordinates.type = 'hidden';\n          coordinates.value = \"\".concat(data.latitude, \",\").concat(data.longitude);\n          var timezone = document.createElement('input');\n          timezone.name = inputPrefix + 'timezone';\n          timezone.type = 'hidden';\n          timezone.value = data.timezone;\n          hiddenDiv.appendChild(coordinates);\n          hiddenDiv.appendChild(timezone);\n        }, {\n          clientId: CLIENT_ID,\n          persistKey: inputPrefix\n        });\n      });\n    }\n  }]);\n\n  return Main;\n}();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hc3NldHMvc3JjL2pzL2Zyb250L21haW4vbWFpbi5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL2FzdHJvbG9neS8uL2Fzc2V0cy9zcmMvanMvZnJvbnQvbWFpbi9tYWluLmpzP2Q3MDAiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KGFycikgeyByZXR1cm4gX2FycmF5V2l0aG91dEhvbGVzKGFycikgfHwgX2l0ZXJhYmxlVG9BcnJheShhcnIpIHx8IF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShhcnIpIHx8IF9ub25JdGVyYWJsZVNwcmVhZCgpOyB9XG5cbmZ1bmN0aW9uIF9ub25JdGVyYWJsZVNwcmVhZCgpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7IH1cblxuZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikgeyBpZiAoIW8pIHJldHVybjsgaWYgKHR5cGVvZiBvID09PSBcInN0cmluZ1wiKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTsgdmFyIG4gPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykuc2xpY2UoOCwgLTEpOyBpZiAobiA9PT0gXCJPYmplY3RcIiAmJiBvLmNvbnN0cnVjdG9yKSBuID0gby5jb25zdHJ1Y3Rvci5uYW1lOyBpZiAobiA9PT0gXCJNYXBcIiB8fCBuID09PSBcIlNldFwiKSByZXR1cm4gQXJyYXkuZnJvbShvKTsgaWYgKG4gPT09IFwiQXJndW1lbnRzXCIgfHwgL14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pOyB9XG5cbmZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkoaXRlcikgeyBpZiAodHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGl0ZXIpKSByZXR1cm4gQXJyYXkuZnJvbShpdGVyKTsgfVxuXG5mdW5jdGlvbiBfYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB7IGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShhcnIpOyB9XG5cbmZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KGFyciwgbGVuKSB7IGlmIChsZW4gPT0gbnVsbCB8fCBsZW4gPiBhcnIubGVuZ3RoKSBsZW4gPSBhcnIubGVuZ3RoOyBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIHsgYXJyMltpXSA9IGFycltpXTsgfSByZXR1cm4gYXJyMjsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbi8qKlxuICogQ2xhc3MgTWFpbi5cbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuZXhwb3J0IHZhciBNYWluID0gLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHtcbiAgLyoqXG4gICAqIE1haW4gY29uc3RydWN0b3IuXG4gICAqXG4gICAqIEBzaW5jZSAxLjAuMFxuICAgKi9cbiAgZnVuY3Rpb24gTWFpbigpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTWFpbik7XG5cbiAgICB2YXIgaW5wdXRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnByb2tlcmFsYS1sb2NhdGlvbi1pbnB1dCcpO1xuICAgIHRoaXMucmVnaXN0ZXIoaW5wdXRzKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhNYWluLCBbe1xuICAgIGtleTogXCJyZWdpc3RlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZWdpc3RlcihpbnB1dHMpIHtcbiAgICAgIF90b0NvbnN1bWFibGVBcnJheShpbnB1dHMpLm1hcChmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgdmFyIGlucHV0UHJlZml4ID0gaW5wdXQuZGF0YXNldC5sb2NhdGlvbl9pbnB1dF9wcmVmaXggPyBpbnB1dC5kYXRhc2V0LmxvY2F0aW9uX2lucHV0X3ByZWZpeCA6ICcnO1xuICAgICAgICBuZXcgTG9jYXRpb25TZWFyY2goaW5wdXQsIGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgICAgdmFyIGhpZGRlbkRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3JtLWhpZGRlbi1maWVsZHMnKTtcbiAgICAgICAgICB2YXIgY29vcmRpbmF0ZXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgICAgIGNvb3JkaW5hdGVzLm5hbWUgPSBpbnB1dFByZWZpeCArICdjb29yZGluYXRlcyc7XG4gICAgICAgICAgY29vcmRpbmF0ZXMudHlwZSA9ICdoaWRkZW4nO1xuICAgICAgICAgIGNvb3JkaW5hdGVzLnZhbHVlID0gXCJcIi5jb25jYXQoZGF0YS5sYXRpdHVkZSwgXCIsXCIpLmNvbmNhdChkYXRhLmxvbmdpdHVkZSk7XG4gICAgICAgICAgdmFyIHRpbWV6b25lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgICAgICB0aW1lem9uZS5uYW1lID0gaW5wdXRQcmVmaXggKyAndGltZXpvbmUnO1xuICAgICAgICAgIHRpbWV6b25lLnR5cGUgPSAnaGlkZGVuJztcbiAgICAgICAgICB0aW1lem9uZS52YWx1ZSA9IGRhdGEudGltZXpvbmU7XG4gICAgICAgICAgaGlkZGVuRGl2LmFwcGVuZENoaWxkKGNvb3JkaW5hdGVzKTtcbiAgICAgICAgICBoaWRkZW5EaXYuYXBwZW5kQ2hpbGQodGltZXpvbmUpO1xuICAgICAgICB9LCB7XG4gICAgICAgICAgY2xpZW50SWQ6IENMSUVOVF9JRCxcbiAgICAgICAgICBwZXJzaXN0S2V5OiBpbnB1dFByZWZpeFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBNYWluO1xufSgpOyJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./assets/src/js/front/main/main.js\n");
     29eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"Main\": function() { return /* binding */ Main; }\n/* harmony export */ });\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Class Main.\n *\n * @since 1.0.0\n */\nvar Main = /*#__PURE__*/function () {\n  /**\n   * Main constructor.\n   *\n   * @since 1.0.0\n   */\n  function Main() {\n    _classCallCheck(this, Main);\n\n    var inputs = document.querySelectorAll('.prokerala-location-input');\n    this.register(inputs);\n  }\n\n  _createClass(Main, [{\n    key: \"register\",\n    value: function register(inputs) {\n      _toConsumableArray(inputs).map(function (input) {\n        var inputPrefix = input.dataset.location_input_prefix ? input.dataset.location_input_prefix + '_' : '';\n        new LocationSearch(input, function (data) {\n          var hiddenDiv = document.getElementById('form-hidden-fields');\n          var coordinates = document.createElement('input');\n          coordinates.name = inputPrefix + 'coordinates';\n          coordinates.type = 'hidden';\n          coordinates.value = \"\".concat(data.latitude, \",\").concat(data.longitude);\n          var timezone = document.createElement('input');\n          timezone.name = inputPrefix + 'timezone';\n          timezone.type = 'hidden';\n          timezone.value = data.timezone;\n          hiddenDiv.appendChild(coordinates);\n          hiddenDiv.appendChild(timezone);\n        }, {\n          clientId: CLIENT_ID,\n          persistKey: \"\".concat(inputPrefix, \"loc\")\n        });\n      });\n    }\n  }]);\n\n  return Main;\n}();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hc3NldHMvc3JjL2pzL2Zyb250L21haW4vbWFpbi5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL2FzdHJvbG9neS8uL2Fzc2V0cy9zcmMvanMvZnJvbnQvbWFpbi9tYWluLmpzP2Q3MDAiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KGFycikgeyByZXR1cm4gX2FycmF5V2l0aG91dEhvbGVzKGFycikgfHwgX2l0ZXJhYmxlVG9BcnJheShhcnIpIHx8IF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShhcnIpIHx8IF9ub25JdGVyYWJsZVNwcmVhZCgpOyB9XG5cbmZ1bmN0aW9uIF9ub25JdGVyYWJsZVNwcmVhZCgpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7IH1cblxuZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikgeyBpZiAoIW8pIHJldHVybjsgaWYgKHR5cGVvZiBvID09PSBcInN0cmluZ1wiKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTsgdmFyIG4gPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykuc2xpY2UoOCwgLTEpOyBpZiAobiA9PT0gXCJPYmplY3RcIiAmJiBvLmNvbnN0cnVjdG9yKSBuID0gby5jb25zdHJ1Y3Rvci5uYW1lOyBpZiAobiA9PT0gXCJNYXBcIiB8fCBuID09PSBcIlNldFwiKSByZXR1cm4gQXJyYXkuZnJvbShvKTsgaWYgKG4gPT09IFwiQXJndW1lbnRzXCIgfHwgL14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pOyB9XG5cbmZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkoaXRlcikgeyBpZiAodHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGl0ZXIpKSByZXR1cm4gQXJyYXkuZnJvbShpdGVyKTsgfVxuXG5mdW5jdGlvbiBfYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB7IGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShhcnIpOyB9XG5cbmZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KGFyciwgbGVuKSB7IGlmIChsZW4gPT0gbnVsbCB8fCBsZW4gPiBhcnIubGVuZ3RoKSBsZW4gPSBhcnIubGVuZ3RoOyBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIHsgYXJyMltpXSA9IGFycltpXTsgfSByZXR1cm4gYXJyMjsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbi8qKlxuICogQ2xhc3MgTWFpbi5cbiAqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuZXhwb3J0IHZhciBNYWluID0gLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHtcbiAgLyoqXG4gICAqIE1haW4gY29uc3RydWN0b3IuXG4gICAqXG4gICAqIEBzaW5jZSAxLjAuMFxuICAgKi9cbiAgZnVuY3Rpb24gTWFpbigpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTWFpbik7XG5cbiAgICB2YXIgaW5wdXRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnByb2tlcmFsYS1sb2NhdGlvbi1pbnB1dCcpO1xuICAgIHRoaXMucmVnaXN0ZXIoaW5wdXRzKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhNYWluLCBbe1xuICAgIGtleTogXCJyZWdpc3RlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZWdpc3RlcihpbnB1dHMpIHtcbiAgICAgIF90b0NvbnN1bWFibGVBcnJheShpbnB1dHMpLm1hcChmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgdmFyIGlucHV0UHJlZml4ID0gaW5wdXQuZGF0YXNldC5sb2NhdGlvbl9pbnB1dF9wcmVmaXggPyBpbnB1dC5kYXRhc2V0LmxvY2F0aW9uX2lucHV0X3ByZWZpeCArICdfJyA6ICcnO1xuICAgICAgICBuZXcgTG9jYXRpb25TZWFyY2goaW5wdXQsIGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgICAgdmFyIGhpZGRlbkRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3JtLWhpZGRlbi1maWVsZHMnKTtcbiAgICAgICAgICB2YXIgY29vcmRpbmF0ZXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgICAgIGNvb3JkaW5hdGVzLm5hbWUgPSBpbnB1dFByZWZpeCArICdjb29yZGluYXRlcyc7XG4gICAgICAgICAgY29vcmRpbmF0ZXMudHlwZSA9ICdoaWRkZW4nO1xuICAgICAgICAgIGNvb3JkaW5hdGVzLnZhbHVlID0gXCJcIi5jb25jYXQoZGF0YS5sYXRpdHVkZSwgXCIsXCIpLmNvbmNhdChkYXRhLmxvbmdpdHVkZSk7XG4gICAgICAgICAgdmFyIHRpbWV6b25lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgICAgICB0aW1lem9uZS5uYW1lID0gaW5wdXRQcmVmaXggKyAndGltZXpvbmUnO1xuICAgICAgICAgIHRpbWV6b25lLnR5cGUgPSAnaGlkZGVuJztcbiAgICAgICAgICB0aW1lem9uZS52YWx1ZSA9IGRhdGEudGltZXpvbmU7XG4gICAgICAgICAgaGlkZGVuRGl2LmFwcGVuZENoaWxkKGNvb3JkaW5hdGVzKTtcbiAgICAgICAgICBoaWRkZW5EaXYuYXBwZW5kQ2hpbGQodGltZXpvbmUpO1xuICAgICAgICB9LCB7XG4gICAgICAgICAgY2xpZW50SWQ6IENMSUVOVF9JRCxcbiAgICAgICAgICBwZXJzaXN0S2V5OiBcIlwiLmNvbmNhdChpbnB1dFByZWZpeCwgXCJsb2NcIilcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gTWFpbjtcbn0oKTsiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./assets/src/js/front/main/main.js\n");
    3030
    3131/***/ })
  • astrology/trunk/dependencies/vendor/autoload.php

    r2516408 r2612549  
    55require_once __DIR__ . '/composer/autoload_real.php';
    66
    7 return ComposerAutoloaderInitb7b83f594773eb9c7444f58dd4447ff2::getLoader();
     7return ComposerAutoloaderInit16dece52f7a59be557a72d427533fae0::getLoader();
  • astrology/trunk/dependencies/vendor/composer/autoload_classmap.php

    r2513947 r2612549  
    154154    'Prokerala\\Astrology\\Vendor\\Http\\Promise\\Promise' => $vendorDir . '/php-http/promise/src/Promise.php',
    155155    'Prokerala\\Astrology\\Vendor\\Http\\Promise\\RejectedPromise' => $vendorDir . '/php-http/promise/src/RejectedPromise.php',
     156    'Prokerala\\Astrology\\Vendor\\JsonException' => $vendorDir . '/symfony/polyfill-php73/Resources/stubs/JsonException.php',
    156157    'Prokerala\\Astrology\\Vendor\\Slim\\Psr7\\Cookies' => $vendorDir . '/slim/psr7/src/Cookies.php',
    157158    'Prokerala\\Astrology\\Vendor\\Slim\\Psr7\\Environment' => $vendorDir . '/slim/psr7/src/Environment.php',
     
    244245    'Prokerala\\Astrology\\Vendor\\Symfony\\Component\\Cache\\Traits\\PhpFilesTrait' => $vendorDir . '/symfony/cache/Traits/PhpFilesTrait.php',
    245246    'Prokerala\\Astrology\\Vendor\\Symfony\\Component\\Cache\\Traits\\ProxyTrait' => $vendorDir . '/symfony/cache/Traits/ProxyTrait.php',
     247    'Prokerala\\Astrology\\Vendor\\Symfony\\Component\\Cache\\Traits\\RedisClusterNodeProxy' => $vendorDir . '/symfony/cache/Traits/RedisClusterNodeProxy.php',
    246248    'Prokerala\\Astrology\\Vendor\\Symfony\\Component\\Cache\\Traits\\RedisClusterProxy' => $vendorDir . '/symfony/cache/Traits/RedisClusterProxy.php',
    247249    'Prokerala\\Astrology\\Vendor\\Symfony\\Component\\Cache\\Traits\\RedisProxy' => $vendorDir . '/symfony/cache/Traits/RedisProxy.php',
     
    280282    'Prokerala\\Astrology\\Vendor\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberTrait.php',
    281283    'Prokerala\\Astrology\\Vendor\\Symfony\\Contracts\\Service\\Test\\ServiceLocatorTest' => $vendorDir . '/symfony/service-contracts/Test/ServiceLocatorTest.php',
     284    'Prokerala\\Astrology\\Vendor\\Symfony\\Polyfill\\Php73\\Php73' => $vendorDir . '/symfony/polyfill-php73/Php73.php',
    282285    'Prokerala\\Astrology\\Vendor\\Symfony\\Polyfill\\Php80\\Php80' => $vendorDir . '/symfony/polyfill-php80/Php80.php',
    283286    'Prokerala\\Astrology\\Vendor\\UnhandledMatchError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php',
  • astrology/trunk/dependencies/vendor/composer/autoload_files.php

    r2513947 r2612549  
    77
    88return array(
     9    'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
     10    '0d59ee240a4cd96ddbb4ff164fccea4d' => $vendorDir . '/symfony/polyfill-php73/bootstrap.php',
    911    '7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php',
    10     'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
    1112);
  • astrology/trunk/dependencies/vendor/composer/autoload_real.php

    r2516408 r2612549  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInitb7b83f594773eb9c7444f58dd4447ff2
     5class ComposerAutoloaderInit16dece52f7a59be557a72d427533fae0
    66{
    77    private static $loader;
     
    2323        }
    2424
    25         spl_autoload_register(array('ComposerAutoloaderInitb7b83f594773eb9c7444f58dd4447ff2', 'loadClassLoader'), true, true);
     25        spl_autoload_register(array('ComposerAutoloaderInit16dece52f7a59be557a72d427533fae0', 'loadClassLoader'), true, true);
    2626        self::$loader = $loader = new \Prokerala_WP_Astrology_Composer\Autoload\ClassLoader();
    27         spl_autoload_unregister(array('ComposerAutoloaderInitb7b83f594773eb9c7444f58dd4447ff2', 'loadClassLoader'));
     27        spl_autoload_unregister(array('ComposerAutoloaderInit16dece52f7a59be557a72d427533fae0', 'loadClassLoader'));
    2828
    2929        $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
     
    3131            require_once __DIR__ . '/autoload_static.php';
    3232
    33             call_user_func(\Prokerala_WP_Astrology_Composer\Autoload\ComposerStaticInitb7b83f594773eb9c7444f58dd4447ff2::getInitializer($loader));
     33            call_user_func(\Prokerala_WP_Astrology_Composer\Autoload\ComposerStaticInit16dece52f7a59be557a72d427533fae0::getInitializer($loader));
    3434        } else {
    3535            $classMap = require __DIR__ . '/autoload_classmap.php';
  • astrology/trunk/dependencies/vendor/composer/autoload_static.php

    r2516408 r2612549  
    55namespace Prokerala_WP_Astrology_Composer\Autoload;
    66
    7 class ComposerStaticInitb7b83f594773eb9c7444f58dd4447ff2
     7class ComposerStaticInit16dece52f7a59be557a72d427533fae0
    88{
    99    public static $classMap = array (
     
    155155        'Prokerala\\Astrology\\Vendor\\Http\\Promise\\Promise' => __DIR__ . '/..' . '/php-http/promise/src/Promise.php',
    156156        'Prokerala\\Astrology\\Vendor\\Http\\Promise\\RejectedPromise' => __DIR__ . '/..' . '/php-http/promise/src/RejectedPromise.php',
     157        'Prokerala\\Astrology\\Vendor\\JsonException' => __DIR__ . '/..' . '/symfony/polyfill-php73/Resources/stubs/JsonException.php',
    157158        'Prokerala\\Astrology\\Vendor\\Slim\\Psr7\\Cookies' => __DIR__ . '/..' . '/slim/psr7/src/Cookies.php',
    158159        'Prokerala\\Astrology\\Vendor\\Slim\\Psr7\\Environment' => __DIR__ . '/..' . '/slim/psr7/src/Environment.php',
     
    245246        'Prokerala\\Astrology\\Vendor\\Symfony\\Component\\Cache\\Traits\\PhpFilesTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/PhpFilesTrait.php',
    246247        'Prokerala\\Astrology\\Vendor\\Symfony\\Component\\Cache\\Traits\\ProxyTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/ProxyTrait.php',
     248        'Prokerala\\Astrology\\Vendor\\Symfony\\Component\\Cache\\Traits\\RedisClusterNodeProxy' => __DIR__ . '/..' . '/symfony/cache/Traits/RedisClusterNodeProxy.php',
    247249        'Prokerala\\Astrology\\Vendor\\Symfony\\Component\\Cache\\Traits\\RedisClusterProxy' => __DIR__ . '/..' . '/symfony/cache/Traits/RedisClusterProxy.php',
    248250        'Prokerala\\Astrology\\Vendor\\Symfony\\Component\\Cache\\Traits\\RedisProxy' => __DIR__ . '/..' . '/symfony/cache/Traits/RedisProxy.php',
     
    281283        'Prokerala\\Astrology\\Vendor\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberTrait.php',
    282284        'Prokerala\\Astrology\\Vendor\\Symfony\\Contracts\\Service\\Test\\ServiceLocatorTest' => __DIR__ . '/..' . '/symfony/service-contracts/Test/ServiceLocatorTest.php',
     285        'Prokerala\\Astrology\\Vendor\\Symfony\\Polyfill\\Php73\\Php73' => __DIR__ . '/..' . '/symfony/polyfill-php73/Php73.php',
    283286        'Prokerala\\Astrology\\Vendor\\Symfony\\Polyfill\\Php80\\Php80' => __DIR__ . '/..' . '/symfony/polyfill-php80/Php80.php',
    284287        'Prokerala\\Astrology\\Vendor\\UnhandledMatchError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php',
     
    342345    {
    343346        return \Closure::bind(function () use ($loader) {
    344             $loader->classMap = ComposerStaticInitb7b83f594773eb9c7444f58dd4447ff2::$classMap;
     347            $loader->classMap = ComposerStaticInit16dece52f7a59be557a72d427533fae0::$classMap;
    345348
    346349        }, null, ClassLoader::class);
  • astrology/trunk/dependencies/vendor/prokerala/astrology-sdk/src/Api/Astrology/Transformer.php

    r2513947 r2612549  
    110110            }
    111111            $dataType = $this->getType($paramValue);
    112             $paramClass = $param->getClass();
     112            $paramClass = $param->getType() && !$param->getType()->isBuiltin() ? new \ReflectionClass($param->getType()->getName()) : null;
    113113            if ($paramClass) {
    114114                $paramType = [$paramClass->getName()];
  • astrology/trunk/dependencies/vendor/psr/container/src/ContainerExceptionInterface.php

    r2513947 r2612549  
    11<?php
    22
    3 /**
    4  * @license http://www.opensource.org/licenses/mit-license.php MIT (see the LICENSE file)
    5  */
    63namespace Psr\Container;
    74
  • astrology/trunk/dependencies/vendor/psr/container/src/ContainerInterface.php

    r2513947 r2612549  
    11<?php
    22
    3 /**
    4  * @license http://www.opensource.org/licenses/mit-license.php MIT (see the LICENSE file)
    5  */
     3declare (strict_types=1);
    64namespace Psr\Container;
    75
     
    2119     * @return mixed Entry.
    2220     */
    23     public function get($id);
     21    public function get(string $id);
    2422    /**
    2523     * Returns true if the container can return an entry for the given identifier.
     
    3331     * @return bool
    3432     */
    35     public function has($id);
     33    public function has(string $id);
    3634}
  • astrology/trunk/dependencies/vendor/psr/container/src/NotFoundExceptionInterface.php

    r2513947 r2612549  
    11<?php
    22
    3 /**
    4  * @license http://www.opensource.org/licenses/mit-license.php MIT (see the LICENSE file)
    5  */
    63namespace Psr\Container;
    74
  • astrology/trunk/dependencies/vendor/psr/log/Psr/Log/AbstractLogger.php

    r2513947 r2612549  
    1515     * System is unusable.
    1616     *
    17      * @param string $message
    18      * @param array $context
     17     * @param string  $message
     18     * @param mixed[] $context
    1919     *
    2020     * @return void
     
    3030     * trigger the SMS alerts and wake you up.
    3131     *
    32      * @param string $message
    33      * @param array $context
     32     * @param string  $message
     33     * @param mixed[] $context
    3434     *
    3535     * @return void
     
    4444     * Example: Application component unavailable, unexpected exception.
    4545     *
    46      * @param string $message
    47      * @param array $context
     46     * @param string  $message
     47     * @param mixed[] $context
    4848     *
    4949     * @return void
     
    5757     * be logged and monitored.
    5858     *
    59      * @param string $message
    60      * @param array $context
     59     * @param string  $message
     60     * @param mixed[] $context
    6161     *
    6262     * @return void
     
    7272     * that are not necessarily wrong.
    7373     *
    74      * @param string $message
    75      * @param array $context
     74     * @param string  $message
     75     * @param mixed[] $context
    7676     *
    7777     * @return void
     
    8484     * Normal but significant events.
    8585     *
    86      * @param string $message
    87      * @param array $context
     86     * @param string  $message
     87     * @param mixed[] $context
    8888     *
    8989     * @return void
     
    9898     * Example: User logs in, SQL logs.
    9999     *
    100      * @param string $message
    101      * @param array $context
     100     * @param string  $message
     101     * @param mixed[] $context
    102102     *
    103103     * @return void
     
    110110     * Detailed debug information.
    111111     *
    112      * @param string $message
    113      * @param array $context
     112     * @param string  $message
     113     * @param mixed[] $context
    114114     *
    115115     * @return void
  • astrology/trunk/dependencies/vendor/psr/log/Psr/Log/LoggerAwareTrait.php

    r2513947 r2612549  
    1111     * The logger instance.
    1212     *
    13      * @var LoggerInterface
     13     * @var LoggerInterface|null
    1414     */
    1515    protected $logger;
  • astrology/trunk/dependencies/vendor/slim/psr7/src/Factory/StreamFactory.php

    r2513947 r2612549  
    2121use function rewind;
    2222use function set_error_handler;
    23 use function sprintf;
    2423class StreamFactory implements \Psr\Http\Message\StreamFactoryInterface
    2524{
     
    4443    public function createStreamFromFile(string $filename, string $mode = 'r', \Psr\Http\Message\StreamInterface $cache = null) : \Psr\Http\Message\StreamInterface
    4544    {
    46         // When fopen fails, PHP 7 normally raises a warning. Add an error
    47         // handler to check for errors and throw an exception instead.
    48         // On PHP 8, exceptions are thrown.
    49         $exc = null;
    50         // Would not be initialized if fopen throws on PHP >= 8.0
    51         $resource = null;
    52         $errorHandler = function (string $errorMessage) use($filename, $mode, &$exc) {
    53             $exc = new \RuntimeException(\sprintf('Unable to open %s using mode %s: %s', $filename, $mode, $errorMessage));
    54         };
    55         \set_error_handler(function (int $errno, string $errstr) use($errorHandler) {
    56             $errorHandler($errstr);
     45        \set_error_handler(static function (int $errno, string $errstr) use($filename, $mode) : void {
     46            throw new \RuntimeException("Unable to open {$filename} using mode {$mode}: {$errstr}", $errno);
    5747        });
    5848        try {
    5949            $resource = \fopen($filename, $mode);
    60             // @codeCoverageIgnoreStart
    61             // (Can only be executed in PHP >= 8.0)
    6250        } catch (\ValueError $exception) {
    63             $errorHandler($exception->getMessage());
    64         }
    65         // @codeCoverageIgnoreEnd
    66         \restore_error_handler();
    67         if ($exc) {
    68             /** @var RuntimeException $exc */
    69             throw $exc;
     51            throw new \RuntimeException("Unable to open {$filename} using mode {$mode}: " . $exception->getMessage());
     52        } finally {
     53            \restore_error_handler();
    7054        }
    7155        if (!\is_resource($resource)) {
  • astrology/trunk/dependencies/vendor/slim/psr7/src/Headers.php

    r2513947 r2612549  
    150150    protected function parseAuthorizationHeader(array $headers) : array
    151151    {
    152         if (!isset($headers['Authorization'])) {
     152        $hasAuthorizationHeader = \false;
     153        foreach ($headers as $name => $value) {
     154            if (\strtolower($name) === 'authorization') {
     155                $hasAuthorizationHeader = \true;
     156                break;
     157            }
     158        }
     159        if (!$hasAuthorizationHeader) {
    153160            if (isset($this->globals['REDIRECT_HTTP_AUTHORIZATION'])) {
    154161                $headers['Authorization'] = $this->globals['REDIRECT_HTTP_AUTHORIZATION'];
     
    242249            throw new \InvalidArgumentException('Header values must be a string or an array of strings, empty array given.');
    243250        }
    244         $pattern = "@^[ \t!-~€-ÿ]*\$@";
     251        $pattern = "@^[ \t!-~\x80-\xff]*\$@";
    245252        foreach ($items as $item) {
    246253            $hasInvalidType = !\is_numeric($item) && !\is_string($item);
  • astrology/trunk/dependencies/vendor/slim/psr7/src/Uri.php

    r2513947 r2612549  
    2626class Uri implements \Psr\Http\Message\UriInterface
    2727{
     28    public const SUPPORTED_SCHEMES = ['' => null, 'http' => 80, 'https' => 443];
    2829    /**
    2930     * Uri scheme (without "://" suffix)
     
    110111     *
    111112     * @throws InvalidArgumentException If the Uri scheme is not a string.
    112      * @throws InvalidArgumentException If Uri scheme is not "", "https", or "http".
     113     * @throws InvalidArgumentException If Uri scheme is not exists in SUPPORTED_SCHEMES
    113114     */
    114115    protected function filterScheme($scheme) : string
     
    117118            throw new \InvalidArgumentException('Uri scheme must be a string.');
    118119        }
    119         static $valid = ['' => \true, 'https' => \true, 'http' => \true];
    120120        $scheme = \str_replace('://', '', \strtolower($scheme));
    121         if (!isset($valid[$scheme])) {
    122             throw new \InvalidArgumentException('Uri scheme must be one of: "", "https", "http"');
     121        if (!\key_exists($scheme, self::SUPPORTED_SCHEMES)) {
     122            throw new \InvalidArgumentException('Uri scheme must be one of: "' . \implode('", "', \array_keys(static::SUPPORTED_SCHEMES)) . '"');
    123123        }
    124124        return $scheme;
     
    243243    protected function hasStandardPort() : bool
    244244    {
    245         return $this->scheme === 'http' && $this->port === 80 || $this->scheme === 'https' && $this->port === 443;
     245        return static::SUPPORTED_SCHEMES[$this->scheme] === $this->port;
    246246    }
    247247    /**
  • astrology/trunk/dependencies/vendor/symfony/cache/Adapter/AbstractAdapter.php

    r2513947 r2612549  
    2424abstract class AbstractAdapter implements \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\AdapterInterface, \Prokerala\Astrology\Vendor\Symfony\Contracts\Cache\CacheInterface, \Psr\Log\LoggerAwareInterface, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\ResettableInterface
    2525{
     26    use AbstractAdapterTrait;
     27    use ContractsTrait;
    2628    /**
    2729     * @internal
    2830     */
    2931    protected const NS_SEPARATOR = ':';
    30     use AbstractAdapterTrait;
    31     use ContractsTrait;
    3232    private static $apcuSupported;
    3333    private static $phpFilesSupported;
     
    4646            // For compactness, these values are packed in the key of an array using
    4747            // magic numbers in the form 9D-..-..-..-..-00-..-..-..-5F
    48             if (\is_array($v) && 1 === \count($v) && 10 === \strlen($k = (string) \key($v)) && "" === $k[0] && "\0" === $k[5] && "_" === $k[9]) {
     48            if (\is_array($v) && 1 === \count($v) && 10 === \strlen($k = (string) \array_key_first($v)) && "\x9d" === $k[0] && "\x00" === $k[5] && "_" === $k[9]) {
    4949                $item->value = $v[$k];
    5050                $v = \unpack('Ve/Nc', \substr($k, 1, -1));
     
    7373                }
    7474                // For compactness, expiry and creation duration are packed in the key of an array, using magic numbers as separators
    75                 $byLifetime[$ttl][$getId($key)] = $metadata ? ["" . \pack('VN', (int) (0.1 + $metadata[self::METADATA_EXPIRY] - self::METADATA_EXPIRY_OFFSET), $metadata[self::METADATA_CTIME]) . "_" => $item->value] : $item->value;
     75                $byLifetime[$ttl][$getId($key)] = $metadata ? ["\x9d" . \pack('VN', (int) (0.1 + $metadata[self::METADATA_EXPIRY] - self::METADATA_EXPIRY_OFFSET), $metadata[self::METADATA_CTIME]) . "_" => $item->value] : $item->value;
    7676            }
    7777            return $byLifetime;
     
    102102            return $opcache;
    103103        }
    104         $apcu = new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\ApcuAdapter($namespace, (int) $defaultLifetime / 5, $version);
     104        $apcu = new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\ApcuAdapter($namespace, \intdiv($defaultLifetime, 5), $version);
    105105        if (null !== $logger) {
    106106            $apcu->setLogger($logger);
     
    113113            throw new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\InvalidArgumentException(\sprintf('The "%s()" method expect argument #1 to be string, "%s" given.', __METHOD__, \gettype($dsn)));
    114114        }
    115         if (0 === \strpos($dsn, 'redis:') || 0 === \strpos($dsn, 'rediss:')) {
     115        if (\str_starts_with($dsn, 'redis:') || \str_starts_with($dsn, 'rediss:')) {
    116116            return \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\RedisAdapter::createConnection($dsn, $options);
    117117        }
    118         if (0 === \strpos($dsn, 'memcached:')) {
     118        if (\str_starts_with($dsn, 'memcached:')) {
    119119            return \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\MemcachedAdapter::createConnection($dsn, $options);
    120120        }
  • astrology/trunk/dependencies/vendor/symfony/cache/Adapter/AbstractTagAwareAdapter.php

    r2513947 r2612549  
    3333    use AbstractAdapterTrait;
    3434    use ContractsTrait;
    35     private const TAGS_PREFIX = "\0tags\0";
     35    private const TAGS_PREFIX = "\x00tags\x00";
    3636    protected function __construct(string $namespace = '', int $defaultLifetime = 0)
    3737    {
     
    9797                }
    9898                $byLifetime[$ttl][$getId($key)] = $value;
     99                $item->metadata = $item->newMetadata;
    99100            }
    100101            return $byLifetime;
  • astrology/trunk/dependencies/vendor/symfony/cache/Adapter/ArrayAdapter.php

    r2513947 r2612549  
    102102        }
    103103        $item = (array) $item;
    104         $key = $item["\0*\0key"];
    105         $value = $item["\0*\0value"];
    106         $expiry = $item["\0*\0expiry"];
     104        $key = $item["\x00*\x00key"];
     105        $value = $item["\x00*\x00value"];
     106        $expiry = $item["\x00*\x00expiry"];
    107107        if (0 === $expiry) {
    108108            $expiry = \PHP_INT_MAX;
     
    119119        }
    120120        $this->values[$key] = $value;
    121         $this->expiries[$key] = null !== $expiry ? $expiry : \PHP_INT_MAX;
     121        $this->expiries[$key] = $expiry ?? \PHP_INT_MAX;
    122122        return \true;
    123123    }
  • astrology/trunk/dependencies/vendor/symfony/cache/Adapter/FilesystemTagAwareAdapter.php

    r2513947 r2612549  
    1919 *
    2020 * @author Nicolas Grekas <p@tchwork.com>
    21  * @author André Rømcke <andre.romcke+symfony@gmail.com>
     21 * @author André Rømcke <andre.romcke+symfony@gmail.com>
    2222 */
    2323class FilesystemTagAwareAdapter extends \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\AbstractTagAwareAdapter implements \Prokerala\Astrology\Vendor\Symfony\Component\Cache\PruneableInterface
     
    129129            $meta = \explode("\n", \fread($h, 4096), 3)[2] ?? '';
    130130            // detect the compact format used in marshall() using magic numbers in the form 9D-..-..-..-..-00-..-..-..-5F
    131             if (13 < \strlen($meta) && "" === $meta[0] && "\0" === $meta[5] && "_" === $meta[9]) {
    132                 $meta[9] = "\0";
     131            if (13 < \strlen($meta) && "\x9d" === $meta[0] && "\x00" === $meta[5] && "_" === $meta[9]) {
     132                $meta[9] = "\x00";
    133133                $tagLen = \unpack('Nlen', $meta, 9)['len'];
    134134                $meta = \substr($meta, 13, $tagLen);
  • astrology/trunk/dependencies/vendor/symfony/cache/Adapter/NullAdapter.php

    r2513947 r2612549  
    9797    public function save(\Psr\Cache\CacheItemInterface $item)
    9898    {
    99         return \false;
     99        return \true;
    100100    }
    101101    /**
     
    106106    public function saveDeferred(\Psr\Cache\CacheItemInterface $item)
    107107    {
    108         return \false;
     108        return \true;
    109109    }
    110110    /**
     
    115115    public function commit()
    116116    {
    117         return \false;
     117        return \true;
    118118    }
    119119    /**
  • astrology/trunk/dependencies/vendor/symfony/cache/Adapter/ProxyAdapter.php

    r2513947 r2612549  
    5252            // For compactness, these values are packed in the key of an array using
    5353            // magic numbers in the form 9D-..-..-..-..-00-..-..-..-5F
    54             if (\is_array($v) && 1 === \count($v) && 10 === \strlen($k = (string) \key($v)) && "" === $k[0] && "\0" === $k[5] && "_" === $k[9]) {
     54            if (\is_array($v) && 1 === \count($v) && 10 === \strlen($k = (string) \array_key_first($v)) && "\x9d" === $k[0] && "\x00" === $k[5] && "_" === $k[9]) {
    5555                $item->value = $v[$k];
    5656                $v = \unpack('Ve/Nc', \substr($k, 1, -1));
     
    6969            static function (\Psr\Cache\CacheItemInterface $innerItem, array $item) {
    7070                // Tags are stored separately, no need to account for them when considering this item's newly set metadata
    71                 if (isset(($metadata = $item["\0*\0newMetadata"])[\Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem::METADATA_TAGS])) {
     71                if (isset(($metadata = $item["\x00*\x00newMetadata"])[\Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem::METADATA_TAGS])) {
    7272                    unset($metadata[\Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem::METADATA_TAGS]);
    7373                }
    7474                if ($metadata) {
    7575                    // For compactness, expiry and creation duration are packed in the key of an array, using magic numbers as separators
    76                     $item["\0*\0value"] = ["" . \pack('VN', (int) (0.1 + $metadata[self::METADATA_EXPIRY] - self::METADATA_EXPIRY_OFFSET), $metadata[self::METADATA_CTIME]) . "_" => $item["\0*\0value"]];
     76                    $item["\x00*\x00value"] = ["\x9d" . \pack('VN', (int) (0.1 + $metadata[self::METADATA_EXPIRY] - self::METADATA_EXPIRY_OFFSET), $metadata[self::METADATA_CTIME]) . "_" => $item["\x00*\x00value"]];
    7777                }
    78                 $innerItem->set($item["\0*\0value"]);
    79                 $innerItem->expiresAt(null !== $item["\0*\0expiry"] ? \DateTime::createFromFormat('U.u', \sprintf('%.6F', 0 === $item["\0*\0expiry"] ? \PHP_INT_MAX : $item["\0*\0expiry"])) : null);
     78                $innerItem->set($item["\x00*\x00value"]);
     79                $innerItem->expiresAt(null !== $item["\x00*\x00expiry"] ? \DateTime::createFromFormat('U.u', \sprintf('%.6F', 0 === $item["\x00*\x00expiry"] ? \PHP_INT_MAX : $item["\x00*\x00expiry"])) : null);
    8080            },
    8181            null,
     
    199199        }
    200200        $item = (array) $item;
    201         if (null === $item["\0*\0expiry"] && 0 < $this->defaultLifetime) {
    202             $item["\0*\0expiry"] = \microtime(\true) + $this->defaultLifetime;
    203         }
    204         if ($item["\0*\0poolHash"] === $this->poolHash && $item["\0*\0innerItem"]) {
    205             $innerItem = $item["\0*\0innerItem"];
     201        if (null === $item["\x00*\x00expiry"] && 0 < $this->defaultLifetime) {
     202            $item["\x00*\x00expiry"] = \microtime(\true) + $this->defaultLifetime;
     203        }
     204        if ($item["\x00*\x00poolHash"] === $this->poolHash && $item["\x00*\x00innerItem"]) {
     205            $innerItem = $item["\x00*\x00innerItem"];
    206206        } elseif ($this->pool instanceof \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\AdapterInterface) {
    207207            // this is an optimization specific for AdapterInterface implementations
    208208            // so we can save a round-trip to the backend by just creating a new item
    209209            $f = $this->createCacheItem;
    210             $innerItem = $f($this->namespace . $item["\0*\0key"], null);
     210            $innerItem = $f($this->namespace . $item["\x00*\x00key"], null);
    211211        } else {
    212             $innerItem = $this->pool->getItem($this->namespace . $item["\0*\0key"]);
     212            $innerItem = $this->pool->getItem($this->namespace . $item["\x00*\x00key"]);
    213213        }
    214214        ($this->setInnerItem)($innerItem, $item);
  • astrology/trunk/dependencies/vendor/symfony/cache/Adapter/Psr16Adapter.php

    r2513947 r2612549  
    2222class Psr16Adapter extends \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\AbstractAdapter implements \Prokerala\Astrology\Vendor\Symfony\Component\Cache\PruneableInterface, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\ResettableInterface
    2323{
     24    use ProxyTrait;
    2425    /**
    2526     * @internal
    2627     */
    2728    protected const NS_SEPARATOR = '_';
    28     use ProxyTrait;
    2929    private $miss;
    3030    public function __construct(\Psr\SimpleCache\CacheInterface $pool, string $namespace = '', int $defaultLifetime = 0)
  • astrology/trunk/dependencies/vendor/symfony/cache/Adapter/RedisAdapter.php

    r2513947 r2612549  
    1212
    1313use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\MarshallerInterface;
     14use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisClusterProxy;
     15use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisProxy;
    1416use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisTrait;
    1517class RedisAdapter extends \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\AbstractAdapter
     
    1719    use RedisTrait;
    1820    /**
    19      * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface $redisClient     The redis client
    20      * @param string                                                   $namespace       The default namespace
    21      * @param int                                                      $defaultLifetime The default lifetime
     21     * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface|RedisProxy|RedisClusterProxy $redis           The redis client
     22     * @param string                                                                                $namespace       The default namespace
     23     * @param int                                                                                   $defaultLifetime The default lifetime
    2224     */
    23     public function __construct($redisClient, string $namespace = '', int $defaultLifetime = 0, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\MarshallerInterface $marshaller = null)
     25    public function __construct($redis, string $namespace = '', int $defaultLifetime = 0, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\MarshallerInterface $marshaller = null)
    2426    {
    25         $this->init($redisClient, $namespace, $defaultLifetime, $marshaller);
     27        $this->init($redis, $namespace, $defaultLifetime, $marshaller);
    2628    }
    2729}
  • astrology/trunk/dependencies/vendor/symfony/cache/Adapter/RedisTagAwareAdapter.php

    r2513947 r2612549  
    1313use Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\ClusterInterface;
    1414use Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\PredisCluster;
     15use Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\ReplicationInterface;
    1516use Prokerala\Astrology\Vendor\Predis\Response\Status;
     17use Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem;
    1618use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\InvalidArgumentException;
    1719use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\LogicException;
     
    1921use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\MarshallerInterface;
    2022use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\TagAwareMarshaller;
     23use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisClusterProxy;
     24use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisProxy;
    2125use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisTrait;
    2226/**
    23  * Stores tag id <> cache id relationship as a Redis Set, lookup on invalidation using RENAME+SMEMBERS.
     27 * Stores tag id <> cache id relationship as a Redis Set.
    2428 *
    2529 * Set (tag relation info) is stored without expiry (non-volatile), while cache always gets an expiry (volatile) even
     
    2731 * relationship survives eviction (cache cleanup when Redis runs out of memory).
    2832 *
    29  * Requirements:
    30  *  - Client: PHP Redis or Predis
    31  *            Note: Due to lack of RENAME support it is NOT recommended to use Cluster on Predis, instead use phpredis.
    32  *  - Server: Redis 2.8+
    33  *            Configured with any `volatile-*` eviction policy, OR `noeviction` if it will NEVER fill up memory
     33 * Redis server 2.8+ with any `volatile-*` eviction policy, OR `noeviction` if you're sure memory will NEVER fill up
    3434 *
    3535 * Design limitations:
     
    4747    use RedisTrait;
    4848    /**
    49      * Limits for how many keys are deleted in batch.
    50      */
    51     private const BULK_DELETE_LIMIT = 10000;
    52     /**
    5349     * On cache items without a lifetime set, we set it to 100 days. This is to make sure cache items are
    5450     * preferred to be evicted over tag Sets, if eviction policy is configured according to requirements.
     
    6056    private $redisEvictionPolicy;
    6157    /**
    62      * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface $redisClient     The redis client
    63      * @param string                                                   $namespace       The default namespace
    64      * @param int                                                      $defaultLifetime The default lifetime
    65      */
    66     public function __construct($redisClient, string $namespace = '', int $defaultLifetime = 0, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\MarshallerInterface $marshaller = null)
    67     {
    68         if ($redisClient instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface && $redisClient->getConnection() instanceof \Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\ClusterInterface && !$redisClient->getConnection() instanceof \Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\PredisCluster) {
    69             throw new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\InvalidArgumentException(\sprintf('Unsupported Predis cluster connection: only "%s" is, "%s" given.', \Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\PredisCluster::class, \get_class($redisClient->getConnection())));
    70         }
    71         if (\defined('Redis::OPT_COMPRESSION') && ($redisClient instanceof \Redis || $redisClient instanceof \RedisArray || $redisClient instanceof \RedisCluster)) {
    72             $compression = $redisClient->getOption(\Redis::OPT_COMPRESSION);
     58     * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface|RedisProxy|RedisClusterProxy $redis           The redis client
     59     * @param string                                                                                $namespace       The default namespace
     60     * @param int                                                                                   $defaultLifetime The default lifetime
     61     */
     62    public function __construct($redis, string $namespace = '', int $defaultLifetime = 0, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\MarshallerInterface $marshaller = null)
     63    {
     64        if ($redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface && $redis->getConnection() instanceof \Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\ClusterInterface && !$redis->getConnection() instanceof \Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\PredisCluster) {
     65            throw new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\InvalidArgumentException(\sprintf('Unsupported Predis cluster connection: only "%s" is, "%s" given.', \Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\PredisCluster::class, \get_class($redis->getConnection())));
     66        }
     67        if (\defined('Redis::OPT_COMPRESSION') && ($redis instanceof \Redis || $redis instanceof \RedisArray || $redis instanceof \RedisCluster)) {
     68            $compression = $redis->getOption(\Redis::OPT_COMPRESSION);
    7369            foreach (\is_array($compression) ? $compression : [$compression] as $c) {
    7470                if (\Redis::COMPRESSION_NONE !== $c) {
     
    7773            }
    7874        }
    79         $this->init($redisClient, $namespace, $defaultLifetime, new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\TagAwareMarshaller($marshaller));
     75        $this->init($redis, $namespace, $defaultLifetime, new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\TagAwareMarshaller($marshaller));
    8076    }
    8177    /**
     
    8581    {
    8682        $eviction = $this->getRedisEvictionPolicy();
    87         if ('noeviction' !== $eviction && 0 !== \strpos($eviction, 'volatile-')) {
    88             throw new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\LogicException(\sprintf('Redis maxmemory-policy setting "%s" is *not* supported by RedisTagAwareAdapter, use "noeviction" or  "volatile-*" eviction policies.', $eviction));
     83        if ('noeviction' !== $eviction && !\str_starts_with($eviction, 'volatile-')) {
     84            throw new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\LogicException(\sprintf('Redis maxmemory-policy setting "%s" is *not* supported by RedisTagAwareAdapter, use "noeviction" or "volatile-*" eviction policies.', $eviction));
    8985        }
    9086        // serialize values
     
    137133            return v:sub(14, 13 + v:byte(13) + v:byte(12) * 256 + v:byte(11) * 65536)
    138134EOLUA;
    139         if ($this->redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface) {
    140             $evalArgs = [$lua, 1, &$id];
    141         } else {
    142             $evalArgs = [$lua, [&$id], 1];
    143         }
    144         $results = $this->pipeline(function () use($ids, &$id, $evalArgs) {
     135        $results = $this->pipeline(function () use($ids, $lua) {
    145136            foreach ($ids as $id) {
    146                 (yield 'eval' => $evalArgs);
     137                (yield 'eval' => $this->redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface ? [$lua, 1, $id] : [$lua, [$id], 1]);
    147138            }
    148139        });
    149140        foreach ($results as $id => $result) {
     141            if ($result instanceof \RedisException) {
     142                \Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem::log($this->logger, 'Failed to delete key "{key}": ' . $result->getMessage(), ['key' => \substr($id, \strlen($this->namespace)), 'exception' => $result]);
     143                continue;
     144            }
    150145            try {
    151146                (yield $id => !\is_string($result) || '' === $result ? [] : $this->marshaller->unmarshall($result));
     
    160155    protected function doDeleteTagRelations(array $tagData) : bool
    161156    {
    162         $this->pipeline(static function () use($tagData) {
     157        $results = $this->pipeline(static function () use($tagData) {
    163158            foreach ($tagData as $tagId => $idList) {
    164159                \array_unshift($idList, $tagId);
    165160                (yield 'sRem' => $idList);
    166161            }
    167         })->rewind();
     162        });
     163        foreach ($results as $result) {
     164            // no-op
     165        }
    168166        return \true;
    169167    }
     
    173171    protected function doInvalidate(array $tagIds) : bool
    174172    {
    175         if (!$this->redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface || !$this->redis->getConnection() instanceof \Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\PredisCluster) {
    176             $movedTagSetIds = $this->renameKeys($this->redis, $tagIds);
    177         } else {
    178             $clusterConnection = $this->redis->getConnection();
    179             $tagIdsByConnection = new \SplObjectStorage();
    180             $movedTagSetIds = [];
     173        // This script scans the set of items linked to tag: it empties the set
     174        // and removes the linked items. When the set is still not empty after
     175        // the scan, it means we're in cluster mode and that the linked items
     176        // are on other nodes: we move the links to a temporary set and we
     177        // gargage collect that set from the client side.
     178        $lua = <<<'EOLUA'
     179            redis.replicate_commands()
     180
     181            local cursor = '0'
     182            local id = KEYS[1]
     183            repeat
     184                local result = redis.call('SSCAN', id, cursor, 'COUNT', 5000);
     185                cursor = result[1];
     186                local rems = {}
     187
     188                for _, v in ipairs(result[2]) do
     189                    local ok, _ = pcall(redis.call, 'DEL', ARGV[1]..v)
     190                    if ok then
     191                        table.insert(rems, v)
     192                    end
     193                end
     194                if 0 < #rems then
     195                    redis.call('SREM', id, unpack(rems))
     196                end
     197            until '0' == cursor;
     198
     199            redis.call('SUNIONSTORE', '{'..id..'}'..id, id)
     200            redis.call('DEL', id)
     201
     202            return redis.call('SSCAN', '{'..id..'}'..id, '0', 'COUNT', 5000)
     203EOLUA;
     204        $results = $this->pipeline(function () use($tagIds, $lua) {
     205            if ($this->redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface) {
     206                $prefix = $this->redis->getOptions()->prefix ? $this->redis->getOptions()->prefix->getPrefix() : '';
     207            } elseif (\is_array($prefix = $this->redis->getOption(\Redis::OPT_PREFIX) ?? '')) {
     208                $prefix = \current($prefix);
     209            }
    181210            foreach ($tagIds as $id) {
    182                 $connection = $clusterConnection->getConnectionByKey($id);
    183                 $slot = $tagIdsByConnection[$connection] ?? ($tagIdsByConnection[$connection] = new \ArrayObject());
    184                 $slot[] = $id;
    185             }
    186             foreach ($tagIdsByConnection as $connection) {
    187                 $slot = $tagIdsByConnection[$connection];
    188                 $movedTagSetIds = \array_merge($movedTagSetIds, $this->renameKeys(new $this->redis($connection, $this->redis->getOptions()), $slot->getArrayCopy()));
    189             }
    190         }
    191         // No Sets found
    192         if (!$movedTagSetIds) {
    193             return \false;
    194         }
    195         // Now safely take the time to read the keys in each set and collect ids we need to delete
    196         $tagIdSets = $this->pipeline(static function () use($movedTagSetIds) {
    197             foreach ($movedTagSetIds as $movedTagId) {
    198                 (yield 'sMembers' => [$movedTagId]);
    199             }
    200         });
    201         // Return combination of the temporary Tag Set ids and their values (cache ids)
    202         $ids = \array_merge($movedTagSetIds, ...\iterator_to_array($tagIdSets, \false));
    203         // Delete cache in chunks to avoid overloading the connection
    204         foreach (\array_chunk(\array_unique($ids), self::BULK_DELETE_LIMIT) as $chunkIds) {
    205             $this->doDelete($chunkIds);
    206         }
    207         return \true;
    208     }
    209     /**
    210      * Renames several keys in order to be able to operate on them without risk of race conditions.
    211      *
    212      * Filters out keys that do not exist before returning new keys.
    213      *
    214      * @see https://redis.io/commands/rename
    215      * @see https://redis.io/topics/cluster-spec#keys-hash-tags
    216      *
    217      * @return array Filtered list of the valid moved keys (only those that existed)
    218      */
    219     private function renameKeys($redis, array $ids) : array
    220     {
    221         $newIds = [];
    222         $uniqueToken = \bin2hex(\random_bytes(10));
    223         $results = $this->pipeline(static function () use($ids, $uniqueToken) {
    224             foreach ($ids as $id) {
    225                 (yield 'rename' => [$id, '{' . $id . '}' . $uniqueToken]);
    226             }
    227         }, $redis);
    228         foreach ($results as $id => $result) {
    229             if (\true === $result || $result instanceof \Prokerala\Astrology\Vendor\Predis\Response\Status && \Prokerala\Astrology\Vendor\Predis\Response\Status::get('OK') === $result) {
    230                 // Only take into account if ok (key existed), will be false on phpredis if it did not exist
    231                 $newIds[] = '{' . $id . '}' . $uniqueToken;
    232             }
    233         }
    234         return $newIds;
     211                (yield 'eval' => $this->redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface ? [$lua, 1, $id, $prefix] : [$lua, [$id, $prefix], 1]);
     212            }
     213        });
     214        $lua = <<<'EOLUA'
     215            redis.replicate_commands()
     216
     217            local id = KEYS[1]
     218            local cursor = table.remove(ARGV)
     219            redis.call('SREM', '{'..id..'}'..id, unpack(ARGV))
     220
     221            return redis.call('SSCAN', '{'..id..'}'..id, cursor, 'COUNT', 5000)
     222EOLUA;
     223        $success = \true;
     224        foreach ($results as $id => $values) {
     225            if ($values instanceof \RedisException) {
     226                \Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem::log($this->logger, 'Failed to invalidate key "{key}": ' . $values->getMessage(), ['key' => \substr($id, \strlen($this->namespace)), 'exception' => $values]);
     227                $success = \false;
     228                continue;
     229            }
     230            [$cursor, $ids] = $values;
     231            while ($ids || '0' !== $cursor) {
     232                $this->doDelete($ids);
     233                $evalArgs = [$id, $cursor];
     234                \array_splice($evalArgs, 1, 0, $ids);
     235                if ($this->redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface) {
     236                    \array_unshift($evalArgs, $lua, 1);
     237                } else {
     238                    $evalArgs = [$lua, $evalArgs, 1];
     239                }
     240                $results = $this->pipeline(function () use($evalArgs) {
     241                    (yield 'eval' => $evalArgs);
     242                });
     243                foreach ($results as [$cursor, $ids]) {
     244                    // no-op
     245                }
     246            }
     247        }
     248        return $success;
    235249    }
    236250    private function getRedisEvictionPolicy() : string
     
    239253            return $this->redisEvictionPolicy;
    240254        }
    241         foreach ($this->getHosts() as $host) {
     255        $hosts = $this->getHosts();
     256        $host = \reset($hosts);
     257        if ($host instanceof \Prokerala\Astrology\Vendor\Predis\Client && $host->getConnection() instanceof \Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\ReplicationInterface) {
     258            // Predis supports info command only on the master in replication environments
     259            $hosts = [$host->getClientFor('master')];
     260        }
     261        foreach ($hosts as $host) {
    242262            $info = $host->info('Memory');
    243263            $info = $info['Memory'] ?? $info;
  • astrology/trunk/dependencies/vendor/symfony/cache/Adapter/TagAwareAdapter.php

    r2513947 r2612549  
    1313use Psr\Cache\CacheItemInterface;
    1414use Psr\Cache\InvalidArgumentException;
     15use Psr\Log\LoggerAwareInterface;
     16use Psr\Log\LoggerAwareTrait;
    1517use Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem;
    1618use Prokerala\Astrology\Vendor\Symfony\Component\Cache\PruneableInterface;
     
    2224 * @author Nicolas Grekas <p@tchwork.com>
    2325 */
    24 class TagAwareAdapter implements \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\TagAwareAdapterInterface, \Prokerala\Astrology\Vendor\Symfony\Contracts\Cache\TagAwareCacheInterface, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\PruneableInterface, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\ResettableInterface
     26class TagAwareAdapter implements \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\TagAwareAdapterInterface, \Prokerala\Astrology\Vendor\Symfony\Contracts\Cache\TagAwareCacheInterface, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\PruneableInterface, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\ResettableInterface, \Psr\Log\LoggerAwareInterface
    2527{
    26     public const TAGS_PREFIX = "\0tags\0";
    2728    use ContractsTrait;
     29    use LoggerAwareTrait;
    2830    use ProxyTrait;
     31    public const TAGS_PREFIX = "\x00tags\x00";
    2932    private $deferred = [];
    3033    private $createCacheItem;
     
    6871            foreach ($deferred as $key => $item) {
    6972                $tagsByKey[$key] = $item->newMetadata[\Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem::METADATA_TAGS] ?? [];
     73                $item->metadata = $item->newMetadata;
    7074            }
    7175            return $tagsByKey;
     
    188192        if ('' !== $prefix) {
    189193            foreach ($this->deferred as $key => $item) {
    190                 if (0 === \strpos($key, $prefix)) {
     194                if (\str_starts_with($key, $prefix)) {
    191195                    unset($this->deferred[$key]);
    192196                }
     
    258262        return $this->invalidateTags([]);
    259263    }
     264    /**
     265     * @return array
     266     */
    260267    public function __sleep()
    261268    {
  • astrology/trunk/dependencies/vendor/symfony/cache/CacheItem.php

    r2513947 r2612549  
    146146     * Validates a cache key according to PSR-6.
    147147     *
    148      * @param string $key The key to validate
     148     * @param mixed $key The key to validate
    149149     *
    150150     * @throws InvalidArgumentException When $key is not valid
  • astrology/trunk/dependencies/vendor/symfony/cache/DependencyInjection/CachePoolPass.php

    r2513947 r2612549  
    1414use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\ArrayAdapter;
    1515use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\ChainAdapter;
     16use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\NullAdapter;
    1617use Prokerala\Astrology\Vendor\Symfony\Component\DependencyInjection\ChildDefinition;
    1718use Prokerala\Astrology\Vendor\Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
     
    111112                        $chainedPool->replaceArgument($i++, new \Prokerala\Astrology\Vendor\Symfony\Component\DependencyInjection\Reference(static::getServiceProvider($container, $chainedTags[0]['provider'])));
    112113                    }
    113                     if (isset($tags[0]['namespace']) && \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\ArrayAdapter::class !== $adapter->getClass()) {
     114                    if (isset($tags[0]['namespace']) && !\in_array($adapter->getClass(), [\Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\ArrayAdapter::class, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\NullAdapter::class], \true)) {
    114115                        $chainedPool->replaceArgument($i++, $tags[0]['namespace']);
    115116                    }
     
    132133                        $pool->addTag($this->kernelResetTag, ['method' => $tags[0][$attr]]);
    133134                    }
    134                 } elseif ('namespace' !== $attr || \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\ArrayAdapter::class !== $class) {
     135                } elseif ('namespace' !== $attr || !\in_array($class, [\Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\ArrayAdapter::class, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\NullAdapter::class], \true)) {
    135136                    $pool->replaceArgument($i++, $tags[0][$attr]);
    136137                }
  • astrology/trunk/dependencies/vendor/symfony/cache/DoctrineProvider.php

    r2513947 r2612549  
    4343    /**
    4444     * {@inheritdoc}
     45     *
     46     * @return mixed
    4547     */
    4648    protected function doFetch($id)
  • astrology/trunk/dependencies/vendor/symfony/cache/LockRegistry.php

    r2513947 r2612549  
    2626{
    2727    private static $openedFiles = [];
    28     private static $lockedFiles = [];
     28    private static $lockedFiles;
    2929    /**
    3030     * The number of items in this list controls the max number of concurrent processes.
     
    5151    public static function compute(callable $callback, \Prokerala\Astrology\Vendor\Symfony\Contracts\Cache\ItemInterface $item, bool &$save, \Prokerala\Astrology\Vendor\Symfony\Contracts\Cache\CacheInterface $pool, \Closure $setMetadata = null, \Psr\Log\LoggerInterface $logger = null)
    5252    {
    53         $key = self::$files ? \crc32($item->getKey()) % \count(self::$files) : -1;
     53        if ('\\' === \DIRECTORY_SEPARATOR && null === self::$lockedFiles) {
     54            // disable locking on Windows by default
     55            self::$files = self::$lockedFiles = [];
     56        }
     57        $key = self::$files ? \abs(\crc32($item->getKey())) % \count(self::$files) : -1;
    5458        if ($key < 0 || (self::$lockedFiles[$key] ?? \false) || !($lock = self::open($key))) {
    5559            return $callback($item, $save);
     
    8084            }
    8185            static $signalingException, $signalingCallback;
    82             $signalingException = $signalingException ?? \unserialize("O:9:\"Exception\":1:{s:16:\"\0Exception\0trace\";a:0:{}}");
     86            $signalingException = $signalingException ?? \unserialize("O:9:\"Exception\":1:{s:16:\"\x00Exception\x00trace\";a:0:{}}");
    8387            $signalingCallback = $signalingCallback ?? function () use($signalingException) {
    8488                throw $signalingException;
  • astrology/trunk/dependencies/vendor/symfony/cache/Marshaller/TagAwareMarshaller.php

    r2513947 r2612549  
    4141                        $v['tags'] = '';
    4242                    }
    43                     $serialized[$id] = "" . ($value['meta'] ?? "\0\0\0\0\0\0\0\0") . \pack('N', \strlen($v['tags'])) . $v['tags'] . $v['value'];
     43                    $serialized[$id] = "\x9d" . ($value['meta'] ?? "\x00\x00\x00\x00\x00\x00\x00\x00") . \pack('N', \strlen($v['tags'])) . $v['tags'] . $v['value'];
    4444                    $serialized[$id][9] = "_";
    4545                }
     
    6161    {
    6262        // detect the compact format used in marshall() using magic numbers in the form 9D-..-..-..-..-00-..-..-..-5F
    63         if (13 >= \strlen($value) || "" !== $value[0] || "\0" !== $value[5] || "_" !== $value[9]) {
     63        if (13 >= \strlen($value) || "\x9d" !== $value[0] || "\x00" !== $value[5] || "_" !== $value[9]) {
    6464            return $this->marshaller->unmarshall($value);
    6565        }
    6666        // data consists of value, tags and metadata which we need to unpack
    6767        $meta = \substr($value, 1, 12);
    68         $meta[8] = "\0";
     68        $meta[8] = "\x00";
    6969        $tagLen = \unpack('Nlen', $meta, 8)['len'];
    7070        $meta = \substr($meta, 0, 8);
    71         return ['value' => $this->marshaller->unmarshall(\substr($value, 13 + $tagLen)), 'tags' => $tagLen ? $this->marshaller->unmarshall(\substr($value, 13, $tagLen)) : [], 'meta' => "\0\0\0\0\0\0\0\0" === $meta ? null : $meta];
     71        return ['value' => $this->marshaller->unmarshall(\substr($value, 13 + $tagLen)), 'tags' => $tagLen ? $this->marshaller->unmarshall(\substr($value, 13, $tagLen)) : [], 'meta' => "\x00\x00\x00\x00\x00\x00\x00\x00" === $meta ? null : $meta];
    7272    }
    7373}
  • astrology/trunk/dependencies/vendor/symfony/cache/Psr16Cache.php

    r2513947 r2612549  
    156156            unset($metadata[\Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem::METADATA_TAGS]);
    157157            if ($metadata) {
    158                 $values[$key] = ["" . \pack('VN', (int) (0.1 + $metadata[\Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem::METADATA_EXPIRY] - self::METADATA_EXPIRY_OFFSET), $metadata[\Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem::METADATA_CTIME]) . "_" => $values[$key]];
     158                $values[$key] = ["\x9d" . \pack('VN', (int) (0.1 + $metadata[\Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem::METADATA_EXPIRY] - self::METADATA_EXPIRY_OFFSET), $metadata[\Prokerala\Astrology\Vendor\Symfony\Component\Cache\CacheItem::METADATA_CTIME]) . "_" => $values[$key]];
    159159            }
    160160        }
  • astrology/trunk/dependencies/vendor/symfony/cache/Simple/AbstractCache.php

    r2513947 r2612549  
    2525abstract class AbstractCache implements \Psr\SimpleCache\CacheInterface, \Psr\Log\LoggerAwareInterface, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\ResettableInterface
    2626{
    27     /**
    28      * @internal
    29      */
    30     protected const NS_SEPARATOR = ':';
    3127    use AbstractTrait {
    3228        deleteItems as private;
     
    3430        AbstractTrait::hasItem as has;
    3531    }
     32    /**
     33     * @internal
     34     */
     35    protected const NS_SEPARATOR = ':';
    3636    private $defaultLifetime;
    3737    protected function __construct(string $namespace = '', int $defaultLifetime = 0)
  • astrology/trunk/dependencies/vendor/symfony/cache/Simple/RedisCache.php

    r2513947 r2612549  
    1313use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Adapter\RedisAdapter;
    1414use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\MarshallerInterface;
     15use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisClusterProxy;
     16use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisProxy;
    1517use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisTrait;
    1618use Prokerala\Astrology\Vendor\Symfony\Contracts\Cache\CacheInterface;
     
    2325    use RedisTrait;
    2426    /**
    25      * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface $redisClient
     27     * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface|RedisProxy|RedisClusterProxy $redis
    2628     */
    27     public function __construct($redisClient, string $namespace = '', int $defaultLifetime = 0, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\MarshallerInterface $marshaller = null)
     29    public function __construct($redis, string $namespace = '', int $defaultLifetime = 0, \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\MarshallerInterface $marshaller = null)
    2830    {
    29         $this->init($redisClient, $namespace, $defaultLifetime, $marshaller);
     31        $this->init($redis, $namespace, $defaultLifetime, $marshaller);
    3032    }
    3133}
  • astrology/trunk/dependencies/vendor/symfony/cache/Traits/AbstractAdapterTrait.php

    r2513947 r2612549  
    9999        return \true;
    100100    }
     101    /**
     102     * @return array
     103     */
    101104    public function __sleep()
    102105    {
  • astrology/trunk/dependencies/vendor/symfony/cache/Traits/ApcuTrait.php

    r2513947 r2612549  
    9898            if (1 === \count($values)) {
    9999                // Workaround https://github.com/krakjoe/apcu/issues/170
    100                 \apcu_delete(\key($values));
     100                \apcu_delete(\array_key_first($values));
    101101            }
    102102            throw $e;
  • astrology/trunk/dependencies/vendor/symfony/cache/Traits/ArrayTrait.php

    r2513947 r2612549  
    7070        if ('' !== $prefix) {
    7171            foreach ($this->values as $key => $value) {
    72                 if (0 === \strpos($key, $prefix)) {
     72                if (\str_starts_with($key, $prefix)) {
    7373                    unset($this->values[$key], $this->expiries[$key]);
    7474                }
     
    128128                $serialized = \serialize($value);
    129129            } catch (\Exception $e) {
     130                unset($this->values[$key]);
    130131                $type = \is_object($value) ? \get_class($value) : \gettype($value);
    131132                $message = \sprintf('Failed to save key "{key}" of type %s: ', $type) . $e->getMessage();
  • astrology/trunk/dependencies/vendor/symfony/cache/Traits/FilesystemCommonTrait.php

    r2513947 r2612549  
    5353        $ok = \true;
    5454        foreach ($this->scanHashDir($this->directory) as $file) {
    55             if ('' !== $namespace && 0 !== \strpos($this->getFileKey($file), $namespace)) {
     55            if ('' !== $namespace && !\str_starts_with($this->getFileKey($file), $namespace)) {
    5656                continue;
    5757            }
     
    8686                $h = \fopen($this->tmp, 'x');
    8787            } catch (\ErrorException $e) {
    88                 if (\false === \strpos($e->getMessage(), 'File exists')) {
     88                if (!\str_contains($e->getMessage(), 'File exists')) {
    8989                    throw $e;
    9090                }
  • astrology/trunk/dependencies/vendor/symfony/cache/Traits/MemcachedTrait.php

    r2513947 r2612549  
    2929     * Note: don’t use {@see \Symfony\Component\Cache\Adapter\AbstractAdapter::NS_SEPARATOR}.
    3030     */
    31     private static $RESERVED_MEMCACHED = " \n\r\t\v\f\0";
     31    private static $RESERVED_MEMCACHED = " \n\r\t\v\f\x00";
    3232    private static $RESERVED_PSR6 = '@()\\{}/';
    3333    private $marshaller;
     
    9595                    continue;
    9696                }
    97                 if (0 !== \strpos($dsn, 'memcached:')) {
     97                if (!\str_starts_with($dsn, 'memcached:')) {
    9898                    throw new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\InvalidArgumentException(\sprintf('Invalid Memcached DSN: "%s" does not start with "memcached:".', $dsn));
    9999                }
  • astrology/trunk/dependencies/vendor/symfony/cache/Traits/PdoTrait.php

    r2513947 r2612549  
    1717use Prokerala\Astrology\Vendor\Doctrine\DBAL\Exception;
    1818use Prokerala\Astrology\Vendor\Doctrine\DBAL\Exception\TableNotFoundException;
     19use Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType;
    1920use Prokerala\Astrology\Vendor\Doctrine\DBAL\Schema\Schema;
     21use Prokerala\Astrology\Vendor\Doctrine\DBAL\Statement;
    2022use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\InvalidArgumentException;
    2123use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\DefaultMarshaller;
     
    144146            $deleteSql .= " AND {$this->idCol} LIKE :namespace";
    145147        }
     148        $connection = $this->getConnection();
     149        $useDbalConstants = $connection instanceof \Prokerala\Astrology\Vendor\Doctrine\DBAL\Connection;
    146150        try {
    147             $delete = $this->getConnection()->prepare($deleteSql);
     151            $delete = $connection->prepare($deleteSql);
    148152        } catch (\Prokerala\Astrology\Vendor\Doctrine\DBAL\Exception\TableNotFoundException $e) {
    149153            return \true;
     
    151155            return \true;
    152156        }
    153         $delete->bindValue(':time', \time(), \PDO::PARAM_INT);
     157        $delete->bindValue(':time', \time(), $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
    154158        if ('' !== $this->namespace) {
    155             $delete->bindValue(':namespace', \sprintf('%s%%', $this->namespace), \PDO::PARAM_STR);
     159            $delete->bindValue(':namespace', \sprintf('%s%%', $this->namespace), $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::STRING : \PDO::PARAM_STR);
    156160        }
    157161        try {
     162            // Doctrine DBAL ^2.13 || >= 3.1
     163            if ($delete instanceof \Prokerala\Astrology\Vendor\Doctrine\DBAL\Statement && \method_exists($delete, 'executeStatement')) {
     164                $delete->executeStatement();
     165                return \true;
     166            }
    158167            return $delete->execute();
    159168        } catch (\Prokerala\Astrology\Vendor\Doctrine\DBAL\Exception\TableNotFoundException $e) {
     
    168177    protected function doFetch(array $ids)
    169178    {
     179        $connection = $this->getConnection();
     180        $useDbalConstants = $connection instanceof \Prokerala\Astrology\Vendor\Doctrine\DBAL\Connection;
    170181        $now = \time();
    171182        $expired = [];
    172183        $sql = \str_pad('', (\count($ids) << 1) - 1, '?,');
    173184        $sql = "SELECT {$this->idCol}, CASE WHEN {$this->lifetimeCol} IS NULL OR {$this->lifetimeCol} + {$this->timeCol} > ? THEN {$this->dataCol} ELSE NULL END FROM {$this->table} WHERE {$this->idCol} IN ({$sql})";
    174         $stmt = $this->getConnection()->prepare($sql);
    175         $stmt->bindValue($i = 1, $now, \PDO::PARAM_INT);
     185        $stmt = $connection->prepare($sql);
     186        $stmt->bindValue($i = 1, $now, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
    176187        foreach ($ids as $id) {
    177188            $stmt->bindValue(++$i, $id);
     
    194205            $sql = \str_pad('', (\count($expired) << 1) - 1, '?,');
    195206            $sql = "DELETE FROM {$this->table} WHERE {$this->lifetimeCol} + {$this->timeCol} <= ? AND {$this->idCol} IN ({$sql})";
    196             $stmt = $this->getConnection()->prepare($sql);
    197             $stmt->bindValue($i = 1, $now, \PDO::PARAM_INT);
     207            $stmt = $connection->prepare($sql);
     208            $stmt->bindValue($i = 1, $now, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
    198209            foreach ($expired as $id) {
    199210                $stmt->bindValue(++$i, $id);
     
    207218    protected function doHave($id)
    208219    {
     220        $connection = $this->getConnection();
     221        $useDbalConstants = $connection instanceof \Prokerala\Astrology\Vendor\Doctrine\DBAL\Connection;
    209222        $sql = "SELECT 1 FROM {$this->table} WHERE {$this->idCol} = :id AND ({$this->lifetimeCol} IS NULL OR {$this->lifetimeCol} + {$this->timeCol} > :time)";
    210         $stmt = $this->getConnection()->prepare($sql);
     223        $stmt = $connection->prepare($sql);
    211224        $stmt->bindValue(':id', $id);
    212         $stmt->bindValue(':time', \time(), \PDO::PARAM_INT);
     225        $stmt->bindValue(':time', \time(), $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
    213226        $result = $stmt->execute();
    214227        return (bool) (\is_object($result) ? $result->fetchOne() : $stmt->fetchColumn());
     
    264277        }
    265278        $conn = $this->getConnection();
     279        $useDbalConstants = $conn instanceof \Prokerala\Astrology\Vendor\Doctrine\DBAL\Connection;
    266280        $driver = $this->driver;
    267281        $insertSql = "INSERT INTO {$this->table} ({$this->idCol}, {$this->dataCol}, {$this->lifetimeCol}, {$this->timeCol}) VALUES (:id, :data, :lifetime, :time)";
     
    308322            $stmt->bindParam(1, $id);
    309323            $stmt->bindParam(2, $id);
    310             $stmt->bindParam(3, $data, \PDO::PARAM_LOB);
    311             $stmt->bindValue(4, $lifetime, \PDO::PARAM_INT);
    312             $stmt->bindValue(5, $now, \PDO::PARAM_INT);
    313             $stmt->bindParam(6, $data, \PDO::PARAM_LOB);
    314             $stmt->bindValue(7, $lifetime, \PDO::PARAM_INT);
    315             $stmt->bindValue(8, $now, \PDO::PARAM_INT);
     324            $stmt->bindParam(3, $data, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::LARGE_OBJECT : \PDO::PARAM_LOB);
     325            $stmt->bindValue(4, $lifetime, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
     326            $stmt->bindValue(5, $now, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
     327            $stmt->bindParam(6, $data, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::LARGE_OBJECT : \PDO::PARAM_LOB);
     328            $stmt->bindValue(7, $lifetime, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
     329            $stmt->bindValue(8, $now, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
    316330        } else {
    317331            $stmt->bindParam(':id', $id);
    318             $stmt->bindParam(':data', $data, \PDO::PARAM_LOB);
    319             $stmt->bindValue(':lifetime', $lifetime, \PDO::PARAM_INT);
    320             $stmt->bindValue(':time', $now, \PDO::PARAM_INT);
     332            $stmt->bindParam(':data', $data, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::LARGE_OBJECT : \PDO::PARAM_LOB);
     333            $stmt->bindValue(':lifetime', $lifetime, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
     334            $stmt->bindValue(':time', $now, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
    321335        }
    322336        if (null === $driver) {
    323337            $insertStmt = $conn->prepare($insertSql);
    324338            $insertStmt->bindParam(':id', $id);
    325             $insertStmt->bindParam(':data', $data, \PDO::PARAM_LOB);
    326             $insertStmt->bindValue(':lifetime', $lifetime, \PDO::PARAM_INT);
    327             $insertStmt->bindValue(':time', $now, \PDO::PARAM_INT);
     339            $insertStmt->bindParam(':data', $data, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::LARGE_OBJECT : \PDO::PARAM_LOB);
     340            $insertStmt->bindValue(':lifetime', $lifetime, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
     341            $insertStmt->bindValue(':time', $now, $useDbalConstants ? \Prokerala\Astrology\Vendor\Doctrine\DBAL\ParameterType::INTEGER : \PDO::PARAM_INT);
    328342        }
    329343        foreach ($values as $id => $data) {
     
    397411                        $this->driver = 'sqlsrv';
    398412                        break;
     413                    case $driver instanceof \Prokerala\Astrology\Vendor\Doctrine\DBAL\Driver:
     414                        $this->driver = ['mssql' => 'sqlsrv', 'oracle' => 'oci', 'postgresql' => 'pgsql', 'sqlite' => 'sqlite', 'mysql' => 'mysql'][$driver->getDatabasePlatform()->getName()] ?? \get_class($driver);
     415                        break;
    399416                    default:
    400417                        $this->driver = \get_class($driver);
  • astrology/trunk/dependencies/vendor/symfony/cache/Traits/RedisTrait.php

    r2513947 r2612549  
    1313use Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\ClusterInterface;
    1414use Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\RedisCluster;
     15use Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\ReplicationInterface;
    1516use Prokerala\Astrology\Vendor\Predis\Response\Status;
    1617use Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\CacheException;
     
    2627trait RedisTrait
    2728{
    28     private static $defaultConnectionOptions = ['class' => null, 'persistent' => 0, 'persistent_id' => null, 'timeout' => 30, 'read_timeout' => 0, 'retry_interval' => 0, 'tcp_keepalive' => 0, 'lazy' => null, 'redis_cluster' => \false, 'redis_sentinel' => null, 'dbindex' => 0, 'failover' => 'none'];
     29    private static $defaultConnectionOptions = ['class' => null, 'persistent' => 0, 'persistent_id' => null, 'timeout' => 30, 'read_timeout' => 0, 'retry_interval' => 0, 'tcp_keepalive' => 0, 'lazy' => null, 'redis_cluster' => \false, 'redis_sentinel' => null, 'dbindex' => 0, 'failover' => 'none', 'ssl' => null];
    2930    private $redis;
    3031    private $marshaller;
    3132    /**
    32      * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface $redisClient
    33      */
    34     private function init($redisClient, string $namespace, int $defaultLifetime, ?\Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\MarshallerInterface $marshaller)
     33     * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface|RedisProxy|RedisClusterProxy $redis
     34     */
     35    private function init($redis, string $namespace, int $defaultLifetime, ?\Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\MarshallerInterface $marshaller)
    3536    {
    3637        parent::__construct($namespace, $defaultLifetime);
     
    3839            throw new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\InvalidArgumentException(\sprintf('RedisAdapter namespace contains "%s" but only characters in [-+_.A-Za-z0-9] are allowed.', $match[0]));
    3940        }
    40         if (!$redisClient instanceof \Redis && !$redisClient instanceof \RedisArray && !$redisClient instanceof \RedisCluster && !$redisClient instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface && !$redisClient instanceof \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisProxy && !$redisClient instanceof \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisClusterProxy) {
    41             throw new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\InvalidArgumentException(\sprintf('"%s()" expects parameter 1 to be Redis, RedisArray, RedisCluster or Predis\\ClientInterface, "%s" given.', __METHOD__, \is_object($redisClient) ? \get_class($redisClient) : \gettype($redisClient)));
    42         }
    43         if ($redisClient instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface && $redisClient->getOptions()->exceptions) {
    44             $options = clone $redisClient->getOptions();
     41        if (!$redis instanceof \Redis && !$redis instanceof \RedisArray && !$redis instanceof \RedisCluster && !$redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface && !$redis instanceof \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisProxy && !$redis instanceof \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisClusterProxy) {
     42            throw new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\InvalidArgumentException(\sprintf('"%s()" expects parameter 1 to be Redis, RedisArray, RedisCluster or Predis\\ClientInterface, "%s" given.', __METHOD__, \is_object($redis) ? \get_class($redis) : \gettype($redis)));
     43        }
     44        if ($redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface && $redis->getOptions()->exceptions) {
     45            $options = clone $redis->getOptions();
    4546            \Closure::bind(function () {
    4647                $this->options['exceptions'] = \false;
    4748            }, $options, $options)();
    48             $redisClient = new $redisClient($redisClient->getConnection(), $options);
    49         }
    50         $this->redis = $redisClient;
     49            $redis = new $redis($redis->getConnection(), $options);
     50        }
     51        $this->redis = $redis;
    5152        $this->marshaller = $marshaller ?? new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Marshaller\DefaultMarshaller();
    5253    }
     
    7071    public static function createConnection($dsn, array $options = [])
    7172    {
    72         if (0 === \strpos($dsn, 'redis:')) {
     73        if (\str_starts_with($dsn, 'redis:')) {
    7374            $scheme = 'redis';
    74         } elseif (0 === \strpos($dsn, 'rediss:')) {
     75        } elseif (\str_starts_with($dsn, 'rediss:')) {
    7576            $scheme = 'rediss';
    7677        } else {
     
    9394        }
    9495        $query = $hosts = [];
     96        $tls = 'rediss' === $scheme;
     97        $tcpScheme = $tls ? 'tls' : 'tcp';
    9598        if (isset($params['query'])) {
    9699            \parse_str($params['query'], $query);
     
    104107                    }
    105108                    if (\false === ($i = \strrpos($host, ':'))) {
    106                         $hosts[$host] = ['scheme' => 'tcp', 'host' => $host, 'port' => 6379] + $parameters;
     109                        $hosts[$host] = ['scheme' => $tcpScheme, 'host' => $host, 'port' => 6379] + $parameters;
    107110                    } elseif ($port = (int) \substr($host, 1 + $i)) {
    108                         $hosts[$host] = ['scheme' => 'tcp', 'host' => \substr($host, 0, $i), 'port' => $port] + $parameters;
     111                        $hosts[$host] = ['scheme' => $tcpScheme, 'host' => \substr($host, 0, $i), 'port' => $port] + $parameters;
    109112                    } else {
    110113                        $hosts[$host] = ['scheme' => 'unix', 'path' => \substr($host, 0, $i)] + $parameters;
     
    120123            }
    121124            if (isset($params['host'])) {
    122                 \array_unshift($hosts, ['scheme' => 'tcp', 'host' => $params['host'], 'port' => $params['port'] ?? 6379]);
     125                \array_unshift($hosts, ['scheme' => $tcpScheme, 'host' => $params['host'], 'port' => $params['port'] ?? 6379]);
    123126            } else {
    124127                \array_unshift($hosts, ['scheme' => 'unix', 'path' => $params['path']]);
     
    135138            $class = $params['redis_cluster'] ? \RedisCluster::class : (1 < \count($hosts) ? \RedisArray::class : \Redis::class);
    136139        } else {
    137             $class = null === $params['class'] ? \Prokerala\Astrology\Vendor\Predis\Client::class : $params['class'];
     140            $class = $params['class'] ?? \Prokerala\Astrology\Vendor\Predis\Client::class;
    138141        }
    139142        if (\is_a($class, \Redis::class, \true)) {
    140143            $connect = $params['persistent'] || $params['persistent_id'] ? 'pconnect' : 'connect';
    141144            $redis = new $class();
    142             $initializer = static function ($redis) use($connect, $params, $dsn, $auth, $hosts) {
     145            $initializer = static function ($redis) use($connect, $params, $dsn, $auth, $hosts, $tls) {
     146                $host = $hosts[0]['host'] ?? $hosts[0]['path'];
     147                $port = $hosts[0]['port'] ?? null;
     148                if (isset($hosts[0]['host']) && $tls) {
     149                    $host = 'tls://' . $host;
     150                }
    143151                try {
    144                     @$redis->{$connect}($hosts[0]['host'] ?? $hosts[0]['path'], $hosts[0]['port'] ?? null, $params['timeout'], (string) $params['persistent_id'], $params['retry_interval'], $params['read_timeout']);
     152                    @$redis->{$connect}($host, $port, $params['timeout'], (string) $params['persistent_id'], $params['retry_interval'], $params['read_timeout'], ...\defined('Redis::SCAN_PREFIX') ? [['stream' => $params['ssl'] ?? null]] : []);
    145153                    \set_error_handler(function ($type, $msg) use(&$error) {
    146154                        $error = $msg;
     
    171179        } elseif (\is_a($class, \RedisArray::class, \true)) {
    172180            foreach ($hosts as $i => $host) {
    173                 $hosts[$i] = 'tcp' === $host['scheme'] ? $host['host'] . ':' . $host['port'] : $host['path'];
     181                switch ($host['scheme']) {
     182                    case 'tcp':
     183                        $hosts[$i] = $host['host'] . ':' . $host['port'];
     184                        break;
     185                    case 'tls':
     186                        $hosts[$i] = 'tls://' . $host['host'] . ':' . $host['port'];
     187                        break;
     188                    default:
     189                        $hosts[$i] = $host['path'];
     190                }
    174191            }
    175192            $params['lazy_connect'] = $params['lazy'] ?? \true;
     
    186203            $initializer = static function () use($class, $params, $dsn, $hosts) {
    187204                foreach ($hosts as $i => $host) {
    188                     $hosts[$i] = 'tcp' === $host['scheme'] ? $host['host'] . ':' . $host['port'] : $host['path'];
     205                    switch ($host['scheme']) {
     206                        case 'tcp':
     207                            $hosts[$i] = $host['host'] . ':' . $host['port'];
     208                            break;
     209                        case 'tls':
     210                            $hosts[$i] = 'tls://' . $host['host'] . ':' . $host['port'];
     211                            break;
     212                        default:
     213                            $hosts[$i] = $host['path'];
     214                    }
    189215                }
    190216                try {
    191                     $redis = new $class(null, $hosts, $params['timeout'], $params['read_timeout'], (bool) $params['persistent'], $params['auth'] ?? '');
     217                    $redis = new $class(null, $hosts, $params['timeout'], $params['read_timeout'], (bool) $params['persistent'], $params['auth'] ?? '', ...\defined('Redis::SCAN_PREFIX') ? [$params['ssl'] ?? null] : []);
    192218                } catch (\RedisClusterException $e) {
    193219                    throw new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Exception\InvalidArgumentException(\sprintf('Redis connection "%s" failed: ', $dsn) . $e->getMessage());
     
    235261            }
    236262            $params['exceptions'] = \false;
    237             $redis = new $class($hosts, \array_diff_key($params, self::$defaultConnectionOptions));
     263            $redis = new $class($hosts, \array_diff_key($params, \array_diff_key(self::$defaultConnectionOptions, ['ssl' => null])));
    238264            if (isset($params['redis_sentinel'])) {
    239265                $redis->getConnection()->setSentinelTimeout($params['timeout']);
     
    287313    protected function doClear($namespace)
    288314    {
     315        if ($this->redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface) {
     316            $prefix = $this->redis->getOptions()->prefix ? $this->redis->getOptions()->prefix->getPrefix() : '';
     317            $prefixLen = \strlen($prefix);
     318        }
    289319        $cleared = \true;
    290         if ($this->redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface) {
    291             $evalArgs = [0, $namespace];
    292         } else {
    293             $evalArgs = [[$namespace], 0];
    294         }
    295         foreach ($this->getHosts() as $host) {
     320        $hosts = $this->getHosts();
     321        $host = \reset($hosts);
     322        if ($host instanceof \Prokerala\Astrology\Vendor\Predis\Client && $host->getConnection() instanceof \Prokerala\Astrology\Vendor\Predis\Connection\Aggregate\ReplicationInterface) {
     323            // Predis supports info command only on the master in replication environments
     324            $hosts = [$host->getClientFor('master')];
     325        }
     326        foreach ($hosts as $host) {
    296327            if (!isset($namespace[0])) {
    297328                $cleared = $host->flushDb() && $cleared;
     
    300331            $info = $host->info('Server');
    301332            $info = $info['Server'] ?? $info;
     333            if (!$host instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface) {
     334                $prefix = \defined('Redis::SCAN_PREFIX') && \Redis::SCAN_PREFIX & $host->getOption(\Redis::OPT_SCAN) ? '' : $host->getOption(\Redis::OPT_PREFIX);
     335                $prefixLen = \strlen($host->getOption(\Redis::OPT_PREFIX) ?? '');
     336            }
     337            $pattern = $prefix . $namespace . '*';
    302338            if (!\version_compare($info['redis_version'], '2.8', '>=')) {
    303339                // As documented in Redis documentation (http://redis.io/commands/keys) using KEYS
    304340                // can hang your server when it is executed against large databases (millions of items).
    305341                // Whenever you hit this scale, you should really consider upgrading to Redis 2.8 or above.
    306                 $cleared = $host->eval("local keys=redis.call('KEYS',ARGV[1]..'*') for i=1,#keys,5000 do redis.call('DEL',unpack(keys,i,math.min(i+4999,#keys))) end return 1", $evalArgs[0], $evalArgs[1]) && $cleared;
     342                $args = $this->redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface ? [0, $pattern] : [[$pattern], 0];
     343                $cleared = $host->eval("local keys=redis.call('KEYS',ARGV[1]) for i=1,#keys,5000 do redis.call('DEL',unpack(keys,i,math.min(i+4999,#keys))) end return 1", $args[0], $args[1]) && $cleared;
    307344                continue;
    308345            }
    309346            $cursor = null;
    310347            do {
    311                 $keys = $host instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface ? $host->scan($cursor, 'MATCH', $namespace . '*', 'COUNT', 1000) : $host->scan($cursor, $namespace . '*', 1000);
     348                $keys = $host instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface ? $host->scan($cursor, 'MATCH', $pattern, 'COUNT', 1000) : $host->scan($cursor, $pattern, 1000);
    312349                if (isset($keys[1]) && \is_array($keys[1])) {
    313350                    $cursor = $keys[0];
     
    315352                }
    316353                if ($keys) {
     354                    if ($prefixLen) {
     355                        foreach ($keys as $i => $key) {
     356                            $keys[$i] = \substr($key, $prefixLen);
     357                        }
     358                    }
    317359                    $this->doDelete($keys);
    318360                }
     
    410452            $results = $redis->exec();
    411453        }
     454        if (!$redis instanceof \Prokerala\Astrology\Vendor\Predis\ClientInterface && 'eval' === $command && $redis->getLastError()) {
     455            $e = new \RedisException($redis->getLastError());
     456            $results = \array_map(function ($v) use($e) {
     457                return \false === $v ? $e : $v;
     458            }, $results);
     459        }
    412460        foreach ($ids as $k => $id) {
    413461            (yield $id => $results[$k]);
     
    433481            $hosts = [];
    434482            foreach ($this->redis->_masters() as $host) {
    435                 $hosts[] = $h = new \Redis();
    436                 $h->connect($host[0], $host[1]);
     483                $hosts[] = new \Prokerala\Astrology\Vendor\Symfony\Component\Cache\Traits\RedisClusterNodeProxy($host, $this->redis);
    437484            }
    438485        }
  • astrology/trunk/dependencies/vendor/symfony/options-resolver/OptionsResolver.php

    r2513947 r2612549  
    198198    }
    199199    /**
    200      * Sets a list of default values.
    201      *
    202      * @param array $defaults The default values to set
    203      *
    204200     * @return $this
    205201     *
     
    410406     * The resolved option value is set to the return value of the closure.
    411407     *
    412      * @param string   $option     The option name
    413      * @param \Closure $normalizer The normalizer
     408     * @param string $option The option name
    414409     *
    415410     * @return $this
     
    448443     *
    449444     * The resolved option value is set to the return value of the closure.
    450      *
    451      * @param string   $option       The option name
    452      * @param \Closure $normalizer   The normalizer
    453      * @param bool     $forcePrepend If set to true, prepend instead of appending
    454445     *
    455446     * @return $this
     
    672663     *  - Options have invalid values.
    673664     *
    674      * @param array $options A map of option names to values
    675      *
    676665     * @return array The merged and validated options
    677666     *
     
    736725     *                                   lazy options and/or normalizers
    737726     */
     727    #[\ReturnTypeWillChange]
    738728    public function offsetGet($option)
    739729    {
     
    816806                $fmtProvidedTypes = \implode('|', \array_keys($invalidTypes));
    817807                $allowedContainsArrayType = \count(\array_filter($this->allowedTypes[$option], static function ($item) {
    818                     return '[]' === \substr(self::TYPE_ALIASES[$item] ?? $item, -2);
     808                    return \str_ends_with(self::TYPE_ALIASES[$item] ?? $item, '[]');
    819809                })) > 0;
    820810                if (\is_array($value) && $allowedContainsArrayType) {
     
    929919     * @see \ArrayAccess::offsetExists()
    930920     */
     921    #[\ReturnTypeWillChange]
    931922    public function offsetExists($option)
    932923    {
     
    939930     * Not supported.
    940931     *
     932     * @return void
     933     *
    941934     * @throws AccessException
    942935     */
     936    #[\ReturnTypeWillChange]
    943937    public function offsetSet($option, $value)
    944938    {
     
    948942     * Not supported.
    949943     *
     944     * @return void
     945     *
    950946     * @throws AccessException
    951947     */
     948    #[\ReturnTypeWillChange]
    952949    public function offsetUnset($option)
    953950    {
     
    965962     * @see \Countable::count()
    966963     */
     964    #[\ReturnTypeWillChange]
    967965    public function count()
    968966    {
  • astrology/trunk/dependencies/vendor/symfony/polyfill-php80/bootstrap.php

    r2513947 r2612549  
    2727}
    2828if (!function_exists('str_contains')) {
    29     function str_contains(string $haystack, string $needle): bool { return p\Php80::str_contains($haystack, $needle); }
     29    function str_contains(?string $haystack, ?string $needle): bool { return p\Php80::str_contains($haystack ?? '', $needle ?? ''); }
    3030}
    3131if (!function_exists('str_starts_with')) {
    32     function str_starts_with(string $haystack, string $needle): bool { return p\Php80::str_starts_with($haystack, $needle); }
     32    function str_starts_with(?string $haystack, ?string $needle): bool { return p\Php80::str_starts_with($haystack ?? '', $needle ?? ''); }
    3333}
    3434if (!function_exists('str_ends_with')) {
    35     function str_ends_with(string $haystack, string $needle): bool { return p\Php80::str_ends_with($haystack, $needle); }
     35    function str_ends_with(?string $haystack, ?string $needle): bool { return p\Php80::str_ends_with($haystack ?? '', $needle ?? ''); }
    3636}
    3737if (!function_exists('get_debug_type')) {
  • astrology/trunk/dependencies/vendor/symfony/var-exporter/Internal/Exporter.php

    r2513947 r2612549  
    6161                }
    6262                goto handle_value;
    63             } elseif (!\is_object($value) && !$value instanceof \__PHP_Incomplete_Class) {
     63            } elseif (!\is_object($value) && !$value instanceof \__PHP_Incomplete_Class || $value instanceof \UnitEnum) {
    6464                goto handle_value;
    6565            }
     
    7777                }
    7878                if (!\is_array($properties = $value->__serialize())) {
    79                     throw new \Prokerala\Astrology\Vendor\Typerror($class . '::__serialize() must return an array');
     79                    throw new \TypeError($class . '::__serialize() must return an array');
    8080                }
    8181                goto prepare_value;
     
    9898                    $properties[] = $value[$v];
    9999                }
    100                 $properties = ['SplObjectStorage' => ["\0" => $properties]];
     100                $properties = ['SplObjectStorage' => ["\x00" => $properties]];
    101101            } elseif ($value instanceof \Serializable || $value instanceof \__PHP_Incomplete_Class) {
    102102                ++$objectsCount;
     
    122122                $i = 0;
    123123                $n = (string) $name;
    124                 if ('' === $n || "\0" !== $n[0]) {
     124                if ('' === $n || "\x00" !== $n[0]) {
    125125                    $c = 'stdClass';
    126126                } elseif ('*' === $n[1]) {
     
    133133                    }
    134134                } else {
    135                     $i = \strpos($n, "\0", 2);
     135                    $i = \strpos($n, "\x00", 2);
    136136                    $c = \substr($n, 1, $i - 1);
    137137                    $n = \substr($n, 1 + $i);
     
    143143                    $sleep[$n] = \false;
    144144                }
    145                 if (!\array_key_exists($name, $proto) || $proto[$name] !== $v || "\0Error\0trace" === $name || "\0Exception\0trace" === $name) {
     145                if (!\array_key_exists($name, $proto) || $proto[$name] !== $v || "\x00Error\x00trace" === $name || "\x00Exception\x00trace" === $name) {
    146146                    $properties[$c][$n] = $v;
    147147                }
     
    174174    {
    175175        switch (\true) {
    176             case \is_int($value) || \is_float($value):
     176            case \is_int($value) || \is_float($value) || $value instanceof \UnitEnum:
    177177                return \var_export($value, \true);
    178178            case [] === $value:
     
    201201            $code = \sprintf("'%s'", \addcslashes($value, "'\\"));
    202202            $code = \preg_replace_callback('/([\\0\\r\\n]++)(.)/', function ($m) use($subIndent) {
    203                 $m[1] = \sprintf('\'."%s".\'', \str_replace(["\0", "\r", "\n", '\\n\\'], ['\\0', '\\r', '\\n', '\\n"' . "\n" . $subIndent . '."\\'], $m[1]));
     203                $m[1] = \sprintf('\'."%s".\'', \str_replace(["\x00", "\r", "\n", '\\n\\'], ['\\0', '\\r', '\\n', '\\n"' . "\n" . $subIndent . '."\\'], $m[1]));
    204204                if ("'" === $m[2]) {
    205205                    return \substr($m[1], 0, -2);
     
    210210                return $m[1] . $m[2];
    211211            }, $code, -1, $count);
    212             if ($count && 0 === \strpos($code, "''.")) {
     212            if ($count && \str_starts_with($code, "''.")) {
    213213                $code = \substr($code, 3);
    214214            }
     
    266266                }
    267267                if (\is_subclass_of($class, 'Throwable')) {
    268                     $eol = \is_subclass_of($class, 'Error') ? "\0Error\0" : "\0Exception\0";
     268                    $eol = \is_subclass_of($class, 'Error') ? "\x00Error\x00" : "\x00Exception\x00";
    269269                    $serializables[$k] = \substr_replace($serializables[$k], '1:{s:' . (5 + \strlen($eol)) . ':"' . $eol . 'trace";a:0:{}}', -4);
    270270                }
     
    345345                unset($properties[2]);
    346346            }
    347             $properties = [$reflector->class => ["\0" => $properties]];
     347            $properties = [$reflector->class => ["\x00" => $properties]];
    348348        }
    349349        return $properties;
  • astrology/trunk/dependencies/vendor/symfony/var-exporter/Internal/Hydrator.php

    r2513947 r2612549  
    7474                return self::$hydrators[$class] = static function ($properties, $objects) use($constructor) {
    7575                    foreach ($properties as $name => $values) {
    76                         if ("\0" !== $name) {
     76                        if ("\x00" !== $name) {
    7777                            foreach ($values as $i => $v) {
    7878                                $objects[$i]->{$name} = $v;
     
    8080                        }
    8181                    }
    82                     foreach ($properties["\0"] ?? [] as $i => $v) {
     82                    foreach ($properties["\x00"] ?? [] as $i => $v) {
    8383                        $constructor($objects[$i], $v);
    8484                    }
     
    9595                return self::$hydrators[$class] = static function ($properties, $objects) {
    9696                    foreach ($properties as $name => $values) {
    97                         if ("\0" === $name) {
     97                        if ("\x00" === $name) {
    9898                            foreach ($values as $i => $v) {
    9999                                for ($j = 0; $j < \count($v); ++$j) {
  • astrology/trunk/dependencies/vendor/symfony/var-exporter/VarExporter.php

    r2513947 r2612549  
    4141    {
    4242        $isStaticValue = \true;
    43         if (!\is_object($value) && !(\is_array($value) && $value) && !$value instanceof \__PHP_Incomplete_Class && !\is_resource($value)) {
     43        if (!\is_object($value) && !(\is_array($value) && $value) && !$value instanceof \__PHP_Incomplete_Class && !\is_resource($value) || $value instanceof \UnitEnum) {
    4444            return \Prokerala\Astrology\Vendor\Symfony\Component\VarExporter\Internal\Exporter::export($value);
    4545        }
  • astrology/trunk/readme.txt

    r2516408 r2612549  
    33Tags: astrology, prokerala
    44Requires at least: 5.5
    5 Tested up to: 5.7
    6 Stable tag: 1.0.4
     5Tested up to: 5.8.1
     6Stable tag: 1.0.5
    77Requires PHP: 7.2.0
    88License: GPLV2+
     
    117117== Changelog ==
    118118
     119= 1.0.5 =
     120* Location parameters where not being passed correctly
     121* Minor inconsistencies and mistakes in template files
     122* Fix PHP notices
     123
    119124= 1.0.4 =
    120125* Fix php notices
  • astrology/trunk/src/Admin/SettingsPage.php

    r2513947 r2612549  
    9494        $input['client_id']     = trim( $input['client_id'] );
    9595        $input['client_secret'] = trim( $input['client_secret'] );
     96        $input['attribution']   = trim( $input['attribution'] );
    9697
    9798        $this->validate_client( $input['client_id'], $input['client_secret'] );
     
    196197        ?>
    197198        <label>
    198             <input type="checkbox" id="astrology_plugin_setting_attribution" name="astrology_plugin_options[attribution]" <?php echo '1' === (string) $attribution ? 'checked' : ''; ?> value="1" />
    199             Remove <em>Powered by Prokerala</em> attribution.
     199            <input type="checkbox" id="astrology_plugin_setting_attribution" name="astrology_plugin_options[attribution]" <?php echo '1' === (string) $attribution ? 'checked' : ''; ?> value="1" onclick="return this.checked || confirm('Please continue only if you are on our paid plan. Attribution is mandatory on free plan. Hiding attribution on free plan can lead to account suspension and domain blacklisting without further notice.')" />
     200            Show <em>Powered by Prokerala</em> attribution.
    200201        </label>
    201         <p class="help">Attribution is mandatory for free plan.</p>
     202        <p class="help">Attribution is mandatory on free plan. Violation can lead to account suspension and domain blacklisting without further notice.</p>
    202203        <?php
    203204    }
  • astrology/trunk/src/Block.php

    r2513947 r2612549  
    103103                    'report'     => [
    104104                        'default' => 'Chart',
     105                        'type'    => 'string',
    105106                    ],
    106107                    'resultType' => [
    107108                        'default' => '',
     109                        'type'    => 'string',
    108110                    ],
    109111                ],
  • astrology/trunk/src/vendor/autoload.php

    r2516408 r2612549  
    55require_once __DIR__ . '/composer/autoload_real.php';
    66
    7 return ComposerAutoloaderInit97350fc22183ab553e127f2ec2225b7e::getLoader();
     7return ComposerAutoloaderInitd7aac2e4ae75a33ae7be41266749683e::getLoader();
  • astrology/trunk/src/vendor/composer/autoload_real.php

    r2516408 r2612549  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInit97350fc22183ab553e127f2ec2225b7e
     5class ComposerAutoloaderInitd7aac2e4ae75a33ae7be41266749683e
    66{
    77    private static $loader;
     
    2323        }
    2424
    25         spl_autoload_register(array('ComposerAutoloaderInit97350fc22183ab553e127f2ec2225b7e', 'loadClassLoader'), true, true);
     25        spl_autoload_register(array('ComposerAutoloaderInitd7aac2e4ae75a33ae7be41266749683e', 'loadClassLoader'), true, true);
    2626        self::$loader = $loader = new \Prokerala_WP_Astrology_Composer\Autoload\ClassLoader();
    27         spl_autoload_unregister(array('ComposerAutoloaderInit97350fc22183ab553e127f2ec2225b7e', 'loadClassLoader'));
     27        spl_autoload_unregister(array('ComposerAutoloaderInitd7aac2e4ae75a33ae7be41266749683e', 'loadClassLoader'));
    2828
    2929        $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
     
    3131            require_once __DIR__ . '/autoload_static.php';
    3232
    33             call_user_func(\Prokerala_WP_Astrology_Composer\Autoload\ComposerStaticInit97350fc22183ab553e127f2ec2225b7e::getInitializer($loader));
     33            call_user_func(\Prokerala_WP_Astrology_Composer\Autoload\ComposerStaticInitd7aac2e4ae75a33ae7be41266749683e::getInitializer($loader));
    3434        } else {
    3535            $classMap = require __DIR__ . '/autoload_classmap.php';
  • astrology/trunk/src/vendor/composer/autoload_static.php

    r2516408 r2612549  
    55namespace Prokerala_WP_Astrology_Composer\Autoload;
    66
    7 class ComposerStaticInit97350fc22183ab553e127f2ec2225b7e
     7class ComposerStaticInitd7aac2e4ae75a33ae7be41266749683e
    88{
    99    public static $classMap = array (
     
    4141    {
    4242        return \Closure::bind(function () use ($loader) {
    43             $loader->classMap = ComposerStaticInit97350fc22183ab553e127f2ec2225b7e::$classMap;
     43            $loader->classMap = ComposerStaticInitd7aac2e4ae75a33ae7be41266749683e::$classMap;
    4444
    4545        }, null, ClassLoader::class);
  • astrology/trunk/templates/front/form/horoscope-form.tpl.php

    r2513947 r2612549  
    5959    <label class="pk-astrology-col-sm-3 pk-astrology-col-md-4 pk-astrology-form-label">Place Of Birth:</label>
    6060    <div class="pk-astrology-col-sm-9 pk-astrology-col-md-8">
    61         <input type="text" name="location" autocomplete="off" class="pk-astrology-form-control prokerala-location-input" placeholder="Enter Location" value="" required data-location_input_prefix="loc">
     61        <input type="text" name="location" autocomplete="off" class="pk-astrology-form-control prokerala-location-input" placeholder="Enter Location" value="" required>
    6262    </div>
    6363</div>
  • astrology/trunk/templates/front/form/horoscope-matching-form.tpl.php

    r2513947 r2612549  
    6363            <div class="pk-astrology-col-md-8">
    6464                <div id='g-location'>
    65                     <input type='text' id="g-autocomplete" name="girl_location" autocomplete="off" class="pk-astrology-form-control prokerala-location-input" placeholder="Place of birth" value="" required="required" data-location_input_prefix="girl_loc"/>
     65                    <input type='text' id="g-autocomplete" name="girl_location" autocomplete="off" class="pk-astrology-form-control prokerala-location-input" placeholder="Place of birth" value="" required="required" data-location_input_prefix="girl"/>
    6666                </div>
    6767            </div>
     
    8080            <div class="pk-astrology-col-md-8">
    8181                <div id='b-location'>
    82                     <input type='text' id="b-coordinates" name="boy_location" autocomplete="off" class="pk-astrology-form-control prokerala-location-input" placeholder="Place of birth" required="required" data-location_input_prefix="boy_loc"/>
     82                    <input type='text' id="b-coordinates" name="boy_location" autocomplete="off" class="pk-astrology-form-control prokerala-location-input" placeholder="Place of birth" required="required" data-location_input_prefix="boy"/>
    8383                </div>
    8484            </div>
  • astrology/trunk/templates/front/form/panchang-form.tpl.php

    r2513947 r2612549  
    5959    <label class="pk-astrology-col-sm-3 pk-astrology-col-md-4 pk-astrology-form-label">Location:</label>
    6060    <div class="pk-astrology-col-sm-9 pk-astrology-col-md-8">
    61         <input type="text" name="location" autocomplete="off" class="pk-astrology-form-control prokerala-location-input" placeholder="Enter Location" value="" required data-location_input_prefix="loc">
     61        <input type="text" name="location" autocomplete="off" class="pk-astrology-form-control prokerala-location-input" placeholder="Enter Location" value="" required>
    6262    </div>
    6363</div>
  • astrology/trunk/templates/front/result/panchang.tpl.php

    r2513947 r2612549  
    4848
    4949                            <?php if ( 'Nakshatra' === $key ) : ?>
    50                                 (Lord: <?php echo $value['nakshatra_lord']; // phpcs:ignore WordPress.Security.EscapeOutput ?>) :
     50                                (Lord: <?php echo $value['nakshatra_lord']; // phpcs:ignore WordPress.Security.EscapeOutput ?>)
    5151                            <?php endif; ?>
    52                             <?php echo $value['start']->format( 'h:i A' ) . ' - ' . $value['end']->format( 'h:i A' ); // phpcs:ignore WordPress.Security.EscapeOutput ?></span>
     52                            : <?php echo $value['start']->format( 'h:i A' ) . ' - ' . $value['end']->format( 'h:i A' ); // phpcs:ignore WordPress.Security.EscapeOutput ?></span>
    5353                    <?php endforeach; ?>
    5454
Note: See TracChangeset for help on using the changeset viewer.