nodebb-plugin-customize 1.1.2 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,11 +4,7 @@
4
4
  [![Downloads](https://img.shields.io/npm/dm/nodebb-plugin-customize.svg)](https://www.npmjs.com/package/nodebb-plugin-customize)
5
5
  [![Dependency Status](https://david-dm.org/NodeBB-Community/nodebb-plugin-customize.svg)](https://david-dm.org/NodeBB/nodebb-plugin-customize)
6
6
 
7
- Customize the translated keys found throughout NodeBB's interface.
8
-
9
- #### TODO
10
-
11
- - Add template customization functionality
7
+ Customize the language translations and templates used in NodeBB's interface.
12
8
 
13
9
  ## Installation
14
10
 
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.build = void 0;
3
4
  const fs_extra_1 = require("fs-extra");
4
5
  const path_1 = require("path");
5
6
  const lodash_1 = require("lodash");
@@ -7,14 +8,14 @@ const database_1 = require("./database");
7
8
  if (!require.main) {
8
9
  throw Error('[plugin-customize] `require.main` is wrong');
9
10
  }
10
- const translationsSrcDir = path_1.join(__dirname, '../../public/language');
11
- const templatesSrcDir = path_1.join(__dirname, '../../public/templates');
12
- const translationsDir = path_1.join(__dirname, '../public/language');
13
- const templatesDir = path_1.join(__dirname, '../public/templates');
11
+ const translationsSrcDir = (0, path_1.join)(__dirname, '../../public/language');
12
+ const templatesSrcDir = (0, path_1.join)(__dirname, '../../public/templates');
13
+ const translationsDir = (0, path_1.join)(__dirname, '../public/language');
14
+ const templatesDir = (0, path_1.join)(__dirname, '../public/templates');
14
15
  async function build() {
15
16
  const [translations, templates] = await Promise.all([
16
- database_1.getTranslations(),
17
- database_1.getTemplates(),
17
+ (0, database_1.getTranslations)(),
18
+ (0, database_1.getTemplates)(),
18
19
  ]);
19
20
  const translationTree = {};
20
21
  translations.forEach(({ language, namespace, key, value }) => {
@@ -24,27 +25,27 @@ async function build() {
24
25
  });
25
26
  // delete existing files
26
27
  await Promise.all([
27
- fs_extra_1.remove(translationsDir),
28
- fs_extra_1.remove(templatesDir),
28
+ (0, fs_extra_1.remove)(translationsDir),
29
+ (0, fs_extra_1.remove)(templatesDir),
29
30
  ]);
30
31
  await Promise.all([
31
- fs_extra_1.mkdirp(translationsDir),
32
- fs_extra_1.mkdirp(templatesDir),
32
+ (0, fs_extra_1.mkdirp)(translationsDir),
33
+ (0, fs_extra_1.mkdirp)(templatesDir),
33
34
  ]);
34
35
  // copy in own step to avoid conflicts
35
36
  await Promise.all([
36
- fs_extra_1.copy(translationsSrcDir, translationsDir),
37
- fs_extra_1.copy(templatesSrcDir, templatesDir),
37
+ (0, fs_extra_1.copy)(translationsSrcDir, translationsDir),
38
+ (0, fs_extra_1.copy)(templatesSrcDir, templatesDir),
38
39
  ]);
39
- const translationWrites = lodash_1.flatMap(Object.keys(translationTree), (language) => lodash_1.flatMap(Object.keys(translationTree[language]), async (namespace) => {
40
- const path = path_1.join(translationsDir, language, `${namespace}.json`);
41
- await fs_extra_1.mkdirp(path_1.dirname(path));
42
- await fs_extra_1.writeJson(path, translationTree[language][namespace]);
40
+ const translationWrites = (0, lodash_1.flatMap)(Object.keys(translationTree), (language) => (0, lodash_1.flatMap)(Object.keys(translationTree[language]), async (namespace) => {
41
+ const path = (0, path_1.join)(translationsDir, language, `${namespace}.json`);
42
+ await (0, fs_extra_1.mkdirp)((0, path_1.dirname)(path));
43
+ await (0, fs_extra_1.writeJson)(path, translationTree[language][namespace]);
43
44
  }));
44
45
  const templateWrites = templates.map(async ({ path, value }) => {
45
- const filePath = path_1.join(templatesDir, path);
46
- await fs_extra_1.mkdirp(path_1.dirname(filePath));
47
- await fs_extra_1.writeFile(filePath, value);
46
+ const filePath = (0, path_1.join)(templatesDir, path);
47
+ await (0, fs_extra_1.mkdirp)((0, path_1.dirname)(filePath));
48
+ await (0, fs_extra_1.writeFile)(filePath, value);
48
49
  });
49
50
  await Promise.all([
50
51
  ...translationWrites,
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../lib/build.ts"],"names":[],"mappings":";;AAAA,uCAMkB;AAClB,+BAAqC;AACrC,mCAAiC;AAEjC,yCAA2D;AAE3D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;IAAE,MAAM,KAAK,CAAC,4CAA4C,CAAC,CAAC;CAAE;AAEjF,MAAM,kBAAkB,GAAG,WAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;AACpE,MAAM,eAAe,GAAG,WAAI,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC;AAClE,MAAM,eAAe,GAAG,WAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;AAC9D,MAAM,YAAY,GAAG,WAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;AAErD,KAAK,UAAU,KAAK;IACzB,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,GAAgC,MAAM,OAAO,CAAC,GAAG,CAAC;QAC/E,0BAAe,EAAE;QACjB,uBAAY,EAAE;KACf,CAAC,CAAC;IAEH,MAAM,eAAe,GAMjB,EAAE,CAAC;IAEP,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE;QAC3D,eAAe,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC5D,eAAe,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAClF,eAAe,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,wBAAwB;IACxB,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,iBAAM,CAAC,eAAe,CAAC;QACvB,iBAAM,CAAC,YAAY,CAAC;KACrB,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,iBAAM,CAAC,eAAe,CAAC;QACvB,iBAAM,CAAC,YAAY,CAAC;KACrB,CAAC,CAAC;IAEH,sCAAsC;IACtC,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,eAAI,CAAC,kBAAkB,EAAE,eAAe,CAAC;QACzC,eAAI,CAAC,eAAe,EAAE,YAAY,CAAC;KACpC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,gBAAO,CAC/B,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAC5B,CAAC,QAAQ,EAAE,EAAE,CAAC,gBAAO,CACnB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,EACtC,KAAK,EAAE,SAAS,EAAE,EAAE;QAClB,MAAM,IAAI,GAAG,WAAI,CAAC,eAAe,EAAE,QAAQ,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;QAClE,MAAM,iBAAM,CAAC,cAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5B,MAAM,oBAAS,CAAC,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9D,CAAC,CACF,CACF,CAAC;IAEF,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;QAC7D,MAAM,QAAQ,GAAG,WAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC1C,MAAM,iBAAM,CAAC,cAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChC,MAAM,oBAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,GAAG,iBAAiB;QACpB,GAAG,cAAc;KAClB,CAAC,CAAC;AACL,CAAC;AA3DD,sBA2DC"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../lib/build.ts"],"names":[],"mappings":"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"}
@@ -14,19 +14,21 @@ const Languages = require.main.require('./src/languages');
14
14
  const File = require.main.require('./src/file');
15
15
  const Translator = require.main.require('./src/translator');
16
16
  const Utils = require.main.require('./src/utils');
17
+ const { setupApiRoute, setupAdminPageRoute } = require.main.require('./src/routes/helpers');
18
+ const { formatApiResponse } = require.main.require('./src/controllers/helpers');
17
19
  const escape = (dirty) => Translator.escape(Utils.escapeHTML(dirty));
18
- const listLanguages = util_1.promisify(Languages.list);
19
- const getSettings = util_1.promisify(User.getSettings);
20
- const walk = util_1.promisify(File.walk);
21
- // eslint-disable-next-line import/no-dynamic-require
22
- const version = require(path_1.join(__dirname, '../../package.json')).version;
20
+ const listLanguages = (0, util_1.promisify)(Languages.list);
21
+ const getSettings = (0, util_1.promisify)(User.getSettings);
22
+ const walk = (0, util_1.promisify)(File.walk);
23
+ // eslint-disable-next-line import/no-dynamic-require, @typescript-eslint/no-var-requires
24
+ const version = require((0, path_1.join)(__dirname, '../../package.json')).version;
23
25
  let namespaceCache = [];
24
26
  async function listNamespaces() {
25
27
  if (namespaceCache.length) {
26
28
  return namespaceCache;
27
29
  }
28
- const metadataFile = path_1.join(nconf.get('base_dir'), 'build/public/language/metadata.json');
29
- const metadata = await fs_extra_1.readJson(metadataFile);
30
+ const metadataFile = (0, path_1.join)(nconf.get('base_dir'), 'build/public/language/metadata.json');
31
+ const metadata = await (0, fs_extra_1.readJson)(metadataFile);
30
32
  namespaceCache = metadata.namespaces;
31
33
  return namespaceCache;
32
34
  }
@@ -39,99 +41,80 @@ async function listTemplates() {
39
41
  const templates = await walk(viewsDir);
40
42
  templateCache = templates
41
43
  .filter((path) => path.endsWith('.tpl'))
42
- .map((path) => path_1.relative(viewsDir, path).split(/\/\\/).join('/'));
44
+ .map((path) => (0, path_1.relative)(viewsDir, path).split(/\/\\/).join('/'));
43
45
  return templateCache;
44
46
  }
45
- const renderAdmin = (req, res, next) => {
46
- Promise.all([
47
+ const renderAdmin = async (req, res) => {
48
+ const [templates, translations, languages, userLang, namespaces, templatePaths,] = await Promise.all([
47
49
  db.getTemplates(),
48
50
  db.getTranslations(),
49
51
  listLanguages(),
50
- getSettings(req.uid).then(({ userLang }) => userLang),
52
+ getSettings(req.uid).then((data) => data.userLang),
51
53
  listNamespaces(),
52
54
  listTemplates(),
53
- ])
54
- .then(([templates, translations, languages, userLang, namespaces, templatePaths,]) => {
55
- res.render('admin/plugins/customize', {
56
- version,
57
- templates: templates.map((x) => ({
58
- path: x.path,
59
- json: escape(JSON.stringify(x)),
60
- diff: escape(x.diff),
61
- })),
62
- translations,
63
- languages: languages.map(({ code, name }) => ({
64
- code,
65
- name,
66
- selected: code === userLang,
67
- })),
68
- namespaces: namespaces.map((name) => ({ name })),
69
- templatePaths,
70
- });
71
- })
72
- .catch((err) => next(err));
55
+ ]);
56
+ res.render('admin/plugins/customize', {
57
+ version,
58
+ templates: templates.map((x) => ({
59
+ path: x.path,
60
+ json: escape(JSON.stringify(x)),
61
+ diff: escape(x.diff),
62
+ })),
63
+ translations,
64
+ languages: languages.map(({ code, name }) => ({
65
+ code,
66
+ name,
67
+ selected: code === userLang,
68
+ })),
69
+ namespaces: namespaces.map((name) => ({ name })),
70
+ templatePaths,
71
+ });
73
72
  };
74
- const adminBuild = (req, res, next) => {
75
- pubsub_1.build().then(() => res.send('OK'), (err) => next(err));
73
+ const adminBuild = async (req, res) => {
74
+ await (0, pubsub_1.build)();
75
+ formatApiResponse(200, res, 'OK');
76
76
  };
77
- const adminEditTranslation = (req, res, next) => {
77
+ const adminEditTranslation = async (req, res) => {
78
78
  const translation = req.body.translation;
79
- db.editTranslation(translation)
80
- .then(db.getTranslations)
81
- .then((translations) => {
82
- res.json({
83
- translations,
84
- });
85
- })
86
- .catch((err) => next(err));
79
+ await db.editTranslation(translation);
80
+ const translations = await db.getTranslations();
81
+ formatApiResponse(200, res, { translations });
87
82
  };
88
- const adminRemoveTranslation = (req, res, next) => {
89
- db.removeTranslation(req.body.translation)
90
- .then(db.getTranslations)
91
- .then((translations) => {
92
- res.json({
93
- translations,
94
- });
95
- })
96
- .catch((err) => next(err));
83
+ const adminRemoveTranslation = async (req, res) => {
84
+ await db.removeTranslation(req.body.translation);
85
+ const translations = await db.getTranslations();
86
+ formatApiResponse(200, res, { translations });
97
87
  };
98
- const adminEditTemplate = (req, res, next) => {
88
+ const adminEditTemplate = async (req, res) => {
99
89
  const template = req.body.template;
100
- db.editTemplate(template)
101
- .then(db.getTemplates)
102
- .then((templates) => {
103
- res.json({
104
- templates: templates.map((x) => ({
105
- path: x.path,
106
- json: escape(JSON.stringify(x)),
107
- diff: escape(x.diff),
108
- })),
109
- });
110
- })
111
- .catch((err) => next(err));
90
+ await db.editTemplate(template);
91
+ const templates = await db.getTemplates();
92
+ formatApiResponse(200, res, {
93
+ templates: templates.map((x) => ({
94
+ path: x.path,
95
+ json: escape(JSON.stringify(x)),
96
+ diff: escape(x.diff),
97
+ })),
98
+ });
112
99
  };
113
- const adminRemoveTemplate = (req, res, next) => {
114
- db.removeTemplate(req.body.template)
115
- .then(db.getTemplates)
116
- .then((templates) => {
117
- res.json({
118
- templates: templates.map((x) => ({
119
- path: x.path,
120
- json: escape(JSON.stringify(x)),
121
- diff: escape(x.diff),
122
- })),
123
- });
124
- })
125
- .catch((err) => next(err));
100
+ const adminRemoveTemplate = async (req, res) => {
101
+ await db.removeTemplate(req.body.template);
102
+ const templates = await db.getTemplates();
103
+ formatApiResponse(200, res, {
104
+ templates: templates.map((x) => ({
105
+ path: x.path,
106
+ json: escape(JSON.stringify(x)),
107
+ diff: escape(x.diff),
108
+ })),
109
+ });
126
110
  };
127
111
  function controllers({ router, middleware }) {
128
- router.get('/admin/plugins/customize', middleware.admin.buildHeader, renderAdmin);
129
- router.get('/api/admin/plugins/customize', renderAdmin);
130
- router.post('/api/admin/plugins/customize/edit/template', adminEditTemplate);
131
- router.post('/api/admin/plugins/customize/edit/translation', adminEditTranslation);
132
- router.delete('/api/admin/plugins/customize/delete/template', adminRemoveTemplate);
133
- router.delete('/api/admin/plugins/customize/delete/translation', adminRemoveTranslation);
134
- router.post('/api/admin/plugins/customize/build', adminBuild);
112
+ setupAdminPageRoute(router, '/admin/plugins/customize', middleware, [], renderAdmin);
113
+ setupApiRoute(router, 'put', '/api/v3/admin/plugins/customize/edit/template', [middleware.admin.checkPrivileges], adminEditTemplate);
114
+ setupApiRoute(router, 'delete', '/api/v3/admin/plugins/customize/delete/template', [middleware.admin.checkPrivileges], adminRemoveTemplate);
115
+ setupApiRoute(router, 'put', '/api/v3/admin/plugins/customize/edit/translation', [middleware.admin.checkPrivileges], adminEditTranslation);
116
+ setupApiRoute(router, 'delete', '/api/v3/admin/plugins/customize/delete/translation', [middleware.admin.checkPrivileges], adminRemoveTranslation);
117
+ setupApiRoute(router, 'put', '/api/v3/admin/plugins/customize/build', [middleware.admin.checkPrivileges], adminBuild);
135
118
  }
136
119
  exports.default = controllers;
137
120
  //# sourceMappingURL=controllers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"controllers.js","sourceRoot":"","sources":["../../lib/controllers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controllers.js","sourceRoot":"","sources":["../../lib/controllers.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  // types and helper functions for database
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.removeTemplate = exports.editTemplate = exports.getTemplates = exports.removeTranslation = exports.editTranslation = exports.getTranslations = void 0;
4
5
  const util_1 = require("util");
5
6
  const path_1 = require("path");
6
7
  const fs_extra_1 = require("fs-extra");
@@ -10,13 +11,13 @@ if (!require.main) {
10
11
  }
11
12
  const db = require.main.require('./src/database');
12
13
  const nconf = require.main.require('nconf');
13
- const getSortedSetRange = util_1.promisify(db.getSortedSetRange);
14
- const getObjects = util_1.promisify(db.getObjects);
15
- const sortedSetAdd = util_1.promisify(db.sortedSetAdd);
16
- const setObject = util_1.promisify(db.setObject);
17
- const remove = util_1.promisify(db.delete);
18
- const sortedSetRemove = util_1.promisify(db.sortedSetRemove);
19
- const languagesDir = path_1.join(nconf.get('base_dir'), 'build/public/language');
14
+ const getSortedSetRange = (0, util_1.promisify)(db.getSortedSetRange);
15
+ const getObjects = (0, util_1.promisify)(db.getObjects);
16
+ const sortedSetAdd = (0, util_1.promisify)(db.sortedSetAdd);
17
+ const setObject = (0, util_1.promisify)(db.setObject);
18
+ const remove = (0, util_1.promisify)(db.delete);
19
+ const sortedSetRemove = (0, util_1.promisify)(db.sortedSetRemove);
20
+ const languagesDir = (0, path_1.join)(nconf.get('base_dir'), 'build/public/language');
20
21
  const viewsDir = nconf.get('views_dir');
21
22
  const translationsSet = 'plugin-customize:translations';
22
23
  const translationHashKey = (key) => `${translationsSet}:${key}`;
@@ -29,8 +30,8 @@ async function getTranslations() {
29
30
  getObjects(ids.map(translationHashKey)),
30
31
  Promise.all(ids.map(async (id) => {
31
32
  const [language, namespace, key] = id.split(':');
32
- const filePath = path_1.join(languagesDir, language, `${namespace}.json`);
33
- const translations = await fs_extra_1.readJson(filePath);
33
+ const filePath = (0, path_1.join)(languagesDir, language, `${namespace}.json`);
34
+ const translations = await (0, fs_extra_1.readJson)(filePath).catch(() => ({}));
34
35
  return translations[key] || '';
35
36
  })),
36
37
  ]);
@@ -63,11 +64,11 @@ async function getTemplates() {
63
64
  const [hashes, currentValues] = await Promise.all([
64
65
  getObjects(paths.map(templateHashKey)),
65
66
  Promise.all(paths.map(async (path) => {
66
- const filePath = path_1.join(viewsDir, path);
67
- return await fs_extra_1.readFile(filePath, 'utf-8');
67
+ const filePath = (0, path_1.join)(viewsDir, path);
68
+ return await (0, fs_extra_1.readFile)(filePath, 'utf-8');
68
69
  })),
69
70
  ]);
70
- return currentValues.map((current, i) => (Object.assign(Object.assign({}, hashes[i]), { path: paths[i], value: diff_1.applyPatch(hashes[i].old, hashes[i].diff) })));
71
+ return currentValues.map((current, i) => (Object.assign(Object.assign({}, hashes[i]), { path: paths[i], value: (0, diff_1.applyPatch)(hashes[i].old, hashes[i].diff) })));
71
72
  }
72
73
  exports.getTemplates = getTemplates;
73
74
  async function editTemplate({ path, diff, old, }) {
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../lib/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../lib/database.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.adminMenu = exports.init = void 0;
3
4
  const controllers_1 = require("./controllers");
4
5
  const init = (params, callback) => {
5
- controllers_1.default(params);
6
+ (0, controllers_1.default)(params);
6
7
  callback();
7
8
  };
8
9
  exports.init = init;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";;AAAA,+CAAwC;AAExC,MAAM,IAAI,GAAG,CAAC,MAAiB,EAAE,QAAwB,EAAQ,EAAE;IACjE,qBAAW,CAAC,MAAM,CAAC,CAAC;IACpB,QAAQ,EAAE,CAAC;AACb,CAAC,CAAC;AAgBA,oBAAI;AAVN,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,QAA0B,EAAQ,EAAE;IACrE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QAClB,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACzB,CAAC,CAAC;AAIA,8BAAS"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";;;AAAA,+CAAwC;AAExC,MAAM,IAAI,GAAG,CAAC,MAAiB,EAAE,QAAwB,EAAQ,EAAE;IACjE,IAAA,qBAAW,EAAC,MAAM,CAAC,CAAC;IACpB,QAAQ,EAAE,CAAC;AACb,CAAC,CAAC;AAgBA,oBAAI;AAVN,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,QAA0B,EAAQ,EAAE;IACrE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QAClB,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACzB,CAAC,CAAC;AAIA,8BAAS"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.build = void 0;
3
4
  const os_1 = require("os");
4
5
  const build_1 = require("./build");
5
6
  if (!require.main) {
@@ -10,13 +11,11 @@ const winston = require.main.require('winston');
10
11
  const pubsub = require.main.require('./src/pubsub');
11
12
  const primary = nconf.get('isPrimary') === 'true' || nconf.get('isPrimary') === true;
12
13
  async function build() {
13
- if (pubsub.pubClient) {
14
- pubsub.publish('emoji:build', {
15
- hostname: os_1.hostname(),
16
- });
17
- }
14
+ pubsub.publish('customize:build', {
15
+ hostname: `${(0, os_1.hostname)()}:${nconf.get('port')}`,
16
+ });
18
17
  if (primary) {
19
- await build_1.build();
18
+ await (0, build_1.build)();
20
19
  }
21
20
  }
22
21
  exports.build = build;
@@ -26,9 +25,9 @@ const logErrors = (err) => {
26
25
  }
27
26
  };
28
27
  if (primary) {
29
- pubsub.on('emoji:build', (data) => {
30
- if (data.hostname !== os_1.hostname()) {
31
- build_1.build().catch(logErrors);
28
+ pubsub.on('customize:build', (data) => {
29
+ if (data.hostname !== `${(0, os_1.hostname)()}:${nconf.get('port')}`) {
30
+ (0, build_1.build)().catch(logErrors);
32
31
  }
33
32
  });
34
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../../lib/pubsub.ts"],"names":[],"mappings":";;AAAA,2BAA8B;AAG9B,mCAA+C;AAE/C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;IAAE,MAAM,KAAK,CAAC,gDAAgD,CAAC,CAAC;CAAE;AACrF,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAChD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AAEpD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;AAE9E,KAAK,UAAU,KAAK;IACzB,IAAI,MAAM,CAAC,SAAS,EAAE;QACpB,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE;YAC5B,QAAQ,EAAE,aAAQ,EAAE;SACrB,CAAC,CAAC;KACJ;IAED,IAAI,OAAO,EAAE;QACX,MAAM,aAAW,EAAE,CAAC;KACrB;AACH,CAAC;AAVD,sBAUC;AAED,MAAM,SAAS,GAAG,CAAC,GAAU,EAAQ,EAAE;IACrC,IAAI,GAAG,EAAE;QACP,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KACpB;AACH,CAAC,CAAC;AAEF,IAAI,OAAO,EAAE;IACX,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,IAA0B,EAAE,EAAE;QACtD,IAAI,IAAI,CAAC,QAAQ,KAAK,aAAQ,EAAE,EAAE;YAChC,aAAW,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SAChC;IACH,CAAC,CAAC,CAAC;CACJ"}
1
+ {"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../../lib/pubsub.ts"],"names":[],"mappings":";;;AAAA,2BAA8B;AAC9B,mCAA+C;AAE/C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;IAAE,MAAM,KAAK,CAAC,gDAAgD,CAAC,CAAC;CAAE;AACrF,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAChD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AAEpD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;AAE9E,KAAK,UAAU,KAAK;IACzB,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE;QAChC,QAAQ,EAAE,GAAG,IAAA,aAAQ,GAAE,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;KAC/C,CAAC,CAAC;IAEH,IAAI,OAAO,EAAE;QACX,MAAM,IAAA,aAAW,GAAE,CAAC;KACrB;AACH,CAAC;AARD,sBAQC;AAED,MAAM,SAAS,GAAG,CAAC,GAAU,EAAQ,EAAE;IACrC,IAAI,GAAG,EAAE;QACP,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KACpB;AACH,CAAC,CAAC;AAEF,IAAI,OAAO,EAAE;IACX,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,IAA0B,EAAE,EAAE;QAC1D,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,IAAA,aAAQ,GAAE,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE;YAC1D,IAAA,aAAW,GAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SAChC;IACH,CAAC,CAAC,CAAC;CACJ"}
@@ -1,6 +1,7 @@
1
1
  define("shared", ["require", "exports"], function (require, exports) {
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.unescape = exports.confirm = exports.error = exports.success = exports.setOptions = void 0;
4
5
  function setOptions(select, options) {
5
6
  select.empty();
6
7
  options.forEach(({ value, text }) => {
@@ -20,26 +21,6 @@ define("shared", ["require", "exports"], function (require, exports) {
20
21
  setTimeout(() => { throw err; }, 0);
21
22
  }
22
23
  exports.error = error;
23
- function requestDelete(path, data) {
24
- return Promise.resolve($.ajax({
25
- method: 'DELETE',
26
- url: `${window.config.relative_path}${path}`,
27
- data: JSON.stringify(data),
28
- processData: false,
29
- contentType: 'application/json',
30
- }));
31
- }
32
- exports.requestDelete = requestDelete;
33
- function requestPost(path, data) {
34
- return Promise.resolve($.ajax({
35
- method: 'POST',
36
- url: `${window.config.relative_path}${path}`,
37
- data: JSON.stringify(data),
38
- processData: false,
39
- contentType: 'application/json',
40
- }));
41
- }
42
- exports.requestPost = requestPost;
43
24
  function confirm(message) {
44
25
  return new Promise((resolve) => window.bootbox.confirm(message, resolve));
45
26
  }
@@ -49,7 +30,7 @@ define("shared", ["require", "exports"], function (require, exports) {
49
30
  }
50
31
  exports.unescape = unescape;
51
32
  });
52
- define("translations", ["require", "exports", "translator", "benchpress", "shared"], function (require, exports, translator_1, Benchpress, shared_1) {
33
+ define("translations", ["require", "exports", "translator", "benchpress", "api", "shared"], function (require, exports, translator_1, Benchpress, api, shared_1) {
53
34
  "use strict";
54
35
  Object.defineProperty(exports, "__esModule", { value: true });
55
36
  const edit = {
@@ -74,7 +55,7 @@ define("translations", ["require", "exports", "translator", "benchpress", "share
74
55
  value: key,
75
56
  text: key,
76
57
  }));
77
- shared_1.setOptions(edit.key, keys);
58
+ (0, shared_1.setOptions)(edit.key, keys);
78
59
  edit.key.prepend('<option value="">---</option>');
79
60
  });
80
61
  }
@@ -107,7 +88,7 @@ define("translations", ["require", "exports", "translator", "benchpress", "share
107
88
  edit.key.change(() => updateOld().catch(shared_1.error));
108
89
  $(document).ready(() => updateKeys().then(updateOld).catch(shared_1.error));
109
90
  function removeTranslation(id) {
110
- return shared_1.requestDelete('/api/admin/plugins/customize/delete/translation/', {
91
+ return api.del('/admin/plugins/customize/delete/translation', {
111
92
  translation: id,
112
93
  });
113
94
  }
@@ -124,7 +105,7 @@ define("translations", ["require", "exports", "translator", "benchpress", "share
124
105
  }
125
106
  function deleteEntry(elem) {
126
107
  elem.addClass('active');
127
- return shared_1.confirm('Are you sure you want to delete this translation?')
108
+ return (0, shared_1.confirm)('Are you sure you want to delete this translation?')
128
109
  .then((yes) => {
129
110
  if (!yes) {
130
111
  elem.removeClass('active');
@@ -179,7 +160,9 @@ define("translations", ["require", "exports", "translator", "benchpress", "share
179
160
  value,
180
161
  };
181
162
  return before
182
- .then(() => shared_1.requestPost('/api/admin/plugins/customize/edit/translation', { translation: data }))
163
+ .then(() => api.put('/admin/plugins/customize/edit/translation', {
164
+ translation: data,
165
+ }))
183
166
  .then(updateList)
184
167
  .then(() => {
185
168
  edit.language.val(window.config.userLang);
@@ -194,7 +177,7 @@ define("translations", ["require", "exports", "translator", "benchpress", "share
194
177
  }
195
178
  edit.submit.click(() => submit().then(shared_1.success, shared_1.error));
196
179
  });
197
- define("templates", ["require", "exports", "translator", "benchpress", "ace/ace", "shared"], function (require, exports, translator_2, Benchpress, ace, shared_2) {
180
+ define("templates", ["require", "exports", "translator", "benchpress", "ace/ace", "api", "shared"], function (require, exports, translator_2, Benchpress, ace, api, shared_2) {
198
181
  "use strict";
199
182
  Object.defineProperty(exports, "__esModule", { value: true });
200
183
  const edit = {
@@ -256,7 +239,7 @@ define("templates", ["require", "exports", "translator", "benchpress", "ace/ace"
256
239
  }
257
240
  });
258
241
  function removeTemplate(path) {
259
- return shared_2.requestDelete('/api/admin/plugins/customize/delete/template/', {
242
+ return api.del('/admin/plugins/customize/delete/template', {
260
243
  template: path,
261
244
  });
262
245
  }
@@ -270,7 +253,7 @@ define("templates", ["require", "exports", "translator", "benchpress", "ace/ace"
270
253
  }
271
254
  function deleteEntry(elem) {
272
255
  elem.addClass('active');
273
- return shared_2.confirm('Are you sure you want to delete this template?')
256
+ return (0, shared_2.confirm)('Are you sure you want to delete this template?')
274
257
  .then((yes) => {
275
258
  if (!yes) {
276
259
  elem.removeClass('active');
@@ -335,7 +318,9 @@ define("templates", ["require", "exports", "translator", "benchpress", "ace/ace"
335
318
  value,
336
319
  };
337
320
  return before
338
- .then(() => shared_2.requestPost('/api/admin/plugins/customize/edit/template', { template: data }))
321
+ .then(() => api.put('/admin/plugins/customize/edit/template', {
322
+ template: data,
323
+ }))
339
324
  .then(updateList)
340
325
  .then(() => {
341
326
  edit.path.val('');
@@ -349,11 +334,11 @@ define("templates", ["require", "exports", "translator", "benchpress", "ace/ace"
349
334
  });
350
335
  // eslint-disable-next-line spaced-comment
351
336
  /// <amd-module name="admin/plugins/customize"/>
352
- define("admin/plugins/customize", ["require", "exports", "translations", "templates"], function (require, exports) {
337
+ define("admin/plugins/customize", ["require", "exports", "api", "translations", "templates"], function (require, exports, api) {
353
338
  "use strict";
354
339
  Object.defineProperty(exports, "__esModule", { value: true });
355
340
  $('#build').click(() => {
356
- Promise.resolve($.post(`${window.config.relative_path}/api/admin/plugins/customize/build`)).then(() => window.app.alertSuccess('[[admin/plugins/customize:build_success]]'), () => window.app.alertError());
341
+ api.put('/admin/plugins/customize/build', {}).then(() => window.app.alertSuccess('[[admin/plugins/customize:build_success]]'), () => window.app.alertError());
357
342
  });
358
343
  });
359
344
  //# sourceMappingURL=admin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../public/lib/shared.ts","../../../public/lib/translations.ts","../../../public/lib/templates.ts","../../../public/lib/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../public/lib/shared.ts","../../../public/lib/translations.ts","../../../public/lib/templates.ts","../../../public/lib/index.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,8 @@ const Languages = require.main.require('./src/languages');
13
13
  const File = require.main.require('./src/file');
14
14
  const Translator = require.main.require('./src/translator');
15
15
  const Utils = require.main.require('./src/utils');
16
+ const { setupApiRoute, setupAdminPageRoute } = require.main.require('./src/routes/helpers');
17
+ const { formatApiResponse } = require.main.require('./src/controllers/helpers');
16
18
 
17
19
  const escape = (dirty: string): string => Translator.escape(Utils.escapeHTML(dirty));
18
20
 
@@ -23,7 +25,7 @@ const listLanguages: () => Promise<{
23
25
  const getSettings: (uid: number) => Promise<{ userLang: string }> = promisify(User.getSettings);
24
26
  const walk: (base: string) => string[] = promisify(File.walk);
25
27
 
26
- // eslint-disable-next-line import/no-dynamic-require
28
+ // eslint-disable-next-line import/no-dynamic-require, @typescript-eslint/no-var-requires
27
29
  const version: string = require(join(__dirname, '../../package.json')).version;
28
30
 
29
31
  let namespaceCache: string[] = [];
@@ -58,112 +60,90 @@ async function listTemplates(): Promise<string[]> {
58
60
  return templateCache;
59
61
  }
60
62
 
61
- const renderAdmin: RequestHandler = (req, res, next): void => {
62
- Promise.all([
63
+ const renderAdmin: RequestHandler = async (req, res) => {
64
+ const [
65
+ templates,
66
+ translations,
67
+ languages,
68
+ userLang,
69
+ namespaces,
70
+ templatePaths,
71
+ ] = await Promise.all([
63
72
  db.getTemplates(),
64
73
  db.getTranslations(),
65
74
  listLanguages(),
66
- getSettings(req.uid).then(({ userLang }) => userLang),
75
+ getSettings(req.uid).then((data) => data.userLang),
67
76
  listNamespaces(),
68
77
  listTemplates(),
69
- ])
70
- .then(([
71
- templates,
72
- translations,
73
- languages,
74
- userLang,
75
- namespaces,
76
- templatePaths,
77
- ]) => {
78
- res.render('admin/plugins/customize', {
79
- version,
80
- templates: templates.map((x) => ({
81
- path: x.path,
82
- json: escape(JSON.stringify(x)),
83
- diff: escape(x.diff),
84
- })),
85
- translations,
86
- languages: languages.map(({ code, name }) => ({
87
- code,
88
- name,
89
- selected: code === userLang,
90
- })),
91
- namespaces: namespaces.map((name) => ({ name })),
92
- templatePaths,
93
- });
94
- })
95
- .catch((err) => next(err));
78
+ ]);
79
+ res.render('admin/plugins/customize', {
80
+ version,
81
+ templates: templates.map((x) => ({
82
+ path: x.path,
83
+ json: escape(JSON.stringify(x)),
84
+ diff: escape(x.diff),
85
+ })),
86
+ translations,
87
+ languages: languages.map(({ code, name }) => ({
88
+ code,
89
+ name,
90
+ selected: code === userLang,
91
+ })),
92
+ namespaces: namespaces.map((name) => ({ name })),
93
+ templatePaths,
94
+ });
96
95
  };
97
- const adminBuild: RequestHandler = (req, res, next): void => {
98
- build().then(
99
- () => res.send('OK'),
100
- (err) => next(err)
101
- );
96
+ const adminBuild: RequestHandler = async (req, res) => {
97
+ await build();
98
+ formatApiResponse(200, res, 'OK');
102
99
  };
103
100
 
104
- const adminEditTranslation: RequestHandler = (req, res, next): void => {
101
+ const adminEditTranslation: RequestHandler = async (req, res) => {
105
102
  const translation: Translation = req.body.translation;
106
103
 
107
- db.editTranslation(translation)
108
- .then(db.getTranslations)
109
- .then((translations) => {
110
- res.json({
111
- translations,
112
- });
113
- })
114
- .catch((err) => next(err));
104
+ await db.editTranslation(translation);
105
+ const translations = await db.getTranslations();
106
+ formatApiResponse(200, res, { translations });
115
107
  };
116
- const adminRemoveTranslation: RequestHandler = (req, res, next): void => {
117
- db.removeTranslation(req.body.translation)
118
- .then(db.getTranslations)
119
- .then((translations) => {
120
- res.json({
121
- translations,
122
- });
123
- })
124
- .catch((err) => next(err));
108
+ const adminRemoveTranslation: RequestHandler = async (req, res) => {
109
+ await db.removeTranslation(req.body.translation);
110
+ const translations = await db.getTranslations();
111
+ formatApiResponse(200, res, { translations });
125
112
  };
126
113
 
127
- const adminEditTemplate: RequestHandler = (req, res, next): void => {
114
+ const adminEditTemplate: RequestHandler = async (req, res) => {
128
115
  const template: Template = req.body.template;
129
116
 
130
- db.editTemplate(template)
131
- .then(db.getTemplates)
132
- .then((templates) => {
133
- res.json({
134
- templates: templates.map((x) => ({
135
- path: x.path,
136
- json: escape(JSON.stringify(x)),
137
- diff: escape(x.diff),
138
- })),
139
- });
140
- })
141
- .catch((err) => next(err));
117
+ await db.editTemplate(template);
118
+ const templates = await db.getTemplates();
119
+ formatApiResponse(200, res, {
120
+ templates: templates.map((x) => ({
121
+ path: x.path,
122
+ json: escape(JSON.stringify(x)),
123
+ diff: escape(x.diff),
124
+ })),
125
+ });
142
126
  };
143
- const adminRemoveTemplate: RequestHandler = (req, res, next): void => {
144
- db.removeTemplate(req.body.template)
145
- .then(db.getTemplates)
146
- .then((templates) => {
147
- res.json({
148
- templates: templates.map((x) => ({
149
- path: x.path,
150
- json: escape(JSON.stringify(x)),
151
- diff: escape(x.diff),
152
- })),
153
- });
154
- })
155
- .catch((err) => next(err));
127
+ const adminRemoveTemplate: RequestHandler = async (req, res) => {
128
+ await db.removeTemplate(req.body.template);
129
+ const templates = await db.getTemplates();
130
+ formatApiResponse(200, res, {
131
+ templates: templates.map((x) => ({
132
+ path: x.path,
133
+ json: escape(JSON.stringify(x)),
134
+ diff: escape(x.diff),
135
+ })),
136
+ });
156
137
  };
157
138
 
158
139
  export default function controllers({ router, middleware }: AppParams): void {
159
- router.get('/admin/plugins/customize', middleware.admin.buildHeader, renderAdmin);
160
- router.get('/api/admin/plugins/customize', renderAdmin);
140
+ setupAdminPageRoute(router, '/admin/plugins/customize', middleware, [], renderAdmin);
161
141
 
162
- router.post('/api/admin/plugins/customize/edit/template', adminEditTemplate);
163
- router.post('/api/admin/plugins/customize/edit/translation', adminEditTranslation);
142
+ setupApiRoute(router, 'put', '/api/v3/admin/plugins/customize/edit/template', [middleware.admin.checkPrivileges], adminEditTemplate);
143
+ setupApiRoute(router, 'delete', '/api/v3/admin/plugins/customize/delete/template', [middleware.admin.checkPrivileges], adminRemoveTemplate);
164
144
 
165
- router.delete('/api/admin/plugins/customize/delete/template', adminRemoveTemplate);
166
- router.delete('/api/admin/plugins/customize/delete/translation', adminRemoveTranslation);
145
+ setupApiRoute(router, 'put', '/api/v3/admin/plugins/customize/edit/translation', [middleware.admin.checkPrivileges], adminEditTranslation);
146
+ setupApiRoute(router, 'delete', '/api/v3/admin/plugins/customize/delete/translation', [middleware.admin.checkPrivileges], adminRemoveTranslation);
167
147
 
168
- router.post('/api/admin/plugins/customize/build', adminBuild);
148
+ setupApiRoute(router, 'put', '/api/v3/admin/plugins/customize/build', [middleware.admin.checkPrivileges], adminBuild);
169
149
  }
package/lib/database.ts CHANGED
@@ -52,7 +52,7 @@ export async function getTranslations(): Promise<Translation[]> {
52
52
  Promise.all(ids.map(async (id) => {
53
53
  const [language, namespace, key] = id.split(':');
54
54
  const filePath = join(languagesDir, language, `${namespace}.json`);
55
- const translations: { [key: string]: string } = await readJson(filePath);
55
+ const translations: { [key: string]: string } = await readJson(filePath).catch(() => ({}));
56
56
  return translations[key] || '';
57
57
  })),
58
58
  ]);
package/lib/pubsub.ts CHANGED
@@ -1,6 +1,4 @@
1
1
  import { hostname } from 'os';
2
-
3
-
4
2
  import { build as buildAssets } from './build';
5
3
 
6
4
  if (!require.main) { throw Error('[plugin-customize] `require.main` is undefined'); }
@@ -11,11 +9,9 @@ const pubsub = require.main.require('./src/pubsub');
11
9
  const primary = nconf.get('isPrimary') === 'true' || nconf.get('isPrimary') === true;
12
10
 
13
11
  export async function build(): Promise<void> {
14
- if (pubsub.pubClient) {
15
- pubsub.publish('emoji:build', {
16
- hostname: hostname(),
17
- });
18
- }
12
+ pubsub.publish('customize:build', {
13
+ hostname: `${hostname()}:${nconf.get('port')}`,
14
+ });
19
15
 
20
16
  if (primary) {
21
17
  await buildAssets();
@@ -29,8 +25,8 @@ const logErrors = (err: Error): void => {
29
25
  };
30
26
 
31
27
  if (primary) {
32
- pubsub.on('emoji:build', (data: { hostname: string }) => {
33
- if (data.hostname !== hostname()) {
28
+ pubsub.on('customize:build', (data: { hostname: string }) => {
29
+ if (data.hostname !== `${hostname()}:${nconf.get('port')}`) {
34
30
  buildAssets().catch(logErrors);
35
31
  }
36
32
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodebb-plugin-customize",
3
- "version": "1.1.2",
3
+ "version": "2.0.4",
4
4
  "description": "Customize NodeBB translations and templates",
5
5
  "main": "build/lib",
6
6
  "author": "Peter Jaszkowiak <p.jaszkow@gmail.com> (https://github.com/pitaj)",
@@ -10,7 +10,7 @@
10
10
  "url": "https://github.com/NodeBB/nodebb-plugin-customize.git"
11
11
  },
12
12
  "nbbpm": {
13
- "compatibility": "^1.11.0"
13
+ "compatibility": "~1.17 || ~1.18 || ~1.19"
14
14
  },
15
15
  "keywords": [
16
16
  "nodebb",
@@ -20,30 +20,30 @@
20
20
  "template"
21
21
  ],
22
22
  "dependencies": {
23
- "diff": "^4.0.2",
24
- "fs-extra": "^9.0.0",
25
- "lodash": "^4.17.15"
23
+ "diff": "^5.0.0",
24
+ "fs-extra": "^10.0.0",
25
+ "lodash": "^4.17.21"
26
26
  },
27
27
  "devDependencies": {
28
- "@types/ace": "0.0.43",
28
+ "@types/ace": "^0.0.47",
29
29
  "@types/bootstrap": "^3.4.0",
30
- "@types/diff": "^4.0.2",
31
- "@types/express": "^4.17.4",
32
- "@types/fs-extra": "^8.1.0",
33
- "@types/jquery": "^3.3.34",
34
- "@types/lodash": "^4.14.149",
35
- "@types/nconf": "^0.10.0",
36
- "@types/node": "^13.11.0",
37
- "@typescript-eslint/eslint-plugin": "^2.27.0",
38
- "@typescript-eslint/parser": "^2.27.0",
39
- "eslint": "^6.8.0",
40
- "eslint-config-airbnb-base": "^14.1.0",
41
- "eslint-plugin-import": "^2.20.2",
42
- "typescript": "^3.8.3"
30
+ "@types/diff": "^5.0.1",
31
+ "@types/express": "^4.17.13",
32
+ "@types/fs-extra": "^9.0.12",
33
+ "@types/jquery": "^3.5.6",
34
+ "@types/lodash": "^4.14.172",
35
+ "@types/nconf": "^0.10.1",
36
+ "@types/node": "^16.9.1",
37
+ "@typescript-eslint/eslint-plugin": "^4.31.0",
38
+ "@typescript-eslint/parser": "^4.31.0",
39
+ "eslint": "^7.32.0",
40
+ "eslint-config-airbnb-base": "^14.2.1",
41
+ "eslint-plugin-import": "^2.24.2",
42
+ "typescript": "^4.4.3"
43
43
  },
44
44
  "scripts": {
45
45
  "lint": "eslint lib/* && eslint public/lib/*",
46
46
  "compile": "node copy-sources && tsc -p . && tsc -p public",
47
- "prepare": "rm -r build; npm run compile"
47
+ "prepare": "rm -rf build; npm run compile"
48
48
  }
49
49
  }
@@ -1,13 +1,13 @@
1
1
  // eslint-disable-next-line spaced-comment
2
2
  /// <amd-module name="admin/plugins/customize"/>
3
3
 
4
+ import * as api from 'api';
5
+
4
6
  import './translations';
5
7
  import './templates';
6
8
 
7
9
  $('#build').click(() => {
8
- Promise.resolve(
9
- $.post(`${window.config.relative_path}/api/admin/plugins/customize/build`)
10
- ).then(
10
+ api.put('/admin/plugins/customize/build', {}).then(
11
11
  () => window.app.alertSuccess('[[admin/plugins/customize:build_success]]'),
12
12
  () => window.app.alertError()
13
13
  );
@@ -20,25 +20,6 @@ export function error(err: Error): void {
20
20
  setTimeout(() => { throw err; }, 0);
21
21
  }
22
22
 
23
- export function requestDelete<A, B>(path: string, data: A): Promise<B> {
24
- return Promise.resolve($.ajax({
25
- method: 'DELETE',
26
- url: `${window.config.relative_path}${path}`,
27
- data: JSON.stringify(data),
28
- processData: false,
29
- contentType: 'application/json',
30
- }));
31
- }
32
- export function requestPost<A, B>(path: string, data: A): Promise<B> {
33
- return Promise.resolve($.ajax({
34
- method: 'POST',
35
- url: `${window.config.relative_path}${path}`,
36
- data: JSON.stringify(data),
37
- processData: false,
38
- contentType: 'application/json',
39
- }));
40
- }
41
-
42
23
  export function confirm(message: string): Promise<boolean> {
43
24
  return new Promise(
44
25
  (resolve) => window.bootbox.confirm(message, resolve)
@@ -1,13 +1,12 @@
1
1
  import { Translator } from 'translator';
2
2
  import * as Benchpress from 'benchpress';
3
3
  import * as ace from 'ace/ace';
4
+ import * as api from 'api';
4
5
 
5
6
  import {
6
7
  success,
7
8
  error,
8
9
  confirm,
9
- requestDelete,
10
- requestPost,
11
10
  } from './shared';
12
11
 
13
12
  const edit = {
@@ -88,7 +87,7 @@ interface TemplatesListResponse {
88
87
  }
89
88
 
90
89
  function removeTemplate(path: string): Promise<TemplatesListResponse> {
91
- return requestDelete('/api/admin/plugins/customize/delete/template/', {
90
+ return api.del('/admin/plugins/customize/delete/template', {
92
91
  template: path,
93
92
  });
94
93
  }
@@ -195,10 +194,9 @@ function submit(): Promise<void> {
195
194
  };
196
195
 
197
196
  return before
198
- .then(() => requestPost<{ template: Template }, TemplatesListResponse>(
199
- '/api/admin/plugins/customize/edit/template',
200
- { template: data }
201
- ))
197
+ .then(() => api.put('/admin/plugins/customize/edit/template', {
198
+ template: data,
199
+ }))
202
200
  .then(updateList)
203
201
  .then(() => {
204
202
  edit.path.val('');
@@ -1,13 +1,12 @@
1
1
  import { Translator } from 'translator';
2
2
  import * as Benchpress from 'benchpress';
3
+ import * as api from 'api';
3
4
 
4
5
  import {
5
6
  setOptions,
6
7
  success,
7
8
  error,
8
9
  confirm,
9
- requestDelete,
10
- requestPost,
11
10
  } from './shared';
12
11
 
13
12
  const edit = {
@@ -85,7 +84,7 @@ interface TranslationsListResponse {
85
84
  }
86
85
 
87
86
  function removeTranslation(id: string): Promise<TranslationsListResponse> {
88
- return requestDelete('/api/admin/plugins/customize/delete/translation/', {
87
+ return api.del('/admin/plugins/customize/delete/translation', {
89
88
  translation: id,
90
89
  });
91
90
  }
@@ -180,10 +179,9 @@ function submit(): Promise<void> {
180
179
  };
181
180
 
182
181
  return before
183
- .then(() => requestPost<{ translation: Translation }, TranslationsListResponse>(
184
- '/api/admin/plugins/customize/edit/translation',
185
- { translation: data }
186
- ))
182
+ .then(() => api.put('/admin/plugins/customize/edit/translation', {
183
+ translation: data,
184
+ }))
187
185
  .then(updateList)
188
186
  .then(() => {
189
187
  edit.language.val(window.config.userLang);
@@ -2,6 +2,7 @@ declare type Callback<T = void> = (result: T) => void;
2
2
 
3
3
  interface Window {
4
4
  config: {
5
+ // eslint-disable-next-line camelcase
5
6
  relative_path: string;
6
7
  'cache-buster': string;
7
8
  userLang: string;
@@ -52,3 +53,11 @@ declare module 'ace/ace' {
52
53
  const Ace: AceAjax.Ace;
53
54
  export = Ace;
54
55
  }
56
+
57
+ declare module 'api' {
58
+ export function get(route: string, payload: NonNullable<unknown>): Promise<any>;
59
+ export function head(route: string, payload: NonNullable<unknown>): Promise<any>;
60
+ export function post(route: string, payload: NonNullable<unknown>): Promise<any>;
61
+ export function put(route: string, payload: NonNullable<unknown>): Promise<any>;
62
+ export function del(route: string, payload: NonNullable<unknown>): Promise<any>;
63
+ }
package/public/admin.js DELETED
@@ -1,7 +0,0 @@
1
- define('admin/plugins/customize', [], function () {
2
- $('#build').on('click', function () {
3
- $.get(window.config.relative_path + '/api/admin/plugins/emoji/build', function () {
4
- window.app.alertSuccess('[[admin/plugins/customize:build_success]]');
5
- });
6
- });
7
- });