diff --git a/.gitignore b/.gitignore
index e4d93b73..7aa1e5c8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,10 +30,14 @@ lib/**/*.css.shim.ts
lib/**/*.shim.ngstyle.ts
# other
-/dist
+/dist/
/demo/build
.tmp
compiled
-/coverage
+/coverage/
.ghpages-tmp
stats.json
+
+.idea/
+demo/dist/
+demo/releases/
\ No newline at end of file
diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml
new file mode 100644
index 00000000..b8387eb1
--- /dev/null
+++ b/.idea/jsLibraryMappings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 00000000..28a804d8
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/demo/assets b/demo/assets
new file mode 120000
index 00000000..bbd5b9b9
--- /dev/null
+++ b/demo/assets
@@ -0,0 +1 @@
+/var/www/api.facestore.pt/resources/api-specification/assets
\ No newline at end of file
diff --git a/demo/definitions b/demo/definitions
new file mode 120000
index 00000000..a3ac0d2c
--- /dev/null
+++ b/demo/definitions
@@ -0,0 +1 @@
+/var/www/api.facestore.pt/resources/api-specification/definitions
\ No newline at end of file
diff --git a/demo/parameters b/demo/parameters
new file mode 120000
index 00000000..ab60f3b2
--- /dev/null
+++ b/demo/parameters
@@ -0,0 +1 @@
+/var/www/api.facestore.pt/resources/api-specification/parameters
\ No newline at end of file
diff --git a/demo/schema b/demo/schema
new file mode 120000
index 00000000..549deac8
--- /dev/null
+++ b/demo/schema
@@ -0,0 +1 @@
+/var/www/api.facestore.pt/resources/api-specification/schema
\ No newline at end of file
diff --git a/demo/swagger.yaml b/demo/swagger.yaml
deleted file mode 100644
index 126d919c..00000000
--- a/demo/swagger.yaml
+++ /dev/null
@@ -1,848 +0,0 @@
-swagger: '2.0'
-schemes:
- - http
- - https
-host: petstore.swagger.io
-basePath: /v2
-info:
- description: |
- This is a sample server Petstore server.
- You can find out more about Swagger at
- [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/).
- For this sample, you can use the api key `special-key` to test the authorization filters.
- # Introduction
- This API is documented in **OpenAPI format** and is based on
- [Petstore sample](http://petstore.swagger.io/) provided by [swagger.io](http://swagger.io) team.
- It was **extended** to illustrate features of [generator-openapi-repo](https://github.com/Rebilly/generator-openapi-repo)
- tool and [ReDoc](https://github.com/Rebilly/ReDoc) documentation. In addition to standard
- OpenAPI syntax we use a few [vendor extensions](https://github.com/Rebilly/ReDoc/blob/master/docs/redoc-vendor-extensions.md).
- # OpenAPI Specification
- This API is documented in **OpenAPI format** and is based on
- [Petstore sample](http://petstore.swagger.io/) provided by [swagger.io](http://swagger.io) team.
- It was **extended** to illustrate features of [generator-openapi-repo](https://github.com/Rebilly/generator-openapi-repo)
- tool and [ReDoc](https://github.com/Rebilly/ReDoc) documentation. In addition to standard
- OpenAPI syntax we use a few [vendor extensions](https://github.com/Rebilly/ReDoc/blob/master/docs/redoc-vendor-extensions.md).
- # Cross-Origin Resource Sharing
- This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with [W3C spec](https://www.w3.org/TR/cors/).
- And that allows cross-domain communication from the browser.
- All responses have a wildcard same-origin which makes them completely public and accessible to everyone, including any code on any site.
- # Authentication
- Petstore offers two forms of authentication:
- - API Key
- - OAuth2
-
- OAuth2 - an open protocol to allow secure authorization in a simple
- and standard method from web, mobile and desktop applications.
-
- version: 1.0.0
- title: Swagger Petstore
- termsOfService: 'http://swagger.io/terms/'
- contact:
- email: apiteam@swagger.io
- x-logo:
- url: 'https://rebilly.github.io/ReDoc/petstore-logo.png'
- license:
- name: Apache 2.0
- url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
-externalDocs:
- description: Find out how to create Github repo for your OpenAPI spec.
- url: 'https://github.com/Rebilly/generator-openapi-repo'
-tags:
- - name: pet
- description: Everything about your Pets
- - name: store
- description: Access to Petstore orders
- - name: user
- description: Operations about user
-x-tagGroups:
- - name: General
- tags:
- - pet
- - store
- - name: User Management
- tags:
- - user
-securityDefinitions:
- petstore_auth:
- description: |
- Get access to data while protecting your account credentials.
- OAuth2 is also a safer and more secure way to give you access.
- type: oauth2
- authorizationUrl: 'http://petstore.swagger.io/api/oauth/dialog'
- flow: implicit
- scopes:
- 'write:pets': modify pets in your account
- 'read:pets': read your pets
- api_key:
- description: |
- For this sample, you can use the api key `special-key` to test the authorization filters.
- type: apiKey
- name: api_key
- in: header
-paths:
- /pet:
- post:
- tags:
- - pet
- summary: Add a new pet to the store
- description: Add new pet to the store inventory.
- operationId: addPet
- consumes:
- - application/json
- - application/xml
- produces:
- - application/xml
- - application/json
- parameters:
- - in: body
- name: body
- description: Pet object that needs to be added to the store
- required: true
- schema:
- $ref: '#/definitions/Pet'
- responses:
- '405':
- description: Invalid input
- security:
- - petstore_auth:
- - 'write:pets'
- - 'read:pets'
- x-code-samples:
- - lang: 'C#'
- source: |
- PetStore.v1.Pet pet = new PetStore.v1.Pet();
- pet.setApiKey("your api key");
- pet.petType = PetStore.v1.Pet.TYPE_DOG;
- pet.name = "Rex";
- // set other fields
- PetStoreResponse response = pet.create();
- if (response.statusCode == HttpStatusCode.Created)
- {
- // Successfully created
- }
- else
- {
- // Something wrong -- check response for errors
- Console.WriteLine(response.getRawResponse());
- }
- - lang: PHP
- source: "$form = new \\PetStore\\Entities\\Pet();\n$form->setPetType(\"Dog\");\n$form->setName(\"Rex\");\n// set other fields\ntry {\n $pet = $client->pets()->create($form);\n} catch (UnprocessableEntityException $e) {\n var_dump($e->getErrors());\n}\n"
- put:
- tags:
- - pet
- summary: Update an existing pet
- description: ''
- operationId: updatePet
- consumes:
- - application/json
- - application/xml
- produces:
- - application/xml
- - application/json
- parameters:
- - in: body
- name: body
- description: Pet object that needs to be added to the store
- required: true
- schema:
- $ref: '#/definitions/Pet'
- responses:
- '400':
- description: Invalid ID supplied
- '404':
- description: Pet not found
- '405':
- description: Validation exception
- security:
- - petstore_auth:
- - 'write:pets'
- - 'read:pets'
- x-code-samples:
- - lang: PHP
- source: "$form = new \\PetStore\\Entities\\Pet();\n$form->setPetId(1);\n$form->setPetType(\"Dog\");\n$form->setName(\"Rex\");\n// set other fields\ntry {\n $pet = $client->pets()->update($form);\n} catch (UnprocessableEntityException $e) {\n var_dump($e->getErrors());\n}\n"
- '/pet/{petId}':
- get:
- tags:
- - pet
- summary: Find pet by ID
- description: Returns a single pet
- operationId: getPetById
- produces:
- - application/xml
- - application/json
- parameters:
- - name: petId
- in: path
- description: ID of pet to return
- required: true
- type: integer
- format: int64
- responses:
- '200':
- description: successful operation
- schema:
- $ref: '#/definitions/Pet'
- '400':
- description: Invalid ID supplied
- '404':
- description: Pet not found
- security:
- - api_key: []
- post:
- tags:
- - pet
- summary: Updates a pet in the store with form data
- description: ''
- operationId: updatePetWithForm
- consumes:
- - application/x-www-form-urlencoded
- produces:
- - application/xml
- - application/json
- parameters:
- - name: petId
- in: path
- description: ID of pet that needs to be updated
- required: true
- type: integer
- format: int64
- - name: name
- in: formData
- description: Updated name of the pet
- required: false
- type: string
- - name: status
- in: formData
- description: Updated status of the pet
- required: false
- type: string
- responses:
- '405':
- description: Invalid input
- security:
- - petstore_auth:
- - 'write:pets'
- - 'read:pets'
- delete:
- tags:
- - pet
- summary: Deletes a pet
- description: ''
- operationId: deletePet
- produces:
- - application/xml
- - application/json
- parameters:
- - name: api_key
- in: header
- required: false
- type: string
- - name: petId
- in: path
- description: Pet id to delete
- required: true
- type: integer
- format: int64
- responses:
- '400':
- description: Invalid pet value
- security:
- - petstore_auth:
- - 'write:pets'
- - 'read:pets'
- '/pet/{petId}/uploadImage':
- post:
- tags:
- - pet
- summary: uploads an image
- description: ''
- operationId: uploadFile
- consumes:
- - multipart/form-data
- produces:
- - application/json
- parameters:
- - name: petId
- in: path
- description: ID of pet to update
- required: true
- type: integer
- format: int64
- - name: additionalMetadata
- in: formData
- description: Additional data to pass to server
- required: false
- type: string
- - name: file
- in: formData
- description: file to upload
- required: false
- type: file
- responses:
- '200':
- description: successful operation
- schema:
- $ref: '#/definitions/ApiResponse'
- security:
- - petstore_auth:
- - 'write:pets'
- - 'read:pets'
- /pet/findByStatus:
- get:
- tags:
- - pet
- summary: Finds Pets by status
- description: Multiple status values can be provided with comma seperated strings
- operationId: findPetsByStatus
- produces:
- - application/xml
- - application/json
- parameters:
- - name: status
- in: query
- description: Status values that need to be considered for filter
- required: true
- type: array
- items:
- type: string
- enum:
- - available
- - pending
- - sold
- default: available
- collectionFormat: csv
- responses:
- '200':
- description: successful operation
- schema:
- type: array
- items:
- $ref: '#/definitions/Pet'
- '400':
- description: Invalid status value
- security:
- - petstore_auth:
- - 'write:pets'
- - 'read:pets'
- /pet/findByTags:
- get:
- tags:
- - pet
- summary: Finds Pets by tags
- description: 'Muliple tags can be provided with comma seperated strings. Use tag1, tag2, tag3 for testing.'
- operationId: findPetsByTags
- produces:
- - application/xml
- - application/json
- parameters:
- - name: tags
- in: query
- description: Tags to filter by
- required: true
- type: array
- items:
- type: string
- collectionFormat: csv
- responses:
- '200':
- description: successful operation
- schema:
- type: array
- items:
- $ref: '#/definitions/Pet'
- '400':
- description: Invalid tag value
- security:
- - petstore_auth:
- - 'write:pets'
- - 'read:pets'
- /store/inventory:
- get:
- tags:
- - store
- summary: Returns pet inventories by status
- description: Returns a map of status codes to quantities
- operationId: getInventory
- produces:
- - application/json
- parameters: []
- responses:
- '200':
- description: successful operation
- schema:
- type: object
- additionalProperties:
- type: integer
- format: int32
- security:
- - api_key: []
- /store/order:
- post:
- tags:
- - store
- summary: Place an order for a pet
- description: ''
- operationId: placeOrder
- produces:
- - application/xml
- - application/json
- parameters:
- - in: body
- name: body
- description: order placed for purchasing the pet
- required: true
- schema:
- $ref: '#/definitions/Order'
- responses:
- '200':
- description: successful operation
- schema:
- $ref: '#/definitions/Order'
- '400':
- description: Invalid Order
- '/store/order/{orderId}':
- get:
- tags:
- - store
- summary: Find purchase order by ID
- description: 'For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions'
- operationId: getOrderById
- produces:
- - application/xml
- - application/json
- parameters:
- - name: orderId
- in: path
- description: ID of pet that needs to be fetched
- required: true
- type: integer
- maximum: 5
- minimum: 1
- format: int64
- responses:
- '200':
- description: successful operation
- schema:
- $ref: '#/definitions/Order'
- '400':
- description: Invalid ID supplied
- '404':
- description: Order not found
- delete:
- tags:
- - store
- summary: Delete purchase order by ID
- description: For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
- operationId: deleteOrder
- produces:
- - application/xml
- - application/json
- parameters:
- - name: orderId
- in: path
- description: ID of the order that needs to be deleted
- required: true
- type: string
- minimum: 1
- responses:
- '400':
- description: Invalid ID supplied
- '404':
- description: Order not found
- /user:
- post:
- tags:
- - user
- summary: Create user
- description: This can only be done by the logged in user.
- operationId: createUser
- produces:
- - application/xml
- - application/json
- parameters:
- - in: body
- name: body
- description: Created user object
- required: true
- schema:
- $ref: '#/definitions/User'
- responses:
- default:
- description: successful operation
- '/user/{username}':
- get:
- tags:
- - user
- summary: Get user by user name
- description: ''
- operationId: getUserByName
- produces:
- - application/xml
- - application/json
- parameters:
- - name: username
- in: path
- description: 'The name that needs to be fetched. Use user1 for testing. '
- required: true
- type: string
- responses:
- '200':
- description: successful operation
- schema:
- $ref: '#/definitions/User'
- '400':
- description: Invalid username supplied
- '404':
- description: User not found
- put:
- tags:
- - user
- summary: Updated user
- description: This can only be done by the logged in user.
- operationId: updateUser
- produces:
- - application/xml
- - application/json
- parameters:
- - name: username
- in: path
- description: name that need to be deleted
- required: true
- type: string
- - in: body
- name: body
- description: Updated user object
- required: true
- schema:
- $ref: '#/definitions/User'
- responses:
- '400':
- description: Invalid user supplied
- '404':
- description: User not found
- delete:
- tags:
- - user
- summary: Delete user
- description: This can only be done by the logged in user.
- operationId: deleteUser
- produces:
- - application/xml
- - application/json
- parameters:
- - name: username
- in: path
- description: The name that needs to be deleted
- required: true
- type: string
- responses:
- '400':
- description: Invalid username supplied
- '404':
- description: User not found
- /user/createWithArray:
- post:
- tags:
- - user
- summary: Creates list of users with given input array
- description: ''
- operationId: createUsersWithArrayInput
- produces:
- - application/xml
- - application/json
- parameters:
- - in: body
- name: body
- description: List of user object
- required: true
- schema:
- type: array
- items:
- $ref: '#/definitions/User'
- responses:
- default:
- description: successful operation
- /user/createWithList:
- post:
- tags:
- - user
- summary: Creates list of users with given input array
- description: ''
- operationId: createUsersWithListInput
- produces:
- - application/xml
- - application/json
- parameters:
- - in: body
- name: body
- description: List of user object
- required: true
- schema:
- type: array
- items:
- $ref: '#/definitions/User'
- responses:
- default:
- description: successful operation
- /user/login:
- get:
- tags:
- - user
- summary: Logs user into the system
- description: ''
- operationId: loginUser
- produces:
- - application/xml
- - application/json
- parameters:
- - name: username
- in: query
- description: The user name for login
- required: true
- type: string
- - name: password
- in: query
- description: The password for login in clear text
- required: true
- type: string
- responses:
- '200':
- description: successful operation
- schema:
- type: string
- examples:
- application/json: OK
- headers:
- X-Rate-Limit:
- type: integer
- format: int32
- description: calls per hour allowed by the user
- X-Expires-After:
- type: string
- format: date-time
- description: date in UTC when toekn expires
- '400':
- description: Invalid username/password supplied
- /user/logout:
- get:
- tags:
- - user
- summary: Logs out current logged in user session
- description: ''
- operationId: logoutUser
- produces:
- - application/xml
- - application/json
- parameters: []
- responses:
- default:
- description: successful operation
-definitions:
- ApiResponse:
- type: object
- properties:
- code:
- type: integer
- format: int32
- type:
- type: string
- message:
- type: string
- Cat:
- description: A representation of a cat
- allOf:
- - $ref: '#/definitions/Pet'
- - type: object
- properties:
- huntingSkill:
- type: string
- description: The measured skill for hunting
- default: lazy
- enum:
- - clueless
- - lazy
- - adventurous
- - aggressive
- required:
- - huntingSkill
- Category:
- type: object
- properties:
- id:
- description: Category ID
- allOf:
- - $ref: '#/definitions/Id'
- name:
- description: Category name
- type: string
- minLength: 1
- xml:
- name: Category
- Dog:
- description: A representation of a dog
- allOf:
- - $ref: '#/definitions/Pet'
- - type: object
- properties:
- packSize:
- type: integer
- format: int32
- description: The size of the pack the dog is from
- default: 1
- minimum: 1
- required:
- - packSize
- HoneyBee:
- description: A representation of a honey bee
- allOf:
- - $ref: '#/definitions/Pet'
- - type: object
- properties:
- honeyPerDay:
- type: number
- description: Average amount of honey produced per day in ounces
- example: 3.14
- required:
- - honeyPerDay
- Id:
- type: integer
- format: int64
- Order:
- type: object
- properties:
- id:
- description: Order ID
- allOf:
- - $ref: '#/definitions/Id'
- petId:
- description: Pet ID
- allOf:
- - $ref: '#/definitions/Id'
- quantity:
- type: integer
- format: int32
- minimum: 1
- default: 1
- shipDate:
- description: Estimated ship date
- type: string
- format: date-time
- status:
- type: string
- description: Order Status
- enum:
- - placed
- - approved
- - delivered
- complete:
- description: Indicates whenever order was completed or not
- type: boolean
- default: false
- xml:
- name: Order
- Pet:
- type: object
- required:
- - name
- - photoUrls
- discriminator: petType
- properties:
- petType:
- description: Type of a pet
- type: string
- id:
- description: Pet ID
- allOf:
- - $ref: '#/definitions/Id'
- category:
- description: Categories this pet belongs to
- allOf:
- - $ref: '#/definitions/Category'
- name:
- description: The name given to a pet
- type: string
- example: Guru
- photoUrls:
- description: The list of URL to a cute photos featuring pet
- type: array
- xml:
- name: photoUrl
- wrapped: true
- items:
- type: string
- format: url
- tags:
- description: Tags attached to the pet
- type: array
- xml:
- name: tag
- wrapped: true
- items:
- $ref: '#/definitions/Tag'
- status:
- type: string
- description: Pet status in the store
- enum:
- - available
- - pending
- - sold
- xml:
- name: Pet
- Tag:
- type: object
- properties:
- id:
- description: Tag ID
- allOf:
- - $ref: '#/definitions/Id'
- name:
- description: Tag name
- type: string
- minLength: 1
- xml:
- name: Tag
- User:
- type: object
- properties:
- id:
- description: User ID
- $ref: '#/definitions/Id'
- username:
- description: User supplied username
- type: string
- minLength: 4
- example: John78
- firstName:
- description: User first name
- type: string
- minLength: 1
- example: John
- lastName:
- description: User last name
- type: string
- minLength: 1
- example: Smith
- email:
- description: User email address
- type: string
- format: email
- example: john.smith@example.com
- password:
- type: string
- description: 'User password, MUST contain a mix of upper and lower case letters, as well as digits'
- format: password
- minLength: 8
- pattern: '(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])'
- example: drowssaP123
- phone:
- description: User phone number in international format
- type: string
- pattern: "^\\+(?:[0-9]-?){6,14}[0-9]$"
- example: +1-202-555-0192
- x-nullable: true
- userStatus:
- description: User status
- type: integer
- format: int32
- xml:
- name: User
diff --git a/demo/swagger.yaml b/demo/swagger.yaml
new file mode 120000
index 00000000..049ffc87
--- /dev/null
+++ b/demo/swagger.yaml
@@ -0,0 +1 @@
+/var/www/api.facestore.pt/resources/api-specification/swagger.yaml
\ No newline at end of file
diff --git a/lib/components/Redoc/redoc.html b/lib/components/Redoc/redoc.html
index a688d51a..02c918b3 100644
--- a/lib/components/Redoc/redoc.html
+++ b/lib/components/Redoc/redoc.html
@@ -15,12 +15,5 @@
-