jxp 2.16.0 → 4.0.0

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.
Files changed (218) hide show
  1. package/.env.sample +31 -6
  2. package/README.md +27 -13
  3. package/dist/bin/init_db.d.ts +3 -0
  4. package/dist/bin/init_db.d.ts.map +1 -0
  5. package/dist/bin/init_db.js +48 -0
  6. package/dist/bin/init_db.js.map +1 -0
  7. package/dist/bin/server.d.ts +4 -0
  8. package/dist/bin/server.d.ts.map +1 -0
  9. package/dist/bin/server.js +132 -0
  10. package/dist/bin/server.js.map +1 -0
  11. package/dist/bin/setup.d.ts +3 -0
  12. package/dist/bin/setup.d.ts.map +1 -0
  13. package/dist/bin/setup.js +185 -0
  14. package/dist/bin/setup.js.map +1 -0
  15. package/dist/globals.d.ts +14 -0
  16. package/dist/globals.d.ts.map +1 -0
  17. package/dist/globals.js +3 -0
  18. package/dist/globals.js.map +1 -0
  19. package/dist/libs/aggregate_guard.d.ts +5 -0
  20. package/dist/libs/aggregate_guard.d.ts.map +1 -0
  21. package/dist/libs/aggregate_guard.js +58 -0
  22. package/dist/libs/aggregate_guard.js.map +1 -0
  23. package/dist/libs/bulkwrite_guard.d.ts +5 -0
  24. package/dist/libs/bulkwrite_guard.d.ts.map +1 -0
  25. package/dist/libs/bulkwrite_guard.js +44 -0
  26. package/dist/libs/bulkwrite_guard.js.map +1 -0
  27. package/dist/libs/cache.d.ts +2 -0
  28. package/dist/libs/cache.d.ts.map +1 -0
  29. package/dist/libs/cache.js +94 -0
  30. package/dist/libs/cache.js.map +1 -0
  31. package/dist/libs/call_guard.d.ts +3 -0
  32. package/dist/libs/call_guard.d.ts.map +1 -0
  33. package/dist/libs/call_guard.js +17 -0
  34. package/dist/libs/call_guard.js.map +1 -0
  35. package/dist/libs/connection_string.d.ts +3 -0
  36. package/dist/libs/connection_string.d.ts.map +1 -0
  37. package/dist/libs/connection_string.js +4 -0
  38. package/dist/libs/connection_string.js.map +1 -0
  39. package/dist/libs/datamunging.d.ts +2 -0
  40. package/dist/libs/datamunging.d.ts.map +1 -0
  41. package/dist/libs/datamunging.js +320 -0
  42. package/dist/libs/datamunging.js.map +1 -0
  43. package/dist/libs/docs.d.ts +2 -0
  44. package/dist/libs/docs.d.ts.map +1 -0
  45. package/dist/libs/docs.js +307 -0
  46. package/dist/libs/docs.js.map +1 -0
  47. package/dist/libs/groups.d.ts +2 -0
  48. package/dist/libs/groups.d.ts.map +1 -0
  49. package/dist/libs/groups.js +136 -0
  50. package/dist/libs/groups.js.map +1 -0
  51. package/dist/libs/jxp.d.ts +4 -0
  52. package/dist/libs/jxp.d.ts.map +1 -0
  53. package/dist/libs/jxp.js +1157 -0
  54. package/dist/libs/jxp.js.map +1 -0
  55. package/dist/libs/link_index.d.ts +14 -0
  56. package/dist/libs/link_index.d.ts.map +1 -0
  57. package/dist/libs/link_index.js +37 -0
  58. package/dist/libs/link_index.js.map +1 -0
  59. package/dist/libs/load-config.d.ts +16 -0
  60. package/dist/libs/load-config.d.ts.map +1 -0
  61. package/dist/libs/load-config.js +155 -0
  62. package/dist/libs/load-config.js.map +1 -0
  63. package/dist/libs/login.d.ts +2 -0
  64. package/dist/libs/login.d.ts.map +1 -0
  65. package/dist/libs/login.js +244 -0
  66. package/dist/libs/login.js.map +1 -0
  67. package/dist/libs/modeldir.d.ts +5 -0
  68. package/dist/libs/modeldir.d.ts.map +1 -0
  69. package/dist/libs/modeldir.js +15 -0
  70. package/dist/libs/modeldir.js.map +1 -0
  71. package/dist/libs/query_limits.d.ts +2 -0
  72. package/dist/libs/query_limits.d.ts.map +1 -0
  73. package/dist/libs/query_limits.js +84 -0
  74. package/dist/libs/query_limits.js.map +1 -0
  75. package/dist/libs/query_manipulation.d.ts +3 -0
  76. package/dist/libs/query_manipulation.d.ts.map +1 -0
  77. package/{libs → dist/libs}/query_manipulation.js +22 -21
  78. package/dist/libs/query_manipulation.js.map +1 -0
  79. package/dist/libs/query_sanitize.d.ts +5 -0
  80. package/dist/libs/query_sanitize.d.ts.map +1 -0
  81. package/dist/libs/query_sanitize.js +109 -0
  82. package/dist/libs/query_sanitize.js.map +1 -0
  83. package/dist/libs/response_sanitize.d.ts +7 -0
  84. package/dist/libs/response_sanitize.d.ts.map +1 -0
  85. package/dist/libs/response_sanitize.js +57 -0
  86. package/dist/libs/response_sanitize.js.map +1 -0
  87. package/dist/libs/safe_error.d.ts +3 -0
  88. package/dist/libs/safe_error.d.ts.map +1 -0
  89. package/dist/libs/safe_error.js +14 -0
  90. package/dist/libs/safe_error.js.map +1 -0
  91. package/dist/libs/schema.d.ts +14 -0
  92. package/dist/libs/schema.d.ts.map +1 -0
  93. package/dist/libs/schema.js +98 -0
  94. package/dist/libs/schema.js.map +1 -0
  95. package/dist/libs/schema_description.d.ts +3 -0
  96. package/dist/libs/schema_description.d.ts.map +1 -0
  97. package/{libs → dist/libs}/schema_description.js +12 -21
  98. package/dist/libs/schema_description.js.map +1 -0
  99. package/dist/libs/security.d.ts +2 -0
  100. package/dist/libs/security.d.ts.map +1 -0
  101. package/dist/libs/security.js +428 -0
  102. package/dist/libs/security.js.map +1 -0
  103. package/dist/libs/setup.d.ts +2 -0
  104. package/dist/libs/setup.d.ts.map +1 -0
  105. package/dist/libs/setup.js +87 -0
  106. package/dist/libs/setup.js.map +1 -0
  107. package/dist/libs/startup-deprecations.d.ts +2 -0
  108. package/dist/libs/startup-deprecations.d.ts.map +1 -0
  109. package/dist/libs/startup-deprecations.js +21 -0
  110. package/dist/libs/startup-deprecations.js.map +1 -0
  111. package/dist/libs/startup.d.ts +16 -0
  112. package/dist/libs/startup.d.ts.map +1 -0
  113. package/dist/libs/startup.js +63 -0
  114. package/dist/libs/startup.js.map +1 -0
  115. package/dist/libs/ws.d.ts +2 -0
  116. package/dist/libs/ws.d.ts.map +1 -0
  117. package/{libs → dist/libs}/ws.js +114 -73
  118. package/dist/libs/ws.js.map +1 -0
  119. package/dist/models/apikey_model.d.ts +10 -0
  120. package/dist/models/apikey_model.d.ts.map +1 -0
  121. package/dist/models/apikey_model.js +14 -0
  122. package/dist/models/apikey_model.js.map +1 -0
  123. package/dist/models/link_model.d.ts +9 -0
  124. package/dist/models/link_model.d.ts.map +1 -0
  125. package/dist/models/link_model.js +20 -0
  126. package/dist/models/link_model.js.map +1 -0
  127. package/dist/models/refreshtoken_model.d.ts +11 -0
  128. package/dist/models/refreshtoken_model.d.ts.map +1 -0
  129. package/dist/models/refreshtoken_model.js +22 -0
  130. package/dist/models/refreshtoken_model.js.map +1 -0
  131. package/dist/models/test_model.d.ts +24 -0
  132. package/dist/models/test_model.d.ts.map +1 -0
  133. package/dist/models/test_model.js +44 -0
  134. package/dist/models/test_model.js.map +1 -0
  135. package/dist/models/token_model.d.ts +14 -0
  136. package/dist/models/token_model.d.ts.map +1 -0
  137. package/dist/models/token_model.js +25 -0
  138. package/dist/models/token_model.js.map +1 -0
  139. package/dist/models/user_model.d.ts +15 -0
  140. package/dist/models/user_model.d.ts.map +1 -0
  141. package/dist/models/user_model.js +38 -0
  142. package/dist/models/user_model.js.map +1 -0
  143. package/dist/models/usergroups_model.d.ts +9 -0
  144. package/dist/models/usergroups_model.d.ts.map +1 -0
  145. package/dist/models/usergroups_model.js +18 -0
  146. package/dist/models/usergroups_model.js.map +1 -0
  147. package/dist/types/jxp-config.d.ts +134 -0
  148. package/dist/types/jxp-config.d.ts.map +1 -0
  149. package/dist/types/jxp-config.js +3 -0
  150. package/dist/types/jxp-config.js.map +1 -0
  151. package/dist/types/schema-fields.d.ts +43 -0
  152. package/dist/types/schema-fields.d.ts.map +1 -0
  153. package/dist/types/schema-fields.js +3 -0
  154. package/dist/types/schema-fields.js.map +1 -0
  155. package/docs/aggregations.md +40 -21
  156. package/docs/api.md +55 -15
  157. package/docs/authentication.md +60 -37
  158. package/docs/bulk_writes.md +11 -8
  159. package/docs/caching.md +28 -11
  160. package/docs/changelog.md +237 -31
  161. package/docs/configuration.md +99 -118
  162. package/docs/hooks.md +12 -8
  163. package/docs/index.md +17 -17
  164. package/docs/installation.md +23 -18
  165. package/docs/permissions.md +33 -19
  166. package/docs/queries.md +9 -5
  167. package/docs/schemas.md +21 -10
  168. package/docs/special.md +4 -4
  169. package/docs/typescript.md +86 -0
  170. package/docs/websocket.md +99 -1
  171. package/mkdocs.yml +1 -0
  172. package/package.json +121 -69
  173. package/templates/api.pug +32 -0
  174. package/templates/app-server.js +43 -0
  175. package/templates/app.env.sample +8 -0
  176. package/templates/assets/api-console.js +133 -0
  177. package/templates/assets/docs.css +227 -0
  178. package/templates/index.pug +62 -2
  179. package/templates/layout.pug +17 -11
  180. package/templates/md.pug +1 -1
  181. package/templates/model.pug +117 -68
  182. package/templates/navbar.pug +14 -21
  183. package/templates/sidebar.pug +30 -0
  184. package/.env +0 -9
  185. package/.eslintrc.json +0 -20
  186. package/.jshintrc +0 -4
  187. package/.vscode/launch.json +0 -29
  188. package/.vscode/settings.json +0 -3
  189. package/Dockerfile +0 -7
  190. package/bin/init_db.js +0 -54
  191. package/bin/server.js +0 -84
  192. package/bin/setup.js +0 -190
  193. package/config_sample.json +0 -10
  194. package/docker-compose.yml +0 -32
  195. package/libs/cache.js +0 -92
  196. package/libs/connection_string.js +0 -24
  197. package/libs/datamunging.js +0 -335
  198. package/libs/docs.js +0 -162
  199. package/libs/groups.js +0 -133
  200. package/libs/jxp.js +0 -1208
  201. package/libs/login.js +0 -218
  202. package/libs/modeldir.js +0 -14
  203. package/libs/schema.js +0 -99
  204. package/libs/security.js +0 -410
  205. package/libs/setup.js +0 -90
  206. package/models/apikey_model.js +0 -10
  207. package/models/link_model.js +0 -17
  208. package/models/refreshtoken_model.js +0 -20
  209. package/models/test_model.js +0 -50
  210. package/models/token_model.js +0 -23
  211. package/models/user_model.js +0 -38
  212. package/models/usergroups_model.js +0 -15
  213. package/setup.sh +0 -3
  214. package/test/.eslintrc.json +0 -13
  215. package/test/init.js +0 -92
  216. package/test/setup.test.js +0 -62
  217. package/test/test.js +0 -1527
  218. package/test/wstest.js.old +0 -124
