v8: license fixes ;)
This commit is contained in:
parent
54c2f15194
commit
28a554ccde
2
plugins/licensekeymanager/index.js
Normal file
2
plugins/licensekeymanager/index.js
Normal file
@ -0,0 +1,2 @@
|
||||
require('./plugin.js');
|
||||
require('./js/commerciallicensekeymanager.js');
|
||||
2
plugins/licensekeymanager/index.mjs
Normal file
2
plugins/licensekeymanager/index.mjs
Normal file
@ -0,0 +1,2 @@
|
||||
import './plugin.js';
|
||||
import './js/commerciallicensekeymanager.js';
|
||||
21763
plugins/licensekeymanager/js/commerciallicensekeymanager.js
Normal file
21763
plugins/licensekeymanager/js/commerciallicensekeymanager.js
Normal file
File diff suppressed because it is too large
Load Diff
25
plugins/licensekeymanager/js/commerciallicensekeymanager.min.js
vendored
Normal file
25
plugins/licensekeymanager/js/commerciallicensekeymanager.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
936
plugins/licensekeymanager/plugin.js
Normal file
936
plugins/licensekeymanager/plugin.js
Normal file
@ -0,0 +1,936 @@
|
||||
/*!
|
||||
* Tiny Commercial License Key Manager
|
||||
*
|
||||
* Copyright (c) 2025 Ephox Corporation DBA Tiny Technologies, Inc.
|
||||
* Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/
|
||||
*
|
||||
* Version: 8.3.0-112
|
||||
*/
|
||||
(function () {
|
||||
"use strict";
|
||||
|
||||
const e = Object.getPrototypeOf;
|
||||
const r = (e, r, t) => !!t(e, r.prototype) || e.constructor?.name === r.name;
|
||||
const t = (e) => (t) =>
|
||||
((e) => {
|
||||
const t = typeof e;
|
||||
if (e === null) {
|
||||
return "null";
|
||||
} else if (t === "object" && Array.isArray(e)) {
|
||||
return "array";
|
||||
} else if (t === "object" && r(e, String, (e, r) => r.isPrototypeOf(e))) {
|
||||
return "string";
|
||||
} else {
|
||||
return t;
|
||||
}
|
||||
})(t) === e;
|
||||
const n = (e) => (r) => typeof r === e;
|
||||
const o = t("string");
|
||||
const s = t("object");
|
||||
const a = (t) => ((t, n) => s(t) && r(t, n, (r, t) => e(r) === t))(t, Object);
|
||||
const i = n("boolean");
|
||||
const l = (e) => e == null;
|
||||
const c = (e) => !l(e);
|
||||
const u = n("function");
|
||||
const y = n("number");
|
||||
const d = () => {};
|
||||
const g = (e) => () => e;
|
||||
const p = (e) => e;
|
||||
const h = (e) => e();
|
||||
const m = g(false);
|
||||
const v = g(true);
|
||||
class f {
|
||||
tag;
|
||||
value;
|
||||
static singletonNone = new f(false);
|
||||
constructor(e, r) {
|
||||
this.tag = e;
|
||||
this.value = r;
|
||||
}
|
||||
static some(e) {
|
||||
return new f(true, e);
|
||||
}
|
||||
static none() {
|
||||
return f.singletonNone;
|
||||
}
|
||||
fold(e, r) {
|
||||
if (this.tag) {
|
||||
return r(this.value);
|
||||
} else {
|
||||
return e();
|
||||
}
|
||||
}
|
||||
isSome() {
|
||||
return this.tag;
|
||||
}
|
||||
isNone() {
|
||||
return !this.tag;
|
||||
}
|
||||
map(e) {
|
||||
if (this.tag) {
|
||||
return f.some(e(this.value));
|
||||
} else {
|
||||
return f.none();
|
||||
}
|
||||
}
|
||||
bind(e) {
|
||||
if (this.tag) {
|
||||
return e(this.value);
|
||||
} else {
|
||||
return f.none();
|
||||
}
|
||||
}
|
||||
exists(e) {
|
||||
return this.tag && e(this.value);
|
||||
}
|
||||
forall(e) {
|
||||
return !this.tag || e(this.value);
|
||||
}
|
||||
filter(e) {
|
||||
if (!this.tag || e(this.value)) {
|
||||
return this;
|
||||
} else {
|
||||
return f.none();
|
||||
}
|
||||
}
|
||||
getOr(e) {
|
||||
if (this.tag) {
|
||||
return this.value;
|
||||
} else {
|
||||
return e;
|
||||
}
|
||||
}
|
||||
or(e) {
|
||||
if (this.tag) {
|
||||
return this;
|
||||
} else {
|
||||
return e;
|
||||
}
|
||||
}
|
||||
getOrThunk(e) {
|
||||
if (this.tag) {
|
||||
return this.value;
|
||||
} else {
|
||||
return e();
|
||||
}
|
||||
}
|
||||
orThunk(e) {
|
||||
if (this.tag) {
|
||||
return this;
|
||||
} else {
|
||||
return e();
|
||||
}
|
||||
}
|
||||
getOrDie(e) {
|
||||
if (this.tag) {
|
||||
return this.value;
|
||||
}
|
||||
throw new Error(e ?? "Called getOrDie on None");
|
||||
}
|
||||
static from(e) {
|
||||
if (c(e)) {
|
||||
return f.some(e);
|
||||
} else {
|
||||
return f.none();
|
||||
}
|
||||
}
|
||||
getOrNull() {
|
||||
if (this.tag) {
|
||||
return this.value;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
getOrUndefined() {
|
||||
return this.value;
|
||||
}
|
||||
each(e) {
|
||||
if (this.tag) {
|
||||
e(this.value);
|
||||
}
|
||||
}
|
||||
toArray() {
|
||||
if (this.tag) {
|
||||
return [this.value];
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
toString() {
|
||||
if (this.tag) {
|
||||
return `some(${this.value})`;
|
||||
} else {
|
||||
return "none()";
|
||||
}
|
||||
}
|
||||
}
|
||||
const k = Array.prototype.indexOf;
|
||||
const b = Object.keys;
|
||||
const w = Object.hasOwnProperty;
|
||||
const O = (e, r) => (_(e, r) ? f.from(e[r]) : f.none());
|
||||
const _ = (e, r) => w.call(e, r);
|
||||
const T = (e) => {
|
||||
const r = (r) => r(e);
|
||||
const t = g(e);
|
||||
const n = () => o;
|
||||
const o = {
|
||||
tag: true,
|
||||
inner: e,
|
||||
fold: (r, t) => t(e),
|
||||
isValue: v,
|
||||
isError: m,
|
||||
map: (r) => K.value(r(e)),
|
||||
mapError: n,
|
||||
bind: r,
|
||||
exists: r,
|
||||
forall: r,
|
||||
getOr: t,
|
||||
or: n,
|
||||
getOrThunk: t,
|
||||
orThunk: n,
|
||||
getOrDie: t,
|
||||
each: (r) => {
|
||||
r(e);
|
||||
},
|
||||
toOptional: () => f.some(e),
|
||||
};
|
||||
return o;
|
||||
};
|
||||
const $ = (e) => {
|
||||
const r = () => t;
|
||||
const t = {
|
||||
tag: false,
|
||||
inner: e,
|
||||
fold: (r, t) => r(e),
|
||||
isValue: m,
|
||||
isError: v,
|
||||
map: r,
|
||||
mapError: (r) => K.error(r(e)),
|
||||
bind: r,
|
||||
exists: m,
|
||||
forall: v,
|
||||
getOr: p,
|
||||
or: p,
|
||||
getOrThunk: h,
|
||||
orThunk: h,
|
||||
getOrDie:
|
||||
((n = String(e)),
|
||||
() => {
|
||||
throw new Error(n);
|
||||
}),
|
||||
each: d,
|
||||
toOptional: f.none,
|
||||
};
|
||||
var n;
|
||||
return t;
|
||||
};
|
||||
const K = {
|
||||
value: T,
|
||||
error: $,
|
||||
fromOption: (e, r) => e.fold(() => $(r), T),
|
||||
};
|
||||
E = (e, r) => (a(e) && a(r) ? j(e, r) : r);
|
||||
const j = (...e) => {
|
||||
if (e.length === 0) {
|
||||
throw new Error("Can't merge zero objects");
|
||||
}
|
||||
const r = {};
|
||||
for (let t = 0; t < e.length; t++) {
|
||||
const n = e[t];
|
||||
for (const e in n) {
|
||||
if (_(n, e)) {
|
||||
r[e] = E(r[e], n[e]);
|
||||
}
|
||||
}
|
||||
}
|
||||
return r;
|
||||
};
|
||||
var E;
|
||||
const S = (e, r) => {
|
||||
const { type: t, message: n } = r;
|
||||
e.notificationManager.open({
|
||||
type: t,
|
||||
text: n,
|
||||
});
|
||||
};
|
||||
const C = (e, r) => {
|
||||
const { console: t, editor: n } = r;
|
||||
if (c(n)) {
|
||||
if (e._skinLoaded) {
|
||||
S(e, n);
|
||||
} else {
|
||||
e.on("SkinLoaded", () => {
|
||||
S(e, n);
|
||||
});
|
||||
}
|
||||
}
|
||||
if (c(t)) {
|
||||
((e) => {
|
||||
((e) => {
|
||||
switch (e) {
|
||||
case "error":
|
||||
return console.error;
|
||||
case "info":
|
||||
return console.info;
|
||||
case "warn":
|
||||
return console.warn;
|
||||
default:
|
||||
return console.log;
|
||||
}
|
||||
})(e.type)(e.message);
|
||||
})(t);
|
||||
}
|
||||
};
|
||||
const M = (e) => parseInt(e, 10);
|
||||
const x = (e, r) => {
|
||||
const t = e - r;
|
||||
if (t === 0) {
|
||||
return 0;
|
||||
} else if (t > 0) {
|
||||
return 1;
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
};
|
||||
const P = (e, r, t) => ({
|
||||
major: e,
|
||||
minor: r,
|
||||
patch: t,
|
||||
});
|
||||
const A = (e) => {
|
||||
const r = /([0-9]+)\.([0-9]+)\.([0-9]+)(?:(\-.+)?)/.exec(e);
|
||||
if (r) {
|
||||
return P(M(r[1]), M(r[2]), M(r[3]));
|
||||
} else {
|
||||
return P(0, 0, 0);
|
||||
}
|
||||
};
|
||||
const N = (e, r) =>
|
||||
!!e &&
|
||||
((e, r) => {
|
||||
const t = x(e.major, r.major);
|
||||
if (t !== 0) {
|
||||
return t;
|
||||
}
|
||||
const n = x(e.minor, r.minor);
|
||||
if (n !== 0) {
|
||||
return n;
|
||||
}
|
||||
const o = x(e.patch, r.patch);
|
||||
if (o !== 0) {
|
||||
return o;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
})(
|
||||
((e) =>
|
||||
A(
|
||||
((e) =>
|
||||
[e.majorVersion, e.minorVersion]
|
||||
.join(".")
|
||||
.split(".")
|
||||
.slice(0, 3)
|
||||
.join("."))(e),
|
||||
))(e),
|
||||
A(r),
|
||||
) === -1;
|
||||
const V = A("8.3.0");
|
||||
const I = `${V.major}.${V.minor}.0`;
|
||||
const U = `${V.major + 1}.0.0`;
|
||||
const q = new WeakMap();
|
||||
const D = (e) => {};
|
||||
const R = (e, r = true) =>
|
||||
`${e}${r ? " Read more: https://www.tiny.cloud/docs/tinymce/latest/license-key/" : ""}`;
|
||||
const z = (e, r, t, n) => {
|
||||
const o = c(n) ? `, status: ${n}` : "";
|
||||
if (r === "fallback") {
|
||||
C(e, {
|
||||
console: {
|
||||
type: "warn",
|
||||
message: R(
|
||||
`The API key could not be validated by the API key validation server [type: ${t}${o}]. Attempting fallback to provided license key.`,
|
||||
),
|
||||
},
|
||||
});
|
||||
} else {
|
||||
const r =
|
||||
"The editor is disabled because the API key could not be validated by the API key validation server";
|
||||
C(e, {
|
||||
console: {
|
||||
type: "error",
|
||||
message: R(`${r} [type: ${t}${o}].`),
|
||||
},
|
||||
editor: {
|
||||
type: "warning",
|
||||
message: `${r}.`,
|
||||
},
|
||||
});
|
||||
}
|
||||
};
|
||||
const L = (e) => (r) => r.options.get(e);
|
||||
const F = L("license_key");
|
||||
const W = L("online_license_key");
|
||||
var J;
|
||||
(function (e) {
|
||||
e[(e.Error = 0)] = "Error";
|
||||
e[(e.Value = 1)] = "Value";
|
||||
})((J ||= {}));
|
||||
const B = (e, r, t) => (e.stype === J.Error ? r(e.serror) : t(e.svalue));
|
||||
const G = (e) => ({
|
||||
stype: J.Value,
|
||||
svalue: e,
|
||||
});
|
||||
const H = (e) => ({
|
||||
stype: J.Error,
|
||||
serror: e,
|
||||
});
|
||||
const Q = B;
|
||||
const X = (e, r) =>
|
||||
H([
|
||||
{
|
||||
path: e,
|
||||
getErrorInfo: r,
|
||||
},
|
||||
]);
|
||||
const Y = (e) => ({
|
||||
extract: (r, t) => {
|
||||
o = (e) => ((e, r) => X(e, g(r)))(r, e);
|
||||
if ((n = e(t)).stype === J.Error) {
|
||||
return o(n.serror);
|
||||
} else {
|
||||
return n;
|
||||
}
|
||||
var n;
|
||||
var o;
|
||||
},
|
||||
toString: g("val"),
|
||||
});
|
||||
const Z = (e, r) =>
|
||||
Y((t) => {
|
||||
const n = typeof t;
|
||||
if (e(t)) {
|
||||
return G(t);
|
||||
} else {
|
||||
return H(`Expected type: ${r} but got: ${n}`);
|
||||
}
|
||||
});
|
||||
const ee = Z(y, "number");
|
||||
const re = Z(o, "string");
|
||||
const te = Z(i, "boolean");
|
||||
const ne = (e, r, t) => {
|
||||
switch (e.tag) {
|
||||
case "field":
|
||||
return r(e.key, e.newKey, e.presence, e.prop);
|
||||
case "custom":
|
||||
return t(e.newKey, e.instantiator);
|
||||
}
|
||||
};
|
||||
const oe = (e, r, t, n) => n(O(e, r).getOrThunk(() => t(e)));
|
||||
const se = (e, r, t, n, o) => {
|
||||
const a = (e) => o.extract(r.concat([n]), e);
|
||||
const i = (e) =>
|
||||
e.fold(
|
||||
() => G(f.none()),
|
||||
(e) => {
|
||||
t = o.extract(r.concat([n]), e);
|
||||
s = f.some;
|
||||
if (t.stype === J.Value) {
|
||||
return {
|
||||
stype: J.Value,
|
||||
svalue: s(t.svalue),
|
||||
};
|
||||
} else {
|
||||
return t;
|
||||
}
|
||||
var t;
|
||||
var s;
|
||||
},
|
||||
);
|
||||
switch (e.tag) {
|
||||
case "required":
|
||||
return ((e, r, t, n) =>
|
||||
O(r, t).fold(
|
||||
() =>
|
||||
((e, r, t) =>
|
||||
X(e, () => {
|
||||
return (
|
||||
'Could not find valid *required* value for "' +
|
||||
r +
|
||||
'" in ' +
|
||||
(s((e = t)) && b(e).length > 100
|
||||
? " removed due to size"
|
||||
: JSON.stringify(e, null, 2))
|
||||
);
|
||||
var e;
|
||||
}))(e, t, r),
|
||||
n,
|
||||
))(r, t, n, a);
|
||||
case "defaultedThunk":
|
||||
return oe(t, n, e.process, a);
|
||||
case "option":
|
||||
return ((e, r, t) => t(O(e, r)))(t, n, i);
|
||||
case "defaultedOptionThunk":
|
||||
return ((e, r, t, n) => n(O(e, r).map((r) => (r === true ? t(e) : r))))(
|
||||
t,
|
||||
n,
|
||||
e.process,
|
||||
i,
|
||||
);
|
||||
case "mergeWithThunk":
|
||||
return oe(t, n, g({}), (r) => {
|
||||
const n = j(e.process(t), r);
|
||||
return a(n);
|
||||
});
|
||||
}
|
||||
};
|
||||
const ae = (e) => ({
|
||||
extract: (r, t) =>
|
||||
((e, r, t) => {
|
||||
const n = {};
|
||||
const o = [];
|
||||
for (const s of t) {
|
||||
ne(
|
||||
s,
|
||||
(t, s, a, i) => {
|
||||
const l = se(a, e, r, t, i);
|
||||
Q(
|
||||
l,
|
||||
(e) => {
|
||||
o.push(...e);
|
||||
},
|
||||
(e) => {
|
||||
n[s] = e;
|
||||
},
|
||||
);
|
||||
},
|
||||
(e, t) => {
|
||||
n[e] = t(r);
|
||||
},
|
||||
);
|
||||
}
|
||||
if (o.length > 0) {
|
||||
return H(o);
|
||||
} else {
|
||||
return G(n);
|
||||
}
|
||||
})(r, t, e),
|
||||
toString: () => {
|
||||
const r = ((e, r) => {
|
||||
const t = e.length;
|
||||
const n = new Array(t);
|
||||
for (let o = 0; o < t; o++) {
|
||||
const t = e[o];
|
||||
n[o] = r(t);
|
||||
}
|
||||
return n;
|
||||
})(e, (e) =>
|
||||
ne(
|
||||
e,
|
||||
(e, r, t, n) => e + " -> " + n.toString(),
|
||||
(e, r) => "state(" + e + ")",
|
||||
),
|
||||
);
|
||||
return "obj{\n" + r.join("\n") + "}";
|
||||
},
|
||||
});
|
||||
const ie = (e, r, t) => {
|
||||
n = ((e, r, t) =>
|
||||
((e) =>
|
||||
e.stype === J.Error
|
||||
? {
|
||||
stype: J.Error,
|
||||
serror: ((e) => ({
|
||||
input: t,
|
||||
errors: e,
|
||||
}))(e.serror),
|
||||
}
|
||||
: e)(r.extract([e], t)))(e, r, t);
|
||||
return B(n, K.error, K.value);
|
||||
var n;
|
||||
};
|
||||
const le = (e, r, t, n) => ({
|
||||
tag: "field",
|
||||
key: e,
|
||||
newKey: r,
|
||||
presence: t,
|
||||
prop: n,
|
||||
});
|
||||
const ce = (e, r) =>
|
||||
le(
|
||||
e,
|
||||
e,
|
||||
{
|
||||
tag: "required",
|
||||
process: {},
|
||||
},
|
||||
r,
|
||||
);
|
||||
const ue = (e) => ce(e, re);
|
||||
const ye = (e) => ce(e, te);
|
||||
const de = (e, r) =>
|
||||
((e, r) =>
|
||||
le(
|
||||
e,
|
||||
e,
|
||||
{
|
||||
tag: "option",
|
||||
process: {},
|
||||
},
|
||||
r,
|
||||
))(e, ae(r));
|
||||
const ge = (e, r, t) =>
|
||||
((e, r, t) =>
|
||||
le(
|
||||
e,
|
||||
e,
|
||||
((e) => ({
|
||||
tag: "defaultedThunk",
|
||||
process: g(e),
|
||||
}))(r),
|
||||
t,
|
||||
))(
|
||||
e,
|
||||
r,
|
||||
((e) => {
|
||||
r = (r) => {
|
||||
t = e;
|
||||
n = r;
|
||||
if (k.call(t, n) > -1) {
|
||||
return K.value(r);
|
||||
} else {
|
||||
return K.error(
|
||||
`Unsupported value: "${r}", choose one of "${e.join(", ")}".`,
|
||||
);
|
||||
}
|
||||
var t;
|
||||
var n;
|
||||
};
|
||||
return Y((e) => r(e).fold(H, G));
|
||||
var r;
|
||||
})(t),
|
||||
);
|
||||
const pe = [
|
||||
de("console", [
|
||||
ge("type", "warn", ["error", "warn", "log", "info"]),
|
||||
ue("message"),
|
||||
]),
|
||||
de("editor", [
|
||||
ge("type", "warning", ["error", "warning", "info", "success"]),
|
||||
ue("message"),
|
||||
]),
|
||||
];
|
||||
const he = [ye("ok"), ue("id"), ue("key"), de("message", pe)];
|
||||
const me = [ye("ok"), ce("status", ee), ue("name"), de("message", pe)];
|
||||
var ve;
|
||||
var fe;
|
||||
var ke;
|
||||
(ke = ve ||= {}).Timeout = "get_license_online_timeout_error";
|
||||
ke.Missing = "get_license_online_missing_error";
|
||||
ke.ParseResponse = "get_license_online_parse_response_error";
|
||||
ke.Invalid = "get_license_online_invalid_error";
|
||||
ke.Server = "get_license_online_server_error";
|
||||
ke.Unknown = "get_license_online_unknown_error";
|
||||
(fe ||= {}).NoKeySpecified = "get_license_no_key_specified";
|
||||
const be = async (e, r, t, n = 30000) => {
|
||||
const o = (r, n, o) =>
|
||||
t.fold(
|
||||
() => {
|
||||
z(e, "readonly", n, o);
|
||||
return K.error({
|
||||
type: n,
|
||||
});
|
||||
},
|
||||
(t) => {
|
||||
z(e, r, n, o);
|
||||
if (r === "readonly") {
|
||||
return K.error({
|
||||
type: n,
|
||||
});
|
||||
} else {
|
||||
return K.value(t);
|
||||
}
|
||||
},
|
||||
);
|
||||
a = r.then(
|
||||
(r) =>
|
||||
((e) => {
|
||||
const r = s(e) && e.ok === true ? he : me;
|
||||
return ie("onlicenseKeyResult", ae(r), e);
|
||||
})(r)
|
||||
.mapError((r) => {
|
||||
z(e, "readonly", ve.ParseResponse);
|
||||
return {
|
||||
type: ve.ParseResponse,
|
||||
};
|
||||
})
|
||||
.bind((r) => {
|
||||
if (r.ok) {
|
||||
r.message
|
||||
.map((e) => ({
|
||||
console: e.console.getOrUndefined(),
|
||||
editor: e.editor.getOrUndefined(),
|
||||
}))
|
||||
.each((r) => {
|
||||
C(e, r);
|
||||
});
|
||||
return K.value(r.key);
|
||||
}
|
||||
{
|
||||
const t = r.status >= 400 && r.status < 500;
|
||||
const n = t ? ve.Invalid : ve.Server;
|
||||
r.message
|
||||
.map((e) => ({
|
||||
console: e.console.getOrUndefined(),
|
||||
editor: e.editor.getOrUndefined(),
|
||||
}))
|
||||
.each((r) => {
|
||||
C(e, r);
|
||||
});
|
||||
return o(t ? "readonly" : "fallback", n, r.status);
|
||||
}
|
||||
}),
|
||||
(r) => {
|
||||
if (c(r)) {
|
||||
try {
|
||||
C(e, {
|
||||
console: {
|
||||
type: "error",
|
||||
message: String(r),
|
||||
},
|
||||
});
|
||||
} catch (e) {}
|
||||
}
|
||||
const t = ve.Unknown;
|
||||
return o("fallback", t);
|
||||
},
|
||||
);
|
||||
i = n;
|
||||
l = () => {
|
||||
const e = ve.Timeout;
|
||||
return o("fallback", e);
|
||||
};
|
||||
return new Promise((e, r) => {
|
||||
const t = setTimeout(() => e(l()), i);
|
||||
a.then(e, r).finally(() => {
|
||||
clearTimeout(t);
|
||||
});
|
||||
});
|
||||
var a;
|
||||
var i;
|
||||
var l;
|
||||
};
|
||||
const we = async (e, r) => {
|
||||
const t = ((e) => {
|
||||
const { configKey: r, onlineKey: t } = e;
|
||||
if (l(t)) {
|
||||
if (l(r)) {
|
||||
return {
|
||||
type: "reportNoKey",
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
type: "useConfigKey",
|
||||
key: r,
|
||||
};
|
||||
}
|
||||
} else if (l(r)) {
|
||||
return {
|
||||
type: "useOnlineKey",
|
||||
key: t,
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
type: "tryOnlineKeyPossibleFallback",
|
||||
configKey: r,
|
||||
onlineKey: t,
|
||||
};
|
||||
}
|
||||
})({
|
||||
configKey: F(e),
|
||||
onlineKey: W(e),
|
||||
});
|
||||
switch (t.type) {
|
||||
case "reportNoKey":
|
||||
((e) => {
|
||||
const r =
|
||||
"The editor is disabled because a TinyMCE license key has not been provided";
|
||||
C(e, {
|
||||
console: {
|
||||
type: "error",
|
||||
message: R(
|
||||
`${r}. Make sure to provide a valid license key or add license_key: 'gpl' to the init config to agree to the open source license terms.`,
|
||||
),
|
||||
},
|
||||
editor: {
|
||||
type: "warning",
|
||||
message: `${r}.`,
|
||||
},
|
||||
});
|
||||
})(e);
|
||||
return K.error({
|
||||
type: fe.NoKeySpecified,
|
||||
});
|
||||
case "useConfigKey": {
|
||||
const { key: e } = t;
|
||||
return K.value(e);
|
||||
}
|
||||
case "useOnlineKey": {
|
||||
const { key: n } = t;
|
||||
return be(e, n, f.none(), r);
|
||||
}
|
||||
case "tryOnlineKeyPossibleFallback": {
|
||||
const { onlineKey: n, configKey: o } = t;
|
||||
return be(e, n, f.some(o), r);
|
||||
}
|
||||
}
|
||||
};
|
||||
const Oe = (e, r) => {
|
||||
const t = ((e) => {
|
||||
let r;
|
||||
let t = false;
|
||||
return (...n) => {
|
||||
if (!t) {
|
||||
t = true;
|
||||
r = e.apply(null, n);
|
||||
}
|
||||
return r;
|
||||
};
|
||||
})(we);
|
||||
a = e;
|
||||
const n = {
|
||||
validate: async () => D(a),
|
||||
};
|
||||
var a;
|
||||
const i = ((e) => {
|
||||
let r = false;
|
||||
return {
|
||||
validate: async (t, n) => {
|
||||
var a;
|
||||
return (
|
||||
s((a = n))
|
||||
? O(a, "plugin").filter((e) => o(e) && e.length > 0)
|
||||
: f.none()
|
||||
).forall((t) => {
|
||||
var n;
|
||||
n = r;
|
||||
C(e, {
|
||||
console: {
|
||||
type: "error",
|
||||
message: R(
|
||||
`The "${t}" plugin requires a valid TinyMCE license key.`,
|
||||
),
|
||||
},
|
||||
...(n
|
||||
? {}
|
||||
: {
|
||||
editor: {
|
||||
type: "warning",
|
||||
message:
|
||||
"One or more premium plugins are disabled due to license key restrictions.",
|
||||
},
|
||||
}),
|
||||
});
|
||||
r = true;
|
||||
return false;
|
||||
});
|
||||
},
|
||||
};
|
||||
})(e);
|
||||
const l = (async (e, r) => {
|
||||
try {
|
||||
return await (async (e, r) => {
|
||||
const t = `${r}/js/commerciallicensekeymanager${e.suffix}.js`;
|
||||
var n;
|
||||
return (
|
||||
await ((n = t),
|
||||
tinymce.Resource.load("licensekeymanager.6nle0b3ulk", n))
|
||||
)(e);
|
||||
})(e, r);
|
||||
} catch (r) {
|
||||
console.error(r);
|
||||
((e) => {
|
||||
const r =
|
||||
"The editor is disabled because the TinyMCE license key could not be validated";
|
||||
C(e, {
|
||||
console: {
|
||||
type: "error",
|
||||
message: R(
|
||||
`${r}. The TinyMCE Commercial License Key Manager plugin was unable to load additional required resources.`,
|
||||
),
|
||||
},
|
||||
editor: {
|
||||
type: "warning",
|
||||
message: `${r}.`,
|
||||
},
|
||||
});
|
||||
})(e);
|
||||
return {
|
||||
validate: async () => D(e),
|
||||
};
|
||||
}
|
||||
})(e, r);
|
||||
return Object.freeze({
|
||||
validate: Object.freeze(async (r) => {
|
||||
const o = (await t(e)).fold(
|
||||
() => ({
|
||||
type: "none",
|
||||
}),
|
||||
(e) =>
|
||||
e.toLowerCase() === "gpl"
|
||||
? {
|
||||
type: "gpl",
|
||||
key: "gpl",
|
||||
}
|
||||
: {
|
||||
type: "commercial",
|
||||
key: e,
|
||||
},
|
||||
);
|
||||
switch (o.type) {
|
||||
case "none":
|
||||
return n.validate(r);
|
||||
case "gpl": {
|
||||
const { key: e } = o;
|
||||
return i.validate(e, r);
|
||||
}
|
||||
case "commercial": {
|
||||
const { key: e } = o;
|
||||
return (await l).validate(e, r);
|
||||
}
|
||||
}
|
||||
}),
|
||||
});
|
||||
};
|
||||
var _e;
|
||||
var Te;
|
||||
_e = tinymce;
|
||||
Te = "licensekeymanager";
|
||||
if (
|
||||
N(_e, I)
|
||||
? (console.error(
|
||||
`The "${Te}" plugin requires at least version ${I} of TinyMCE.`,
|
||||
),
|
||||
0)
|
||||
: N(_e, U) ||
|
||||
(console.error(
|
||||
`The "${Te}" plugin requires at least version ${I} of TinyMCE but less than ${U}.`,
|
||||
),
|
||||
0)
|
||||
) {
|
||||
tinymce._addLicenseKeyManager((e, r) => {
|
||||
var t;
|
||||
(0, (t = e).options.register)("online_license_key", {
|
||||
processor: (e) => {
|
||||
var r;
|
||||
return {
|
||||
valid: true,
|
||||
};
|
||||
},
|
||||
immutable: true,
|
||||
});
|
||||
const n = Oe(e, r);
|
||||
n.validate(e);
|
||||
return n;
|
||||
});
|
||||
}
|
||||
})();
|
||||
9
plugins/licensekeymanager/plugin.min.js
vendored
Normal file
9
plugins/licensekeymanager/plugin.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user