@vtecx/vtecxnext 1.0.7 → 1.0.9

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.
@@ -509,6 +509,29 @@ export declare const leaveGroup: (req: IncomingMessage, res: ServerResponse, gro
509
509
  * @return feed (entry array)
510
510
  */
511
511
  export declare const noGroupMember: (req: IncomingMessage, res: ServerResponse, uri: string) => Promise<any>;
512
+ /**
513
+ * Get groups
514
+ * @param req request (for authentication)
515
+ * @param res response (for authentication)
516
+ * @param uri group key
517
+ * @return feed (entry array)
518
+ */
519
+ export declare const getGroups: (req: IncomingMessage, res: ServerResponse) => Promise<any>;
520
+ /**
521
+ * whether you are in the group
522
+ * @param req request (for authentication)
523
+ * @param res response (for authentication)
524
+ * @param uri group key
525
+ * @return true/false
526
+ */
527
+ export declare const isGroupMember: (req: IncomingMessage, res: ServerResponse, uri: string) => Promise<boolean>;
528
+ /**
529
+ * whether you are in the admin group
530
+ * @param req request (for authentication)
531
+ * @param res response (for authentication)
532
+ * @return true/false
533
+ */
534
+ export declare const isAdmin: (req: IncomingMessage, res: ServerResponse) => Promise<boolean>;
512
535
  /**
513
536
  * add user
514
537
  * @param req request (for authentication)
package/dist/vtecxnext.js CHANGED
@@ -27,7 +27,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  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;
30
- exports.FetchError = exports.VtecxNextError = exports.buffer = exports.oauthCallbackLine = exports.oauthLine = 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;
30
+ exports.FetchError = exports.VtecxNextError = exports.buffer = exports.oauthCallbackLine = exports.oauthLine = 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.isAdmin = exports.isGroupMember = exports.getGroups = exports.noGroupMember = exports.leaveGroup = exports.joinGroup = exports.getMessageQueue = exports.setMessageQueue = exports.setMessageQueueStatus = exports.pushNotification = exports.sendMail = exports.checkSignature = void 0;
31
31
  const sqlstring_1 = __importDefault(require("sqlstring"));
32
32
  const formidable_1 = __importDefault(require("formidable"));
33
33
  const fs_1 = __importDefault(require("fs"));
@@ -1915,6 +1915,75 @@ const noGroupMember = async (req, res, uri) => {
1915
1915
  return await getJson(response);
1916
1916
  };
1917
1917
  exports.noGroupMember = noGroupMember;
1918
+ /**
1919
+ * Get groups
1920
+ * @param req request (for authentication)
1921
+ * @param res response (for authentication)
1922
+ * @param uri group key
1923
+ * @return feed (entry array)
1924
+ */
1925
+ const getGroups = async (req, res) => {
1926
+ //console.log('[vtecxnext getGroups] start.')
1927
+ // vte.cxへリクエスト
1928
+ const method = 'GET';
1929
+ const url = `/d/?_group`;
1930
+ let response;
1931
+ try {
1932
+ response = await requestVtecx(method, url, req);
1933
+ }
1934
+ catch (e) {
1935
+ throw newFetchError(e, true);
1936
+ }
1937
+ //console.log(`[vtecxnext getGroups] response=${response}`)
1938
+ // vte.cxからのset-cookieを転記
1939
+ setCookie(response, res);
1940
+ // レスポンスのエラーチェック
1941
+ await checkVtecxResponse(response);
1942
+ // 戻り値
1943
+ return await getJson(response);
1944
+ };
1945
+ exports.getGroups = getGroups;
1946
+ /**
1947
+ * whether you are in the group
1948
+ * @param req request (for authentication)
1949
+ * @param res response (for authentication)
1950
+ * @param uri group key
1951
+ * @return true/false
1952
+ */
1953
+ const isGroupMember = async (req, res, uri) => {
1954
+ //console.log('[vtecxnext noGroupMember] start.')
1955
+ // キー入力値チェック
1956
+ checkUri(uri);
1957
+ // vte.cxへリクエスト
1958
+ const method = 'GET';
1959
+ const url = `/d${uri}?_is_group_member`;
1960
+ let response;
1961
+ try {
1962
+ response = await requestVtecx(method, url, req);
1963
+ }
1964
+ catch (e) {
1965
+ throw newFetchError(e, true);
1966
+ }
1967
+ //console.log(`[vtecxnext noGroupMember] response=${response}`)
1968
+ // vte.cxからのset-cookieを転記
1969
+ setCookie(response, res);
1970
+ // レスポンスのエラーチェック
1971
+ await checkVtecxResponse(response);
1972
+ // 戻り値
1973
+ const data = await getJson(response);
1974
+ return data?.feed?.title === 'true' ? true : false;
1975
+ };
1976
+ exports.isGroupMember = isGroupMember;
1977
+ /**
1978
+ * whether you are in the admin group
1979
+ * @param req request (for authentication)
1980
+ * @param res response (for authentication)
1981
+ * @return true/false
1982
+ */
1983
+ const isAdmin = async (req, res) => {
1984
+ return await (0, exports.isGroupMember)(req, res, '/_group/$admin');
1985
+ };
1986
+ exports.isAdmin = isAdmin;
1918
1987
  /**
1919
1988
  * add user
1920
1989
  * @param req request (for authentication)
@@ -2827,8 +2896,12 @@ const fetchProc = (url, requestInit) => {
2827
2896
  * @param res ブラウザへのレスポンス
2828
2897
  */
2829
2898
  const setCookie = (response, res) => {
2830
- const setCookieVal = response.headers.get('set-cookie');
2899
+ let setCookieVal = response.headers.get('set-cookie');
2831
2900
  if (setCookieVal === '' || setCookieVal) {
2901
+ if (setCookieVal !== '' && setCookieVal.indexOf('SameSite') < 0) {
2902
+ setCookieVal += '; SameSite=Lax';
2903
+ }
2904
+ //console.log(`[vtecxnext setCookie] value : ${setCookieVal}`)
2832
2905
  res.setHeader('set-cookie', setCookieVal);
2833
2906
  }
2834
2907
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vtecx/vtecxnext",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "description": "vte.cx Next.js api",
5
5
  "main": "dist/index.js",
6
6
  "files": [