Badges
This commit is contained in:
parent
abdc9efa15
commit
8f6664add2
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -418,14 +418,33 @@ function applyBadges(id, user, chat){
|
|||
distant.getBadges(user.id)
|
||||
.then(badges => {
|
||||
badges.forEach(badge => {
|
||||
const props = {size: "16px", className: "bd-logo"}
|
||||
const props = {
|
||||
svg: {
|
||||
size: "16px",
|
||||
className: "bd-logo",
|
||||
width: "16px",
|
||||
}
|
||||
}
|
||||
badge.scopes.forEach(scope => {
|
||||
// TODO: implement scope for badges (user, channel, etc)
|
||||
if(scope === "user"){// require user
|
||||
props.user = user
|
||||
}
|
||||
})
|
||||
if(!badge.href){
|
||||
props.Anchor = Anchor
|
||||
props.href = {
|
||||
className: chat ? "bd-chat-badge" : "bd-member-badge",
|
||||
title: badge.name,
|
||||
target: "_blank"
|
||||
}
|
||||
}
|
||||
const element = BDV2.React.createElement(TooltipWrap, {color: "black", side: "top", text: badge.name},
|
||||
BDV2.React.createElement(Anchor, {className: chat ? "bd-chat-badge" : "bd-member-badge", href: badge.href, title: badge.name, target: "_blank"},
|
||||
BDV2.React.createElement(badge.component, props)
|
||||
)
|
||||
badge.href ? BDV2.react.createElement(Anchor, {
|
||||
href: badge.href,
|
||||
className: chat ? "bd-chat-badge" : "bd-member-badge",
|
||||
title: badge.name,
|
||||
target: "_blank"
|
||||
}, BDV2.React.createElement(badge.component, props)) : BDV2.React.createElement(badge.component, props)
|
||||
)
|
||||
const div2 = document.createElement("div")
|
||||
BDV2.reactDom.render(element, div2)
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
import BugHunterBadge from "../svg/bug_hunter"
|
||||
import LightcordUserBadge from "../svg/LightcordUser";
|
||||
import nodeFetch from "node-fetch"
|
||||
|
||||
export function uuidv4() { // Generate UUID (No crypto rng)
|
||||
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
|
||||
|
@ -8,6 +10,7 @@ export function uuidv4() { // Generate UUID (No crypto rng)
|
|||
}
|
||||
|
||||
const awaitingBadgesPromises = {}
|
||||
let badgesToFetch = []
|
||||
|
||||
export default new class DistantServer {
|
||||
constructor(){
|
||||
|
@ -63,14 +66,30 @@ export default new class DistantServer {
|
|||
if(badge.defaultUsers.includes(user))badges.push(badge)
|
||||
}
|
||||
const fetchedBadges = await new Promise((resolve) => {
|
||||
handleRequest(Routes.badges(user), "GET")
|
||||
.then(async res => {
|
||||
if(res.status !== 200){// Couldn't fetch badges: server error
|
||||
return resolve([]) // no badge fetched
|
||||
}
|
||||
return resolve(await res.json())
|
||||
}).catch(() => {// Couldn't fetch badges: error
|
||||
return resolve([]) // no badge fetched
|
||||
badgesToFetch.push([user, resolve])
|
||||
setImmediate(() => {
|
||||
let users = badgesToFetch
|
||||
if(users.length === 0)return
|
||||
badgesToFetch = []
|
||||
handleRequest(Routes.badges, "POST", JSON.stringify(users.map(e => e[0])))
|
||||
.then(async res => {
|
||||
if(res.status !== 200){// Couldn't fetch badges: server error
|
||||
users.forEach(data => {
|
||||
data[1]([])// resolve no badge fetched
|
||||
})
|
||||
}
|
||||
const responseBody = await res.json()
|
||||
console.log(responseBody)
|
||||
for(let user of responseBody){
|
||||
let promise = users.find(promise => promise[0] === user.user_id)
|
||||
promise[1](user.badges)
|
||||
}
|
||||
}).catch((err) => {// Couldn't fetch badges: error
|
||||
console.error(err)
|
||||
users.forEach(data => {
|
||||
data[1]([])// resolve no badge fetched
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
for(let badge of fetchedBadges){
|
||||
|
@ -91,13 +110,17 @@ export default new class DistantServer {
|
|||
}
|
||||
}
|
||||
|
||||
const handleRequest = function(route, method){
|
||||
return fetch(`${Constants.SERVER_URL}/api/v1${route}`, {
|
||||
const handleRequest = function(route, method, data){
|
||||
console.log(`Sending request on ${route} with method ${method} and body`, data)
|
||||
return nodeFetch(`${Constants.SERVER_URL}/api/v1${route}`, {
|
||||
method,
|
||||
headers: {
|
||||
"CLIENT": "Lightcord",
|
||||
"Authorization": window.Lightcord.Api.Authorization || "None::Anonymous"
|
||||
}
|
||||
},
|
||||
...(data ? {
|
||||
body: data
|
||||
} : {})
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -107,20 +130,15 @@ export const Constants = {
|
|||
{
|
||||
name: "Lightcord User",
|
||||
id: "01cfa7b0-7cdb-4b0e-8258-9c6a78235c93",
|
||||
defaultUsers: [
|
||||
"696481194443014174"
|
||||
],
|
||||
defaultUsers: [],
|
||||
scopes: [
|
||||
"user"
|
||||
],
|
||||
component: BugHunterBadge,
|
||||
href: "https://github.com/lightcord/lightcord/wiki/badges/bug_hunter"
|
||||
component: LightcordUserBadge
|
||||
}, {
|
||||
name: "Lightcord Bug Hunter",
|
||||
id: "f04698f5-816b-41e3-bd01-92291193d7a5",
|
||||
defaultUsers: [
|
||||
"696481194443014174"
|
||||
],
|
||||
defaultUsers: [],
|
||||
scopes: [],
|
||||
component: BugHunterBadge,
|
||||
href: "https://github.com/lightcord/lightcord/wiki/badges/bug_hunter"
|
||||
|
@ -129,6 +147,6 @@ export const Constants = {
|
|||
}
|
||||
|
||||
export const Routes = {
|
||||
badges: user => `/${user}/badges`,
|
||||
badges: `/users/badges`,
|
||||
delete: `/delete`
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
import BDV2 from "../modules/v2"
|
||||
|
||||
let profilModule = BDModules.get(e => e.default && e.default.open && e.default.fetchMutualFriends)[0]
|
||||
|
||||
export default class LightcordUserBadge extends React.Component {
|
||||
render(){
|
||||
const props = this.props
|
||||
|
||||
delete props.href.target
|
||||
|
||||
console.log(props)
|
||||
|
||||
return (
|
||||
<props.Anchor href={"/users/"+props.user.id} {...props.href} onClick={(ev) => {
|
||||
ev.preventDefault()
|
||||
if(!profilModule)profilModule = BDModules.get(e => e.default && e.default.open && e.default.fetchMutualFriends)[0]
|
||||
profilModule.default.open(props.user.id)
|
||||
}}>
|
||||
<svg viewBox="0 0 31.3 29.5" {...props.svg} height="100%">
|
||||
<path d="M22.8 1s12 8.2 7.4 19.7S16.6 29 20 25.6s-4-5.6-8.7-10L22.8 1" fill="rgba(227,6,19,.6)" />
|
||||
<path d="M22.1 12.3c-2.5 3.2-6.1 4.8-8.9 4.3L3.6 28.8c-.7.9-1.9 1-2.8.3-.9-.7-1-1.9-.4-2.8L10 14.1c-1.3-2.5-.6-6.4 2-9.7 3.2-4 8-5.5 10.8-3.4s2.4 7.2-.7 11.3z" fill="#e30613" />
|
||||
</svg>
|
||||
</props.Anchor>
|
||||
)
|
||||
}
|
||||
}
|
|
@ -1,8 +1,9 @@
|
|||
export default class BugHunterBadge extends React.Component {
|
||||
render(){
|
||||
const props = this.props
|
||||
|
||||
return (
|
||||
<svg viewBox="0 0 31.3 29.5" {...props} height="100%" width={props.size}>
|
||||
<svg viewBox="0 0 31.3 29.5" {...props.svg} height="100%">
|
||||
<path d="M22.8 1s12 8.2 7.4 19.7S16.6 29 20 25.6s-4-5.6-8.7-10L22.8 1" fill="rgba(227,6,19,.6)" />
|
||||
<path d="M22.1 12.3c-2.5 3.2-6.1 4.8-8.9 4.3L3.6 28.8c-.7.9-1.9 1-2.8.3-.9-.7-1-1.9-.4-2.8L10 14.1c-1.3-2.5-.6-6.4 2-9.7 3.2-4 8-5.5 10.8-3.4s2.4 7.2-.7 11.3z" fill="#e30613" />
|
||||
</svg>
|
||||
|
|
|
@ -50,12 +50,14 @@ async function privateInit(){
|
|||
}catch(e){
|
||||
const React = ModuleLoader.get(e => !["Component", "PureComponent", "Children", "createElement", "cloneElement"].map(c => !!e[c]).includes(false))[0]
|
||||
window.React = React
|
||||
require.cache["react"] = React
|
||||
}
|
||||
try{
|
||||
window.ReactDOM = require("react-dom")
|
||||
}catch(e){
|
||||
const ReactDOM = ModuleLoader.get(e => e.findDOMNode)[0]
|
||||
window.ReactDOM = ReactDOM
|
||||
require.cache["react-dom"] = ReactDOM
|
||||
}
|
||||
|
||||
let original = ModuleLoader.get((e) => e.createSound)[0].createSound
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
Subproject commit 1ff160b257662689a0abc76731ed643bf69fb3cf
|
|
@ -1,157 +1,5 @@
|
|||
{
|
||||
"files": [
|
||||
"node_modules\\.yarn-integrity",
|
||||
"node_modules\\.bin\\rimraf",
|
||||
"node_modules\\any-promise\\.jshintrc",
|
||||
"node_modules\\any-promise\\.npmignore",
|
||||
"node_modules\\any-promise\\implementation.js",
|
||||
"node_modules\\any-promise\\index.js",
|
||||
"node_modules\\any-promise\\LICENSE",
|
||||
"node_modules\\any-promise\\loader.js",
|
||||
"node_modules\\any-promise\\optional.js",
|
||||
"node_modules\\any-promise\\package.json",
|
||||
"node_modules\\any-promise\\README.md",
|
||||
"node_modules\\any-promise\\register-shim.js",
|
||||
"node_modules\\any-promise\\register.js",
|
||||
"node_modules\\any-promise\\register\\bluebird.js",
|
||||
"node_modules\\any-promise\\register\\es6-promise.js",
|
||||
"node_modules\\any-promise\\register\\lie.js",
|
||||
"node_modules\\any-promise\\register\\native-promise-only.js",
|
||||
"node_modules\\any-promise\\register\\pinkie.js",
|
||||
"node_modules\\any-promise\\register\\promise.js",
|
||||
"node_modules\\any-promise\\register\\q.js",
|
||||
"node_modules\\any-promise\\register\\rsvp.js",
|
||||
"node_modules\\any-promise\\register\\vow.js",
|
||||
"node_modules\\any-promise\\register\\when.js",
|
||||
"node_modules\\balanced-match\\.npmignore",
|
||||
"node_modules\\balanced-match\\index.js",
|
||||
"node_modules\\balanced-match\\LICENSE.md",
|
||||
"node_modules\\balanced-match\\package.json",
|
||||
"node_modules\\balanced-match\\README.md",
|
||||
"node_modules\\brace-expansion\\index.js",
|
||||
"node_modules\\brace-expansion\\LICENSE",
|
||||
"node_modules\\brace-expansion\\package.json",
|
||||
"node_modules\\brace-expansion\\README.md",
|
||||
"node_modules\\cld\\.gitignore",
|
||||
"node_modules\\cld\\index.js",
|
||||
"node_modules\\cld\\LICENSE",
|
||||
"node_modules\\cld\\package.json",
|
||||
"node_modules\\cld\\README.md",
|
||||
"node_modules\\cld\\bin\\postinstall.js",
|
||||
"node_modules\\cld\\build\\Release\\cld.node",
|
||||
"node_modules\\cld\\deps\\cld\\LICENSE",
|
||||
"node_modules\\cld\\node_modules\\.bin\\rimraf",
|
||||
"node_modules\\concat-map\\index.js",
|
||||
"node_modules\\concat-map\\LICENSE",
|
||||
"node_modules\\concat-map\\package.json",
|
||||
"node_modules\\concat-map\\example\\map.js",
|
||||
"node_modules\\event-kit\\api.json",
|
||||
"node_modules\\event-kit\\LICENSE.md",
|
||||
"node_modules\\event-kit\\package.json",
|
||||
"node_modules\\event-kit\\README.md",
|
||||
"node_modules\\event-kit\\dist\\composite-disposable.js",
|
||||
"node_modules\\event-kit\\dist\\disposable.js",
|
||||
"node_modules\\event-kit\\dist\\emitter.js",
|
||||
"node_modules\\event-kit\\dist\\event-kit.js",
|
||||
"node_modules\\fs.realpath\\index.js",
|
||||
"node_modules\\fs.realpath\\LICENSE",
|
||||
"node_modules\\fs.realpath\\old.js",
|
||||
"node_modules\\fs.realpath\\package.json",
|
||||
"node_modules\\fs.realpath\\README.md",
|
||||
"node_modules\\glob\\common.js",
|
||||
"node_modules\\glob\\glob.js",
|
||||
"node_modules\\glob\\LICENSE",
|
||||
"node_modules\\glob\\package.json",
|
||||
"node_modules\\glob\\README.md",
|
||||
"node_modules\\glob\\sync.js",
|
||||
"node_modules\\inflight\\inflight.js",
|
||||
"node_modules\\inflight\\LICENSE",
|
||||
"node_modules\\inflight\\package.json",
|
||||
"node_modules\\inflight\\README.md",
|
||||
"node_modules\\inherits\\inherits.js",
|
||||
"node_modules\\inherits\\inherits_browser.js",
|
||||
"node_modules\\inherits\\LICENSE",
|
||||
"node_modules\\inherits\\package.json",
|
||||
"node_modules\\inherits\\README.md",
|
||||
"node_modules\\keyboard-layout\\.node-version",
|
||||
"node_modules\\keyboard-layout\\LICENSE.md",
|
||||
"node_modules\\keyboard-layout\\package.json",
|
||||
"node_modules\\keyboard-layout\\README.md",
|
||||
"node_modules\\keyboard-layout\\build\\Release\\keyboard-layout-manager.node",
|
||||
"node_modules\\keyboard-layout\\lib\\keyboard-layout.js",
|
||||
"node_modules\\minimatch\\LICENSE",
|
||||
"node_modules\\minimatch\\minimatch.js",
|
||||
"node_modules\\minimatch\\package.json",
|
||||
"node_modules\\minimatch\\README.md",
|
||||
"node_modules\\nan\\CHANGELOG.md",
|
||||
"node_modules\\nan\\include_dirs.js",
|
||||
"node_modules\\nan\\LICENSE.md",
|
||||
"node_modules\\nan\\package.json",
|
||||
"node_modules\\nan\\README.md",
|
||||
"node_modules\\nan\\doc\\asyncworker.md",
|
||||
"node_modules\\nan\\doc\\buffers.md",
|
||||
"node_modules\\nan\\doc\\callback.md",
|
||||
"node_modules\\nan\\doc\\converters.md",
|
||||
"node_modules\\nan\\doc\\errors.md",
|
||||
"node_modules\\nan\\doc\\json.md",
|
||||
"node_modules\\nan\\doc\\maybe_types.md",
|
||||
"node_modules\\nan\\doc\\methods.md",
|
||||
"node_modules\\nan\\doc\\new.md",
|
||||
"node_modules\\nan\\doc\\node_misc.md",
|
||||
"node_modules\\nan\\doc\\object_wrappers.md",
|
||||
"node_modules\\nan\\doc\\persistent.md",
|
||||
"node_modules\\nan\\doc\\scopes.md",
|
||||
"node_modules\\nan\\doc\\script.md",
|
||||
"node_modules\\nan\\doc\\string_bytes.md",
|
||||
"node_modules\\nan\\doc\\v8_internals.md",
|
||||
"node_modules\\nan\\doc\\v8_misc.md",
|
||||
"node_modules\\nan\\tools\\1to2.js",
|
||||
"node_modules\\nan\\tools\\package.json",
|
||||
"node_modules\\nan\\tools\\README.md",
|
||||
"node_modules\\once\\LICENSE",
|
||||
"node_modules\\once\\once.js",
|
||||
"node_modules\\once\\package.json",
|
||||
"node_modules\\once\\README.md",
|
||||
"node_modules\\path-is-absolute\\index.js",
|
||||
"node_modules\\path-is-absolute\\license",
|
||||
"node_modules\\path-is-absolute\\package.json",
|
||||
"node_modules\\path-is-absolute\\readme.md",
|
||||
"node_modules\\rimraf\\bin.js",
|
||||
"node_modules\\rimraf\\LICENSE",
|
||||
"node_modules\\rimraf\\package.json",
|
||||
"node_modules\\rimraf\\README.md",
|
||||
"node_modules\\rimraf\\rimraf.js",
|
||||
"node_modules\\rimraf\\node_modules\\glob\\changelog.md",
|
||||
"node_modules\\rimraf\\node_modules\\glob\\common.js",
|
||||
"node_modules\\rimraf\\node_modules\\glob\\glob.js",
|
||||
"node_modules\\rimraf\\node_modules\\glob\\LICENSE",
|
||||
"node_modules\\rimraf\\node_modules\\glob\\package.json",
|
||||
"node_modules\\rimraf\\node_modules\\glob\\README.md",
|
||||
"node_modules\\rimraf\\node_modules\\glob\\sync.js",
|
||||
"node_modules\\spellchecker\\.gitignore",
|
||||
"node_modules\\spellchecker\\.npmignore",
|
||||
"node_modules\\spellchecker\\LICENSE.md",
|
||||
"node_modules\\spellchecker\\package-lock.json",
|
||||
"node_modules\\spellchecker\\package.json",
|
||||
"node_modules\\spellchecker\\README.md",
|
||||
"node_modules\\spellchecker\\build\\Release\\spellchecker.node",
|
||||
"node_modules\\spellchecker\\lib\\spellchecker.js",
|
||||
"node_modules\\spellchecker\\vendor\\hunspell\\AUTHORS",
|
||||
"node_modules\\spellchecker\\vendor\\hunspell\\BUGS",
|
||||
"node_modules\\spellchecker\\vendor\\hunspell\\ChangeLog",
|
||||
"node_modules\\spellchecker\\vendor\\hunspell\\COPYING",
|
||||
"node_modules\\spellchecker\\vendor\\hunspell\\README",
|
||||
"node_modules\\spellchecker\\vendor\\hunspell\\THANKS",
|
||||
"node_modules\\spellchecker\\vendor\\hunspell\\src\\hunspell\\README",
|
||||
"node_modules\\underscore\\LICENSE",
|
||||
"node_modules\\underscore\\package.json",
|
||||
"node_modules\\underscore\\README.md",
|
||||
"node_modules\\underscore\\underscore-min.js",
|
||||
"node_modules\\underscore\\underscore.js",
|
||||
"node_modules\\wrappy\\LICENSE",
|
||||
"node_modules\\wrappy\\package.json",
|
||||
"node_modules\\wrappy\\README.md",
|
||||
"node_modules\\wrappy\\wrappy.js",
|
||||
"files": [
|
||||
"index.js",
|
||||
"manifest.json"
|
||||
]
|
||||
|
|
|
@ -1,161 +0,0 @@
|
|||
{
|
||||
"name": "discord_spellcheck",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"any-promise": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
|
||||
"integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8="
|
||||
},
|
||||
"balanced-match": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
||||
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
||||
"requires": {
|
||||
"balanced-match": "^1.0.0",
|
||||
"concat-map": "0.0.1"
|
||||
}
|
||||
},
|
||||
"cld": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/cld/-/cld-2.6.0.tgz",
|
||||
"integrity": "sha512-2U8Uiv7Bvl1v4fNWFGB3RYtPvhUWXQJ1MoNKJNVuoALfandEt9oVqK64S+3ZLvQPjDiYjsohtTep/wIs0xOXkw==",
|
||||
"requires": {
|
||||
"glob": "^5.0.10",
|
||||
"node-addon-api": "*",
|
||||
"rimraf": "^2.4.0",
|
||||
"underscore": "^1.6.0"
|
||||
}
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
|
||||
},
|
||||
"event-kit": {
|
||||
"version": "2.5.3",
|
||||
"resolved": "https://registry.npmjs.org/event-kit/-/event-kit-2.5.3.tgz",
|
||||
"integrity": "sha512-b7Qi1JNzY4BfAYfnIRanLk0DOD1gdkWHT4GISIn8Q2tAf3LpU8SP2CMwWaq40imYoKWbtN4ZhbSRxvsnikooZQ=="
|
||||
},
|
||||
"fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
|
||||
},
|
||||
"glob": {
|
||||
"version": "5.0.15",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
|
||||
"integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
|
||||
"requires": {
|
||||
"inflight": "^1.0.4",
|
||||
"inherits": "2",
|
||||
"minimatch": "2 || 3",
|
||||
"once": "^1.3.0",
|
||||
"path-is-absolute": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"inflight": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
||||
"requires": {
|
||||
"once": "^1.3.0",
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
||||
},
|
||||
"keyboard-layout": {
|
||||
"version": "2.0.16",
|
||||
"resolved": "https://registry.npmjs.org/keyboard-layout/-/keyboard-layout-2.0.16.tgz",
|
||||
"integrity": "sha512-eGrxmlV6jbm/mbPEOpYGuH53XEC7wIUj9ZxKcT2z9QHJ/RwrT9iVkvxka9zRxqHZHwQzcffgsa5OxoVAKnhK9w==",
|
||||
"requires": {
|
||||
"event-kit": "^2.0.0",
|
||||
"nan": "^2.13.2"
|
||||
}
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
||||
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
||||
"requires": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
}
|
||||
},
|
||||
"nan": {
|
||||
"version": "2.14.1",
|
||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz",
|
||||
"integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw=="
|
||||
},
|
||||
"node-addon-api": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.0.0.tgz",
|
||||
"integrity": "sha512-sSHCgWfJ+Lui/u+0msF3oyCgvdkhxDbkCS6Q8uiJquzOimkJBvX6hl5aSSA7DR1XbMpdM8r7phjcF63sF4rkKg=="
|
||||
},
|
||||
"once": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||
"requires": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"path-is-absolute": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
||||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
|
||||
},
|
||||
"rimraf": {
|
||||
"version": "2.7.1",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
|
||||
"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
|
||||
"requires": {
|
||||
"glob": "^7.1.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"glob": {
|
||||
"version": "7.1.6",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
|
||||
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
|
||||
"requires": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
"inherits": "2",
|
||||
"minimatch": "^3.0.4",
|
||||
"once": "^1.3.0",
|
||||
"path-is-absolute": "^1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"spellchecker": {
|
||||
"version": "3.7.0",
|
||||
"resolved": "https://registry.npmjs.org/spellchecker/-/spellchecker-3.7.0.tgz",
|
||||
"integrity": "sha512-saQT4BR9nivbK70s0YjyIlSbZzO6bfWRULcGL2JU7fi7wotOnWl70P0QoUwwLywNQJQ47osgCo6GmOlqzRTxbQ==",
|
||||
"requires": {
|
||||
"any-promise": "^1.3.0",
|
||||
"nan": "^2.14.0"
|
||||
}
|
||||
},
|
||||
"underscore": {
|
||||
"version": "1.10.2",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz",
|
||||
"integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg=="
|
||||
},
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
||||
}
|
||||
}
|
||||
}
|
|
@ -4,9 +4,6 @@
|
|||
"description": "",
|
||||
"main": "index.js",
|
||||
"dependencies": {
|
||||
"cld": "2.6.0",
|
||||
"keyboard-layout": "2.0.16",
|
||||
"spellchecker": "3.7.0"
|
||||
},
|
||||
"devDependencies": {},
|
||||
"scripts": {
|
||||
|
|
Loading…
Reference in New Issue