@vtecx/vtecxnext 1.0.2 → 1.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.
@@ -388,7 +388,8 @@ export declare const getBQ: (req: IncomingMessage, res: ServerResponse, sql: str
388
388
  */
389
389
  export declare const getBQCsv: (req: IncomingMessage, res: ServerResponse, sql: string, values?: any[], filename?: string, parent?: string) => Promise<boolean>;
390
390
  /**
391
- * Create PDF
391
+ * Create PDF.
392
+ * Writes a PDF to the response.
392
393
  * @param req request (for authentication)
393
394
  * @param res response
394
395
  * @param htmlTemplate PDF layout
@@ -549,6 +550,151 @@ export declare const changepass: (req: IncomingMessage, res: ServerResponse, fee
549
550
  * @return message feed
550
551
  */
551
552
  export declare const changepassByAdmin: (req: IncomingMessage, res: ServerResponse, feed: any) => Promise<any>;
553
+ /**
554
+ * change login user's account
555
+ * @param req request (for authentication)
556
+ * @param res response (for authentication)
557
+ * @param feed entries (JSON)
558
+ * @return message feed
559
+ */
560
+ export declare const changeaccount: (req: IncomingMessage, res: ServerResponse, feed: any) => Promise<any>;
561
+ /**
562
+ * verify to change login user's account
563
+ * @param req request (for authentication)
564
+ * @param res response (for authentication)
565
+ * @param verifyCode verify code
566
+ * @return message feed
567
+ */
568
+ export declare const changeaccount_verify: (req: IncomingMessage, res: ServerResponse, verifyCode: string) => Promise<any>;
569
+ /**
570
+ * get user status
571
+ * @param req request (for authentication)
572
+ * @param res response (for authentication)
573
+ * @param account account
574
+ * @return user status
575
+ */
576
+ export declare const userstatus: (req: IncomingMessage, res: ServerResponse, account?: string) => Promise<any>;
577
+ /**
578
+ * revoke user
579
+ * @param req request (for authentication)
580
+ * @param res response (for authentication)
581
+ * @param account account
582
+ * @return message feed
583
+ */
584
+ export declare const revokeuser: (req: IncomingMessage, res: ServerResponse, account: string) => Promise<any>;
585
+ /**
586
+ * revoke users
587
+ * @param req request (for authentication)
588
+ * @param res response (for authentication)
589
+ * @param feed entries (JSON)
590
+ * @return message feed
591
+ */
592
+ export declare const revokeusers: (req: IncomingMessage, res: ServerResponse, feed: any) => Promise<any>;
593
+ /**
594
+ * activate user
595
+ * @param req request (for authentication)
596
+ * @param res response (for authentication)
597
+ * @param account account
598
+ * @return message feed
599
+ */
600
+ export declare const activateuser: (req: IncomingMessage, res: ServerResponse, account: string) => Promise<any>;
601
+ /**
602
+ * activate users
603
+ * @param req request (for authentication)
604
+ * @param res response (for authentication)
605
+ * @param feed entries (JSON)
606
+ * @return message feed
607
+ */
608
+ export declare const activateusers: (req: IncomingMessage, res: ServerResponse, feed: any) => Promise<any>;
609
+ /**
610
+ * cancel user.
611
+ * @param req request (for authentication)
612
+ * @param res response (for authentication)
613
+ * @param account account
614
+ * @return message feed
615
+ */
616
+ export declare const canceluser: (req: IncomingMessage, res: ServerResponse) => Promise<any>;
617
+ /**
618
+ * delete user
619
+ * @param req request (for authentication)
620
+ * @param res response (for authentication)
621
+ * @param account account
622
+ * @return message feed
623
+ */
624
+ export declare const deleteuser: (req: IncomingMessage, res: ServerResponse, account: string) => Promise<any>;
625
+ /**
626
+ * revoke users
627
+ * @param req request (for authentication)
628
+ * @param res response (for authentication)
629
+ * @param feed entries (JSON)
630
+ * @return message feed
631
+ */
632
+ export declare const deleteusers: (req: IncomingMessage, res: ServerResponse, feed: any) => Promise<any>;
633
+ /**
634
+ * save files
635
+ * @param req request
636
+ * @param res respose (for authentication)
637
+ * @param uri key
638
+ * @returns message
639
+ */
640
+ export declare const savefiles: (req: IncomingMessage, res: ServerResponse, uri: string) => Promise<any>;
641
+ /**
642
+ * upload content
643
+ * @param req request (for authentication)
644
+ * @param res response (for authentication)
645
+ * @param uri key
646
+ * @return message
647
+ */
648
+ export declare const putcontent: (req: IncomingMessage, res: ServerResponse, uri: string) => Promise<any>;
649
+ /**
650
+ * delete content
651
+ * @param req request (for authentication)
652
+ * @param res response (for authentication)
653
+ * @param uri key
654
+ * @return message
655
+ */
656
+ export declare const deletecontent: (req: IncomingMessage, res: ServerResponse, uri: string) => Promise<any>;
657
+ /**
658
+ * get content.
659
+ * Writes a content to the response.
660
+ * @param req request (for authentication)
661
+ * @param res response (for authentication)
662
+ * @param uri key
663
+ * @return true
664
+ */
665
+ export declare const getcontent: (req: IncomingMessage, res: ServerResponse, uri: string) => Promise<boolean>;
666
+ /**
667
+ * add acl
668
+ * @param req request (for authentication)
669
+ * @param res response (for authentication)
670
+ * @param feed entries
671
+ * @return message
672
+ */
673
+ export declare const addacl: (req: IncomingMessage, res: ServerResponse, feed: any) => Promise<any>;
674
+ /**
675
+ * remove acl
676
+ * @param req request (for authentication)
677
+ * @param res response (for authentication)
678
+ * @param feed entries
679
+ * @return message
680
+ */
681
+ export declare const removeacl: (req: IncomingMessage, res: ServerResponse, feed: any) => Promise<any>;
682
+ /**
683
+ * add alias
684
+ * @param req request (for authentication)
685
+ * @param res response (for authentication)
686
+ * @param feed entries
687
+ * @return message
688
+ */
689
+ export declare const addalias: (req: IncomingMessage, res: ServerResponse, feed: any) => Promise<any>;
690
+ /**
691
+ * remove alias
692
+ * @param req request (for authentication)
693
+ * @param res response (for authentication)
694
+ * @param feed entries
695
+ * @return message
696
+ */
697
+ export declare const removealias: (req: IncomingMessage, res: ServerResponse, feed: any) => Promise<any>;
552
698
  /**
553
699
  * Error returned from vte.cx
554
700
  */
package/dist/vtecxnext.js CHANGED
@@ -1,8 +1,13 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  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
- var SqlString = require('sqlstring');
7
+ exports.VtecxNextError = exports.removealias = exports.addalias = exports.removeacl = exports.addacl = exports.getcontent = exports.deletecontent = exports.putcontent = exports.savefiles = exports.deleteusers = exports.deleteuser = exports.canceluser = exports.activateusers = exports.activateuser = exports.revokeusers = exports.revokeuser = exports.userstatus = exports.changeaccount_verify = exports.changeaccount = 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;
8
+ const sqlstring_1 = __importDefault(require("sqlstring"));
9
+ const formidable_1 = __importDefault(require("formidable"));
10
+ const fs_1 = __importDefault(require("fs"));
6
11
  /**
7
12
  * Hello world.
8
13
  */
@@ -317,7 +322,7 @@ const getEntry = async (req, res, uri, targetService) => {
317
322
  // vte.cxへリクエスト
318
323
  const method = 'GET';
319
324
  const url = `/p${uri}?e`;
320
- const response = await requestVtecx(method, url, req, null, targetService);
325
+ const response = await requestVtecx(method, url, req, null, null, targetService);
321
326
  //console.log(`[vtecxnext getEntry] response=${response}`)
322
327
  // vte.cxからのset-cookieを転記
323
328
  setCookie(response, res);
@@ -341,7 +346,7 @@ const getFeed = async (req, res, uri, targetService) => {
341
346
  // vte.cxへリクエスト
342
347
  const method = 'GET';
343
348
  const url = `/p${uri}${uri.includes('?') ? '&' : '?'}f`;
344
- const response = await requestVtecx(method, url, req, null, targetService);
349
+ const response = await requestVtecx(method, url, req, null, null, targetService);
345
350
  //console.log(`[vtecxnext getFeed] response=${response}`)
346
351
  // vte.cxからのset-cookieを転記
347
352
  setCookie(response, res);
@@ -365,7 +370,7 @@ const count = async (req, res, uri, targetService) => {
365
370
  // vte.cxへリクエスト
366
371
  const method = 'GET';
367
372
  const url = `/p${uri}${uri.includes('?') ? '&' : '?'}c`;
368
- const response = await requestVtecx(method, url, req, null, targetService);
373
+ const response = await requestVtecx(method, url, req, null, null, targetService);
369
374
  //console.log(`[vtecxnext count] response=${response}`)
370
375
  // vte.cxからのset-cookieを転記
371
376
  setCookie(response, res);
@@ -395,7 +400,7 @@ const post = async (req, res, feed, uri, targetService) => {
395
400
  // vte.cxへリクエスト
396
401
  const method = 'POST';
397
402
  const url = `/p${uri ? uri : '/'}?e`;
398
- const response = await requestVtecx(method, url, req, JSON.stringify(feed), targetService);
403
+ const response = await requestVtecx(method, url, req, JSON.stringify(feed), null, targetService);
399
404
  //console.log(`[vtecxnext post] response. status=${response.status}`)
400
405
  // vte.cxからのset-cookieを転記
401
406
  setCookie(response, res);
@@ -426,7 +431,7 @@ const put = async (req, res, feed, isbulk, parallel, async, targetService) => {
426
431
  }
427
432
  const url = `/p/?e${additionalParam}`;
428
433
  //console.log(`[vtecxnext put] url=${url}`)
429
- const response = await requestVtecx(method, url, req, JSON.stringify(feed), targetService);
434
+ const response = await requestVtecx(method, url, req, JSON.stringify(feed), null, targetService);
430
435
  //console.log(`[vtecxnext put] response. status=${response.status}`)
431
436
  // vte.cxからのset-cookieを転記
432
437
  setCookie(response, res);
@@ -451,7 +456,7 @@ const deleteEntry = async (req, res, uri, revision, targetService) => {
451
456
  const method = 'DELETE';
452
457
  const param = revision ? `&r=${revision}` : '';
453
458
  const url = `/p${uri}?e${param}`;
454
- const response = await requestVtecx(method, url, req, null, targetService);
459
+ const response = await requestVtecx(method, url, req, null, null, targetService);
455
460
  //console.log(`[vtecxnext deleteEntry] response. status=${response.status}`)
456
461
  // vte.cxからのset-cookieを転記
457
462
  setCookie(response, res);
@@ -475,7 +480,7 @@ const deleteFolder = async (req, res, uri, async, targetService) => {
475
480
  // vte.cxへリクエスト
476
481
  const method = 'DELETE';
477
482
  const url = `/p${uri}?_rf${async ? '&_async' : ''}`;
478
- const response = await requestVtecx(method, url, req, null, targetService);
483
+ const response = await requestVtecx(method, url, req, null, null, targetService);
479
484
  //console.log(`[vtecxnext deleteFolder] response. status=${response.status}`)
480
485
  // vte.cxからのset-cookieを転記
481
486
  setCookie(response, res);
@@ -500,7 +505,7 @@ const allocids = async (req, res, uri, num, targetService) => {
500
505
  // vte.cxへリクエスト
501
506
  const method = 'GET';
502
507
  const url = `/p${uri}?_allocids=${num}`;
503
- const response = await requestVtecx(method, url, req, null, targetService);
508
+ const response = await requestVtecx(method, url, req, null, null, targetService);
504
509
  //console.log(`[vtecxnext allocids] response=${response}`)
505
510
  // vte.cxからのset-cookieを転記
506
511
  setCookie(response, res);
@@ -527,7 +532,7 @@ const addids = async (req, res, uri, num, targetService) => {
527
532
  // vte.cxへリクエスト
528
533
  const method = 'PUT';
529
534
  const url = `/p${uri}?_addids=${num}`;
530
- const response = await requestVtecx(method, url, req, null, targetService);
535
+ const response = await requestVtecx(method, url, req, null, null, targetService);
531
536
  //console.log(`[vtecxnext addids] response=${response}`)
532
537
  // vte.cxからのset-cookieを転記
533
538
  setCookie(response, res);
@@ -552,7 +557,7 @@ const getids = async (req, res, uri, targetService) => {
552
557
  // vte.cxへリクエスト
553
558
  const method = 'GET';
554
559
  const url = `/p${uri}?_getids`;
555
- const response = await requestVtecx(method, url, req, null, targetService);
560
+ const response = await requestVtecx(method, url, req, null, null, targetService);
556
561
  //console.log(`[vtecxnext getids] response=${response}`)
557
562
  // vte.cxからのset-cookieを転記
558
563
  setCookie(response, res);
@@ -579,7 +584,7 @@ const setids = async (req, res, uri, num, targetService) => {
579
584
  // vte.cxへリクエスト
580
585
  const method = 'PUT';
581
586
  const url = `/p${uri}?_setids=${num}`;
582
- const response = await requestVtecx(method, url, req, null, targetService);
587
+ const response = await requestVtecx(method, url, req, null, null, targetService);
583
588
  //console.log(`[vtecxnext setids] response=${response}`)
584
589
  // vte.cxからのset-cookieを転記
585
590
  setCookie(response, res);
@@ -988,7 +993,7 @@ const pagination = async (req, res, uri, pagerange, targetService) => {
988
993
  // vte.cxへリクエスト
989
994
  const method = 'GET';
990
995
  const url = `/p${uri}${uri.includes('?') ? '&' : '?'}_pagination=${pagerange}`;
991
- const response = await requestVtecx(method, url, req, null, targetService);
996
+ const response = await requestVtecx(method, url, req, null, null, targetService);
992
997
  //console.log(`[vtecxnext pagination] response=${response}`)
993
998
  // vte.cxからのset-cookieを転記
994
999
  setCookie(response, res);
@@ -1014,7 +1019,7 @@ const getPage = async (req, res, uri, num, targetService) => {
1014
1019
  // vte.cxへリクエスト
1015
1020
  const method = 'GET';
1016
1021
  const url = `/p${uri}${uri.includes('?') ? '&' : '?'}n=${num}`;
1017
- const response = await requestVtecx(method, url, req, null, targetService);
1022
+ const response = await requestVtecx(method, url, req, null, null, targetService);
1018
1023
  //console.log(`[vtecxnext getPage] response=${response}`)
1019
1024
  // vte.cxからのset-cookieを転記
1020
1025
  setCookie(response, res);
@@ -1163,7 +1168,8 @@ const getBQCsv = async (req, res, sql, values, filename, parent) => {
1163
1168
  };
1164
1169
  exports.getBQCsv = getBQCsv;
1165
1170
  /**
1166
- * Create PDF
1171
+ * Create PDF.
1172
+ * Writes a PDF to the response.
1167
1173
  * @param req request (for authentication)
1168
1174
  * @param res response
1169
1175
  * @param htmlTemplate PDF layout
@@ -1675,6 +1681,510 @@ const changepassByAdmin = async (req, res, feed) => {
1675
1681
  return await getJson(response);
1676
1682
  };
1677
1683
  exports.changepassByAdmin = changepassByAdmin;
1684
+ /**
1685
+ * change login user's account
1686
+ * @param req request (for authentication)
1687
+ * @param res response (for authentication)
1688
+ * @param feed entries (JSON)
1689
+ * @return message feed
1690
+ */
1691
+ const changeaccount = async (req, res, feed) => {
1692
+ //console.log(`[vtecxnext changeaccount] start. feed=${feed}`)
1693
+ // 入力チェック
1694
+ checkNotNull(feed, 'Feed');
1695
+ // vte.cxへリクエスト
1696
+ const method = 'PUT';
1697
+ const url = `/d/?_changeaccount`;
1698
+ const response = await requestVtecx(method, url, req, JSON.stringify(feed));
1699
+ //console.log(`[vtecxnext changeaccount] response. status=${response.status}`)
1700
+ // vte.cxからのset-cookieを転記
1701
+ setCookie(response, res);
1702
+ // レスポンスのエラーチェック
1703
+ await checkVtecxResponse(response);
1704
+ return await getJson(response);
1705
+ };
1706
+ exports.changeaccount = changeaccount;
1707
+ /**
1708
+ * verify to change login user's account
1709
+ * @param req request (for authentication)
1710
+ * @param res response (for authentication)
1711
+ * @param verifyCode verify code
1712
+ * @return message feed
1713
+ */
1714
+ const changeaccount_verify = async (req, res, verifyCode) => {
1715
+ //console.log(`[vtecxnext changeaccount_verify] start. verifyCode=${verifyCode}`)
1716
+ // 入力値チェック
1717
+ checkNotNull(verifyCode, 'verify code');
1718
+ // vte.cxへリクエスト
1719
+ const method = 'PUT';
1720
+ const url = `/d/?_changeaccount_verify=${verifyCode}`;
1721
+ const response = await requestVtecx(method, url, req);
1722
+ //console.log(`[vtecxnext changeaccount_verify] response=${response}`)
1723
+ // vte.cxからのset-cookieを転記
1724
+ setCookie(response, res);
1725
+ // レスポンスのエラーチェック
1726
+ await checkVtecxResponse(response);
1727
+ // 戻り値
1728
+ return await getJson(response);
1729
+ };
1730
+ exports.changeaccount_verify = changeaccount_verify;
1731
+ /**
1732
+ * get user status
1733
+ * @param req request (for authentication)
1734
+ * @param res response (for authentication)
1735
+ * @param account account
1736
+ * @return user status
1737
+ */
1738
+ const userstatus = async (req, res, account) => {
1739
+ //console.log('[vtecxnext userstatus] start.')
1740
+ // vte.cxへリクエスト
1741
+ const method = 'GET';
1742
+ const url = `/d/?_userstatus${account ? '=' + account : ''}`;
1743
+ const response = await requestVtecx(method, url, req);
1744
+ //console.log(`[vtecxnext userstatus] response=${response}`)
1745
+ // vte.cxからのset-cookieを転記
1746
+ setCookie(response, res);
1747
+ // レスポンスのエラーチェック
1748
+ await checkVtecxResponse(response);
1749
+ // 戻り値
1750
+ return await getJson(response);
1751
+ };
1752
+ exports.userstatus = userstatus;
1753
+ /**
1754
+ * revoke user
1755
+ * @param req request (for authentication)
1756
+ * @param res response (for authentication)
1757
+ * @param account account
1758
+ * @return message feed
1759
+ */
1760
+ const revokeuser = async (req, res, account) => {
1761
+ //console.log('[vtecxnext revokeuser] start.')
1762
+ // 入力値チェック
1763
+ checkNotNull(account, 'account');
1764
+ // vte.cxへリクエスト
1765
+ const method = 'PUT';
1766
+ const url = `/d/?_revokeuser=${account}`;
1767
+ const response = await requestVtecx(method, url, req);
1768
+ //console.log(`[vtecxnext revokeuser] response=${response}`)
1769
+ // vte.cxからのset-cookieを転記
1770
+ setCookie(response, res);
1771
+ // レスポンスのエラーチェック
1772
+ await checkVtecxResponse(response);
1773
+ // 戻り値
1774
+ return await getJson(response);
1775
+ };
1776
+ exports.revokeuser = revokeuser;
1777
+ /**
1778
+ * revoke users
1779
+ * @param req request (for authentication)
1780
+ * @param res response (for authentication)
1781
+ * @param feed entries (JSON)
1782
+ * @return message feed
1783
+ */
1784
+ const revokeusers = async (req, res, feed) => {
1785
+ //console.log(`[vtecxnext revokeusers] start. feed=${feed}`)
1786
+ // 入力チェック
1787
+ checkNotNull(feed, 'Feed');
1788
+ // vte.cxへリクエスト
1789
+ const method = 'PUT';
1790
+ const url = `/d/?_revokeuser`;
1791
+ const response = await requestVtecx(method, url, req, JSON.stringify(feed));
1792
+ //console.log(`[vtecxnext revokeusers] response. status=${response.status}`)
1793
+ // vte.cxからのset-cookieを転記
1794
+ setCookie(response, res);
1795
+ // レスポンスのエラーチェック
1796
+ await checkVtecxResponse(response);
1797
+ return await getJson(response);
1798
+ };
1799
+ exports.revokeusers = revokeusers;
1800
+ /**
1801
+ * activate user
1802
+ * @param req request (for authentication)
1803
+ * @param res response (for authentication)
1804
+ * @param account account
1805
+ * @return message feed
1806
+ */
1807
+ const activateuser = async (req, res, account) => {
1808
+ //console.log('[vtecxnext activateuser] start.')
1809
+ // 入力値チェック
1810
+ checkNotNull(account, 'account');
1811
+ // vte.cxへリクエスト
1812
+ const method = 'PUT';
1813
+ const url = `/d/?_activateuser=${account}`;
1814
+ const response = await requestVtecx(method, url, req);
1815
+ //console.log(`[vtecxnext activateuser] response=${response}`)
1816
+ // vte.cxからのset-cookieを転記
1817
+ setCookie(response, res);
1818
+ // レスポンスのエラーチェック
1819
+ await checkVtecxResponse(response);
1820
+ // 戻り値
1821
+ return await getJson(response);
1822
+ };
1823
+ exports.activateuser = activateuser;
1824
+ /**
1825
+ * activate users
1826
+ * @param req request (for authentication)
1827
+ * @param res response (for authentication)
1828
+ * @param feed entries (JSON)
1829
+ * @return message feed
1830
+ */
1831
+ const activateusers = async (req, res, feed) => {
1832
+ //console.log(`[vtecxnext activateusers] start. feed=${feed}`)
1833
+ // 入力チェック
1834
+ checkNotNull(feed, 'Feed');
1835
+ // vte.cxへリクエスト
1836
+ const method = 'PUT';
1837
+ const url = `/d/?_activateuser`;
1838
+ const response = await requestVtecx(method, url, req, JSON.stringify(feed));
1839
+ //console.log(`[vtecxnext activateusers] response. status=${response.status}`)
1840
+ // vte.cxからのset-cookieを転記
1841
+ setCookie(response, res);
1842
+ // レスポンスのエラーチェック
1843
+ await checkVtecxResponse(response);
1844
+ return await getJson(response);
1845
+ };
1846
+ exports.activateusers = activateusers;
1847
+ /**
1848
+ * cancel user.
1849
+ * @param req request (for authentication)
1850
+ * @param res response (for authentication)
1851
+ * @param account account
1852
+ * @return message feed
1853
+ */
1854
+ const canceluser = async (req, res) => {
1855
+ //console.log('[vtecxnext canceluser] start.')
1856
+ // vte.cxへリクエスト
1857
+ const method = 'DELETE';
1858
+ const url = `/d/?_canceluser`;
1859
+ const response = await requestVtecx(method, url, req);
1860
+ //console.log(`[vtecxnext canceluser] response=${response}`)
1861
+ // vte.cxからのset-cookieを転記
1862
+ setCookie(response, res);
1863
+ // レスポンスのエラーチェック
1864
+ await checkVtecxResponse(response);
1865
+ // 戻り値
1866
+ return await getJson(response);
1867
+ };
1868
+ exports.canceluser = canceluser;
1869
+ /**
1870
+ * delete user
1871
+ * @param req request (for authentication)
1872
+ * @param res response (for authentication)
1873
+ * @param account account
1874
+ * @return message feed
1875
+ */
1876
+ const deleteuser = async (req, res, account) => {
1877
+ //console.log('[vtecxnext deleteuser] start.')
1878
+ // 入力値チェック
1879
+ checkNotNull(account, 'account');
1880
+ // vte.cxへリクエスト
1881
+ const method = 'DELETE';
1882
+ const url = `/d/?_deleteuser=${account}`;
1883
+ const response = await requestVtecx(method, url, req);
1884
+ //console.log(`[vtecxnext deleteuser] response=${response}`)
1885
+ // vte.cxからのset-cookieを転記
1886
+ setCookie(response, res);
1887
+ // レスポンスのエラーチェック
1888
+ await checkVtecxResponse(response);
1889
+ // 戻り値
1890
+ return await getJson(response);
1891
+ };
1892
+ exports.deleteuser = deleteuser;
1893
+ /**
1894
+ * revoke users
1895
+ * @param req request (for authentication)
1896
+ * @param res response (for authentication)
1897
+ * @param feed entries (JSON)
1898
+ * @return message feed
1899
+ */
1900
+ const deleteusers = async (req, res, feed) => {
1901
+ //console.log(`[vtecxnext deleteusers] start. feed=${feed}`)
1902
+ // 入力チェック
1903
+ checkNotNull(feed, 'Feed');
1904
+ // vte.cxへリクエスト
1905
+ const method = 'DELETE';
1906
+ const url = `/d/?_deleteuser`;
1907
+ const response = await requestVtecx(method, url, req, JSON.stringify(feed));
1908
+ //console.log(`[vtecxnext deleteusers] response. status=${response.status}`)
1909
+ // vte.cxからのset-cookieを転記
1910
+ setCookie(response, res);
1911
+ // レスポンスのエラーチェック
1912
+ await checkVtecxResponse(response);
1913
+ return await getJson(response);
1914
+ };
1915
+ exports.deleteusers = deleteusers;
1916
+ /**
1917
+ * save files
1918
+ * @param req request
1919
+ * @param res respose (for authentication)
1920
+ * @param uri key
1921
+ * @returns message
1922
+ */
1923
+ const savefiles = async (req, res, uri) => {
1924
+ //console.log(`[vtecxnext savefiles] start. uri=${uri}`)
1925
+ // キー入力値チェック
1926
+ checkUri(uri);
1927
+ /* Get files using formidable */
1928
+ const formidableFiles = await new Promise((resolve, reject) => {
1929
+ const form = new formidable_1.default.IncomingForm();
1930
+ const files = [];
1931
+ form.on('file', (field, file) => {
1932
+ const partFile = { 'file': file, 'field': field };
1933
+ files.push(partFile);
1934
+ });
1935
+ form.on('end', () => resolve(files));
1936
+ form.on('error', err => reject(err));
1937
+ form.parse(req, () => {
1938
+ //
1939
+ });
1940
+ }).catch(e => {
1941
+ //console.log(e)
1942
+ throw new VtecxNextError(400, `${e}`);
1943
+ });
1944
+ //console.log(`[vtecxnext savefiles] formidableFiles.length=${formidableFiles ? formidableFiles.length : 0}`)
1945
+ if (!formidableFiles || formidableFiles.length < 1) {
1946
+ throw new VtecxNextError(400, `An upload file is required.`);
1947
+ }
1948
+ let contentUris = '';
1949
+ const promises = [];
1950
+ for (const formidableFile of formidableFiles) {
1951
+ //console.log(`[vtecxnext savefiles] formidableFile field=${formidableFile.field} filepath=${formidableFile.file.filepath} size=${formidableFile.file.size} mymetype=${formidableFile.file.mimetype} newFilename=${formidableFile.file.newFilename} originalFilename=${formidableFile.file.originalFilename}`)
1952
+ const fileBuffer = fs_1.default.readFileSync(formidableFile.file.filepath);
1953
+ fs_1.default.unlink(formidableFile.file.filepath, () => {
1954
+ //console.log(`[vtecxnext savefiles] fs.unlink: ${formidableFile.file.filepath}`)
1955
+ });
1956
+ // vte.cxへリクエスト
1957
+ const method = 'PUT';
1958
+ const contentUri = `${uri}${uri.endsWith('/') ? '' : '/'}${formidableFile.field}`;
1959
+ const url = `/p${contentUri}?_content`;
1960
+ const headers = { 'Content-Type': formidableFile.file.mimetype };
1961
+ //console.log(`[vtecxnext savefiles] request. url=${url}`)
1962
+ const promiseResponse = requestVtecx(method, url, req, fileBuffer, headers);
1963
+ promises.push(promiseResponse);
1964
+ // 戻り値用
1965
+ contentUris += `${contentUris ? ', ' : ''}${contentUri}`;
1966
+ }
1967
+ const msg = '';
1968
+ for (const promise of promises) {
1969
+ const response = await promise;
1970
+ //console.log(`[vtecxnext savefiles] response. status=${response.status}`)
1971
+ // vte.cxからのset-cookieを転記
1972
+ setCookie(response, res);
1973
+ // レスポンスのエラーチェック
1974
+ await checkVtecxResponse(response);
1975
+ }
1976
+ return { 'feed': { 'title': contentUris } };
1977
+ /* API RouteでFormDataを使用するとうまくいかなかった。(リクエスト先の受信データサイズが0になる。)
1978
+ const formData = new FormData()
1979
+ if (formidableFiles?.length) {
1980
+ for (const formidableFile of formidableFiles) {
1981
+ //console.log(`[vtecxnext savefiles] formidableFile field=${formidableFile.field} filepath=${formidableFile.file.filepath} size=${formidableFile.file.size} mymetype=${formidableFile.file.mimetype} newFilename=${formidableFile.file.newFilename} originalFilename=${formidableFile.file.originalFilename}`)
1982
+
1983
+ const buffer:Buffer = fs.readFileSync(formidableFile.file.filepath)
1984
+ const file:Blob = new Blob([buffer])
1985
+
1986
+ //console.log(`[vtecxnext savefiles] file.size=${file.size} file.length=${file.length} file.name=${file.name} file.type=${file.type}`)
1987
+
1988
+ formData.append(formidableFile.field, file, formidableFile.file.originalFilename ? formidableFile.file.originalFilename : undefined)
1989
+ }
1990
+ }
1991
+
1992
+ // vte.cxへリクエスト
1993
+ const method = 'POST'
1994
+ const url = `/p${uri}?_content`
1995
+ //console.log(`[vtecxnext savefiles] request. url=${url}`)
1996
+ const response = await requestVtecx(method, url, req, formData)
1997
+ //console.log(`[vtecxnext savefiles] response. status=${response.status}`)
1998
+ // vte.cxからのset-cookieを転記
1999
+ setCookie(response, res)
2000
+ // レスポンスのエラーチェック
2001
+ await checkVtecxResponse(response)
2002
+ return await getJson(response)
2003
+ */
2004
+ };
2005
+ exports.savefiles = savefiles;
2006
+ /**
2007
+ * upload content
2008
+ * @param req request (for authentication)
2009
+ * @param res response (for authentication)
2010
+ * @param uri key
2011
+ * @return message
2012
+ */
2013
+ const putcontent = async (req, res, uri) => {
2014
+ //console.log(`[vtecxnext putcontent] start. uri=${uri} content-type:${req.headers['content-type']} content-length:${req.headers['content-length']}`)
2015
+ // キー入力値チェック
2016
+ checkUri(uri);
2017
+ // vte.cxへリクエスト
2018
+ const method = 'PUT';
2019
+ const url = `/p${uri}?_content`;
2020
+ //const headers = {'Content-Type' : req.headers['content-type'], 'Content-Length' : req.headers['content-length']}
2021
+ const headers = { 'Content-Type': req.headers['content-type'] };
2022
+ const buf = await buffer(req);
2023
+ const response = await requestVtecx(method, url, req, buf, headers);
2024
+ //console.log(`[vtecxnext putcontent] response. status=${response.status}`)
2025
+ // vte.cxからのset-cookieを転記
2026
+ setCookie(response, res);
2027
+ // レスポンスのエラーチェック
2028
+ await checkVtecxResponse(response);
2029
+ return await getJson(response);
2030
+ };
2031
+ exports.putcontent = putcontent;
2032
+ /**
2033
+ * delete content
2034
+ * @param req request (for authentication)
2035
+ * @param res response (for authentication)
2036
+ * @param uri key
2037
+ * @return message
2038
+ */
2039
+ const deletecontent = async (req, res, uri) => {
2040
+ //console.log(`[vtecxnext deletecontent] start. uri=${uri}`)
2041
+ // キー入力値チェック
2042
+ checkUri(uri);
2043
+ // vte.cxへリクエスト
2044
+ const method = 'DELETE';
2045
+ const url = `/p${uri}?_content`;
2046
+ const response = await requestVtecx(method, url, req);
2047
+ //console.log(`[vtecxnext deletecontent] response. status=${response.status}`)
2048
+ // vte.cxからのset-cookieを転記
2049
+ setCookie(response, res);
2050
+ // レスポンスのエラーチェック
2051
+ await checkVtecxResponse(response);
2052
+ return await getJson(response);
2053
+ };
2054
+ exports.deletecontent = deletecontent;
2055
+ /**
2056
+ * get content.
2057
+ * Writes a content to the response.
2058
+ * @param req request (for authentication)
2059
+ * @param res response (for authentication)
2060
+ * @param uri key
2061
+ * @return true
2062
+ */
2063
+ const getcontent = async (req, res, uri) => {
2064
+ //console.log(`[vtecxnext getcontent] start. uri=${uri}`)
2065
+ // キー入力値チェック
2066
+ checkUri(uri);
2067
+ // vte.cxへリクエスト
2068
+ const method = 'GET';
2069
+ const url = `/p${uri}?_content`;
2070
+ const response = await requestVtecx(method, url, req);
2071
+ //console.log(`[vtecxnext getcontent] response. status=${response.status}`)
2072
+ // vte.cxからのset-cookieを転記
2073
+ setCookie(response, res);
2074
+ //console.log(`[vtecxnext getcontent] setCookie end.`)
2075
+ // レスポンスのエラーチェック
2076
+ await checkVtecxResponse(response);
2077
+ //console.log(`[vtecxnext getcontent] checkVtecxResponse end.`)
2078
+ // 戻り値
2079
+ const resData = await response.blob();
2080
+ setResponseHeaders(response, res);
2081
+ res.statusCode = response.status;
2082
+ if (response.status !== 204) {
2083
+ const csvData = await resData.arrayBuffer();
2084
+ res.end(new Uint8Array(csvData));
2085
+ }
2086
+ else {
2087
+ res.end();
2088
+ }
2089
+ return true;
2090
+ };
2091
+ exports.getcontent = getcontent;
2092
+ /**
2093
+ * add acl
2094
+ * @param req request (for authentication)
2095
+ * @param res response (for authentication)
2096
+ * @param feed entries
2097
+ * @return message
2098
+ */
2099
+ const addacl = async (req, res, feed) => {
2100
+ //console.log('[vtecxnext addacl] start.')
2101
+ // 入力チェック
2102
+ checkNotNull(feed, 'Feed');
2103
+ // vte.cxへリクエスト
2104
+ const method = 'PUT';
2105
+ const url = `/d/?_addacl`;
2106
+ const response = await requestVtecx(method, url, req, JSON.stringify(feed));
2107
+ //console.log(`[vtecxnext addacl] response=${response}`)
2108
+ // vte.cxからのset-cookieを転記
2109
+ setCookie(response, res);
2110
+ // レスポンスのエラーチェック
2111
+ await checkVtecxResponse(response);
2112
+ // 戻り値
2113
+ return await getJson(response);
2114
+ };
2115
+ exports.addacl = addacl;
2116
+ /**
2117
+ * remove acl
2118
+ * @param req request (for authentication)
2119
+ * @param res response (for authentication)
2120
+ * @param feed entries
2121
+ * @return message
2122
+ */
2123
+ const removeacl = async (req, res, feed) => {
2124
+ //console.log('[vtecxnext removeacl] start.')
2125
+ // 入力チェック
2126
+ checkNotNull(feed, 'Feed');
2127
+ // vte.cxへリクエスト
2128
+ const method = 'PUT';
2129
+ const url = `/d/?_removeacl`;
2130
+ const response = await requestVtecx(method, url, req, JSON.stringify(feed));
2131
+ //console.log(`[vtecxnext removeacl] response=${response}`)
2132
+ // vte.cxからのset-cookieを転記
2133
+ setCookie(response, res);
2134
+ // レスポンスのエラーチェック
2135
+ await checkVtecxResponse(response);
2136
+ // 戻り値
2137
+ return await getJson(response);
2138
+ };
2139
+ exports.removeacl = removeacl;
2140
+ /**
2141
+ * add alias
2142
+ * @param req request (for authentication)
2143
+ * @param res response (for authentication)
2144
+ * @param feed entries
2145
+ * @return message
2146
+ */
2147
+ const addalias = async (req, res, feed) => {
2148
+ //console.log('[vtecxnext addalias] start.')
2149
+ // 入力チェック
2150
+ checkNotNull(feed, 'Feed');
2151
+ // vte.cxへリクエスト
2152
+ const method = 'PUT';
2153
+ const url = `/d/?_addalias`;
2154
+ const response = await requestVtecx(method, url, req, JSON.stringify(feed));
2155
+ //console.log(`[vtecxnext addalias] response=${response}`)
2156
+ // vte.cxからのset-cookieを転記
2157
+ setCookie(response, res);
2158
+ // レスポンスのエラーチェック
2159
+ await checkVtecxResponse(response);
2160
+ // 戻り値
2161
+ return await getJson(response);
2162
+ };
2163
+ exports.addalias = addalias;
2164
+ /**
2165
+ * remove alias
2166
+ * @param req request (for authentication)
2167
+ * @param res response (for authentication)
2168
+ * @param feed entries
2169
+ * @return message
2170
+ */
2171
+ const removealias = async (req, res, feed) => {
2172
+ //console.log('[vtecxnext removealias] start.')
2173
+ // 入力チェック
2174
+ checkNotNull(feed, 'Feed');
2175
+ // vte.cxへリクエスト
2176
+ const method = 'PUT';
2177
+ const url = `/d/?_removealias`;
2178
+ const response = await requestVtecx(method, url, req, JSON.stringify(feed));
2179
+ //console.log(`[vtecxnext removealias] response=${response}`)
2180
+ // vte.cxからのset-cookieを転記
2181
+ setCookie(response, res);
2182
+ // レスポンスのエラーチェック
2183
+ await checkVtecxResponse(response);
2184
+ // 戻り値
2185
+ return await getJson(response);
2186
+ };
2187
+ exports.removealias = removealias;
1678
2188
  //---------------------------------------------
1679
2189
  /**
1680
2190
  * Error returned from vte.cx
@@ -1698,10 +2208,15 @@ exports.VtecxNextError = VtecxNextError;
1698
2208
  * @param targetService 連携サービス名
1699
2209
  * @returns promise
1700
2210
  */
1701
- const requestVtecx = async (method, url, req, body, targetService) => {
2211
+ const requestVtecx = async (method, url, req, body, additionalHeaders, targetService) => {
1702
2212
  // cookieの値をvte.cxへのリクエストヘッダに設定
1703
2213
  const cookie = req ? req.headers['cookie'] : undefined;
1704
2214
  const headers = cookie ? { 'Cookie': cookie } : {};
2215
+ if (additionalHeaders) {
2216
+ for (const key in additionalHeaders) {
2217
+ headers[key] = additionalHeaders[key];
2218
+ }
2219
+ }
1705
2220
  if (targetService) {
1706
2221
  // サービス連携の場合
1707
2222
  const servicekey = process.env[`SERVICEKEY_${targetService}`];
@@ -1844,7 +2359,7 @@ const editBqTableNames = (tablenames) => {
1844
2359
  return null;
1845
2360
  }
1846
2361
  let result = '';
1847
- for (let key in tablenames) {
2362
+ for (const key in tablenames) {
1848
2363
  const value = tablenames[key];
1849
2364
  //console.log(`[editBqTableNames] ${key}=${value}`)
1850
2365
  result = `${result ? result + ',' : ''}${key}:${value}`;
@@ -1880,7 +2395,7 @@ const formatSql = (sql, values) => {
1880
2395
  if (!values) {
1881
2396
  return sql;
1882
2397
  }
1883
- return SqlString.format(sql, values);
2398
+ return sqlstring_1.default.format(sql, values);
1884
2399
  };
1885
2400
  /**
1886
2401
  * linkの編集
@@ -1902,3 +2417,15 @@ const getLinks = (rel, hrefs) => {
1902
2417
  //console.log(`[vtecxnext getLinks] links=${JSON.stringify(links)}`)
1903
2418
  return links;
1904
2419
  };
2420
+ /**
2421
+ * ストリームからバイナリデータを取得
2422
+ * @param readable Readable
2423
+ * @returns バイナリデータ
2424
+ */
2425
+ const buffer = async (readable) => {
2426
+ const chunks = [];
2427
+ for await (const chunk of readable) {
2428
+ chunks.push(typeof chunk === 'string' ? Buffer.from(chunk) : chunk);
2429
+ }
2430
+ return Buffer.concat(chunks);
2431
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vtecx/vtecxnext",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "vte.cx Next.js api",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -22,12 +22,14 @@
22
22
  },
23
23
  "homepage": "https://github.com/reflexworks/vtecxnext#readme",
24
24
  "devDependencies": {
25
+ "@types/formidable": "^2.0.5",
25
26
  "@types/node": "^18.11.17",
26
27
  "@types/sqlstring": "^2.3.0",
27
28
  "ts-node": "^10.9.1",
28
29
  "typescript": "^4.9.4"
29
30
  },
30
31
  "dependencies": {
32
+ "formidable": "^2.1.1",
31
33
  "sqlstring": "^2.3.3"
32
34
  }
33
35
  }