├── .circleci └── config.yml ├── .editorconfig ├── .github ├── ISSUE_TEMPLATE.md └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── .npmignore ├── .nvmrc ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── build ├── api-docs-publish.ts ├── tsconfig.base.json ├── tsconfig.es2015.json ├── tsconfig.main.json ├── tsconfig.module.json └── webpack.config.js ├── commitlint.config.js ├── e2e.config.json ├── e2e ├── README.md ├── browser │ └── index.html ├── config.ts ├── lib │ ├── common.ts │ ├── dataset.ts │ ├── fileset.ts │ ├── rtc.ts │ ├── ums.ts │ └── utils.ts ├── management.ts ├── resources │ ├── badge-facebook.png │ ├── badge-linkedin.png │ ├── badge-twitter.png │ └── bee-32x32.png ├── stories │ ├── dataset │ │ ├── aggregations.e2e.ts │ │ ├── create-record.e2e.ts │ │ ├── delete-record.e2e.ts │ │ ├── output-record.e2e.ts │ │ ├── select-record.e2e.ts │ │ ├── update-record.e2e.ts │ │ └── validations.e2e.ts │ ├── init │ │ └── init.e2e.ts │ ├── jfs │ │ ├── jfs-delete.e2e.ts │ │ ├── jfs-select.e2e.ts │ │ ├── jfs-update.e2e.ts │ │ └── jfs-upload.e2e.ts │ ├── relations │ │ ├── attach-detach.e2e.ts │ │ └── related.e2e.ts │ ├── rtc │ │ ├── channels.e2e.ts │ │ └── rtc.e2e.ts │ └── ums │ │ ├── ums-crud.e2e.ts │ │ └── ums.e2e.ts └── teardowns.ts ├── package-lock.json ├── package.json ├── scripts └── env-check.js ├── spec ├── filtering.ts ├── queryActionType.ts ├── requestMethod.ts ├── resource.ts ├── rtcHelpers.ts ├── setup.ts ├── testUtils.ts └── token.ts ├── src ├── api │ ├── core │ │ ├── client.spec.ts │ │ ├── client.ts │ │ ├── componentStorage.spec.ts │ │ ├── componentStorage.ts │ │ ├── dispatcher.spec.ts │ │ ├── dispatcher.ts │ │ ├── filteringApi.spec.ts │ │ ├── filteringApi.ts │ │ ├── filteringCondition.spec.ts │ │ ├── filteringCondition.ts │ │ ├── module.ts │ │ ├── queries │ │ │ ├── actionQuery.spec.ts │ │ │ ├── actionQuery.ts │ │ │ ├── baseQuery.spec.ts │ │ │ ├── baseQuery.ts │ │ │ ├── deleteQuery.spec.ts │ │ │ ├── deleteQuery.ts │ │ │ ├── filterableQuery.spec.ts │ │ │ ├── filterableQuery.ts │ │ │ ├── insertQuery.spec.ts │ │ │ ├── insertQuery.ts │ │ │ ├── relatedQuery.ts │ │ │ ├── selectQuery.spec.ts │ │ │ ├── selectQuery.ts │ │ │ ├── updateQuery.spec.ts │ │ │ └── updateQuery.ts │ │ ├── resource.ts │ │ ├── tokenManager.spec.ts │ │ └── tokenManager.ts │ ├── dataops │ │ ├── dataOperationsModule.spec.ts │ │ ├── dataOperationsModule.ts │ │ ├── dataops.tokens.ts │ │ ├── dataset.spec.ts │ │ └── dataset.ts │ ├── fileops │ │ ├── fileOperationsModule.spec.ts │ │ ├── fileOperationsModule.ts │ │ ├── fileUploader.spec.ts │ │ ├── fileUploader.ts │ │ ├── fileops.interfaces.ts │ │ ├── fileset.spec.ts │ │ └── fileset.ts │ ├── logger │ │ ├── logger.spec.ts │ │ ├── logger.ts │ │ ├── loggerModule.spec.ts │ │ ├── loggerModule.ts │ │ └── public-api.ts │ ├── realtime │ │ ├── channel.spec.ts │ │ ├── channel.ts │ │ ├── public-api.ts │ │ ├── realTime.interfaces.ts │ │ ├── realTimeModule.spec.ts │ │ ├── realTimeModule.ts │ │ ├── watch.spec.ts │ │ ├── watch.ts │ │ └── websocket.ts │ └── ums │ │ ├── public-api.ts │ │ ├── ums.functions.spec.ts │ │ ├── ums.functions.ts │ │ ├── ums.types.ts │ │ ├── umsModule.spec.ts │ │ └── umsModule.ts ├── browser.ts ├── config │ ├── config.spec.ts │ ├── config.ts │ ├── index.ts │ └── message.ts ├── index.ts ├── internal │ ├── executer.interfaces.ts │ ├── executer.spec.ts │ ├── executer.ts │ ├── query.spec.ts │ ├── query.ts │ ├── requestAdapter.interfaces.ts │ ├── requestAdapter.spec.ts │ ├── requestAdapter.ts │ └── utils │ │ ├── index.ts │ │ ├── queryActionType.ts │ │ ├── queryParam.spec.ts │ │ ├── queryParam.ts │ │ ├── token.spec.ts │ │ └── token.ts └── node.ts ├── tsconfig.examples.json ├── tsconfig.json └── tslint.json /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | jobs: 3 | test: 4 | docker: 5 | - image: circleci/node:10.20.1 6 | steps: 7 | - checkout 8 | - run: DISABLE_OPENCOLLECTIVE=true 9 | - run: npm install 10 | - run: npm run lint 11 | - run: 12 | name: "Testing" 13 | command: npm run test:ci 14 | environment: 15 | JEST_JUNIT_OUTPUT_DIR: "./test-results/unit-tests" 16 | - store_test_results: 17 | path: test-results 18 | - store_artifacts: 19 | path: test-results 20 | - run: npm run build 21 | deploy: 22 | docker: 23 | - image: circleci/node:10.20.1 24 | steps: 25 | - checkout 26 | - run: DISABLE_OPENCOLLECTIVE=true 27 | - run: npm install 28 | - run: npm run build 29 | - run: npm run semantic-release 30 | 31 | workflows: 32 | version: 2 33 | test-n-deploy: 34 | jobs: 35 | - test 36 | - deploy: 37 | requires: 38 | - test 39 | filters: 40 | branches: 41 | only: master 42 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # http://editorconfig.org 4 | 5 | root = true 6 | 7 | [*] 8 | 9 | # Change these settings to your own preference 10 | indent_style = space 11 | indent_size = 2 12 | 13 | # We recommend you to keep these unchanged 14 | end_of_line = lf 15 | charset = utf-8 16 | trim_trailing_whitespace = true 17 | insert_final_newline = true 18 | 19 | [*.md] 20 | trim_trailing_whitespace = false 21 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | ## I'm submitting a ... 8 | 9 | 10 | 11 |
12 | [ ] Regression (behavior that used to work and stopped working in a new release)
13 | [ ] Bug report
14 | [ ] Feature request
15 | [ ] Documentation issue or request
16 |
17 |
18 | ## Current behavior
19 |
20 |
21 |
22 | ## Expected behavior
23 |
24 |
25 |
26 | ## Minimal reproduction of the problem with instructions
27 |
28 |
32 |
33 | ## What is the motivation / use case for changing the behavior?
34 |
35 |
36 |
37 | ## Please tell us about your environment
38 |
39 |
40 | SDK version: X.Y.Z
41 |
42 |
43 | Execution Platform Error:
44 |
45 | - [ ] NodeJS version XX
46 | - [ ] Chrome (desktop) version XX
47 | - [ ] Chrome (Android) version XX
48 | - [ ] Chrome (iOS) version XX
49 | - [ ] Firefox version XX
50 | - [ ] Safari (desktop) version XX
51 | - [ ] Safari (iOS) version XX
52 | - [ ] IE version XX
53 | - [ ] Edge version XX
54 |
55 | Operation System:
56 |
57 |
58 | Others:
59 |
60 |
61 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | ## PR Checklist
2 |
3 |
4 |
5 | Please check if your PR fulfills the following requirements:
6 |
7 | - [ ] The commit message follows [our conventions](../CONTRIBUTING.md#commit-message-format)
8 | - [ ] Tests for the changes have been added (for bug fixes / features)
9 | - [ ] Docs have been added / updated (for bug fixes / features)
10 |
11 | ## PR Type
12 |
13 | What kind of change does this PR introduce?
14 |
15 |
16 | ```
17 | [ ] Bugfix
18 | [ ] Feature
19 | [ ] Code style update (formatting, local variables)
20 | [ ] Refactoring (no functional changes, no api changes)
21 | [ ] Build related changes
22 | [ ] CI related changes
23 | [ ] Documentation content changes
24 | [ ] Other... Please describe:
25 | ```
26 |
27 | ## What is the current behavior?
28 |
29 |
30 |
31 | Issue Number: N/A
32 |
33 | ## What is the new behavior?
34 |
35 | ## Does this PR introduce a breaking change?
36 |
37 | ```
38 | [ ] Yes
39 | [ ] No
40 | ```
41 |
42 |
43 |
44 | ## Other information
45 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 |
6 | #Typescript typedef files
7 | typings
8 |
9 | #Distribution files
10 | dist
11 |
12 | #Generated documentation
13 | docs
14 |
15 | # Runtime data
16 | pids
17 | .temp
18 | *.pid
19 | *.seed
20 |
21 | # Tools
22 | lib-cov
23 | coverage
24 | .nyc_output
25 | junit.xml
26 | .idea/
27 | .vscode/
28 |
29 | # node-waf configuration
30 | .lock-wscript
31 |
32 | # Dependency directories
33 | node_modules
34 | jspm_packages
35 |
36 | # Optional npm cache directory
37 | .npm
38 |
39 | # Optional REPL history
40 | .node_repl_history
41 |
42 | # IDE files
43 | .idea
44 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jexia/jexia-sdk-js/a65cb641d3a275f2ca5c449553d8e54d308d2147/.npmignore
--------------------------------------------------------------------------------
/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.16
2 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as
6 | contributors and maintainers pledge to making participation in our project and
7 | our community a harassment-free experience for everyone, regardless of age, body
8 | size, disability, ethnicity, gender identity and expression, level of experience,
9 | nationality, personal appearance, race, religion, or sexual identity and
10 | orientation.
11 |
12 | ## Our Standards
13 |
14 | Examples of behavior that contributes to creating a positive environment
15 | include:
16 |
17 | * Using welcoming and inclusive language
18 | * Being respectful of differing viewpoints and experiences
19 | * Gracefully accepting constructive criticism
20 | * Focusing on what is best for the community
21 | * Showing empathy towards other community members
22 |
23 | Examples of unacceptable behavior by participants include:
24 |
25 | * The use of sexualized language or imagery and unwelcome sexual attention or advances
26 | * Trolling, insulting/derogatory comments, and personal or political attacks
27 | * Public or private harassment
28 | * Publishing others' private information, such as a physical or electronic
29 | address, without explicit permission
30 | * Other conduct which could reasonably be considered inappropriate in a
31 | professional setting
32 |
33 | ## Our Responsibilities
34 |
35 | Project maintainers are responsible for clarifying the standards of acceptable
36 | behavior and are expected to take appropriate and fair corrective action in
37 | response to any instances of unacceptable behavior.
38 |
39 | Project maintainers have the right and responsibility to remove, edit, or
40 | reject comments, commits, code, wiki edits, issues, and other contributions
41 | that are not aligned to this Code of Conduct, or to ban temporarily or
42 | permanently any contributor for other behaviors that they deem inappropriate,
43 | threatening, offensive, or harmful.
44 |
45 | ## Scope
46 |
47 | This Code of Conduct applies both within project spaces and in public spaces
48 | when an individual is representing the project or its community. Examples of
49 | representing a project or community include using an official project e-mail
50 | address, posting via an official social media account, or acting as an appointed
51 | representative at an online or offline event. Representation of a project may be
52 | further defined and clarified by project maintainers.
53 |
54 | ## Enforcement
55 |
56 | If you spot or experience unacceptable behaviour or if you have any questions
57 | about our code of conduct, please report this by sending an email to community@jexia.com.
58 | The Code of Conduct Team will review and investigate all reports issued.
59 | They will respond in a way they deem appropriate to the issue. They will handle every
60 | issue with confidentiality with regard to the reporter of an incident.
61 | Community members who do not follow or enforce the code of conduct may be expelled
62 | temporary or permanently as so decided by the Code of Conduct Team.
63 | We will protect victims of abuse as much as we can.
64 |
65 | In your report please add following: your contact information; names
66 | (real, nicknames, or pseudonyms) of any individuals involved.
67 | If there are additional witnesses, please include them as well.
68 | Your account of what occurred, and if you believe the incident is ongoing.
69 | Any additional information that may be helpful.
70 |
71 | ## Attribution
72 |
73 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
74 | available at [http://contributor-covenant.org/version/1/4][version]
75 |
76 | [homepage]: http://contributor-covenant.org
77 | [version]: http://contributor-covenant.org/version/1/4/
78 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contribution Guide
2 |
3 | [First please read and abide by the Code of Conduct](https://github.com/jexia/jexia-sdk-js/blob/master/CODE_OF_CONDUCT.md).
4 |
5 | ## Environment
6 |
7 | Everything you need is a stable version of Node.JS (v8+).
8 |
9 | ## Coding Style Guidelines
10 |
11 | The source code is written in [TypeScript](http://www.typescriptlang.org/) using strict compilation mode and all the ES2017 features. We are following the [TSLint](https://github.com/palantir/tslint) and [Editorconfig](http://editorconfig.org/) rules listed at their config files. We strongly recommend to use a code editor with good support for these tools (we recommend [VSCode](https://code.visualstudio.com/)), so that it is easy to integrate new code into our code base.
12 |
13 | ## First Run
14 |
15 | After cloning the project and installing the dependencies with `npm install` you should be able start coding.
16 |
17 | You can double check if the local environment is fully working by running the tests with `npm test` and building the project with `npm run build`.
18 |
19 | ## Main Development Commands
20 |
21 | Execute unit tests and check coverage:
22 |
23 | - `npm test`
24 |
25 | Execute unit tests in watch mode for TDD purposes:
26 |
27 | - `npm run tdd`
28 |
29 | Lint Typescript code:
30 |
31 | - `npm run lint`
32 |
33 | Commit convention helper (see related topic below):
34 |
35 | - `npm run commit`
36 |
37 | Generate API reference documentation locally:
38 |
39 | - `npm run docs`
40 |
41 | Build the project locally:
42 |
43 | - `npm run build`
44 |
45 | ## Commit Message Format
46 |
47 | This repository follows a strict **Commit Message Conventions**, which leads to more readable messages that are easy to follow when looking through the project history. Also, we use the git commit messages to generate the change log, calculate the new version number and automatically publish new versions to NPM. For these purposes, we are using [Semantic Release](https://github.com/semantic-release/semantic-release). We have a helper script `npm run commit` that provides a command line based wizard for easy commit message formatting.
48 |
49 | Each commit message consists of a **header**, a **body** and a **footer**. The header has a special format that includes a **type**, a **scope** and a **subject**:
50 |
51 | ```
52 |