
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
@holochain-syn/text-editor
Advanced tools
A `syn` text editor grammar and editor element, to easily build real-time collaborative text editors in Holochain.
A syn
text editor grammar and editor element, to easily build real-time collaborative text editors in Holochain.
You can use the text-editor and its grammar as the only state in your syn
application, or use it as a subcomponent of a larger state in your application.
import { textEditorGrammar } from '@holochain-syn/text-editor';
import { SynStore } from '@holochain-syn/store';
// ... instantiate the client
const store = new SynStore(client, textEditorGrammar);
import { SynGrammar } from '@syn/store';
import { textEditorGrammar, TextEditorState } from '@holochain-syn/text-editor';
interface DocumentState {
title: string;
body: TextEditorState;
}
type DocumentState =
| {
type: 'SetTitle';
title: string;
}
| {
type: 'TextEditorDelta';
textEditorDelta: TextEditorDelta;
};
type DocumentGrammar = SynGrammar<CounterState, CounterDelta>;
const DocumentGrammar: DocumentGrammar = {
initialState: {
title: '',
body: textEditorGrammar.initialState,
},
applyDelta(
state: CounterState,
delta: CounterDelta,
author: AgentPubKeyB64
): CounterState {
if (delta.type === 'SetTitle') {
return {
title: delta.title,
...state,
};
} else {
return {
body: textEditorGrammar.applyDelta(
state.body,
delta.textEditorDelta,
author
),
...state,
};
}
},
};
import '@holochain-syn/text-editor/dist/elements/syn-markdown-editor.js';
<syn-context>
<syn-markdown-editor id="text-editor"></syn-markdown-editor>
</syn-context>
SynSlice
:import { TextEditorGrammar } from '@holochain-syn/text-editor';
import { derived } from '@holochain-open-dev/stores';
function textEditorSlice(
store: SynStore<DocumentGrammar>
): SynSlice<TextEditorGrammar> {
return {
state: derived(this.sessionStore.state, document => document.body),
requestChanges(deltas: TextEditorDelta[]) {
const documentDeltas = deltas.map(d => ({
type: 'TextEditorDelta',
textEditorDelta: d,
}));
return this.sessionStore.requestChanges(documentDeltas);
},
};
}
const slice = textEditorSlice(store);
// Here you can also pass the slice as an input if you're using any JS framework
document.getElementById('text-editor').synSlice = slice;
FAQs
A `syn` text editor grammar and editor element, to easily build real-time collaborative text editors in Holochain.
The npm package @holochain-syn/text-editor receives a total of 54 weekly downloads. As such, @holochain-syn/text-editor popularity was classified as not popular.
We found that @holochain-syn/text-editor demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.