{
  "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"
      }
    }
  }
}
