New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@tinymce/tinymce-react

Package Overview
Dependencies
Maintainers
2
Versions
367
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@tinymce/tinymce-react - npm Package Compare versions

Comparing version 4.2.1-rc.20230104063049196.sha4c95085 to 4.3.0-feature.20230117041154908.sha5f8c58a

lib/cjs/main/ts/ScriptLoader2.d.ts

7

CHANGELOG.md

@@ -8,2 +8,9 @@ # Change log

## Unreleased
### Added
- Added `block` setting to `scriptLoading` prop to stop adding script tags when no `tinymce` global is available.
- Added events `onScriptsLoad` and `onScriptsLoadError` for the loading of the script tags when no `tinymce` global is available.
### Changed
- Changed `tinymceScriptSrc` prop so it can now accept an array of scripts to make hybrid mode easier to use.
### Fixed

@@ -10,0 +17,0 @@ - Updated CI library to latest

13

lib/cjs/main/ts/components/Editor.d.ts

@@ -1,10 +0,4 @@

/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
import * as React from 'react';
import { IEvents } from '../Events';
import { ScriptItem } from '../ScriptLoader2';
import { IEditorPropTypes } from './EditorPropTypes';

@@ -30,5 +24,6 @@ import { Editor as TinyMCEEditor, TinyMCE } from 'tinymce';

