├── .github
├── CHANGELOG.deprecated.md
├── CONTRIBUTING.md
├── ISSUE_TEMPLATE.md
├── PULL_REQUEST_TEMPLATE.md
└── workflows
│ └── npm-deploy.yml
├── .gitignore
├── .husky
└── pre-commit
├── CHANGELOG.md
├── LICENSE
├── README.md
├── configs
├── firebase.json.sample
├── tsconfig.json
├── tsconfig.module.json
├── webpack.config.js
└── webpack.dev.config.js
├── examples
├── README.md
├── firepad-monaco-example.ts
├── firepad-userlist.css
├── firepad-userlist.js
├── index.html
├── monaco.html
├── security
│ ├── README.md
│ ├── secret-url.json
│ └── validate-auth.json
└── userlist.html
├── package.json
├── scripts
└── tag-and-version
├── src
├── client.ts
├── cursor-widget-controller.ts
├── cursor-widget.ts
├── cursor.ts
├── database-adapter.ts
├── editor-adapter.ts
├── editor-client.ts
├── emitter.ts
├── firebase-adapter.ts
├── firepad-classic.ts
├── firepad-monaco.ts
├── firepad.ts
├── firestore-adapter.ts
├── index.ts
├── monaco-adapter.ts
├── operation-meta.ts
├── remote-client.ts
├── text-op.ts
├── text-operation.ts
├── undo-manager.ts
├── utils.ts
└── wrapped-operation.ts
├── test
├── __snapshots__
│ ├── database-adapter.spec.ts.snap
│ └── editor-adapter.spec.ts.snap
├── client.spec.ts
├── cursor.spec.ts
├── database-adapter.spec.ts
├── editor-adapter.spec.ts
├── editor-client.spec.ts
├── emitter.spec.ts
├── factory
│ ├── database-adapter.factory.ts
│ ├── editor-adapter.factory.ts
│ ├── editor-client.factory.ts
│ ├── factory-utils.ts
│ ├── index.ts
│ └── monaco-editor.factory.ts
├── firepad-monaco.spec.ts
├── firepad.spec.ts
├── operation-meta.spec.ts
├── remote-client.spec.ts
├── text-op.spec.ts
├── text-operation.spec.ts
├── undo-manager.spec.ts
└── wrapped-operation.spec.ts
└── yarn.lock
/.github/CHANGELOG.deprecated.md:
--------------------------------------------------------------------------------
1 | # CHANGELOG
2 |
3 | ## v1.5.28 [#22](https://github.com/interviewstreet/firepad-x/pull/22)
4 | ### Fixes -
5 | - More `null` check for cursor before invoking `equals` method.
6 |
7 | ## v1.5.27
8 | ### Fixes -
9 | - Add `null` check for cursor before invoking `equals` method.
10 |
11 | ## v1.5.26 [#21](https://github.com/interviewstreet/firepad-x/pull/21)
12 | ### Fixes -
13 | - Sync Cursor with timeout in case of delayed initialisation.
14 | - Persist Cursor information even after disposition.
15 | - Maintain `sync` state on Cursor in Editor Client.
16 | - Trigger `error` event if a valid Edit Operation transaction fails any reason other than client disconnection.
17 | - Make default options of Firepad Constructor functions to allow lazy evaluation.
18 |
19 | ## v1.5.25 [#20](https://github.com/interviewstreet/firepad-x/pull/20)
20 | ### Fixes -
21 | - Remove Data Type Validation for Operation Actor (`op.a`) so that number can used as User ID.
22 |
23 | ## v1.5.24 [#19](https://github.com/interviewstreet/firepad-x/pull/19)
24 | ### Fixes -
25 | - Send actual operation in strigified version on event-bus for `undo` and `redo` operation.
26 |
27 | ## v1.5.23 [#18](https://github.com/interviewstreet/firepad-x/pull/18)
28 | ### Fixes -
29 | - Stop selecting text after first initialisation. Move cursor to begining after `setText` call.
30 |
31 | ## v1.5.22 [#17](https://github.com/interviewstreet/firepad-x/pull/17)
32 | ### Improvements -
33 | - Added Undo annd Redo event to EditorClient to assign event listener.
34 |
35 | ### Changes -
36 | - Moved Firebase into peer dependency.
37 |
38 | ## v1.5.21 [#16](https://github.com/interviewstreet/firepad-x/pull/16)
39 | ### Fixes -
40 | - Downgrade Firebase to 7.12 to avoid issues with Database.
41 |
42 | ## v1.5.20 [#15](https://github.com/interviewstreet/firepad-x/pull/15)
43 | ### Fixes -
44 | - Model Change Event Handling when no Model Content has changed.
45 |
46 | ### Improvements -
47 | - Move `jsdom` to devDependency of the project.
48 | - Improve build step to optimize output chunk.
49 |
--------------------------------------------------------------------------------
/.github/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing | Firepad
2 |
3 | Thank you for contributing to the Firebase community!
4 |
5 | - [Have a usage question?](#question)
6 | - [Think you found a bug?](#issue)
7 | - [Have a feature request?](#feature)
8 | - [Want to submit a pull request?](#submit)
9 | - [Need to get set up locally?](#local-setup)
10 |
11 | ## Have a usage question?
12 |
13 | We get lots of those and we love helping you, but GitHub is not the best place for them. Issues
14 | which just ask about usage will be closed. Here are some resources to get help:
15 |
16 | - Go through the [documentation](https://firepad.io/docs/)
17 | - Try out some [examples](../examples/README.md)
18 |
19 | If the official documentation doesn't help, try asking a question on the
20 | [Firebase Google Group](https://groups.google.com/forum/#!forum/firebase-talk) or one of our
21 | other [official support channels](https://firebase.google.com/support/).
22 |
23 | **Please avoid double posting across multiple channels!**
24 |
25 | ## Think you found a bug?
26 |
27 | Yeah, we're definitely not perfect!
28 |
29 | Search through [old issues](https://github.com/interviewstreet/firepad-x/issues) before submitting a new
30 | issue as your question may have already been answered.
31 |
32 | If your issue appears to be a bug, and hasn't been reported,
33 | [open a new issue](https://github.com/interviewstreet/firepad-x/issues/new). Please use the provided bug
34 | report template and include a minimal repro.
35 |
36 | If you are up to the challenge, [submit a pull request](#submit) with a fix!
37 |
38 | ## Have a feature request?
39 |
40 | Great, we love hearing how we can improve our products! After making sure someone hasn't already
41 | requested the feature in the [existing issues](https://github.com/interviewstreet/firepad-x/issues), go
42 | ahead and [open a new issue](https://github.com/interviewstreet/firepad-x/issues/new). Feel free to remove
43 | the bug report template and instead provide an explanation of your feature request. Provide code
44 | samples if applicable. Try to think about what it will allow you to do that you can't do today? How
45 | will it make current workarounds straightforward? What potential bugs and edge cases does it help to
46 | avoid?
47 |
48 | ## Want to submit a pull request?
49 |
50 | Sweet, we'd love to accept your contribution! [Open a new pull request](https://github.com/interviewstreet/firepad-x/pull/new/master)
51 | and fill out the provided form.
52 |
53 | **If you want to implement a new feature, please open an issue with a proposal first so that we can
54 | figure out if the feature makes sense and how it will work.**
55 |
56 | Make sure your changes pass our linter and the tests all pass on your local machine. We've hooked
57 | up this repo with continuous integration to double check those things for you.
58 |
59 | Most non-trivial changes should include some extra test coverage. If you aren't sure how to add
60 | tests, feel free to submit regardless and ask us for some advice.
61 |
62 | ## Need to get set up locally?
63 |
64 | If you'd like to contribute to Firepad, you'll need to do the following to get your environment set up.
65 |
66 | ### Install Dependencies
67 |
68 | ```bash
69 | $ git clone https://github.com/interviewstreet/firepad-x.git
70 | $ cd firepad # go to the firepad directory
71 |
72 | $ npm install -g yarn # install yarn globally
73 |
74 | $ yarn # install local npm build / test dependencies
75 | ```
76 |
77 | ### Start Dev Server
78 |
79 | ```bash
80 | $ cp configs/firebase.sample.json configs/firebase.json # copy dummy config file
81 |
82 | $ vi configs/firebase.json # update configuration
83 |
84 | $ yarn start # start webpack server
85 | ```
86 |
87 | ### Lint, Build, and Test
88 |
89 | ```bash
90 | $ yarn lint # run prettier
91 |
92 | $ yarn test # run jest test suites
93 |
94 | $ yarn build # produces output bundles
95 | ```
96 |
97 | ### Output Directories
98 |
99 | 1. `dist` - Single chunk bundle to directly use in Browser in a `
37 |