{
  "meta": {
    "docsUrl": "https://v2.quasar.dev/quasar-plugins/cookies"
  },

  "injection": "$q.cookies",

  "methods": {
    "get": {
      "tsType": "CookiesGetMethodType",
      "desc": "Get cookie",
      "params": {
        "name": {
          "type": "String",
          "desc": "Cookie name",
          "required": true,
          "examples": [ "'userId'" ]
        }
      },
      "returns": {
        "type": [ "String", "null" ],
        "desc": "Cookie value; Returns null if cookie not found",
        "examples": [ "'john12'" ]
      }
    },

    "getAll": {
      "desc": "Get all cookies",
      "params": null,
      "returns": {
        "type": "Object",
        "desc": "Object with cookie names (as keys) and their values",
        "examples": [ "{ userId: 'john12', XFrame: 'x534' }" ]
      }
    },

    "set": {
      "desc": "Set cookie",
      "params": {
        "name": {
          "type": "String",
          "desc": "Cookie name",
          "required": true,
          "examples": [ "'userId'" ]
        },

        "value": {
          "type": "String",
          "desc": "Cookie value",
          "required": true,
          "examples": [ "'john12'" ]
        },

        "options": {
          "type": "Object",
          "desc": "Cookie options",
          "definition": {
            "expires": {
              "type": [ "Number", "String", "Date" ],
              "desc": "Cookie expires detail; If specified as Number, then the unit is days; If specified as String, it can either be raw stringified date or in Xd Xh Xm Xs format (see examples)",
              "examples": [ "30", "'Wed, 13 Jan 2021 22:23:01 GMT'", "'1d'", "'15m'", "'13d'", "'1d 15m'", "'1d 3h 5m 3s'" ]
            },
            "path": {
              "type": "String",
              "desc": "Cookie path",
              "examples": [ "'/accounts'" ]
            },
            "domain": {
              "type": "String",
              "desc": "Cookie domain",
              "examples": [ "'.foo.com'" ]
            },
            "sameSite": {
              "type": "String",
              "desc": "SameSite cookie option",
              "values": [ "'Lax'", "'Strict'", "'None'" ]
            },
            "httpOnly": {
              "type": "Boolean",
              "desc": "Is cookie Http Only?"
            },
            "secure": {
              "type": "Boolean",
              "desc": "Is cookie secure? (https only)"
            },
            "other": {
              "type": "String",
              "desc": "Raw string for other cookie options; To be used as a last resort for possible newer props that are currently not yet implemented in Quasar",
              "examples": [ "'SomeNewCookieProp'" ]
            }
          }
        }
      },
      "returns": null
    },

    "has": {
      "desc": "Check if cookie exists",
      "params": {
        "name": {
          "type": "String",
          "desc": "Cookie name",
          "required": true,
          "examples": [ "'userId'" ]
        }
      },
      "returns": {
        "type": "Boolean",
        "desc": "Does cookie exists or not?"
      }
    },

    "remove": {
      "desc": "Remove a cookie",
      "params": {
        "name": {
          "type": "String",
          "desc": "Cookie name",
          "required": true,
          "examples": [ "'userId'" ]
        },

        "options": {
          "type": "Object",
          "desc": "Cookie options",
          "definition": {
            "path": {
              "type": "String",
              "desc": "Cookie path",
              "examples": [ "'/accounts'" ]
            },
            "domain": {
              "type": "String",
              "desc": "Cookie domain",
              "examples": [ "'.foo.com'" ]
            }
          }
        }
      },
      "returns": null
    },

    "parseSSR": {
      "desc": "For SSR usage only, and only on the global import (not on $q.cookies)",
      "params": {
        "ssrContext": {
          "type": "Object",
          "desc": "SSR Context Object",
          "required": true
        }
      },
      "returns": {
        "type": "Object",
        "tsType": "Cookies",
        "desc": "Cookie object (like $q.cookies) for SSR usage purposes"
      }
    }
  }
}
