Browse Source

fix(openapi): Update openapi extractor to latest

Signed-off-by: Joas Schilling <coding@schilljs.com>
pull/12780/head
Joas Schilling 1 year ago
parent
commit
e2c013a9a9
No known key found for this signature in database GPG Key ID: C400AAF20C1BB6FC
  1. 172
      openapi-administration.json
  2. 28
      openapi-backend-recording.json
  3. 2
      openapi-backend-signaling.json
  4. 136
      openapi-backend-sipbridge.json
  5. 134
      openapi-bots.json
  6. 150
      openapi-federation.json
  7. 3347
      openapi-full.json
  8. 2777
      openapi.json
  9. 75
      src/types/openapi/openapi-administration.ts
  10. 14
      src/types/openapi/openapi-backend-recording.ts
  11. 66
      src/types/openapi/openapi-backend-sipbridge.ts
  12. 64
      src/types/openapi/openapi-bots.ts
  13. 70
      src/types/openapi/openapi-federation.ts
  14. 1600
      src/types/openapi/openapi-full.ts
  15. 1325
      src/types/openapi/openapi.ts
  16. 11
      vendor-bin/openapi-extractor/composer.lock

172
openapi-administration.json

@ -431,16 +431,26 @@
"basic_auth": []
}
],
"parameters": [
{
"name": "host",
"in": "query",
"description": "Host to check",
"required": true,
"schema": {
"type": "string"
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"host"
],
"properties": {
"host": {
"type": "string",
"description": "Host to check"
}
}
}
}
},
}
},
"parameters": [
{
"name": "apiVersion",
"in": "path",
@ -562,52 +572,46 @@
"basic_auth": []
}
],
"parameters": [
{
"name": "url",
"in": "query",
"description": "Server URL",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "name",
"in": "query",
"description": "Display name of the user",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "email",
"in": "query",
"description": "Email of the user",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "language",
"in": "query",
"description": "Language of the user",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "country",
"in": "query",
"description": "Country of the user",
"required": true,
"schema": {
"type": "string"
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"url",
"name",
"email",
"language",
"country"
],
"properties": {
"url": {
"type": "string",
"description": "Server URL"
},
"name": {
"type": "string",
"description": "Display name of the user"
},
"email": {
"type": "string",
"description": "Email of the user"
},
"language": {
"type": "string",
"description": "Language of the user"
},
"country": {
"type": "string",
"description": "Country of the user"
}
}
}
}
},
}
},
"parameters": [
{
"name": "apiVersion",
"in": "path",
@ -1275,37 +1279,37 @@
"basic_auth": []
}
],
"parameters": [
{
"name": "sipGroups[]",
"in": "query",
"description": "New SIP groups",
"schema": {
"type": "array",
"default": [],
"items": {
"type": "string"
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"sipGroups": {
"type": "array",
"default": [],
"description": "New SIP groups",
"items": {
"type": "string"
}
},
"dialInInfo": {
"type": "string",
"default": "",
"description": "New dial info"
},
"sharedSecret": {
"type": "string",
"default": "",
"description": "New shared secret"
}
}
}
}
},
{
"name": "dialInInfo",
"in": "query",
"description": "New dial info",
"schema": {
"type": "string",
"default": ""
}
},
{
"name": "sharedSecret",
"in": "query",
"description": "New shared secret",
"schema": {
"type": "string",
"default": ""
}
},
}
},
"parameters": [
{
"name": "apiVersion",
"in": "path",
@ -1520,4 +1524,4 @@
}
},
"tags": []
}
}

28
openapi-backend-recording.json

