@vtecx/vtecxnext 1.0.1 → 1.0.2

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.
@@ -30,6 +30,15 @@ export declare const sendMessage: (res: ServerResponse, statusCode: number, mess
30
30
  * @return true if log in has been successful.
31
31
  */
32
32
  export declare const login: (req: IncomingMessage, res: ServerResponse, wsse: string, reCaptchaToken?: string) => Promise<boolean>;
33
+ /**
34
+ * login with RXID.
35
+ * If the login is successful, sets the authentication information in a cookie.
36
+ * @param req request
37
+ * @param res response
38
+ * @param rxid RXID
39
+ * @return true if log in has been successful.
40
+ */
41
+ export declare const loginWithRxid: (req: IncomingMessage, res: ServerResponse, rxid: string) => Promise<boolean>;
33
42
  /**
34
43
  * logout.
35
44
  * If the logout is successful, delete the authentication information in a cookie.
@@ -38,6 +47,11 @@ export declare const login: (req: IncomingMessage, res: ServerResponse, wsse: st
38
47
  * @return true if log out has been successful.
39
48
  */
40
49
  export declare const logout: (req: IncomingMessage, res: ServerResponse) => Promise<boolean>;
50
+ /**
51
+ * get current datetime
52
+ * @return current datetime
53
+ */
54
+ export declare const now: () => Promise<string>;
41
55
  /**
42
56
  * get login uid
43
57
  * @param req request
@@ -45,6 +59,13 @@ export declare const logout: (req: IncomingMessage, res: ServerResponse) => Prom
45
59
  * @return uid
46
60
  */
47
61
  export declare const uid: (req: IncomingMessage, res: ServerResponse) => Promise<string>;
62
+ /**
63
+ * get login account
64
+ * @param req request
65
+ * @param res response
66
+ * @return account
67
+ */
68
+ export declare const account: (req: IncomingMessage, res: ServerResponse) => Promise<string>;
48
69
  /**
49
70
  * get login whoami
50
71
  * @param req request (for authentication)
@@ -59,6 +80,20 @@ export declare const whoami: (req: IncomingMessage, res: ServerResponse) => Prom
59
80
  * @return true if logged in
60
81
  */
61
82
  export declare const isLoggedin: (req: IncomingMessage, res: ServerResponse) => Promise<boolean>;
83
+ /**
84
+ * get login service
85
+ * @param req request
86
+ * @param res response
87
+ * @return service
88
+ */
89
+ export declare const service: (req: IncomingMessage, res: ServerResponse) => Promise<string>;
90
+ /**
91
+ * get RXID
92
+ * @param req request
93
+ * @param res response
94
+ * @return RXID
95
+ */
96
+ export declare const rxid: (req: IncomingMessage, res: ServerResponse) => Promise<string>;
62
97
  /**
63
98
  * register a log entry
64
99
  * @param req request (for authentication)
@@ -462,6 +497,58 @@ export declare const joinGroup: (req: IncomingMessage, res: ServerResponse, grou
462
497
  * @return feed
463
498
  */
464
499
  export declare const leaveGroup: (req: IncomingMessage, res: ServerResponse, group: string) => Promise<boolean>;
500
+ /**
501
+ * Get entries that have entries in a group, but are not in the group.
502
+ * (for entries with no signature or with an incorrect signature, if the user group requires a signature)
503
+ * @param req request (for authentication)
504
+ * @param res response (for authentication)
505
+ * @param uri group key
506
+ * @return feed (entry array)
507
+ */
508
+ export declare const noGroupMember: (req: IncomingMessage, res: ServerResponse, uri: string) => Promise<any>;
509
+ /**
510
+ * add user
511
+ * @param req request (for authentication)
512
+ * @param res response (for authentication)
513
+ * @param feed entry (JSON)
514
+ * @param reCaptchaToken reCAPTCHA token
515
+ * @return message feed
516
+ */
517
+ export declare const adduser: (req: IncomingMessage, res: ServerResponse, feed: any, reCaptchaToken: string) => Promise<any>;
518
+ /**
519
+ * add user by user admin
520
+ * @param req request (for authentication)
521
+ * @param res response (for authentication)
522
+ * @param feed entries (JSON)
523
+ * @param reCaptchaToken reCAPTCHA token
524
+ * @return message feed
525
+ */
526
+ export declare const adduserByAdmin: (req: IncomingMessage, res: ServerResponse, feed: any) => Promise<any>;
527
+ /**
528
+ * Send email for password reset
529
+ * @param req request (for authentication)
530
+ * @param res response (for authentication)
531
+ * @param feed entry (JSON)
532
+ * @param reCaptchaToken reCAPTCHA token
533
+ * @return message feed
534
+ */
535
+ export declare const passreset: (req: IncomingMessage, res: ServerResponse, feed: any, reCaptchaToken?: string) => Promise<any>;
536
+ /**
537
+ * change password
538
+ * @param req request (for authentication)
539
+ * @param res response (for authentication)
540
+ * @param feed entry (JSON)
541
+ * @return message feed
542
+ */
543
+ export declare const changepass: (req: IncomingMessage, res: ServerResponse, feed: any) => Promise<any>;
544
+ /**
545
+ * change password by user admin
546
+ * @param req request (for authentication)
547
+ * @param res response (for authentication)
548
+ * @param feed entry (JSON)
549
+ * @return message feed
550
+ */
551
+ export declare const changepassByAdmin: (req: IncomingMessage, res: ServerResponse, feed: any) => Promise<any>;
465
552
  /**
466
553
  * Error returned from vte.cx
467
554
  */
package/dist/vtecxnext.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setMessageQueue = exports.setMessageQueueStatus = exports.pushNotification = exports.sendMail = exports.checkSignature = exports.deleteSignature = exports.putSignatures = exports.putSignature = exports.toPdf = exports.getBQCsv = exports.getBQ = exports.deleteBQ = exports.postBQ = exports.getPage = exports.pagination = exports.getSessionLong = exports.getSessionString = exports.getSessionEntry = exports.getSessionFeed = exports.deleteSessionLong = exports.deleteSessionString = exports.deleteSessionEntry = exports.deleteSessionFeed = exports.incrementSession = exports.setSessionLong = exports.setSessionString = exports.setSessionEntry = exports.setSessionFeed = exports.getRangeids = exports.rangeids = exports.setids = exports.getids = exports.addids = exports.allocids = exports.deleteFolder = exports.deleteEntry = exports.put = exports.post = exports.count = exports.getFeed = exports.getEntry = exports.log = exports.isLoggedin = exports.whoami = exports.uid = exports.logout = exports.login = exports.sendMessage = exports.checkXRequestedWith = exports.hello = void 0;
4
- exports.VtecxNextError = exports.leaveGroup = exports.joinGroup = exports.getMessageQueue = void 0;
3
+ exports.deleteSignature = exports.putSignatures = exports.putSignature = exports.toPdf = exports.getBQCsv = exports.getBQ = exports.deleteBQ = exports.postBQ = exports.getPage = exports.pagination = exports.getSessionLong = exports.getSessionString = exports.getSessionEntry = exports.getSessionFeed = exports.deleteSessionLong = exports.deleteSessionString = exports.deleteSessionEntry = exports.deleteSessionFeed = exports.incrementSession = exports.setSessionLong = exports.setSessionString = exports.setSessionEntry = exports.setSessionFeed = exports.getRangeids = exports.rangeids = exports.setids = exports.getids = exports.addids = exports.allocids = exports.deleteFolder = exports.deleteEntry = exports.put = exports.post = exports.count = exports.getFeed = exports.getEntry = exports.log = exports.rxid = exports.service = exports.isLoggedin = exports.whoami = exports.account = exports.uid = exports.now = exports.logout = exports.loginWithRxid = exports.login = exports.sendMessage = exports.checkXRequestedWith = exports.hello = void 0;
4
+ exports.VtecxNextError = exports.changepassByAdmin = exports.changepass = exports.passreset = exports.adduserByAdmin = exports.adduser = exports.noGroupMember = exports.leaveGroup = exports.joinGroup = exports.getMessageQueue = exports.setMessageQueue = exports.setMessageQueueStatus = exports.pushNotification = exports.sendMail = exports.checkSignature = void 0;
5
5
  var SqlString = require('sqlstring');
6
6
  /**
7
7
  * Hello world.
@@ -76,6 +76,38 @@ const login = async (req, res, wsse, reCaptchaToken) => {
76
76
  return isLoggedin;
77
77
  };
78
78
  exports.login = login;
79
+ /**
80
+ * login with RXID.
81
+ * If the login is successful, sets the authentication information in a cookie.
82
+ * @param req request
83
+ * @param res response
84
+ * @param rxid RXID
85
+ * @return true if log in has been successful.
86
+ */
87
+ const loginWithRxid = async (req, res, rxid) => {
88
+ //console.log('[vtecxnext loginWithRxid] start.')
89
+ // 入力チェック
90
+ checkNotNull(rxid, 'Authentication information');
91
+ // ログイン
92
+ // reCAPTCHA tokenは任意
93
+ const method = 'GET';
94
+ const url = `/d/?_login&_RXID=${rxid}`;
95
+ const response = await requestVtecx(method, url, req);
96
+ const feed = await response.json();
97
+ // vte.cxからのset-cookieを転記
98
+ setCookie(response, res);
99
+ // レスポンスのエラーチェック
100
+ let isLoggedin;
101
+ if (response.status < 400) {
102
+ isLoggedin = true;
103
+ }
104
+ else {
105
+ isLoggedin = false;
106
+ }
107
+ //console.log(`[vtecxnext loginWithRxid] end. status=${response.status} message=${feed.title}`)
108
+ return isLoggedin;
109
+ };
110
+ exports.loginWithRxid = loginWithRxid;
79
111
  /**
80
112
  * logout.
81
113
  * If the logout is successful, delete the authentication information in a cookie.
@@ -101,6 +133,24 @@ const logout = async (req, res) => {
101
133
  return true;
102
134
  };
103
135
  exports.logout = logout;
136
+ /**
137
+ * get current datetime
138
+ * @return current datetime
139
+ */
140
+ const now = async () => {
141
+ //console.log('[vtecxnext now] start.')
142
+ // vte.cxへリクエスト
143
+ const method = 'GET';
144
+ const url = '/d/?_now';
145
+ const response = await requestVtecx(method, url);
146
+ //console.log(`[vtecxnext now] response=${response}`)
147
+ // レスポンスのエラーチェック
148
+ await checkVtecxResponse(response);
149
+ // 戻り値
150
+ const data = await getJson(response);
151
+ return data.feed.title;
152
+ };
153
+ exports.now = now;
104
154
  /**
105
155
  * get login uid
106
156
  * @param req request
@@ -123,6 +173,28 @@ const uid = async (req, res) => {
123
173
  return data.feed.title;
124
174
  };
125
175
  exports.uid = uid;
176
+ /**
177
+ * get login account
178
+ * @param req request
179
+ * @param res response
180
+ * @return account
181
+ */
182
+ const account = async (req, res) => {
183
+ //console.log('[vtecxnext account] start.')
184
+ // vte.cxへリクエスト
185
+ const method = 'GET';
186
+ const url = '/d/?_account';
187
+ const response = await requestVtecx(method, url, req);
188
+ //console.log(`[vtecxnext account] response=${response}`)
189
+ // vte.cxからのset-cookieを転記
190
+ setCookie(response, res);
191
+ // レスポンスのエラーチェック
192
+ await checkVtecxResponse(response);
193
+ // 戻り値
194
+ const data = await getJson(response);
195
+ return data.feed.title;
196
+ };
197
+ exports.account = account;
126
198
  /**
127
199
  * get login whoami
128
200
  * @param req request (for authentication)
@@ -161,6 +233,50 @@ const isLoggedin = async (req, res) => {
161
233
  }
162
234
  };
163
235
  exports.isLoggedin = isLoggedin;
236
+ /**
237
+ * get login service
238
+ * @param req request
239
+ * @param res response
240
+ * @return service
241
+ */
242
+ const service = async (req, res) => {
243
+ //console.log('[vtecxnext service] start.')
244
+ // vte.cxへリクエスト
245
+ const method = 'GET';
246
+ const url = '/d/?_service';
247
+ const response = await requestVtecx(method, url, req);
248
+ //console.log(`[vtecxnext service] response=${response}`)
249
+ // vte.cxからのset-cookieを転記
250
+ setCookie(response, res);
251
+ // レスポンスのエラーチェック
252
+ await checkVtecxResponse(response);
253
+ // 戻り値
254
+ const data = await getJson(response);
255
+ return data.feed.title;
256
+ };
257
+ exports.service = service;
258
+ /**
259
+ * get RXID
260
+ * @param req request
261
+ * @param res response
262
+ * @return RXID
263
+ */
264
+ const rxid = async (req, res) => {
265
+ //console.log('[vtecxnext service] start.')
266
+ // vte.cxへリクエスト
267
+ const method = 'GET';
268
+ const url = '/d/?_getrxid';
269
+ const response = await requestVtecx(method, url, req);
270
+ //console.log(`[vtecxnext uid] response=${response}`)
271
+ // vte.cxからのset-cookieを転記
272
+ setCookie(response, res);
273
+ // レスポンスのエラーチェック
274
+ await checkVtecxResponse(response);
275
+ // 戻り値
276
+ const data = await getJson(response);
277
+ return data.feed.title;
278
+ };
279
+ exports.rxid = rxid;
164
280
  /**
165
281
  * register a log entry
166
282
  * @param req request (for authentication)
@@ -1414,6 +1530,151 @@ const leaveGroup = async (req, res, group) => {
1414
1530
  return true;
1415
1531
  };
1416
1532
  exports.leaveGroup = leaveGroup;
1533
+ /**
1534
+ * Get entries that have entries in a group, but are not in the group.
1535
+ * (for entries with no signature or with an incorrect signature, if the user group requires a signature)
1536
+ * @param req request (for authentication)
1537
+ * @param res response (for authentication)
1538
+ * @param uri group key
1539
+ * @return feed (entry array)
1540
+ */
1541
+ const noGroupMember = async (req, res, uri) => {
1542
+ //console.log('[vtecxnext noGroupMember] start.')
1543
+ // キー入力値チェック
1544
+ checkUri(uri);
1545
+ // vte.cxへリクエスト
1546
+ const method = 'GET';
1547
+ const url = `/d${uri}?_no_group_member`;
1548
+ const response = await requestVtecx(method, url, req);
1549
+ //console.log(`[vtecxnext noGroupMember] response=${response}`)
1550
+ // vte.cxからのset-cookieを転記
1551
+ setCookie(response, res);
1552
+ // レスポンスのエラーチェック
1553
+ await checkVtecxResponse(response);
1554
+ // 戻り値
1555
+ return await getJson(response);
1556
+ };
1557
+ exports.noGroupMember = noGroupMember;
1558
+ /**
1559
+ * add user
1560
+ * @param req request (for authentication)
1561
+ * @param res response (for authentication)
1562
+ * @param feed entry (JSON)
1563
+ * @param reCaptchaToken reCAPTCHA token
1564
+ * @return message feed
1565
+ */
1566
+ const adduser = async (req, res, feed, reCaptchaToken) => {
1567
+ //console.log(`[vtecxnext adduser] start. feed=${feed}`)
1568
+ // 入力チェック
1569
+ checkNotNull(feed, 'Feed');
1570
+ // vte.cxへリクエスト
1571
+ const method = 'POST';
1572
+ const param = reCaptchaToken ? `&g-recaptcha-token=${reCaptchaToken}` : '';
1573
+ const url = `/d/?_adduser${param}`;
1574
+ const response = await requestVtecx(method, url, req, JSON.stringify(feed));
1575
+ //console.log(`[vtecxnext adduser] response. status=${response.status}`)
1576
+ // vte.cxからのset-cookieを転記
1577
+ setCookie(response, res);
1578
+ // レスポンスのエラーチェック
1579
+ await checkVtecxResponse(response);
1580
+ return await getJson(response);
1581
+ };
1582
+ exports.adduser = adduser;
1583
+ /**
1584
+ * add user by user admin
1585
+ * @param req request (for authentication)
1586
+ * @param res response (for authentication)
1587
+ * @param feed entries (JSON)
1588
+ * @param reCaptchaToken reCAPTCHA token
1589
+ * @return message feed
1590
+ */
1591
+ const adduserByAdmin = async (req, res, feed) => {
1592
+ //console.log(`[vtecxnext adduserByAdmin] start. feed=${feed}`)
1593
+ // 入力チェック
1594
+ checkNotNull(feed, 'Feed');
1595
+ // vte.cxへリクエスト
1596
+ const method = 'POST';
1597
+ const url = `/d/?_adduserByAdmin`;
1598
+ const response = await requestVtecx(method, url, req, JSON.stringify(feed));
1599
+ //console.log(`[vtecxnext adduserByAdmin] response. status=${response.status}`)
1600
+ // vte.cxからのset-cookieを転記
1601
+ setCookie(response, res);
1602
+ // レスポンスのエラーチェック
1603
+ await checkVtecxResponse(response);
1604
+ return await getJson(response);
1605
+ };
1606
+ exports.adduserByAdmin = adduserByAdmin;
1607
+ /**
1608
+ * Send email for password reset
1609
+ * @param req request (for authentication)
1610
+ * @param res response (for authentication)
1611
+ * @param feed entry (JSON)
1612
+ * @param reCaptchaToken reCAPTCHA token
1613
+ * @return message feed
1614
+ */
1615
+ const passreset = async (req, res, feed, reCaptchaToken) => {
1616
+ //console.log(`[vtecxnext passreset] start. feed=${feed}`)
1617
+ // 入力チェック
1618
+ checkNotNull(feed, 'Feed');
1619
+ // vte.cxへリクエスト
1620
+ const method = 'POST';
1621
+ const param = reCaptchaToken ? `&g-recaptcha-token=${reCaptchaToken}` : '';
1622
+ const url = `/d/?_passreset${param}`;
1623
+ const response = await requestVtecx(method, url, req, JSON.stringify(feed));
1624
+ //console.log(`[vtecxnext passreset] response. status=${response.status}`)
1625
+ // vte.cxからのset-cookieを転記
1626
+ setCookie(response, res);
1627
+ // レスポンスのエラーチェック
1628
+ await checkVtecxResponse(response);
1629
+ return await getJson(response);
1630
+ };
1631
+ exports.passreset = passreset;
1632
+ /**
1633
+ * change password
1634
+ * @param req request (for authentication)
1635
+ * @param res response (for authentication)
1636
+ * @param feed entry (JSON)
1637
+ * @return message feed
1638
+ */
1639
+ const changepass = async (req, res, feed) => {
1640
+ //console.log(`[vtecxnext changepass] start. feed=${feed}`)
1641
+ // 入力チェック
1642
+ checkNotNull(feed, 'Feed');
1643
+ // vte.cxへリクエスト
1644
+ const method = 'PUT';
1645
+ const url = `/d/?_changephash`;
1646
+ const response = await requestVtecx(method, url, req, JSON.stringify(feed));
1647
+ //console.log(`[vtecxnext changepass] response. status=${response.status}`)
1648
+ // vte.cxからのset-cookieを転記
1649
+ setCookie(response, res);
1650
+ // レスポンスのエラーチェック
1651
+ await checkVtecxResponse(response);
1652
+ return await getJson(response);
1653
+ };
1654
+ exports.changepass = changepass;
1655
+ /**
1656
+ * change password by user admin
1657
+ * @param req request (for authentication)
1658
+ * @param res response (for authentication)
1659
+ * @param feed entry (JSON)
1660
+ * @return message feed
1661
+ */
1662
+ const changepassByAdmin = async (req, res, feed) => {
1663
+ //console.log(`[vtecxnext changepassByAdmin] start. feed=${feed}`)
1664
+ // 入力チェック
1665
+ checkNotNull(feed, 'Feed');
1666
+ // vte.cxへリクエスト
1667
+ const method = 'PUT';
1668
+ const url = `/d/?_changephashByAdmin`;
1669
+ const response = await requestVtecx(method, url, req, JSON.stringify(feed));
1670
+ //console.log(`[vtecxnext changepassByAdmin] response. status=${response.status}`)
1671
+ // vte.cxからのset-cookieを転記
1672
+ setCookie(response, res);
1673
+ // レスポンスのエラーチェック
1674
+ await checkVtecxResponse(response);
1675
+ return await getJson(response);
1676
+ };
1677
+ exports.changepassByAdmin = changepassByAdmin;
1417
1678
  //---------------------------------------------
1418
1679
  /**
1419
1680
  * Error returned from vte.cx
@@ -1439,11 +1700,12 @@ exports.VtecxNextError = VtecxNextError;
1439
1700
  */
1440
1701
  const requestVtecx = async (method, url, req, body, targetService) => {
1441
1702
  // cookieの値をvte.cxへのリクエストヘッダに設定
1442
- const cookie = req.headers['cookie'];
1443
- const headers = { 'Cookie': cookie };
1703
+ const cookie = req ? req.headers['cookie'] : undefined;
1704
+ const headers = cookie ? { 'Cookie': cookie } : {};
1444
1705
  if (targetService) {
1706
+ // サービス連携の場合
1445
1707
  const servicekey = process.env[`SERVICEKEY_${targetService}`];
1446
- console.log(`[requestVtecx] targetService=${targetService} servicekey=${servicekey}`);
1708
+ //console.log(`[requestVtecx] targetService=${targetService} servicekey=${servicekey}`)
1447
1709
  if (servicekey) {
1448
1710
  headers['X-SERVICELINKAGE'] = targetService;
1449
1711
  headers['X-SERVICEKEY'] = servicekey;
@@ -1640,9 +1902,3 @@ const getLinks = (rel, hrefs) => {
1640
1902
  //console.log(`[vtecxnext getLinks] links=${JSON.stringify(links)}`)
1641
1903
  return links;
1642
1904
  };
1643
- const getServiceKey = (targetService) => {
1644
- if (!targetService) {
1645
- return null;
1646
- }
1647
- // 環境変数
1648
- };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vtecx/vtecxnext",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "vte.cx Next.js api",
5
5
  "main": "dist/index.js",
6
6
  "files": [