@@ -0,0 +1,307 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = __importDefault(require("fs"));
7
+ const path_1 = __importDefault(require("path"));
8
+ const pug_1 = __importDefault(require("pug"));
9
+ const js_yaml_1 = __importDefault(require("js-yaml"));
10
+ const markdown_it_1 = __importDefault(require("markdown-it"));
11
+ const util_1 = __importDefault(require("util"));
12
+ const md = new markdown_it_1.default();
13
+ // Required for templates/index.pug (`include:markdown-it ../docs/index.md`)
14
+ pug_1.default.filters["markdown-it"] = (text) => md.render(text);
15
+ const getModelFileContents = require("./schema_description");
16
+ const restify_errors_1 = __importDefault(require("restify-errors"));
17
+ const readFile = util_1.default.promisify(fs_1.default.readFile);
18
+ const packageRoot = path_1.default.join(__dirname, "../..");
19
+ const assetsDir = path_1.default.join(packageRoot, "templates", "assets");
20
+ const ASSET_TYPES = {
21
+ css: "text/css; charset=utf-8",
22
+ js: "application/javascript; charset=utf-8",
23
+ };
24
+ const LANDING_FEATURES = [
25
+ { title: "Auth built in", description: "API keys, tokens, and password encryption without extra wiring." },
26
+ { title: "Smart population", description: "Load linked documents with URL-driven populate parameters." },
27
+ { title: "Powerful queries", description: "Search, sort, filter, field selection, and limits on GET requests." },
28
+ { title: "Schema-driven", description: "Add or change models by editing Mongoose schemas — the API updates automatically." },
29
+ { title: "Permissions", description: "Per-model CRUD rules by user group, owner, and admin." },
30
+ { title: "Hooks & logic", description: "pre/post hooks and custom handlers for business rules." },
31
+ ];
32
+ const buildEndpoints = (modelSlug) => {
33
+ const base = `/api/${modelSlug}`;
34
+ return [
35
+ {
36
+ method: "GET",
37
+ path: base,
38
+ description: "List documents in this collection.",
39
+ queryHint: "Supports filter, search, populate, fields, sort, limit, skip — see REST reference.",
40
+ },
41
+ {
42
+ method: "GET",
43
+ path: `${base}/{id}`,
44
+ description: "Get a single document by MongoDB _id.",
45
+ },
46
+ {
47
+ method: "POST",
48
+ path: base,
49
+ description: "Create a new document.",
50
+ hasBody: true,
51
+ },
52
+ {
53
+ method: "PUT",
54
+ path: `${base}/{id}`,
55
+ description: "Update a document (partial updates supported).",
56
+ hasBody: true,
57
+ },
58
+ {
59
+ method: "DELETE",
60
+ path: `${base}/{id}`,
61
+ description: "Delete a document (soft-delete when configured).",
62
+ },
63
+ ];
64
+ };
65
+ // Helper function to safely serialize schema fields
66
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
67
+ const serializeField = (field) => {
68
+ const safeField = {
69
+ path: field.path,
70
+ instance: field.instance,
71
+ options: { ...field.options },
72
+ validators: field.validators?.map(v => ({
73
+ type: v.type?.name,
74
+ message: v.message
75
+ })),
76
+ isRequired: field.isRequired
77
+ };
78
+ if (typeof field.defaultValue === 'function') {
79
+ safeField.defaultValue = '[Function]';
80
+ }
81
+ else if (field.defaultValue === undefined && field.options.default !== undefined) {
82
+ if (typeof field.options.default === 'function') {
83
+ safeField.defaultValue = '[Function]';
84
+ }
85
+ else {
86
+ safeField.defaultValue = field.options.default;
87
+ }
88
+ }
89
+ else {
90
+ safeField.defaultValue = field.defaultValue;
91
+ }
92
+ if (field.instance === 'Array' && field.caster) {
93
+ safeField.arrayType = field.caster.instance;
94
+ if (Array.isArray(safeField.defaultValue)) {
95
+ safeField.defaultValue = JSON.stringify(safeField.defaultValue);
96
+ }
97
+ }
98
+ if (field.instance === 'Embedded' || field.instance === 'DocumentArray') {
99
+ safeField.schema = Object.keys(field.schema.paths).map(p => ({
100
+ path: p,
101
+ type: field.schema.paths[p].instance
102
+ }));
103
+ }
104
+ return safeField;
105
+ };
106
+ class Docs {
107
+ config;
108
+ models;
109
+ mkdocs;
110
+ package;
111
+ constructor(opts) {
112
+ this.config = Object.assign({}, opts.config);
113
+ this.models = opts.models;
114
+ this.mkdocs = js_yaml_1.default.load(fs_1.default.readFileSync(path_1.default.join(packageRoot, "mkdocs.yml"), "utf8"));
115
+ this.package = require(path_1.default.join(process.cwd(), "package.json"));
116
+ }
117
+ getFirstGuideUrl() {
118
+ const nav = this.mkdocs.nav;
119
+ if (!nav || !nav.length)
120
+ return null;
121
+ const first = nav[0];
122
+ const file = Object.values(first)[0];
123
+ return `/docs/md/${file}`;
124
+ }
125
+ getBaseUrl(req) {
126
+ const host = req.headers?.host || "localhost";
127
+ const proto = req.connection?.encrypted ? "https" : "http";
128
+ return `${proto}://${host}`;
129
+ }
130
+ renderTemplate(res, template_file, data = {}) {
131
+ const template = pug_1.default.compileFile(path_1.default.join(packageRoot, `templates/${template_file}.pug`));
132
+ data.title = data.title || `${this.package.name} API Documentation`;
133
+ data.name = this.package.name;
134
+ data.version = this.package.version;
135
+ data.model_list = Object.keys(this.models).sort();
136
+ data.guide_nav = this.mkdocs.nav || [];
137
+ data.active_section = data.active_section || "";
138
+ data.active_guide = data.active_guide || "";
139
+ data.active_model = data.active_model || "";
140
+ data.first_guide_url = data.first_guide_url ?? this.getFirstGuideUrl();
141
+ const body = template(data);
142
+ res.writeHead(200, {
143
+ 'Content-Length': Buffer.byteLength(body),
144
+ 'Content-Type': 'text/html; charset=utf-8'
145
+ });
146
+ res.write(body);
147
+ res.end();
148
+ }
149
+ serveAsset(req, res, next) {
150
+ try {
151
+ const file = req.params.file;
152
+ if (!file || file.includes("..") || file.includes("/") || file.includes("\\")) {
153
+ return next(new restify_errors_1.default.NotFoundError("Asset not found"));
154
+ }
155
+ const ext = path_1.default.extname(file).slice(1).toLowerCase();
156
+ if (!ASSET_TYPES[ext]) {
157
+ return next(new restify_errors_1.default.NotFoundError("Asset not found"));
158
+ }
159
+ const resolved = path_1.default.resolve(assetsDir, file);
160
+ const relative = path_1.default.relative(assetsDir, resolved);
161
+ if (relative.startsWith("..") || path_1.default.isAbsolute(relative)) {
162
+ return next(new restify_errors_1.default.NotFoundError("Asset not found"));
163
+ }
164
+ if (!fs_1.default.existsSync(resolved)) {
165
+ return next(new restify_errors_1.default.NotFoundError("Asset not found"));
166
+ }
167
+ const body = fs_1.default.readFileSync(resolved);
168
+ res.writeHead(200, {
169
+ 'Content-Length': body.length,
170
+ 'Content-Type': ASSET_TYPES[ext],
171
+ 'Cache-Control': 'public, max-age=3600',
172
+ });
173
+ res.write(body);
174
+ res.end();
175
+ }
176
+ catch (err) {
177
+ console.error(err);
178
+ return next(new restify_errors_1.default.InternalServerError(err.toString()));
179
+ }
180
+ }
181
+ async metaModels(req, res) {
182
+ try {
183
+ const models = await getModelFileContents(this.config.model_dir);
184
+ res.send(models);
185
+ }
186
+ catch (err) {
187
+ console.error(err);
188
+ return new restify_errors_1.default.InternalServerError(err.toString());
189
+ }
190
+ }
191
+ metaModel(req, res, next) {
192
+ try {
193
+ if (!req.Model) {
194
+ return new restify_errors_1.default.NotFoundError("Model not found");
195
+ }
196
+ res.send(req.Model.schema.paths);
197
+ next();
198
+ }
199
+ catch (err) {
200
+ console.error(err);
201
+ return new restify_errors_1.default.InternalServerError(err.toString());
202
+ }
203
+ }
204
+ dbDiagram(req, res, next) {
205
+ try {
206
+ res.send(this.models);
207
+ next();
208
+ }
209
+ catch (err) {
210
+ return new restify_errors_1.default.InternalServerError(err.toString());
211
+ }
212
+ }
213
+ frontPage(req, res, next) {
214
+ try {
215
+ this.renderTemplate(res, "index", {
216
+ active_section: "home",
217
+ features: LANDING_FEATURES,
218
+ base_url: this.getBaseUrl(req),
219
+ });
220
+ }
221
+ catch (err) {
222
+ console.error(err);
223
+ return next(new restify_errors_1.default.InternalServerError(err.toString()));
224
+ }
225
+ }
226
+ md(req, res, next) {
227
+ try {
228
+ const docFile = req.params.md_doc;
229
+ if (!docFile || docFile.includes("..") || docFile.includes("/") || docFile.includes("\\")) {
230
+ return next(new restify_errors_1.default.NotFoundError("Document not found"));
231
+ }
232
+ const filePath = path_1.default.join(packageRoot, "docs", docFile);
233
+ const body = fs_1.default.readFileSync(filePath, "utf8");
234
+ const md_contents = md.render(body);
235
+ const titleMatch = body.match(/^#\s+(.+)$/m);
236
+ this.renderTemplate(res, "md", {
237
+ md_contents,
238
+ active_section: "guides",
239
+ active_guide: docFile,
240
+ title: titleMatch ? `${titleMatch[1]} · ${this.package.name}` : undefined,
241
+ });
242
+ }
243
+ catch (err) {
244
+ if (err.code === "ENOENT") {
245
+ return next(new restify_errors_1.default.NotFoundError("Document not found"));
246
+ }
247
+ console.error(err);
248
+ return next(new restify_errors_1.default.InternalServerError(err.toString()));
249
+ }
250
+ }
251
+ apiIndex(req, res, next) {
252
+ try {
253
+ const model_summaries = Object.keys(this.models).sort().map(slug => {
254
+ const model = this.models[slug];
255
+ const perms = model.schema.opts?.perms;
256
+ return {
257
+ slug,
258
+ collection: model.collection.name,
259
+ perms: perms || null,
260
+ };
261
+ });
262
+ this.renderTemplate(res, "api", {
263
+ active_section: "api",
264
+ model_summaries,
265
+ title: `API · ${this.package.name}`,
266
+ });
267
+ }
268
+ catch (err) {
269
+ console.error(err);
270
+ return next(new restify_errors_1.default.InternalServerError(err.toString()));
271
+ }
272
+ }
273
+ model(req, res, next) {
274
+ try {
275
+ const model_slug = req.params.modelname;
276
+ const model = this.models[model_slug];
277
+ if (!model) {
278
+ return next(new restify_errors_1.default.NotFoundError(`Model ${model_slug} not found`));
279
+ }
280
+ const fields = Object.keys(model.schema.paths);
281
+ fields.sort();
282
+ const perms = model.schema.opts?.perms;
283
+ const safeFields = {};
284
+ fields.forEach(fieldName => {
285
+ safeFields[fieldName] = serializeField(model.schema.paths[fieldName]);
286
+ });
287
+ this.renderTemplate(res, "model", {
288
+ model,
289
+ model_slug,
290
+ collection_name: model.collection.name,
291
+ fields,
292
+ perms,
293
+ safeFields,
294
+ endpoints: buildEndpoints(model_slug),
295
+ active_section: "api",
296
+ active_model: model_slug,
297
+ title: `${model_slug} · API · ${this.package.name}`,
298
+ });
299
+ }
300
+ catch (err) {
301
+ console.error(err);
302
+ return next(new restify_errors_1.default.InternalServerError(err.toString()));
303
+ }
304
+ }
305
+ }
306
+ module.exports = Docs;
307
+ //# sourceMappingURL=docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/libs/docs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=groups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../src/libs/groups.ts"],"names":[],"mappings":""}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const errors = require("restify-errors");
4
+ let Groups = null;
5
+ const init = config => {
6
+ const path = require("path");
7
+ const mod = require(path.join(config.model_dir, "usergroups_model"));
8
+ Groups = mod.default || mod;
9
+ };
10
+ const actionPut = async (req, res) => {
11
+ const user_id = req.params.user_id;
12
+ const group = req.body.group;
13
+ if (!group) {
14
+ console.error("Group required");
15
+ return new errors.BadRequestError("Group required");
16
+ }
17
+ if (!user_id) {
18
+ console.error("user_id required");
19
+ return new errors.BadRequestError("user_id is required");
20
+ }
21
+ try {
22
+ let userGroup = await Groups.findOne({ user_id: user_id });
23
+ if (!userGroup) {
24
+ userGroup = new Groups();
25
+ userGroup.user_id = user_id;
26
+ userGroup.groups = [];
27
+ }
28
+ if (Array.isArray(group)) {
29
+ group.forEach(function (g) {
30
+ if (userGroup.groups.indexOf(g) == -1) {
31
+ userGroup.groups.push(g);
32
+ }
33
+ });
34
+ }
35
+ else {
36
+ if (userGroup.groups.indexOf(group) == -1) {
37
+ userGroup.groups.push(group);
38
+ }
39
+ }
40
+ res.send(await userGroup.save());
41
+ }
42
+ catch (err) {
43
+ console.error(err);
44
+ return new errors.InternalServerError(err.toString());
45
+ }
46
+ };
47
+ const actionPost = async (req, res) => {
48
+ const user_id = req.params.user_id;
49
+ const group = req.body.group;
50
+ if (!group) {
51
+ console.error("Group required");
52
+ return new errors.BadRequestError("Group required");
53
+ }
54
+ if (!user_id) {
55
+ console.error("user_id required");
56
+ return new errors.BadRequestError("user_id required");
57
+ }
58
+ try {
59
+ let userGroup = await Groups.findOne({ user_id: user_id });
60
+ if (!userGroup) {
61
+ userGroup = new Groups();
62
+ userGroup.user_id = user_id;
63
+ }
64
+ userGroup.groups = [];
65
+ if (Array.isArray(group)) {
66
+ group.forEach(function (g) {
67
+ if (userGroup.groups.indexOf(g) == -1) {
68
+ userGroup.groups.push(g);
69
+ }
70
+ });
71
+ }
72
+ else {
73
+ if (userGroup.groups.indexOf(group) == -1) {
74
+ userGroup.groups.push(group);
75
+ }
76
+ }
77
+ res.send(await userGroup.save());
78
+ }
79
+ catch (err) {
80
+ console.error(err);
81
+ return new errors.InternalServerError(err.toString());
82
+ }
83
+ };
84
+ const actionGet = async (req, res) => {
85
+ var user_id = req.params.user_id;
86
+ if (!user_id) {
87
+ console.error("user_id required");
88
+ return new errors.BadRequestError("user_id required");
89
+ }
90
+ try {
91
+ let userGroup = await Groups.findOne({ user_id });
92
+ if (!userGroup) {
93
+ res.send({ groups: [] });
94
+ return;
95
+ }
96
+ res.send(userGroup);
97
+ }
98
+ catch (err) {
99
+ console.error(err);
100
+ return new errors.InternalServerError(err.toString());
101
+ }
102
+ };
103
+ const actionDelete = async (req, res) => {
104
+ const user_id = req.params.user_id;
105
+ const group = req.query.group;
106
+ if (!group) {
107
+ return new errors.BadRequestError("Group required");
108
+ }
109
+ if (!user_id) {
110
+ console.error("user_id required");
111
+ return new errors.BadRequestError("user_id required");
112
+ }
113
+ try {
114
+ let userGroup = await Groups.findOne({ user_id });
115
+ if (!userGroup) {
116
+ return new errors.BadRequestError("User not found");
117
+ }
118
+ let i = userGroup.groups.indexOf(group);
119
+ if (i > -1) {
120
+ userGroup.groups.splice(i, 1);
121
+ }
122
+ res.send(await userGroup.save());
123
+ }
124
+ catch (err) {
125
+ console.error(err);
126
+ return new errors.InternalServerError(err.toString());
127
+ }
128
+ };
129
+ module.exports = {
130
+ init,
131
+ actionPut,
132
+ actionPost,
133
+ actionGet,
134
+ actionDelete
135
+ };
136
+ //# sourceMappingURL=groups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groups.js","sourceRoot":"","sources":["../../src/libs/groups.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { JXPConfig } from "../types/jxp-config";
2
+ declare const JXP: (options: JXPConfig) => any;
3
+ export = JXP;
4
+ //# sourceMappingURL=jxp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jxp.d.ts","sourceRoot":"","sources":["../../src/libs/jxp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AA25BrD,QAAA,MAAM,GAAG,GAAa,SAAS,SAAS,QAmWvC,CAAC;AAEF,SAAS,GAAG,CAAC"}