@ -521,16 +521,24 @@
"basic_auth": []
}
],
"parameters": [
{
"name": "owner",
"in": "query",
"description": "User that will own the recording file. `null` is actually not allowed and will always result in a \"400 Bad Request\". It's only allowed code-wise to handle requests where the post data exceeded the limits, so we can return a proper error instead of \"500 Internal Server Error\".",
"schema": {
"type": "string",
"nullable": true
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"owner": {
"type": "string",
"nullable": true,
"description": "User that will own the recording file. `null` is actually not allowed and will always result in a \"400 Bad Request\". It's only allowed code-wise to handle requests where the post data exceeded the limits, so we can return a proper error instead of \"500 Internal Server Error\"."
}
}
}
}
},
}
},
"parameters": [
{
"name": "apiVersion",
"in": "path",
@ -689,4 +697,4 @@
}
},
"tags": []
}
}

2
openapi-backend-signaling.json

@ -423,4 +423,4 @@
}
},
"tags": []
}
}

136
openapi-backend-sipbridge.json

@ -1120,16 +1120,26 @@
"basic_auth": []
}
],
"parameters": [
{
"name": "pin",
"in": "query",
"description": "PIN the participant used to dial-in",
"required": true,
"schema": {
"type": "string"
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"pin"
],
"properties": {
"pin": {
"type": "string",
"description": "PIN the participant used to dial-in"
}
}
}
}
},
}
},
"parameters": [
{
"name": "apiVersion",
"in": "path",
@ -1296,24 +1306,43 @@
"basic_auth": []
}
],
"parameters": [
{
"name": "number",
"in": "query",
"description": "E164 formatted phone number",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "options",
"in": "query",
"description": "Additional details to verify the validity of the request",
"schema": {
"type": "string"
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"number"
],
"properties": {
"number": {
"type": "string",
"description": "E164 formatted phone number"
},
"options": {
"type": "object",
"default": [],
"description": "Additional details to verify the validity of the request",
"properties": {
"actorId": {
"type": "string"
},
"actorType": {
"type": "string"
},
"attendeeId": {
"type": "integer",
"format": "int64"
}
}
}
}
}
}
},
}
},
"parameters": [
{
"name": "apiVersion",
"in": "path",
@ -1647,24 +1676,43 @@
"basic_auth": []
}
],
"parameters": [
{
"name": "callId",
"in": "query",
"description": "The call ID provided by the SIP bridge earlier to uniquely identify the call to terminate",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "options",
"in": "query",
"description": "Additional details to verify the validity of the request",
"schema": {
"type": "string"
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"callId"
],
"properties": {
"callId": {
"type": "string",
"description": "The call ID provided by the SIP bridge earlier to uniquely identify the call to terminate"
},
"options": {
"type": "object",
"default": [],
"description": "Additional details to verify the validity of the request",
"properties": {
"actorId": {
"type": "string"
},
"actorType": {
"type": "string"
},
"attendeeId": {
"type": "integer",
"format": "int64"
}
}
}
}
}
}
},
}
},
"parameters": [
{
"name": "apiVersion",
"in": "path",
@ -1843,4 +1891,4 @@
}
},
"tags": []
}
}

134
openapi-bots.json

@ -288,48 +288,42 @@
"basic_auth": []
}
],
"parameters": [
{
"name": "message",
"in": "query",
"description": "The message to send",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "referenceId",
"in": "query",
"description": "For the message to be able to later identify it again",
"schema": {
"type": "string",
"default": ""
}
},
{
"name": "replyTo",
"in": "query",
"description": "Parent id which this message is a reply to",
"schema": {
"type": "integer",
"format": "int64",
"default": 0
}
},
{
"name": "silent",
"in": "query",
"description": "If sent silent the chat message will not create any notifications",
"schema": {
"type": "integer",
"default": 0,
"enum": [
0,
1
]
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string",
"description": "The message to send"
},
"referenceId": {
"type": "string",
"default": "",
"description": "For the message to be able to later identify it again"
},
"replyTo": {
"type": "integer",
"format": "int64",
"default": 0,
"description": "Parent id which this message is a reply to"
},
"silent": {
"type": "boolean",
"default": false,
"description": "If sent silent the chat message will not create any notifications"
}
}
}
}
},
}
},
"parameters": [
{
"name": "apiVersion",
"in": "path",
@ -495,16 +489,26 @@
"basic_auth": []
}
],
"parameters": [
{
"name": "reaction",
"in": "query",
"description": "Reaction to add",
"required": true,
"schema": {
"type": "string"
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"reaction"
],
"properties": {
"reaction": {
"type": "string",
"description": "Reaction to add"
}
}
}
}
},
}
},
"parameters": [
{
"name": "apiVersion",
"in": "path",
@ -706,16 +710,26 @@
"basic_auth": []
}
],
"parameters": [
{
"name": "reaction",
"in": "query",
"description": "Reaction to delete",
"required": true,
"schema": {
"type": "string"
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"reaction"
],
"properties": {
"reaction": {
"type": "string",
"description": "Reaction to delete"
}
}
}
}
},
}
},
"parameters": [
{
"name": "apiVersion",
"in": "path",
@ -877,4 +891,4 @@
}
},
"tags": []
}
}