textareaName: string;
tinymceScriptSrc: string;
tinymceScriptSrc: string | string[] | ScriptItem[];
rollback: number | false;
scriptLoading: {
block?: boolean;
async?: boolean;

@@ -65,3 +60,3 @@ defer?: boolean;

private renderIframe;
private getScriptSrc;
private getScriptSources;
private getInitialValue;

@@ -68,0 +63,0 @@ private bindHandlers;

"use strict";
/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
var __extends = (this && this.__extends) || (function () {

@@ -38,3 +31,3 @@ var extendStatics = function (d, b) {

var React = require("react");
var ScriptLoader_1 = require("../ScriptLoader");
var ScriptLoader2_1 = require("../ScriptLoader2");
var TinyMCE_1 = require("../TinyMCE");

@@ -254,2 +247,3 @@ var Utils_1 = require("../Utils");

Editor.prototype.componentDidMount = function () {
var _this = this;
var _a, _b, _c, _d, _e, _f;

@@ -259,5 +253,17 @@ if ((0, TinyMCE_1.getTinymce)(this.view) !== null) {

}
else if (this.elementRef.current && this.elementRef.current.ownerDocument) {
ScriptLoader_1.ScriptLoader.load(this.elementRef.current.ownerDocument, this.getScriptSrc(), (_b = (_a = this.props.scriptLoading) === null || _a === void 0 ? void 0 : _a.async) !== null && _b !== void 0 ? _b : false, (_d = (_c = this.props.scriptLoading) === null || _c === void 0 ? void 0 : _c.defer) !== null && _d !== void 0 ? _d : false, (_f = (_e = this.props.scriptLoading) === null || _e === void 0 ? void 0 : _e.delay) !== null && _f !== void 0 ? _f : 0, this.initialise);
else if ((_a = this.props.scriptLoading) === null || _a === void 0 ? void 0 : _a.block) {
(_c = (_b = this.props).onScriptsLoadError) === null || _c === void 0 ? void 0 : _c.call(_b, new Error('No `tinymce` global is present but `scriptLoading.block` is `true`.'));
}
else if ((_d = this.elementRef.current) === null || _d === void 0 ? void 0 : _d.ownerDocument) {
var successHandler = function () {
var _a, _b;
(_b = (_a = _this.props).onScriptsLoad) === null || _b === void 0 ? void 0 : _b.call(_a);
_this.initialise();
};
var errorHandler = function (err) {
var _a, _b;
(_b = (_a = _this.props).onScriptsLoadError) === null || _b === void 0 ? void 0 : _b.call(_a, err);
};
ScriptLoader2_1.ScriptLoader.loadList(this.elementRef.current.ownerDocument, this.getScriptSources(), (_f = (_e = this.props.scriptLoading) === null || _e === void 0 ? void 0 : _e.delay) !== null && _f !== void 0 ? _f : 0, successHandler, errorHandler);
}
};

@@ -309,11 +315,27 @@ Editor.prototype.componentWillUnmount = function () {

};
Editor.prototype.getScriptSrc = function () {
if (typeof this.props.tinymceScriptSrc === 'string') {
return this.props.tinymceScriptSrc;
Editor.prototype.getScriptSources = function () {
var _a, _b;
var async = (_a = this.props.scriptLoading) === null || _a === void 0 ? void 0 : _a.async;
var defer = (_b = this.props.scriptLoading) === null || _b === void 0 ? void 0 : _b.defer;
if (this.props.tinymceScriptSrc !== undefined) {
if (typeof this.props.tinymceScriptSrc === 'string') {
return [{ src: this.props.tinymceScriptSrc, async: async, defer: defer }];
}
// multiple scripts can be specified which allows for hybrid mode
return this.props.tinymceScriptSrc.map(function (item) {
if (typeof item === 'string') {
// async does not make sense for multiple items unless
// they are not dependent (which will be unlikely)
return { src: item, async: async, defer: defer };
}
else {
return item;
}
});
}
else {
var channel = this.props.cloudChannel;
var apiKey = this.props.apiKey ? this.props.apiKey : 'no-api-key';
return "https://cdn.tiny.cloud/1/".concat(apiKey, "/tinymce/").concat(channel, "/tinymce.min.js");
}
// fallback to the cloud when the tinymceScriptSrc is not specified
var channel = this.props.cloudChannel;
var apiKey = this.props.apiKey ? this.props.apiKey : 'no-api-key';
var cloudTinyJs = "https://cdn.tiny.cloud/1/".concat(apiKey, "/tinymce/").concat(channel, "/tinymce.min.js");
return [{ src: cloudTinyJs, async: async, defer: defer }];
};

@@ -320,0 +342,0 @@ Editor.prototype.getInitialValue = function () {

@@ -1,8 +0,1 @@

/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
import * as PropTypes from 'prop-types';

@@ -9,0 +2,0 @@ import { IEvents } from '../Events';

"use strict";
/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
var __assign = (this && this.__assign) || function () {

@@ -93,4 +86,15 @@ __assign = Object.assign || function(t) {

onLanguageLoadError: PropTypes.func,
onScriptsLoad: PropTypes.func,
onScriptsLoadError: PropTypes.func,
};
exports.EditorPropTypes = __assign({ apiKey: PropTypes.string, id: PropTypes.string, inline: PropTypes.bool, init: PropTypes.object, initialValue: PropTypes.string, onEditorChange: PropTypes.func, value: PropTypes.string, tagName: PropTypes.string, cloudChannel: PropTypes.string, plugins: PropTypes.oneOfType([PropTypes.string, PropTypes.array]), toolbar: PropTypes.oneOfType([PropTypes.string, PropTypes.array]), disabled: PropTypes.bool, textareaName: PropTypes.string, tinymceScriptSrc: PropTypes.string, rollback: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf([false])]), scriptLoading: PropTypes.shape({
exports.EditorPropTypes = __assign({ apiKey: PropTypes.string, id: PropTypes.string, inline: PropTypes.bool, init: PropTypes.object, initialValue: PropTypes.string, onEditorChange: PropTypes.func, value: PropTypes.string, tagName: PropTypes.string, cloudChannel: PropTypes.string, plugins: PropTypes.oneOfType([PropTypes.string, PropTypes.array]), toolbar: PropTypes.oneOfType([PropTypes.string, PropTypes.array]), disabled: PropTypes.bool, textareaName: PropTypes.string, tinymceScriptSrc: PropTypes.oneOfType([
PropTypes.string,
PropTypes.arrayOf(PropTypes.string),
PropTypes.arrayOf(PropTypes.shape({
src: PropTypes.string,
async: PropTypes.bool,
defer: PropTypes.bool
}))
]), rollback: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf([false])]), scriptLoading: PropTypes.shape({
block: PropTypes.bool,
async: PropTypes.bool,

@@ -97,0 +101,0 @@ defer: PropTypes.bool,

@@ -1,8 +0,1 @@

/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
import { Editor as TinyMCEEditor, EditorEvent, Events } from 'tinymce';

@@ -83,2 +76,4 @@ export type EventHandler<A> = (a: EditorEvent<A>, editor: TinyMCEEditor) => unknown;

onLanguageLoadError: EEventHandler<'LanguageLoadError'>;
onScriptsLoad: () => void;
onScriptsLoadError: (err: unknown) => void;
}

@@ -85,0 +80,0 @@ export interface IEvents extends INativeEvents, ITinyEvents {

"use strict";
/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
Object.defineProperty(exports, "__esModule", { value: true });

@@ -1,9 +0,2 @@

/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
import { Editor, IAllProps } from './components/Editor';
export { Editor, IAllProps };
"use strict";
/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
Object.defineProperty(exports, "__esModule", { value: true });

@@ -10,0 +3,0 @@ exports.Editor = void 0;

@@ -1,10 +0,3 @@

/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
import { TinyMCE as TinyMCEGlobal } from 'tinymce';
declare const getTinymce: (view: Window) => TinyMCEGlobal | null;
export { getTinymce };
"use strict";
/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
Object.defineProperty(exports, "__esModule", { value: true });

@@ -10,0 +3,0 @@ exports.getTinymce = void 0;

@@ -1,8 +0,1 @@

/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
import { IEventPropTypes } from './components/EditorPropTypes';

@@ -9,0 +2,0 @@ import { IAllProps } from './components/Editor';

"use strict";
/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
Object.defineProperty(exports, "__esModule", { value: true });

@@ -10,0 +3,0 @@ exports.setMode = exports.isInDoc = exports.isBeforeInputEventAvailable = exports.mergePlugins = exports.isTextareaOrInput = exports.uuid = exports.configHandlers = exports.configHandlers2 = exports.isFunction = void 0;

@@ -1,10 +0,4 @@

/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
import * as React from 'react';
import { IEvents } from '../Events';
import { ScriptItem } from '../ScriptLoader2';
import { IEditorPropTypes } from './EditorPropTypes';

@@ -30,5 +24,6 @@ import { Editor as TinyMCEEditor, TinyMCE } from 'tinymce';

textareaName: string;
tinymceScriptSrc: string;
tinymceScriptSrc: string | string[] | ScriptItem[];
rollback: number | false;
scriptLoading: {
block?: boolean;
async?: boolean;

@@ -65,3 +60,3 @@ defer?: boolean;

private renderIframe;
private getScriptSrc;
private getScriptSources;
private getInitialValue;

@@ -68,0 +63,0 @@ private bindHandlers;

@@ -1,8 +0,1 @@

/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
var __extends = (this && this.__extends) || (function () {

@@ -35,3 +28,3 @@ var extendStatics = function (d, b) {

import * as React from 'react';
import { ScriptLoader } from '../ScriptLoader';
import { ScriptLoader } from '../ScriptLoader2';
import { getTinymce } from '../TinyMCE';

@@ -251,2 +244,3 @@ import { isFunction, isTextareaOrInput, mergePlugins, uuid, configHandlers, isBeforeInputEventAvailable, isInDoc, setMode } from '../Utils';

Editor.prototype.componentDidMount = function () {
var _this = this;
var _a, _b, _c, _d, _e, _f;

@@ -256,5 +250,17 @@ if (getTinymce(this.view) !== null) {

}
else if (this.elementRef.current && this.elementRef.current.ownerDocument) {
ScriptLoader.load(this.elementRef.current.ownerDocument, this.getScriptSrc(), (_b = (_a = this.props.scriptLoading) === null || _a === void 0 ? void 0 : _a.async) !== null && _b !== void 0 ? _b : false, (_d = (_c = this.props.scriptLoading) === null || _c === void 0 ? void 0 : _c.defer) !== null && _d !== void 0 ? _d : false, (_f = (_e = this.props.scriptLoading) === null || _e === void 0 ? void 0 : _e.delay) !== null && _f !== void 0 ? _f : 0, this.initialise);
else if ((_a = this.props.scriptLoading) === null || _a === void 0 ? void 0 : _a.block) {
(_c = (_b = this.props).onScriptsLoadError) === null || _c === void 0 ? void 0 : _c.call(_b, new Error('No `tinymce` global is present but `scriptLoading.block` is `true`.'));
}
else if ((_d = this.elementRef.current) === null || _d === void 0 ? void 0 : _d.ownerDocument) {
var successHandler = function () {
var _a, _b;
(_b = (_a = _this.props).onScriptsLoad) === null || _b === void 0 ? void 0 : _b.call(_a);
_this.initialise();
};
var errorHandler = function (err) {
var _a, _b;
(_b = (_a = _this.props).onScriptsLoadError) === null || _b === void 0 ? void 0 : _b.call(_a, err);
};
ScriptLoader.loadList(this.elementRef.current.ownerDocument, this.getScriptSources(), (_f = (_e = this.props.scriptLoading) === null || _e === void 0 ? void 0 : _e.delay) !== null && _f !== void 0 ? _f : 0, successHandler, errorHandler);
}
};

@@ -306,11 +312,27 @@ Editor.prototype.componentWillUnmount = function () {

};
Editor.prototype.getScriptSrc = function () {
if (typeof this.props.tinymceScriptSrc === 'string') {
return this.props.tinymceScriptSrc;
Editor.prototype.getScriptSources = function () {
var _a, _b;
var async = (_a = this.props.scriptLoading) === null || _a === void 0 ? void 0 : _a.async;
var defer = (_b = this.props.scriptLoading) === null || _b === void 0 ? void 0 : _b.defer;
if (this.props.tinymceScriptSrc !== undefined) {
if (typeof this.props.tinymceScriptSrc === 'string') {
return [{ src: this.props.tinymceScriptSrc, async: async, defer: defer }];
}
// multiple scripts can be specified which allows for hybrid mode
return this.props.tinymceScriptSrc.map(function (item) {
if (typeof item === 'string') {
// async does not make sense for multiple items unless
// they are not dependent (which will be unlikely)
return { src: item, async: async, defer: defer };
}
else {
return item;
}
});
}
else {
var channel = this.props.cloudChannel;
var apiKey = this.props.apiKey ? this.props.apiKey : 'no-api-key';
return "https://cdn.tiny.cloud/1/".concat(apiKey, "/tinymce/").concat(channel, "/tinymce.min.js");
}
// fallback to the cloud when the tinymceScriptSrc is not specified
var channel = this.props.cloudChannel;
var apiKey = this.props.apiKey ? this.props.apiKey : 'no-api-key';
var cloudTinyJs = "https://cdn.tiny.cloud/1/".concat(apiKey, "/tinymce/").concat(channel, "/tinymce.min.js");
return [{ src: cloudTinyJs, async: async, defer: defer }];
};

@@ -317,0 +339,0 @@ Editor.prototype.getInitialValue = function () {

@@ -1,8 +0,1 @@

/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
import * as PropTypes from 'prop-types';

@@ -9,0 +2,0 @@ import { IEvents } from '../Events';

@@ -1,8 +0,1 @@

/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
var __assign = (this && this.__assign) || function () {

@@ -90,4 +83,15 @@ __assign = Object.assign || function(t) {

onLanguageLoadError: PropTypes.func,
onScriptsLoad: PropTypes.func,
onScriptsLoadError: PropTypes.func,
};
export var EditorPropTypes = __assign({ apiKey: PropTypes.string, id: PropTypes.string, inline: PropTypes.bool, init: PropTypes.object, initialValue: PropTypes.string, onEditorChange: PropTypes.func, value: PropTypes.string, tagName: PropTypes.string, cloudChannel: PropTypes.string, plugins: PropTypes.oneOfType([PropTypes.string, PropTypes.array]), toolbar: PropTypes.oneOfType([PropTypes.string, PropTypes.array]), disabled: PropTypes.bool, textareaName: PropTypes.string, tinymceScriptSrc: PropTypes.string, rollback: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf([false])]), scriptLoading: PropTypes.shape({
export var EditorPropTypes = __assign({ apiKey: PropTypes.string, id: PropTypes.string, inline: PropTypes.bool, init: PropTypes.object, initialValue: PropTypes.string, onEditorChange: PropTypes.func, value: PropTypes.string, tagName: PropTypes.string, cloudChannel: PropTypes.string, plugins: PropTypes.oneOfType([PropTypes.string, PropTypes.array]), toolbar: PropTypes.oneOfType([PropTypes.string, PropTypes.array]), disabled: PropTypes.bool, textareaName: PropTypes.string, tinymceScriptSrc: PropTypes.oneOfType([
PropTypes.string,
PropTypes.arrayOf(PropTypes.string),
PropTypes.arrayOf(PropTypes.shape({
src: PropTypes.string,
async: PropTypes.bool,
defer: PropTypes.bool
}))
]), rollback: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf([false])]), scriptLoading: PropTypes.shape({
block: PropTypes.bool,
async: PropTypes.bool,

@@ -94,0 +98,0 @@ defer: PropTypes.bool,

@@ -1,8 +0,1 @@

/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
import { Editor as TinyMCEEditor, EditorEvent, Events } from 'tinymce';

@@ -83,2 +76,4 @@ export type EventHandler<A> = (a: EditorEvent<A>, editor: TinyMCEEditor) => unknown;

onLanguageLoadError: EEventHandler<'LanguageLoadError'>;
onScriptsLoad: () => void;
onScriptsLoadError: (err: unknown) => void;
}

@@ -85,0 +80,0 @@ export interface IEvents extends INativeEvents, ITinyEvents {

@@ -1,8 +0,1 @@

/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
export {};

@@ -1,9 +0,2 @@

/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
import { Editor, IAllProps } from './components/Editor';
export { Editor, IAllProps };

@@ -1,9 +0,2 @@

/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
import { Editor } from './components/Editor';
export { Editor };

@@ -1,10 +0,3 @@

/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
import { TinyMCE as TinyMCEGlobal } from 'tinymce';
declare const getTinymce: (view: Window) => TinyMCEGlobal | null;
export { getTinymce };

@@ -1,8 +0,1 @@

/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
var getTinymce = function (view) {

@@ -9,0 +2,0 @@ var global = view;

@@ -1,8 +0,1 @@

/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
import { IEventPropTypes } from './components/EditorPropTypes';

@@ -9,0 +2,0 @@ import { IAllProps } from './components/Editor';

@@ -1,8 +0,1 @@

/**
* Copyright (c) 2017-present, Ephox, Inc.
*
* This source code is licensed under the Apache 2 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
import { eventPropTypes } from './components/EditorPropTypes';

@@ -9,0 +2,0 @@ export var isFunction = function (x) { return typeof x === 'function'; };

@@ -37,3 +37,3 @@ {

"devDependencies": {
"@babel/core": "^7.20.5",
"@babel/core": "^7.20.12",
"@ephox/agar": "^7.3.1",

@@ -46,8 +46,8 @@ "@ephox/bedrock-client": "^13.0.0",

"@ephox/sugar": "^9.1.3",
"@storybook/addon-actions": "^6.5.14",
"@storybook/addon-essentials": "^6.5.14",
"@storybook/addon-links": "^6.5.14",
"@storybook/builder-webpack5": "^6.5.14",
"@storybook/manager-webpack5": "^6.5.14",
"@storybook/react": "^6.5.14",
"@storybook/addon-actions": "^6.5.15",
"@storybook/addon-essentials": "^6.5.15",
"@storybook/addon-links": "^6.5.15",
"@storybook/builder-webpack5": "^6.5.15",
"@storybook/manager-webpack5": "^6.5.15",
"@storybook/react": "^6.5.15",
"@storybook/storybook-deployer": "^2.8.16",

@@ -57,13 +57,13 @@ "@tinymce/beehive-flow": "^0.19.0",

"@tinymce/miniature": "^5.0.1",
"@types/node": "^18.11.13",
"@types/node": "^18.11.18",
"@types/prop-types": "^15.7.5",
"@types/react": "^18.0.26",
"@types/react-dom": "^18.0.9",
"@types/react-dom": "^18.0.10",
"awesome-typescript-loader": "^5.2.1",
"babel-loader": "^9.1.0",
"core-js": "^3.26.1",
"babel-loader": "^9.1.2",
"core-js": "^3.27.1",
"raf": "^3.4.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"rimraf": "^3.0.2",
"rimraf": "^4.1.0",
"tinymce-4": "npm:tinymce@^4",

@@ -76,4 +76,4 @@ "tinymce-5": "npm:tinymce@^5",

},
"version": "4.2.1-rc.20230104063049196.sha4c95085",
"version": "4.3.0-feature.20230117041154908.sha5f8c58a",
"name": "@tinymce/tinymce-react"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc