├── .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 | (): 53 | 54 | 55 | 56 |