150
openapi-federation.json

@ -845,29 +845,31 @@
"basic_auth": []
}
],
"parameters": [
{
"name": "cloudId",
"in": "query",
"description": "Federation CloudID to get the avatar for",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "darkTheme",
"in": "query",
"description": "Theme used for background",
"schema": {
"type": "integer",
"default": 0,
"enum": [
0,
1
]
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"cloudId"
],
"properties": {
"cloudId": {
"type": "string",
"description": "Federation CloudID to get the avatar for"
},
"darkTheme": {
"type": "boolean",
"default": false,
"description": "Theme used for background"
}
}
}
}
},
}
},
"parameters": [
{
"name": "apiVersion",
"in": "path",
@ -935,16 +937,26 @@
"basic_auth": []
}
],
"parameters": [
{
"name": "cloudId",
"in": "query",
"description": "Federation CloudID to get the avatar for",
"required": true,
"schema": {
"type": "string"
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"cloudId"
],
"properties": {
"cloudId": {
"type": "string",
"description": "Federation CloudID to get the avatar for"
}
}
}
}
},
}
},
"parameters": [
{
"name": "apiVersion",
"in": "path",
@ -1013,29 +1025,31 @@
"basic_auth": []
}
],
"parameters": [
{
"name": "cloudId",
"in": "query",
"description": "Federation CloudID to get the avatar for",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "darkTheme",
"in": "query",
"description": "Theme used for background",
"schema": {
"type": "integer",
"default": 0,
"enum": [
0,
1
]
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"cloudId"
],
"properties": {
"cloudId": {
"type": "string",
"description": "Federation CloudID to get the avatar for"
},
"darkTheme": {
"type": "boolean",
"default": false,
"description": "Theme used for background"
}
}
}
}
},
}
},
"parameters": [
{
"name": "apiVersion",
"in": "path",
@ -1113,16 +1127,26 @@
"basic_auth": []
}
],
"parameters": [
{
"name": "cloudId",
"in": "query",
"description": "Federation CloudID to get the avatar for",
"required": true,
"schema": {
"type": "string"
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"cloudId"
],
"properties": {
"cloudId": {
"type": "string",
"description": "Federation CloudID to get the avatar for"
}
}
}
}
},
}
},
"parameters": [
{
"name": "apiVersion",
"in": "path",
@ -1729,4 +1753,4 @@
}
},
"tags": []
}
}

3347
openapi-full.json
File diff suppressed because it is too large
View File

2777
openapi.json
File diff suppressed because it is too large
View File

75
src/types/openapi/openapi-administration.ts

