adapt-authoring-server 0.0.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.eslintignore CHANGED
@@ -1 +1 @@
1
- node_modules
1
+ node_modules
package/.eslintrc CHANGED
@@ -1,14 +1,14 @@
1
- {
2
- "env": {
3
- "browser": false,
4
- "node": true,
5
- "commonjs": false,
6
- "es2020": true
7
- },
8
- "extends": [
9
- "standard"
10
- ],
11
- "parserOptions": {
12
- "ecmaVersion": 2020
13
- }
14
- }
1
+ {
2
+ "env": {
3
+ "browser": false,
4
+ "node": true,
5
+ "commonjs": false,
6
+ "es2020": true
7
+ },
8
+ "extends": [
9
+ "standard"
10
+ ],
11
+ "parserOptions": {
12
+ "ecmaVersion": 2020
13
+ }
14
+ }
@@ -1,55 +1,55 @@
1
- name: Bug Report
2
- description: File a bug report
3
- labels: ["bug"]
4
- body:
5
- - type: markdown
6
- attributes:
7
- value: |
8
- Thanks for taking the time to fill out this bug report!
9
- - type: textarea
10
- id: description
11
- attributes:
12
- label: What happened?
13
- description: Please describe the issue
14
- validations:
15
- required: true
16
- - type: textarea
17
- id: expected
18
- attributes:
19
- label: Expected behaviour
20
- description: Tell us what should have happened
21
- - type: textarea
22
- id: repro-steps
23
- attributes:
24
- label: Steps to reproduce
25
- description: Tell us how to reproduce the issue
26
- validations:
27
- required: true
28
- - type: input
29
- id: aat-version
30
- attributes:
31
- label: Authoring tool version
32
- description: What version of the Adapt authoring tool are you running?
33
- validations:
34
- required: true
35
- - type: input
36
- id: fw-version
37
- attributes:
38
- label: Framework version
39
- description: What version of the Adapt framework are you running?
40
- - type: dropdown
41
- id: browsers
42
- attributes:
43
- label: What browsers are you seeing the problem on?
44
- multiple: true
45
- options:
46
- - Firefox
47
- - Chrome
48
- - Safari
49
- - Microsoft Edge
50
- - type: textarea
51
- id: logs
52
- attributes:
53
- label: Relevant log output
54
- description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
55
- render: sh
1
+ name: Bug Report
2
+ description: File a bug report
3
+ labels: ["bug"]
4
+ body:
5
+ - type: markdown
6
+ attributes:
7
+ value: |
8
+ Thanks for taking the time to fill out this bug report!
9
+ - type: textarea
10
+ id: description
11
+ attributes:
12
+ label: What happened?
13
+ description: Please describe the issue
14
+ validations:
15
+ required: true
16
+ - type: textarea
17
+ id: expected
18
+ attributes:
19
+ label: Expected behaviour
20
+ description: Tell us what should have happened
21
+ - type: textarea
22
+ id: repro-steps
23
+ attributes:
24
+ label: Steps to reproduce
25
+ description: Tell us how to reproduce the issue
26
+ validations:
27
+ required: true
28
+ - type: input
29
+ id: aat-version
30
+ attributes:
31
+ label: Authoring tool version
32
+ description: What version of the Adapt authoring tool are you running?
33
+ validations:
34
+ required: true
35
+ - type: input
36
+ id: fw-version
37
+ attributes:
38
+ label: Framework version
39
+ description: What version of the Adapt framework are you running?
40
+ - type: dropdown
41
+ id: browsers
42
+ attributes:
43
+ label: What browsers are you seeing the problem on?
44
+ multiple: true
45
+ options:
46
+ - Firefox
47
+ - Chrome
48
+ - Safari
49
+ - Microsoft Edge
50
+ - type: textarea
51
+ id: logs
52
+ attributes:
53
+ label: Relevant log output
54
+ description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
55
+ render: sh
@@ -1,22 +1,22 @@
1
- name: Feature request
2
- description: Request a new feature
3
- labels: ["enhancement"]
4
- body:
5
- - type: markdown
6
- attributes:
7
- value: |
8
- Thanks for taking the time to request a new feature in the Adapt authoring tool! The Adapt team will consider all new feature requests, but unfortunately cannot commit to every one.
9
- - type: textarea
10
- id: description
11
- attributes:
12
- label: Feature description
13
- description: Please describe your feature request
14
- validations:
15
- required: true
16
- - type: checkboxes
17
- id: contribute
18
- attributes:
19
- label: Can you work on this feature?
20
- description: If you are able to commit your own time to work on this feature, it will greatly increase the liklihood of it being implemented by the core dev team. Otherwise, it will be triaged and prioritised alongside the core team's current priorities.
21
- options:
22
- - label: I can contribute
1
+ name: Feature request
2
+ description: Request a new feature
3
+ labels: ["enhancement"]
4
+ body:
5
+ - type: markdown
6
+ attributes:
7
+ value: |
8
+ Thanks for taking the time to request a new feature in the Adapt authoring tool! The Adapt team will consider all new feature requests, but unfortunately cannot commit to every one.
9
+ - type: textarea
10
+ id: description
11
+ attributes:
12
+ label: Feature description
13
+ description: Please describe your feature request
14
+ validations:
15
+ required: true
16
+ - type: checkboxes
17
+ id: contribute
18
+ attributes:
19
+ label: Can you work on this feature?
20
+ description: If you are able to commit your own time to work on this feature, it will greatly increase the liklihood of it being implemented by the core dev team. Otherwise, it will be triaged and prioritised alongside the core team's current priorities.
21
+ options:
22
+ - label: I can contribute
@@ -1,11 +1,11 @@
1
- # To get started with Dependabot version updates, you'll need to specify which
2
- # package ecosystems to update and where the package manifests are located.
3
- # Please see the documentation for all configuration options:
4
- # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
5
-
6
- version: 2
7
- updates:
8
- - package-ecosystem: "npm" # See documentation for possible values
9
- directory: "/" # Location of package manifests
10
- schedule:
11
- interval: "weekly"
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: "npm" # See documentation for possible values
9
+ directory: "/" # Location of package manifests
10
+ schedule:
11
+ interval: "weekly"
@@ -1,25 +1,25 @@
1
- [//]: # (Please title your PR according to eslint commit conventions)
2
- [//]: # (See https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-eslint#eslint-convention for details)
3
-
4
- [//]: # (Add a link to the original issue)
5
-
6
- [//]: # (Delete as appropriate)
7
- ### Fix
8
- * A sentence describing each fix
9
-
10
- ### Update
11
- * A sentence describing each udpate
12
-
13
- ### New
14
- * A sentence describing each new feature
15
-
16
- ### Breaking
17
- * A sentence describing each breaking change
18
-
19
- [//]: # (List appropriate steps for testing if needed)
20
- ### Testing
21
- 1. Steps for testing
22
-
23
- [//]: # (Mention any other dependencies)
24
-
25
-
1
+ [//]: # (Please title your PR according to eslint commit conventions)
2
+ [//]: # (See https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-eslint#eslint-convention for details)
3
+
4
+ [//]: # (Add a link to the original issue)
5
+
6
+ [//]: # (Delete as appropriate)
7
+ ### Fix
8
+ * A sentence describing each fix
9
+
10
+ ### Update
11
+ * A sentence describing each udpate
12
+
13
+ ### New
14
+ * A sentence describing each new feature
15
+
16
+ ### Breaking
17
+ * A sentence describing each breaking change
18
+
19
+ [//]: # (List appropriate steps for testing if needed)
20
+ ### Testing
21
+ 1. Steps for testing
22
+
23
+ [//]: # (Mention any other dependencies)
24
+
25
+
@@ -1,19 +1,19 @@
1
- name: Add to main project
2
-
3
- on:
4
- issues:
5
- types:
6
- - opened
7
- pull_request:
8
- types:
9
- - opened
10
-
11
- jobs:
12
- add-to-project:
13
- name: Add to main project
14
- runs-on: ubuntu-latest
15
- steps:
16
- - uses: actions/add-to-project@v0.1.0
17
- with:
18
- project-url: https://github.com/orgs/adapt-security/projects/5
19
- github-token: ${{ secrets.PROJECTS_SECRET }}
1
+ name: Add to main project
2
+
3
+ on:
4
+ issues:
5
+ types:
6
+ - opened
7
+ pull_request:
8
+ types:
9
+ - opened
10
+
11
+ jobs:
12
+ add-to-project:
13
+ name: Add to main project
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/add-to-project@v0.1.0
17
+ with:
18
+ project-url: https://github.com/orgs/adapt-security/projects/5
19
+ github-token: ${{ secrets.PROJECTS_SECRET }}
@@ -0,0 +1,25 @@
1
+ name: Release
2
+ on:
3
+ push:
4
+ branches:
5
+ - master
6
+ jobs:
7
+ release:
8
+ name: Release
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - name: Checkout
12
+ uses: actions/checkout@v3
13
+ with:
14
+ fetch-depth: 0
15
+ - name: Setup Node.js
16
+ uses: actions/setup-node@v3
17
+ with:
18
+ node-version: 'lts/*'
19
+ - name: Install dependencies
20
+ run: npm ci
21
+ - name: Release
22
+ env:
23
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
24
+ NPM_TOKEN: ${{ secrets.AAT_NPM_TOKEN }}
25
+ run: npx semantic-release
@@ -1,8 +1,8 @@
1
- {
2
- "documentation": {
3
- "enable": true,
4
- "manualPages": {
5
- "server-requests.md": "advanced"
6
- }
7
- }
8
- }
1
+ {
2
+ "documentation": {
3
+ "enable": true,
4
+ "manualPages": {
5
+ "server-requests.md": "advanced"
6
+ }
7
+ }
8
+ }
@@ -1,38 +1,38 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "type": "object",
4
- "properties": {
5
- "host": {
6
- "description": "Name of the host machine the server is running from",
7
- "type": "string"
8
- },
9
- "port": {
10
- "description": "Port to be used for listening to incoming connections",
11
- "type": ["number", "string"]
12
- },
13
- "url": {
14
- "description": "URL the server can be accessed from",
15
- "type": "string",
16
- "format": "uri",
17
- "_adapt": {
18
- "isPublic": true
19
- }
20
- },
21
- "trustProxy": {
22
- "description": "Whether to trust the client's x-Forwarded-For header for the request IP address. Only enable if using your own trusted reverse proxy",
23
- "type": ["number", "boolean"],
24
- "default": 0
25
- },
26
- "debugRequestTime": {
27
- "description": "Will log the execution time of each request",
28
- "type": "boolean",
29
- "default": false
30
- },
31
- "verboseErrorLogging": {
32
- "description": "Whether to log errors in their entirety",
33
- "type": "boolean",
34
- "default": false
35
- }
36
- },
37
- "required": ["host", "port", "url"]
38
- }
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "host": {
6
+ "description": "Name of the host machine the server is running from",
7
+ "type": "string"
8
+ },
9
+ "port": {
10
+ "description": "Port to be used for listening to incoming connections",
11
+ "type": ["number", "string"]
12
+ },
13
+ "url": {
14
+ "description": "URL the server can be accessed from",
15
+ "type": "string",
16
+ "format": "uri",
17
+ "_adapt": {
18
+ "isPublic": true
19
+ }
20
+ },
21
+ "trustProxy": {
22
+ "description": "Whether to trust the client's x-Forwarded-For header for the request IP address. Only enable if using your own trusted reverse proxy",
23
+ "type": ["number", "boolean"],
24
+ "default": 0
25
+ },
26
+ "debugRequestTime": {
27
+ "description": "Will log the execution time of each request",
28
+ "type": "boolean",
29
+ "default": false
30
+ },
31
+ "verboseErrorLogging": {
32
+ "description": "Whether to log errors in their entirety",
33
+ "type": "boolean",
34
+ "default": false
35
+ }
36
+ },
37
+ "required": ["host", "port", "url"]
38
+ }
@@ -1,29 +1,29 @@
1
- # Handling server requests
2
- This page gives you some pointers on how to handle incoming requests in a way that will reduce the work needed by you as a developer, and create consistent and easy-to-process responses.
3
-
4
- ## Extend the `AbstractApiModule` class
5
- If you're building a non-trivial API (particularly one that uses the database), we highly recommend that you use `AbstractApiModule` as a base, as this includes a lot of boilerplate code and helper functions to make handling HTTP requests much easier. See [this page](writing-an-api) for more info on using the `AbstractApiModule` class.
6
-
7
- ## Use HTTP status codes
8
- This may go without saying, but please stick to standardised HTTP response codes; they state your intentions and make it nice and easy for other devs to work with and react to.
9
-
10
- See the [Mozilla Developer Network docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status) for a full list of HTTP response status codes and what they mean.
11
-
12
- ## Use the built-in error handler
13
- The Server module adds a `sendError` utility function to the ServerResponse object that's passed to every route handler in the stack. Making use of this in your own code will ensure errors are formatted in a consistent way.
14
-
15
- Using the helper function is as simple as:
16
-
17
- ```js
18
- async myHandler(req, res, next) {
19
- try {
20
- // do some stuff
21
- } catch() {
22
- res.sendError(e);
23
- }
24
- }
25
- ```
26
-
27
- See the Express.js documentation for information on the extra functions available:
28
- - [Request](https://expressjs.com/en/4x/api.html#req)
1
+ # Handling server requests
2
+ This page gives you some pointers on how to handle incoming requests in a way that will reduce the work needed by you as a developer, and create consistent and easy-to-process responses.
3
+
4
+ ## Extend the `AbstractApiModule` class
5
+ If you're building a non-trivial API (particularly one that uses the database), we highly recommend that you use `AbstractApiModule` as a base, as this includes a lot of boilerplate code and helper functions to make handling HTTP requests much easier. See [this page](writing-an-api) for more info on using the `AbstractApiModule` class.
6
+
7
+ ## Use HTTP status codes
8
+ This may go without saying, but please stick to standardised HTTP response codes; they state your intentions and make it nice and easy for other devs to work with and react to.
9
+
10
+ See the [Mozilla Developer Network docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status) for a full list of HTTP response status codes and what they mean.
11
+
12
+ ## Use the built-in error handler
13
+ The Server module adds a `sendError` utility function to the ServerResponse object that's passed to every route handler in the stack. Making use of this in your own code will ensure errors are formatted in a consistent way.
14
+
15
+ Using the helper function is as simple as:
16
+
17
+ ```js
18
+ async myHandler(req, res, next) {
19
+ try {
20
+ // do some stuff
21
+ } catch() {
22
+ res.sendError(e);
23
+ }
24
+ }
25
+ ```
26
+
27
+ See the Express.js documentation for information on the extra functions available:
28
+ - [Request](https://expressjs.com/en/4x/api.html#req)
29
29
  - [Response](https://expressjs.com/en/4x/api.html#res)
@@ -1,24 +1,24 @@
1
- {
2
- "ENDPOINT_NOT_FOUND": {
3
- "data": {
4
- "endpoint": "The missing endpoint",
5
- "method": "The HTTP method"
6
- },
7
- "description": "API endpoint does not exist",
8
- "statusCode": 404
9
- },
10
- "NO_NET_CONN": {
11
- "data": {
12
- "hostname": "The hostname we were trying to reach"
13
- },
14
- "description": "No network connection",
15
- "statusCode": 400
16
- },
17
- "SERVER_START": {
18
- "data": {
19
- "error": "The error"
20
- },
21
- "description": "Failed to start server",
22
- "statusCode": 500
23
- }
1
+ {
2
+ "ENDPOINT_NOT_FOUND": {
3
+ "data": {
4
+ "endpoint": "The missing endpoint",
5
+ "method": "The HTTP method"
6
+ },
7
+ "description": "API endpoint does not exist",
8
+ "statusCode": 404
9
+ },
10
+ "NO_NET_CONN": {
11
+ "data": {
12
+ "hostname": "The hostname we were trying to reach"
13
+ },
14
+ "description": "No network connection",
15
+ "statusCode": 400
16
+ },
17
+ "SERVER_START": {
18
+ "data": {
19
+ "error": "The error"
20
+ },
21
+ "description": "Failed to start server",
22
+ "statusCode": 500
23
+ }
24
24
  }
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
- /**
2
- * HTTP server functionality using Express.js
3
- * @namespace server
4
- */
5
- export { default } from './lib/ServerModule.js'
1
+ /**
2
+ * HTTP server functionality using Express.js
3
+ * @namespace server
4
+ */
5
+ export { default } from './lib/ServerModule.js'