@ -313,10 +313,7 @@ export interface operations {
};
"certificate-get-certificate-expiration": {
parameters: {
query: {
/** @description Host to check */
host: string;
};
query?: never;
header: {
/** @description Required to be true for the API request to pass */
"OCS-APIRequest": boolean;
@ -326,7 +323,14 @@ export interface operations {
};
cookie?: never;
};
requestBody?: never;
requestBody: {
content: {
"application/json": {
/** @description Host to check */
host: string;
};
};
};
responses: {
/** @description Certificate expiration returned */
200: {
@ -365,18 +369,7 @@ export interface operations {
};
"hosted_signaling_server-request-trial": {
parameters: {
query: {
/** @description Server URL */
url: string;
/** @description Display name of the user */
name: string;
/** @description Email of the user */
email: string;
/** @description Language of the user */
language: string;
/** @description Country of the user */
country: string;
};
query?: never;
header: {
/** @description Required to be true for the API request to pass */
"OCS-APIRequest": boolean;
@ -386,7 +379,22 @@ export interface operations {
};
cookie?: never;
};
requestBody?: never;
requestBody: {
content: {
"application/json": {
/** @description Server URL */
url: string;
/** @description Display name of the user */
name: string;
/** @description Email of the user */
email: string;
/** @description Language of the user */
language: string;
/** @description Country of the user */
country: string;
};
};
};
responses: {
/** @description Trial requested successfully */
200: {
@ -651,14 +659,7 @@ export interface operations {
};
"settings-setsip-settings": {
parameters: {
query?: {
/** @description New SIP groups */
"sipGroups[]"?: string[];
/** @description New dial info */
dialInInfo?: string;
/** @description New shared secret */
sharedSecret?: string;
};
query?: never;
header: {
/** @description Required to be true for the API request to pass */
"OCS-APIRequest": boolean;
@ -668,7 +669,27 @@ export interface operations {
};
cookie?: never;
};
requestBody?: never;
requestBody?: {
content: {
"application/json": {
/**
* @description New SIP groups
* @default []
*/
sipGroups?: string[];
/**
* @description New dial info
* @default
*/
dialInInfo?: string;
/**
* @description New shared secret
* @default
*/
sharedSecret?: string;
};
};
};
responses: {
/** @description Successfully set new SIP settings */
200: {

14
src/types/openapi/openapi-backend-recording.ts

@ -207,10 +207,7 @@ export interface operations {
};
"recording-store": {
parameters: {
query?: {
/** @description User that will own the recording file. `null` is actually not allowed and will always result in a "400 Bad Request". It's only allowed code-wise to handle requests where the post data exceeded the limits, so we can return a proper error instead of "500 Internal Server Error". */
owner?: string | null;
};
query?: never;
header: {
/** @description Required to be true for the API request to pass */
"OCS-APIRequest": boolean;
@ -221,7 +218,14 @@ export interface operations {
};
cookie?: never;
};
requestBody?: never;
requestBody?: {
content: {
"application/json": {
/** @description User that will own the recording file. `null` is actually not allowed and will always result in a "400 Bad Request". It's only allowed code-wise to handle requests where the post data exceeded the limits, so we can return a proper error instead of "500 Internal Server Error". */
owner?: string | null;
};
};
};
responses: {
/** @description Recording stored successfully */
200: {

66
src/types/openapi/openapi-backend-sipbridge.ts

@ -478,10 +478,7 @@ export interface operations {
};
"room-verify-dial-in-pin": {
parameters: {
query: {
/** @description PIN the participant used to dial-in */
pin: string;
};
query?: never;
header: {
/** @description Required to be true for the API request to pass */
"OCS-APIRequest": boolean;
@ -492,7 +489,14 @@ export interface operations {
};
cookie?: never;
};
requestBody?: never;
requestBody: {
content: {
"application/json": {
/** @description PIN the participant used to dial-in */
pin: string;
};
};
};
responses: {
/** @description Participant returned */
200: {
@ -554,12 +558,7 @@ export interface operations {
};
"room-verify-dial-out-number": {
parameters: {
query: {
/** @description E164 formatted phone number */
number: string;
/** @description Additional details to verify the validity of the request */
options?: string;
};
query?: never;
header: {
/** @description Required to be true for the API request to pass */
"OCS-APIRequest": boolean;
@ -570,7 +569,24 @@ export interface operations {
};
cookie?: never;
};
requestBody?: never;
requestBody: {
content: {
"application/json": {
/** @description E164 formatted phone number */
number: string;
/**
* @description Additional details to verify the validity of the request
* @default []
*/
options?: {
actorId?: string;
actorType?: string;
/** Format: int64 */
attendeeId?: number;
};
};
};
};
responses: {
/** @description Participant created successfully */
200: {
@ -705,12 +721,7 @@ export interface operations {
};
"room-rejected-dial-out-request": {
parameters: {
query: {
/** @description The call ID provided by the SIP bridge earlier to uniquely identify the call to terminate */
callId: string;
/** @description Additional details to verify the validity of the request */
options?: string;
};
query?: never;
header: {
/** @description Required to be true for the API request to pass */
"OCS-APIRequest": boolean;
@ -721,7 +732,24 @@ export interface operations {
};
cookie?: never;
};
requestBody?: never;
requestBody: {
content: {
"application/json": {
/** @description The call ID provided by the SIP bridge earlier to uniquely identify the call to terminate */
callId: string;
/**
* @description Additional details to verify the validity of the request
* @default []
*/
options?: {
actorId?: string;
actorType?: string;
/** Format: int64 */
attendeeId?: number;
};
};
};
};
responses: {
/** @description Call ID reset */
200: {

64
src/types/openapi/openapi-bots.ts

@ -121,16 +121,7 @@ export type $defs = Record<string, never>;
export interface operations {
"bot-send-message": {
parameters: {
query: {
/** @description The message to send */
message: string;
/** @description For the message to be able to later identify it again */
referenceId?: string;
/** @description Parent id which this message is a reply to */
replyTo?: number;
/** @description If sent silent the chat message will not create any notifications */
silent?: 0 | 1;
};
query?: never;
header: {
/** @description Required to be true for the API request to pass */
"OCS-APIRequest": boolean;
@ -142,7 +133,30 @@ export interface operations {
};
cookie?: never;
};
requestBody?: never;
requestBody: {
content: {
"application/json": {
/** @description The message to send */
message: string;
/**
* @description For the message to be able to later identify it again
* @default
*/
referenceId?: string;
/**
* Format: int64
* @description Parent id which this message is a reply to
* @default 0
*/
replyTo?: number;
/**
* @description If sent silent the chat message will not create any notifications
* @default false
*/
silent?: boolean;
};
};
};
responses: {
/** @description Message sent successfully */
201: {
@ -204,10 +218,7 @@ export interface operations {
};
"bot-react": {
parameters: {
query: {
/** @description Reaction to add */
reaction: string;
};
query?: never;
header: {
/** @description Required to be true for the API request to pass */
"OCS-APIRequest": boolean;
@ -221,7 +232,14 @@ export interface operations {
};
cookie?: never;
};
requestBody?: never;
requestBody: {
content: {
"application/json": {
/** @description Reaction to add */
reaction: string;
};
};
};
responses: {
/** @description Reaction already exists */
200: {
@ -297,10 +315,7 @@ export interface operations {
};
"bot-delete-reaction": {
parameters: {
query: {
/** @description Reaction to delete */
reaction: string;
};
query?: never;
header: {
/** @description Required to be true for the API request to pass */
"OCS-APIRequest": boolean;
@ -314,7 +329,14 @@ export interface operations {
};
cookie?: never;
};
requestBody?: never;
requestBody: {
content: {
"application/json": {
/** @description Reaction to delete */
reaction: string;
};
};
};
responses: {
/** @description Reaction deleted successfully */
200: {

70
src/types/openapi/openapi-federation.ts

@ -385,12 +385,7 @@ export type $defs = Record<string, never>;
export interface operations {
"avatar-get-user-proxy-avatar-without-room": {
parameters: {
query: {
/** @description Federation CloudID to get the avatar for */
cloudId: string;
/** @description Theme used for background */
darkTheme?: 0 | 1;
};
query?: never;
header: {
/** @description Required to be true for the API request to pass */
"OCS-APIRequest": boolean;
@ -402,7 +397,19 @@ export interface operations {
};
cookie?: never;
};
requestBody?: never;
requestBody: {
content: {
"application/json": {
/** @description Federation CloudID to get the avatar for */
cloudId: string;
/**
* @description Theme used for background
* @default false
*/
darkTheme?: boolean;
};
};
};
responses: {
/** @description User avatar returned */
200: {
@ -417,10 +424,7 @@ export interface operations {
};
"avatar-get-user-proxy-avatar-dark-without-room": {
parameters: {
query: {
/** @description Federation CloudID to get the avatar for */
cloudId: string;
};
query?: never;
header: {
/** @description Required to be true for the API request to pass */
"OCS-APIRequest": boolean;
@ -432,7 +436,14 @@ export interface operations {
};
cookie?: never;
};
requestBody?: never;
requestBody: {
content: {
"application/json": {
/** @description Federation CloudID to get the avatar for */
cloudId: string;
};
};
};
responses: {
/** @description User avatar returned */
200: {
@ -447,12 +458,7 @@ export interface operations {
};
"avatar-get-user-proxy-avatar": {
parameters: {
query: {
/** @description Federation CloudID to get the avatar for */
cloudId: string;
/** @description Theme used for background */
darkTheme?: 0 | 1;
};
query?: never;
header: {
/** @description Required to be true for the API request to pass */
"OCS-APIRequest": boolean;
@ -465,7 +471,19 @@ export interface operations {
};
cookie?: never;
};
requestBody?: never;
requestBody: {
content: {
"application/json": {
/** @description Federation CloudID to get the avatar for */
cloudId: string;
/**
* @description Theme used for background
* @default false
*/
darkTheme?: boolean;
};
};
};
responses: {
/** @description User avatar returned */
200: {
@ -480,10 +498,7 @@ export interface operations {
};
"avatar-get-user-proxy-avatar-dark": {
parameters: {
query: {
/** @description Federation CloudID to get the avatar for */
cloudId: string;
};
query?: never;
header: {
/** @description Required to be true for the API request to pass */
"OCS-APIRequest": boolean;
@ -496,7 +511,14 @@ export interface operations {
};
cookie?: never;
};
requestBody?: never;
requestBody: {
content: {
"application/json": {
/** @description Federation CloudID to get the avatar for */
cloudId: string;
};
};
};
responses: {
/** @description User avatar returned */
200: {

1600
src/types/openapi/openapi-full.ts
File diff suppressed because it is too large
View File

1325
src/types/openapi/openapi.ts
File diff suppressed because it is too large
View File

11
vendor-bin/openapi-extractor/composer.lock

@ -83,12 +83,12 @@
"source": {
"type": "git",
"url": "https://github.com/nextcloud/openapi-extractor.git",
"reference": "50acc06715d9ac182e40d31d19aa3e4de517e1da"
"reference": "944c6a64e428705eea138dcfce4e5b95b126448d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nextcloud/openapi-extractor/zipball/50acc06715d9ac182e40d31d19aa3e4de517e1da",
"reference": "50acc06715d9ac182e40d31d19aa3e4de517e1da",
"url": "https://api.github.com/repos/nextcloud/openapi-extractor/zipball/944c6a64e428705eea138dcfce4e5b95b126448d",
"reference": "944c6a64e428705eea138dcfce4e5b95b126448d",
"shasum": ""
},
"require": {
@ -99,7 +99,8 @@
"phpstan/phpdoc-parser": "^1.28"
},
"require-dev": {
"nextcloud/coding-standard": "^1.2"
"nextcloud/coding-standard": "^1.2",
"nextcloud/ocp": "dev-master"
},
"default-branch": true,
"bin": [
@ -130,7 +131,7 @@
"source": "https://github.com/nextcloud/openapi-extractor/tree/main",
"issues": "https://github.com/nextcloud/openapi-extractor/issues"
},
"time": "2024-04-15T07:08:14+00:00"
"time": "2024-07-06T04:06:45+00:00"
},
{
"name": "nikic/php-parser",

Loading…
Cancel
Save