gs2 1.4.126 → 1.4.127

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.
@@ -7,6 +7,8 @@ export default class {
7
7
  };
8
8
  private prepareRequestConfig;
9
9
  private compressBody;
10
+ /** 既存の要求と同じ写像: 応答があれば message(JSON 文字列)を展開、無ければ [] */
11
+ private mapError;
10
12
  protected request<T>(method: 'GET' | 'POST' | 'PUT' | 'DELETE', url: string, headers: {
11
13
  [key: string]: any;
12
14
  }, params?: {
@@ -16,6 +16,7 @@ permissions and limitations under the License.
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  var tslib_1 = require("tslib");
19
+ var model_1 = require("./model");
19
20
  var axios_1 = tslib_1.__importDefault(require("axios"));
20
21
  var pako_1 = tslib_1.__importDefault(require("pako"));
21
22
  var default_1 = /** @class */ (function () {
@@ -47,31 +48,68 @@ var default_1 = /** @class */ (function () {
47
48
  }
48
49
  return body;
49
50
  };
51
+ /** 既存の要求と同じ写像: 応答があれば message(JSON 文字列)を展開、無ければ [] */
52
+ default_1.prototype.mapError = function (error) {
53
+ // ★応答が無い失敗(接続段階の失敗・切断)では error.response が無い
54
+ // ―― 従来 GET / DELETE はここで TypeError になっていた。
55
+ if (error != null && error.response) {
56
+ return JSON.parse(error.response.data.message);
57
+ }
58
+ return [];
59
+ };
50
60
  default_1.prototype.request = function (method, url, headers, params, body) {
61
+ var _this = this;
51
62
  var config = this.prepareRequestConfig(headers);
63
+ // Steady: 生成クライアントが共有クラウドの template から組んだ URL を `<steady>/<service>...` へ。
64
+ // steadyEndpoint が未設定なら target は url と byte 単位で同じ。
65
+ var target = (0, model_1.steadyRestUrl)(this.session.steadyEndpoint, this.session.region, url);
66
+ var viaSteady = (0, model_1.isSteadyUrl)(this.session.steadyEndpoint, target);
67
+ var data = undefined;
52
68
  if (method === 'GET' || method === 'DELETE') {
53
69
  config.params = params;
54
- var axiosMethod = method === 'GET' ? axios_1.default.get : axios_1.default.delete;
55
- return axiosMethod(url, config)
56
- .then(function (response) { return response.data; })
57
- .catch(function (error) {
58
- throw JSON.parse(error.response.data.message);
59
- });
60
70
  }
61
71
  else {
62
- var data = body ? this.compressBody(body, headers) : undefined;
63
- var axiosMethod = method === 'POST' ? axios_1.default.post : axios_1.default.put;
64
- return axiosMethod(url, data, config)
65
- .then(function (response) { return response.data; })
66
- .catch(function (error) {
67
- if (error.response) {
68
- throw JSON.parse(error.response.data.message);
69
- }
70
- else {
71
- throw [];
72
- }
73
- });
72
+ // ★本文は先に作って持つ(接続失敗の再送で同じ要求をもう一度組むため)。
73
+ data = body ? this.compressBody(body, headers) : undefined;
74
74
  }
75
+ var requestConfig = config;
76
+ if (viaSteady) {
77
+ var agents = (0, model_1.steadyAgents)(this.session.steadyConnectTimeoutMs);
78
+ if (agents != null) {
79
+ requestConfig = Object.assign({}, config, {
80
+ httpAgent: agents.http,
81
+ httpsAgent: agents.https,
82
+ });
83
+ }
84
+ }
85
+ var send = function () {
86
+ if (method === 'GET') {
87
+ return axios_1.default.get(target, requestConfig);
88
+ }
89
+ else if (method === 'DELETE') {
90
+ return axios_1.default.delete(target, requestConfig);
91
+ }
92
+ else if (method === 'POST') {
93
+ return axios_1.default.post(target, data, requestConfig);
94
+ }
95
+ else {
96
+ return axios_1.default.put(target, data, requestConfig);
97
+ }
98
+ };
99
+ return send()
100
+ .catch(function (error) {
101
+ // ★Steady の再送: 基点への**接続段階**の失敗(DNS / dial / TLS。1 バイトも送っていない)だけ、
102
+ // 同じ要求をもう 1 回だけ送る。フリートが手放した IP に当たったとき、名前を引き直して
103
+ // 別のノードへ着く機会を 1 回だけ作る。送信後の失敗(5xx・切断・読み取りタイムアウト)は
104
+ // 届いたかもしれないので再送しない。再送は 1 回だけ(3 回目は無い)。
105
+ if (viaSteady && (0, model_1.isConnectFailure)(error)) {
106
+ return send();
107
+ }
108
+ throw error;
109
+ })
110
+ .then(function (response) { return response.data; }, function (error) {
111
+ throw _this.mapError(error);
112
+ });
75
113
  };
76
114
  return default_1;
77
115
  }());
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractGs2RestClient.js","sourceRoot":"","sources":["../../src/core/AbstractGs2RestClient.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAGH,wDAAkD;AAClD,sDAAwB;AAExB;IAIE,mBAAY,OAAuB;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAES,2CAAuB,GAAjC;QACE,OAAO;YACL,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAS;YACpD,eAAe,EAAE,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY;SACvD,CAAC;IACJ,CAAC;IAEO,wCAAoB,GAA5B,UAA6B,OAA6B;QACxD,IAAM,MAAM,GAAuB;YACjC,OAAO,SAAA;SACR,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACpE,OAAO,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC;SACrC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,gCAAY,GAApB,UAAqB,IAA0B,EAAE,OAA6B;QAC5E,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YAChC,IAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACxC,IAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACzC,OAAO,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC;YACrC,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;YAC7C,OAAO,UAAU,CAAC;SACnB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAES,2BAAO,GAAjB,UACE,MAAyC,EACzC,GAAW,EACX,OAA6B,EAC7B,MAA6B,EAC7B,IAA2B;QAE3B,IAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAElD,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,QAAQ,EAAE;YAC3C,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACvB,IAAM,WAAW,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC;YAChE,OAAO,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC;iBAC5B,IAAI,CAAC,UAAC,QAAa,IAAK,OAAA,QAAQ,CAAC,IAAS,EAAlB,CAAkB,CAAC;iBAC3C,KAAK,CAAC,UAAC,KAAU;gBAChB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;SACN;aAAM;YACL,IAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACjE,IAAM,WAAW,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC;YAC/D,OAAO,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC;iBAClC,IAAI,CAAC,UAAC,QAAa,IAAK,OAAA,QAAQ,CAAC,IAAS,EAAlB,CAAkB,CAAC;iBAC3C,KAAK,CAAC,UAAC,KAAU;gBAChB,IAAI,KAAK,CAAC,QAAQ,EAAE;oBAClB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC/C;qBAAM;oBACL,MAAM,EAAE,CAAC;iBACV;YACH,CAAC,CAAC,CAAC;SACN;IACH,CAAC;IACH,gBAAC;AAAD,CAAC,AArED,IAqEC"}
1
+ {"version":3,"file":"AbstractGs2RestClient.js","sourceRoot":"","sources":["../../src/core/AbstractGs2RestClient.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,iCAAqG;AACrG,wDAAkD;AAClD,sDAAwB;AAExB;IAIE,mBAAY,OAAuB;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAES,2CAAuB,GAAjC;QACE,OAAO;YACL,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAS;YACpD,eAAe,EAAE,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY;SACvD,CAAC;IACJ,CAAC;IAEO,wCAAoB,GAA5B,UAA6B,OAA6B;QACxD,IAAM,MAAM,GAAuB;YACjC,OAAO,SAAA;SACR,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACpE,OAAO,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC;SACrC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,gCAAY,GAApB,UAAqB,IAA0B,EAAE,OAA6B;QAC5E,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YAChC,IAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACxC,IAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACzC,OAAO,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC;YACrC,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;YAC7C,OAAO,UAAU,CAAC;SACnB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sDAAsD;IAC9C,4BAAQ,GAAhB,UAAiB,KAAU;QACzB,4CAA4C;QAC5C,4CAA4C;QAC5C,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE;YACnC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAChD;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,2BAAO,GAAjB,UACE,MAAyC,EACzC,GAAW,EACX,OAA6B,EAC7B,MAA6B,EAC7B,IAA2B;QAL7B,iBA8DC;QAvDC,IAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAElD,2EAA2E;QAC3E,mDAAmD;QACnD,IAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACpF,IAAM,SAAS,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAEnE,IAAI,IAAI,GAAkD,SAAS,CAAC;QACpE,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,QAAQ,EAAE;YAC3C,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;SACxB;aAAM;YACL,sCAAsC;YACtC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;SAC5D;QAED,IAAI,aAAa,GAAG,MAAM,CAAC;QAC3B,IAAI,SAAS,EAAE;YACb,IAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YACjE,IAAI,MAAM,IAAI,IAAI,EAAE;gBAClB,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE;oBACxC,SAAS,EAAE,MAAM,CAAC,IAAI;oBACtB,UAAU,EAAE,MAAM,CAAC,KAAK;iBACzB,CAAC,CAAC;aACJ;SACF;QAED,IAAM,IAAI,GAAG;YACX,IAAI,MAAM,KAAK,KAAK,EAAE;gBACpB,OAAO,eAAK,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;aACzC;iBAAM,IAAI,MAAM,KAAK,QAAQ,EAAE;gBAC9B,OAAO,eAAK,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;aAC5C;iBAAM,IAAI,MAAM,KAAK,MAAM,EAAE;gBAC5B,OAAO,eAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;aAChD;iBAAM;gBACL,OAAO,eAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;aAC/C;QACH,CAAC,CAAC;QAEF,OAAO,IAAI,EAAE;aACV,KAAK,CAAC,UAAC,KAAU;YAChB,iEAAiE;YACjE,gDAAgD;YAChD,iDAAiD;YACjD,uCAAuC;YACvC,IAAI,SAAS,IAAI,IAAA,wBAAgB,EAAC,KAAK,CAAC,EAAE;gBACxC,OAAO,IAAI,EAAE,CAAC;aACf;YACD,MAAM,KAAK,CAAC;QACd,CAAC,CAAC;aACD,IAAI,CACH,UAAC,QAAa,IAAK,OAAA,QAAQ,CAAC,IAAS,EAAlB,CAAkB,EACrC,UAAC,KAAU;YACT,MAAM,KAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CACF,CAAC;IACN,CAAC;IACH,gBAAC;AAAD,CAAC,AA/GD,IA+GC"}
package/core/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import AbstractGs2Client from './AbstractGs2RestClient';
2
- import { Gs2RestSession, Gs2WebSocketSession, BasicGs2Credential, ProjectTokenGs2Credential, Region } from './model';
2
+ import { Gs2RestSession, Gs2RestSessionOptions, Gs2WebSocketSession, Gs2WebSocketSessionOptions, BasicGs2Credential, ProjectTokenGs2Credential, Region, STEADY_CONNECT_TIMEOUT_MS, isConnectFailure } from './model';
3
3
  import AcquireActionResult from "./AcquireActionResult";
4
4
  import ConsumeActionResult from "./ConsumeActionResult";
5
5
  import VerifyActionResult from "./VerifyActionResult";
6
6
  import TransactionResult from "./TransactionResult";
7
- export { AbstractGs2Client, Gs2RestSession, Gs2WebSocketSession, BasicGs2Credential, ProjectTokenGs2Credential, Region, AcquireActionResult, ConsumeActionResult, VerifyActionResult, TransactionResult, };
7
+ export { AbstractGs2Client, Gs2RestSession, Gs2RestSessionOptions, Gs2WebSocketSession, Gs2WebSocketSessionOptions, BasicGs2Credential, ProjectTokenGs2Credential, Region, STEADY_CONNECT_TIMEOUT_MS, isConnectFailure, AcquireActionResult, ConsumeActionResult, VerifyActionResult, TransactionResult, };
package/core/index.js CHANGED
@@ -15,7 +15,7 @@ express or implied. See the License for the specific language governing
15
15
  permissions and limitations under the License.
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.TransactionResult = exports.VerifyActionResult = exports.ConsumeActionResult = exports.AcquireActionResult = exports.Region = exports.ProjectTokenGs2Credential = exports.BasicGs2Credential = exports.Gs2WebSocketSession = exports.Gs2RestSession = exports.AbstractGs2Client = void 0;
18
+ exports.TransactionResult = exports.VerifyActionResult = exports.ConsumeActionResult = exports.AcquireActionResult = exports.isConnectFailure = exports.STEADY_CONNECT_TIMEOUT_MS = exports.Region = exports.ProjectTokenGs2Credential = exports.BasicGs2Credential = exports.Gs2WebSocketSession = exports.Gs2RestSession = exports.AbstractGs2Client = void 0;
19
19
  var tslib_1 = require("tslib");
20
20
  var AbstractGs2RestClient_1 = tslib_1.__importDefault(require("./AbstractGs2RestClient"));
21
21
  exports.AbstractGs2Client = AbstractGs2RestClient_1.default;
@@ -25,6 +25,8 @@ Object.defineProperty(exports, "Gs2WebSocketSession", { enumerable: true, get: f
25
25
  Object.defineProperty(exports, "BasicGs2Credential", { enumerable: true, get: function () { return model_1.BasicGs2Credential; } });
26
26
  Object.defineProperty(exports, "ProjectTokenGs2Credential", { enumerable: true, get: function () { return model_1.ProjectTokenGs2Credential; } });
27
27
  Object.defineProperty(exports, "Region", { enumerable: true, get: function () { return model_1.Region; } });
28
+ Object.defineProperty(exports, "STEADY_CONNECT_TIMEOUT_MS", { enumerable: true, get: function () { return model_1.STEADY_CONNECT_TIMEOUT_MS; } });
29
+ Object.defineProperty(exports, "isConnectFailure", { enumerable: true, get: function () { return model_1.isConnectFailure; } });
28
30
  var AcquireActionResult_1 = tslib_1.__importDefault(require("./AcquireActionResult"));
29
31
  exports.AcquireActionResult = AcquireActionResult_1.default;
30
32
  var ConsumeActionResult_1 = tslib_1.__importDefault(require("./ConsumeActionResult"));
package/core/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;AAEH,0FAAwD;AAQtD,4BARK,+BAAiB,CAQL;AAPnB,iCAAqH;AAQnH,+FARO,sBAAc,OAQP;AACd,oGATuB,2BAAmB,OASvB;AACnB,mGAV4C,0BAAkB,OAU5C;AAClB,0GAXgE,iCAAyB,OAWhE;AACzB,uFAZ2F,cAAM,OAY3F;AAXR,sFAAwD;AAYtD,8BAZK,6BAAmB,CAYL;AAXrB,sFAAwD;AAYtD,8BAZK,6BAAmB,CAYL;AAXrB,oFAAsD;AAYpD,6BAZK,4BAAkB,CAYL;AAXpB,kFAAoD;AAYlD,4BAZK,2BAAiB,CAYL"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;AAEH,0FAAwD;AAkBtD,4BAlBK,+BAAiB,CAkBL;AAjBnB,iCAUiB;AAQf,+FAjBA,sBAAc,OAiBA;AAEd,oGAjBA,2BAAmB,OAiBA;AAEnB,mGAjBA,0BAAkB,OAiBA;AAClB,0GAjBA,iCAAyB,OAiBA;AACzB,uFAjBA,cAAM,OAiBA;AACN,0GAjBA,iCAAyB,OAiBA;AACzB,iGAjBA,wBAAgB,OAiBA;AAflB,sFAAwD;AAgBtD,8BAhBK,6BAAmB,CAgBL;AAfrB,sFAAwD;AAgBtD,8BAhBK,6BAAmB,CAgBL;AAfrB,oFAAsD;AAgBpD,6BAhBK,4BAAkB,CAgBL;AAfpB,kFAAoD;AAgBlD,4BAhBK,2BAAiB,CAgBL"}
package/core/model.d.ts CHANGED
@@ -5,11 +5,67 @@ export declare class BasicGs2Credential implements IGs2Credential {
5
5
  clientSecret: string;
6
6
  constructor(clientId: string, clientSecret: string);
7
7
  }
8
+ /**
9
+ * Steady の基点への接続(DNS / TCP / TLS handshake)の上限(ms)。
10
+ * フリートが手放した公開 IP は SYN を落とすので、OS 既定(数十秒〜数分)に任せない。
11
+ * ★ブラウザでは接続だけの上限を持てない(XHR / fetch の timeout は要求全体にかかり、
12
+ * GS2 の長い API を殺す)ので、ブラウザでは上限を置かず 1 回の再送だけが効く。
13
+ */
14
+ export declare const STEADY_CONNECT_TIMEOUT_MS = 5000;
15
+ /** 接続段階の上限で落としたときに載せる code(Node だけ。再送の判定に使う) */
16
+ export declare const STEADY_CONNECT_TIMEOUT_CODE = "GS2_STEADY_CONNECT_TIMEOUT";
17
+ /** 末尾の / と空白を落とす。未設定なら '' */
18
+ export declare function normalizeSteadyEndpoint(value?: string | null): string;
19
+ /** steadyEndpoint から REST の template({service} 付き)を作る。未設定なら '' */
20
+ export declare function steadyRestTemplate(steadyEndpoint?: string | null): string;
21
+ /**
22
+ * steadyEndpoint から WebSocket の接続先を作る。未設定・壊れた基点なら ''。
23
+ * http:// の基点(ローカルの試験・開発)は ws:// に、https:// は wss:// に。
24
+ */
25
+ export declare function steadyWebSocketUrl(steadyEndpoint?: string | null): string;
26
+ /** 要求 URL が Steady の基点宛か */
27
+ export declare function isSteadyUrl(steadyEndpoint: string | null | undefined, url: string): boolean;
28
+ /**
29
+ * 生成クライアントが組んだ URL を Steady の基点配下へ書き換える。
30
+ *
31
+ * 生成クライアントは `(Gs2XxxRestClient.ENDPOINT_HOST ?? Gs2Constant.ENDPOINT_HOST) + <path>` で
32
+ * URL を組む。★共有クラウドの template(Gs2Constant.ENDPOINT_HOST)から組まれた URL だけを
33
+ * `<steady>/<service><path>` に書き換えるので、優先順は
34
+ * サービスごとの override > steadyEndpoint > 共有クラウドの template になる
35
+ * (override の URL は template に当たらないので、そのまま残る)。
36
+ * steadyEndpoint が未設定なら URL は従来と byte 単位で同じ。
37
+ */
38
+ export declare function steadyRestUrl(steadyEndpoint: string | null | undefined, region: string, url: string): string;
39
+ /**
40
+ * 接続段階の失敗か(応答が無く、code が接続系)。
41
+ * ★ブラウザの axios は接続失敗も送信後の切断もまとめて ERR_NETWORK(応答無し)にするので、
42
+ * ブラウザでは両者を見分けられない ―― 再送が効くのは Node だけ。
43
+ */
44
+ export declare function isConnectFailure(error: any): boolean;
45
+ /** Steady 宛の要求に使う Agent(Node だけ)。http / https の両方を用意する */
46
+ export interface SteadyAgents {
47
+ http: any;
48
+ https: any;
49
+ }
50
+ /**
51
+ * Node のときだけ: 接続(DNS / TCP / TLS handshake)に上限を置く Agent を作る(timeout ごとに使い回す)。
52
+ * ★要求全体の timeout は使わない ―― GS2 には応答まで長くかかる API があるので殺せない。
53
+ * ブラウザ(window がある)では接続だけの上限を持てないので null を返す(再送だけが効く)。
54
+ */
55
+ export declare function steadyAgents(timeoutMs: number): SteadyAgents | null;
8
56
  export interface Gs2RestSessionOptions {
9
57
  /** リクエストボディをgzip圧縮して送信するかどうか(デフォルト: true) */
10
58
  compressRequest?: boolean;
11
59
  /** レスポンスのgzip展開を受け入れるかどうか(デフォルト: true) */
12
60
  acceptGzipResponse?: boolean;
61
+ /**
62
+ * Steady(専用フリート)の基点 `https://<host>`(placeholder 無し。末尾の `/` と空白は落とす)。
63
+ * 設定すると全サービスの接続先が `<steady>/<service>` になり、接続段階に上限と 1 回の再送が付く。
64
+ * 未設定なら URL・挙動は従来どおり(`Gs2Constant.ENDPOINT_HOST` から組む)。
65
+ */
66
+ steadyEndpoint?: string;
67
+ /** Steady の基点への接続タイムアウト(ms、デフォルト: STEADY_CONNECT_TIMEOUT_MS) */
68
+ steadyConnectTimeoutMs?: number;
13
69
  }
14
70
  export declare class Gs2RestSession {
15
71
  credential: IGs2Credential;
@@ -18,22 +74,57 @@ export declare class Gs2RestSession {
18
74
  expiresAt: number | null;
19
75
  compressRequest: boolean;
20
76
  acceptGzipResponse: boolean;
77
+ /** Steady の基点(正規化済み)。'' なら共有クラウド */
78
+ steadyEndpoint: string;
79
+ /** Steady の基点への接続タイムアウト(ms) */
80
+ steadyConnectTimeoutMs: number;
21
81
  constructor(credential: IGs2Credential, region: string, options?: Gs2RestSessionOptions);
82
+ /**
83
+ * サービスの接続先。優先順: steadyEndpoint > 共有クラウドの `Gs2Constant.ENDPOINT_HOST`。
84
+ * steadyEndpoint が未設定なら従来の文字列と byte 単位で一致する
85
+ * (生成クライアントのサービスごとの override はこれより強い。`steadyRestUrl` の説明)。
86
+ */
87
+ endpointHost(service: string): string;
22
88
  connect(): Promise<LoginResult> | undefined;
23
89
  disconnect(): void;
24
90
  }
91
+ export interface Gs2WebSocketSessionOptions {
92
+ /**
93
+ * Steady(専用フリート)の基点 `https://<host>`。接続先は `wss://<host>/`(基点が `http://` なら
94
+ * `ws://<host>/`)になり、handshake に上限(steadyConnectTimeoutMs)が付く。未設定なら従来の gateway-ws。
95
+ */
96
+ steadyEndpoint?: string;
97
+ /** Steady の handshake タイムアウト(ms、デフォルト: STEADY_CONNECT_TIMEOUT_MS) */
98
+ steadyConnectTimeoutMs?: number;
99
+ }
25
100
  export declare class Gs2WebSocketSession {
26
101
  credential: IGs2Credential;
27
102
  private client;
28
103
  region: string;
29
104
  projectToken: string | null;
30
105
  expiresAt: number | null;
106
+ /** Steady の基点(正規化済み)。'' なら共有クラウド */
107
+ steadyEndpoint: string;
108
+ /** Steady の handshake タイムアウト(ms) */
109
+ steadyConnectTimeoutMs: number;
31
110
  private inflightRequest;
32
111
  private onOpenHandlers;
33
112
  private onErrorHandlers;
34
113
  private onCloseHandlers;
35
114
  private onNotificationHandlers;
36
- constructor(credential: IGs2Credential, region: string);
115
+ constructor(credential: IGs2Credential, region: string, options?: Gs2WebSocketSessionOptions);
116
+ /** 接続先。steadyEndpoint > 共有クラウドの `Gs2Constant.WS_ENDPOINT_HOST` */
117
+ webSocketUrl(): string;
118
+ /**
119
+ * Node の `ws` に渡す接続オプション。Steady のときだけ handshake に上限を置く。
120
+ * ★ブラウザの WebSocket は handshake の上限を持てない(オプションが無い)ので、
121
+ * ブラウザでは上限が効かない。共有クラウドは従来どおりオプション無し(undefined)。
122
+ */
123
+ webSocketOptions(): {
124
+ handshakeTimeout: number;
125
+ } | undefined;
126
+ /** ログイン(identifier)の REST 接続先。steady があれば `<steady>/identifier`、無ければ従来 */
127
+ endpointHost(service: string): string;
37
128
  connect(): Promise<any>;
38
129
  send(service: string, component: string, func: string, payload: any): Promise<any>;
39
130
  onOpen(func: (ev: Event) => any): void;
package/core/model.js CHANGED
@@ -14,8 +14,9 @@ on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
14
14
  express or implied. See the License for the specific language governing
15
15
  permissions and limitations under the License.
16
16
  */
17
+ var _a;
17
18
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.Region = exports.Gs2Constant = exports.ProjectTokenGs2Credential = exports.ProjectToken = exports.Gs2WebSocketSession = exports.Gs2RestSession = exports.BasicGs2Credential = void 0;
19
+ exports.Region = exports.Gs2Constant = exports.ProjectTokenGs2Credential = exports.ProjectToken = exports.Gs2WebSocketSession = exports.Gs2RestSession = exports.steadyAgents = exports.isConnectFailure = exports.steadyRestUrl = exports.isSteadyUrl = exports.steadyWebSocketUrl = exports.steadyRestTemplate = exports.normalizeSteadyEndpoint = exports.STEADY_CONNECT_TIMEOUT_CODE = exports.STEADY_CONNECT_TIMEOUT_MS = exports.BasicGs2Credential = void 0;
19
20
  var tslib_1 = require("tslib");
20
21
  var axios_1 = tslib_1.__importDefault(require("axios"));
21
22
  var async_wait_until_1 = tslib_1.__importDefault(require("async-wait-until"));
@@ -29,35 +30,281 @@ var BasicGs2Credential = /** @class */ (function () {
29
30
  return BasicGs2Credential;
30
31
  }());
31
32
  exports.BasicGs2Credential = BasicGs2Credential;
33
+ // ---------------------------------------------------------------- Steady(専用フリート)の基点
34
+ //
35
+ // フリートは 1 つの名前(steadyEndpoint、例 https://bs-dev.ap-northeast-1.dev.gen2.gs2io.com)で受け、
36
+ // REST は <steady>/<service>/...、WebSocket は wss://<host>/ を使う。名前はフリートのノードへ直接
37
+ // 解決される(間に ALB は無い)ので、フリートが手放した公開 IP に当たると SYN が落ちる。
38
+ // そのため Steady のときだけ接続段階に上限(steadyConnectTimeoutMs)を置き、接続段階の失敗
39
+ // (1 バイトも送っていない)だけは同じ要求をもう 1 回だけ送る。送信後の失敗は届いたかもしれない
40
+ // ので再送しない(非冪等要求の二重実行を作らない)。
41
+ /**
42
+ * Steady の基点への接続(DNS / TCP / TLS handshake)の上限(ms)。
43
+ * フリートが手放した公開 IP は SYN を落とすので、OS 既定(数十秒〜数分)に任せない。
44
+ * ★ブラウザでは接続だけの上限を持てない(XHR / fetch の timeout は要求全体にかかり、
45
+ * GS2 の長い API を殺す)ので、ブラウザでは上限を置かず 1 回の再送だけが効く。
46
+ */
47
+ exports.STEADY_CONNECT_TIMEOUT_MS = 5000;
48
+ /** 接続段階の上限で落としたときに載せる code(Node だけ。再送の判定に使う) */
49
+ exports.STEADY_CONNECT_TIMEOUT_CODE = 'GS2_STEADY_CONNECT_TIMEOUT';
50
+ /** 末尾の / と空白を落とす。未設定なら '' */
51
+ function normalizeSteadyEndpoint(value) {
52
+ if (value == null) {
53
+ return '';
54
+ }
55
+ return value.trim().replace(/\/+$/, '');
56
+ }
57
+ exports.normalizeSteadyEndpoint = normalizeSteadyEndpoint;
58
+ /** steadyEndpoint から REST の template({service} 付き)を作る。未設定なら '' */
59
+ function steadyRestTemplate(steadyEndpoint) {
60
+ var steady = normalizeSteadyEndpoint(steadyEndpoint);
61
+ if (steady === '') {
62
+ return '';
63
+ }
64
+ return steady + '/{service}';
65
+ }
66
+ exports.steadyRestTemplate = steadyRestTemplate;
67
+ /**
68
+ * steadyEndpoint から WebSocket の接続先を作る。未設定・壊れた基点なら ''。
69
+ * http:// の基点(ローカルの試験・開発)は ws:// に、https:// は wss:// に。
70
+ */
71
+ function steadyWebSocketUrl(steadyEndpoint) {
72
+ var base = normalizeSteadyEndpoint(steadyEndpoint);
73
+ if (base === '') {
74
+ return '';
75
+ }
76
+ // 基点に path が付いていても host だけを見る(Go の url.Parse と同じ)。
77
+ var match = /^(https?):\/\/([^/]+)/i.exec(base);
78
+ if (match == null) {
79
+ return '';
80
+ }
81
+ var scheme = match[1].toLowerCase() === 'http' ? 'ws' : 'wss';
82
+ return scheme + '://' + match[2] + '/';
83
+ }
84
+ exports.steadyWebSocketUrl = steadyWebSocketUrl;
85
+ /** 要求 URL が Steady の基点宛か */
86
+ function isSteadyUrl(steadyEndpoint, url) {
87
+ var base = normalizeSteadyEndpoint(steadyEndpoint);
88
+ if (base === '') {
89
+ return false;
90
+ }
91
+ return url === base || url.indexOf(base + '/') === 0;
92
+ }
93
+ exports.isSteadyUrl = isSteadyUrl;
94
+ function escapeRegExp(value) {
95
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
96
+ }
97
+ /**
98
+ * 生成クライアントが組んだ URL を Steady の基点配下へ書き換える。
99
+ *
100
+ * 生成クライアントは `(Gs2XxxRestClient.ENDPOINT_HOST ?? Gs2Constant.ENDPOINT_HOST) + <path>` で
101
+ * URL を組む。★共有クラウドの template(Gs2Constant.ENDPOINT_HOST)から組まれた URL だけを
102
+ * `<steady>/<service><path>` に書き換えるので、優先順は
103
+ * サービスごとの override > steadyEndpoint > 共有クラウドの template になる
104
+ * (override の URL は template に当たらないので、そのまま残る)。
105
+ * steadyEndpoint が未設定なら URL は従来と byte 単位で同じ。
106
+ */
107
+ function steadyRestUrl(steadyEndpoint, region, url) {
108
+ var steady = normalizeSteadyEndpoint(steadyEndpoint);
109
+ if (steady === '' || isSteadyUrl(steady, url)) {
110
+ return url;
111
+ }
112
+ var template = exports.Gs2Constant.ENDPOINT_HOST;
113
+ if (template.indexOf('{service}') < 0) {
114
+ return url;
115
+ }
116
+ var pattern = new RegExp('^' + escapeRegExp(template)
117
+ .replace('\\{service\\}', '([^/]+)')
118
+ .replace('\\{region\\}', escapeRegExp(region)) + '(?=$|/)');
119
+ var match = pattern.exec(url);
120
+ if (match == null) {
121
+ // サービスごとの override(または region 違い)―― 触らない。
122
+ return url;
123
+ }
124
+ return steady + '/' + match[1] + url.substring(match[0].length);
125
+ }
126
+ exports.steadyRestUrl = steadyRestUrl;
127
+ /**
128
+ * 「1 バイトも送っていない」接続段階の失敗のエラーコード。これだけが再送の対象。
129
+ * 送信後の失敗(ECONNRESET / socket hang up / 読み取りタイムアウト / 5xx)は届いたかもしれないので
130
+ * 再送しない(非冪等要求の二重実行を作らない)。
131
+ */
132
+ var CONNECT_FAILURE_CODES = (_a = {
133
+ 'ECONNREFUSED': true,
134
+ 'ENOTFOUND': true,
135
+ 'EAI_AGAIN': true
136
+ },
137
+ _a[exports.STEADY_CONNECT_TIMEOUT_CODE] = true,
138
+ _a['CERT_HAS_EXPIRED'] = true,
139
+ _a['UNABLE_TO_VERIFY_LEAF_SIGNATURE'] = true,
140
+ _a['ERR_TLS_CERT_ALTNAME_INVALID'] = true,
141
+ _a['DEPTH_ZERO_SELF_SIGNED_CERT'] = true,
142
+ _a['SELF_SIGNED_CERT_IN_CHAIN'] = true,
143
+ _a);
144
+ /**
145
+ * 接続段階の失敗か(応答が無く、code が接続系)。
146
+ * ★ブラウザの axios は接続失敗も送信後の切断もまとめて ERR_NETWORK(応答無し)にするので、
147
+ * ブラウザでは両者を見分けられない ―― 再送が効くのは Node だけ。
148
+ */
149
+ function isConnectFailure(error) {
150
+ var _a, _b;
151
+ if (error == null || error.response) {
152
+ return false;
153
+ }
154
+ var code = (_a = error.code) !== null && _a !== void 0 ? _a : (_b = error.cause) === null || _b === void 0 ? void 0 : _b.code;
155
+ return typeof code === 'string' && CONNECT_FAILURE_CODES[code] === true;
156
+ }
157
+ exports.isConnectFailure = isConnectFailure;
158
+ var steadyAgentCache = {};
159
+ function withConnectTimeout(socket, timeoutMs, connectedEvent) {
160
+ var timer = setTimeout(function () {
161
+ var error = new Error('connect timeout (' + timeoutMs + 'ms)');
162
+ error.code = exports.STEADY_CONNECT_TIMEOUT_CODE;
163
+ socket.destroy(error);
164
+ }, timeoutMs);
165
+ var clear = function () { return clearTimeout(timer); };
166
+ socket.once(connectedEvent, clear);
167
+ socket.once('error', clear);
168
+ socket.once('close', clear);
169
+ return socket;
170
+ }
171
+ /**
172
+ * Node のときだけ: 接続(DNS / TCP / TLS handshake)に上限を置く Agent を作る(timeout ごとに使い回す)。
173
+ * ★要求全体の timeout は使わない ―― GS2 には応答まで長くかかる API があるので殺せない。
174
+ * ブラウザ(window がある)では接続だけの上限を持てないので null を返す(再送だけが効く)。
175
+ */
176
+ function steadyAgents(timeoutMs) {
177
+ if (typeof window !== 'undefined' || typeof require !== 'function') {
178
+ return null;
179
+ }
180
+ var cached = steadyAgentCache[timeoutMs];
181
+ if (cached != null) {
182
+ return cached;
183
+ }
184
+ var http;
185
+ var https;
186
+ try {
187
+ http = require('http');
188
+ https = require('https');
189
+ }
190
+ catch (e) {
191
+ return null;
192
+ }
193
+ if ((http === null || http === void 0 ? void 0 : http.Agent) == null || (https === null || https === void 0 ? void 0 : https.Agent) == null) {
194
+ return null;
195
+ }
196
+ var SteadyHttpAgent = /** @class */ (function (_super) {
197
+ tslib_1.__extends(SteadyHttpAgent, _super);
198
+ function SteadyHttpAgent() {
199
+ return _super !== null && _super.apply(this, arguments) || this;
200
+ }
201
+ SteadyHttpAgent.prototype.createConnection = function (options, callback) {
202
+ return withConnectTimeout(_super.prototype.createConnection.call(this, options, callback), timeoutMs, 'connect');
203
+ };
204
+ return SteadyHttpAgent;
205
+ }(http.Agent));
206
+ var SteadyHttpsAgent = /** @class */ (function (_super) {
207
+ tslib_1.__extends(SteadyHttpsAgent, _super);
208
+ function SteadyHttpsAgent() {
209
+ return _super !== null && _super.apply(this, arguments) || this;
210
+ }
211
+ SteadyHttpsAgent.prototype.createConnection = function (options, callback) {
212
+ return withConnectTimeout(_super.prototype.createConnection.call(this, options, callback), timeoutMs, 'secureConnect');
213
+ };
214
+ return SteadyHttpsAgent;
215
+ }(https.Agent));
216
+ // ★接続は使い回す(Node 既定の globalAgent と同じ keepAlive)。Steady だけ毎回 3-way handshake に
217
+ // なると、接続段階の上限を付けた意味(速く諦める)と引き換えに遅くなってしまう。
218
+ var options = { keepAlive: true, scheduling: 'lifo', timeout: 5000 };
219
+ var agents = {
220
+ http: new SteadyHttpAgent(options),
221
+ https: new SteadyHttpsAgent(options),
222
+ };
223
+ steadyAgentCache[timeoutMs] = agents;
224
+ return agents;
225
+ }
226
+ exports.steadyAgents = steadyAgents;
227
+ /**
228
+ * Steady のときだけ、接続段階に上限を置いた POST を投げ、接続段階の失敗なら
229
+ * 同じ要求をもう 1 回だけ送る(プロジェクトトークンのログイン用)。
230
+ * steadyEndpoint が未設定なら従来どおり素の axios.post。
231
+ */
232
+ function postWithSteadyResilience(url, data, steadyEndpoint, steadyConnectTimeoutMs) {
233
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
234
+ var agents, config, error_1;
235
+ return tslib_1.__generator(this, function (_a) {
236
+ switch (_a.label) {
237
+ case 0:
238
+ if (!isSteadyUrl(steadyEndpoint, url)) {
239
+ return [2 /*return*/, axios_1.default.post(url, data)];
240
+ }
241
+ agents = steadyAgents(steadyConnectTimeoutMs);
242
+ config = agents == null ? {} : { httpAgent: agents.http, httpsAgent: agents.https };
243
+ _a.label = 1;
244
+ case 1:
245
+ _a.trys.push([1, 3, , 5]);
246
+ return [4 /*yield*/, axios_1.default.post(url, data, config)];
247
+ case 2: return [2 /*return*/, _a.sent()];
248
+ case 3:
249
+ error_1 = _a.sent();
250
+ if (!isConnectFailure(error_1)) {
251
+ throw error_1;
252
+ }
253
+ return [4 /*yield*/, axios_1.default.post(url, data, config)];
254
+ case 4:
255
+ // ★接続段階の失敗(DNS / dial / TLS。1 バイトも送っていない)だけ、同じ要求をもう 1 回だけ。
256
+ // フリートが手放した IP に当たったとき、名前を引き直して別のノードへ着く機会を 1 回だけ作る。
257
+ return [2 /*return*/, _a.sent()];
258
+ case 5: return [2 /*return*/];
259
+ }
260
+ });
261
+ });
262
+ }
32
263
  var Gs2RestSession = /** @class */ (function () {
33
264
  function Gs2RestSession(credential, region, options) {
34
- var _a, _b;
265
+ var _a, _b, _c;
35
266
  this.credential = credential;
36
267
  this.region = region;
37
268
  this.projectToken = null;
38
269
  this.expiresAt = null;
39
270
  this.compressRequest = (_a = options === null || options === void 0 ? void 0 : options.compressRequest) !== null && _a !== void 0 ? _a : true;
40
271
  this.acceptGzipResponse = (_b = options === null || options === void 0 ? void 0 : options.acceptGzipResponse) !== null && _b !== void 0 ? _b : true;
272
+ this.steadyEndpoint = normalizeSteadyEndpoint(options === null || options === void 0 ? void 0 : options.steadyEndpoint);
273
+ this.steadyConnectTimeoutMs = (_c = options === null || options === void 0 ? void 0 : options.steadyConnectTimeoutMs) !== null && _c !== void 0 ? _c : exports.STEADY_CONNECT_TIMEOUT_MS;
41
274
  }
275
+ /**
276
+ * サービスの接続先。優先順: steadyEndpoint > 共有クラウドの `Gs2Constant.ENDPOINT_HOST`。
277
+ * steadyEndpoint が未設定なら従来の文字列と byte 単位で一致する
278
+ * (生成クライアントのサービスごとの override はこれより強い。`steadyRestUrl` の説明)。
279
+ */
280
+ Gs2RestSession.prototype.endpointHost = function (service) {
281
+ var template = steadyRestTemplate(this.steadyEndpoint) || exports.Gs2Constant.ENDPOINT_HOST;
282
+ return template
283
+ .replace('{service}', service)
284
+ .replace('{region}', this.region);
285
+ };
42
286
  Gs2RestSession.prototype.connect = function () {
43
287
  var _this = this;
44
- var service = 'identifier';
45
- var url = exports.Gs2Constant.ENDPOINT_HOST
46
- .replace('{service}', service)
47
- .replace('{region}', this.region)
48
- + '/projectToken/login';
288
+ // ★プロジェクトトークンのログインも Steady 配下(<steady>/identifier)へ向ける
289
+ // ―― 放置すると Steady のアプリの identifier だけ共有クラウドへ行く。
290
+ var url = this.endpointHost('identifier') + '/projectToken/login';
49
291
  if (this.credential instanceof BasicGs2Credential) {
50
292
  var data = {
51
293
  client_id: this.credential.clientId,
52
294
  client_secret: this.credential.clientSecret,
53
295
  };
54
- return axios_1.default.post(url, data)
296
+ return postWithSteadyResilience(url, data, this.steadyEndpoint, this.steadyConnectTimeoutMs)
55
297
  .then(function (response) {
56
298
  var result = new LoginResult(response.data);
57
299
  _this.projectToken = result.accessToken;
58
300
  _this.expiresAt = new Date().getTime() + result.expiresIn * 1000;
59
301
  return result;
60
302
  }).catch(function (error) {
303
+ // ★応答が無い失敗(接続段階の失敗・切断)では error.response が無いので、
304
+ // 元の誤りをそのまま投げる(従来はここで TypeError になっていた)。
305
+ if ((error === null || error === void 0 ? void 0 : error.response) == null) {
306
+ throw error;
307
+ }
61
308
  throw JSON.parse(error.response.data.message);
62
309
  });
63
310
  }
@@ -72,7 +319,8 @@ var Gs2RestSession = /** @class */ (function () {
72
319
  }());
73
320
  exports.Gs2RestSession = Gs2RestSession;
74
321
  var Gs2WebSocketSession = /** @class */ (function () {
75
- function Gs2WebSocketSession(credential, region) {
322
+ function Gs2WebSocketSession(credential, region, options) {
323
+ var _a;
76
324
  this.client = null;
77
325
  this.inflightRequest = {};
78
326
  this.onOpenHandlers = [];
@@ -83,25 +331,49 @@ var Gs2WebSocketSession = /** @class */ (function () {
83
331
  this.region = region;
84
332
  this.projectToken = null;
85
333
  this.expiresAt = null;
334
+ this.steadyEndpoint = normalizeSteadyEndpoint(options === null || options === void 0 ? void 0 : options.steadyEndpoint);
335
+ this.steadyConnectTimeoutMs = (_a = options === null || options === void 0 ? void 0 : options.steadyConnectTimeoutMs) !== null && _a !== void 0 ? _a : exports.STEADY_CONNECT_TIMEOUT_MS;
86
336
  }
337
+ /** 接続先。steadyEndpoint > 共有クラウドの `Gs2Constant.WS_ENDPOINT_HOST` */
338
+ Gs2WebSocketSession.prototype.webSocketUrl = function () {
339
+ var url = steadyWebSocketUrl(this.steadyEndpoint);
340
+ if (url !== '') {
341
+ return url;
342
+ }
343
+ return exports.Gs2Constant.WS_ENDPOINT_HOST.replace('{region}', this.region);
344
+ };
345
+ /**
346
+ * Node の `ws` に渡す接続オプション。Steady のときだけ handshake に上限を置く。
347
+ * ★ブラウザの WebSocket は handshake の上限を持てない(オプションが無い)ので、
348
+ * ブラウザでは上限が効かない。共有クラウドは従来どおりオプション無し(undefined)。
349
+ */
350
+ Gs2WebSocketSession.prototype.webSocketOptions = function () {
351
+ if (normalizeSteadyEndpoint(this.steadyEndpoint) === '') {
352
+ return undefined;
353
+ }
354
+ return { handshakeTimeout: this.steadyConnectTimeoutMs };
355
+ };
356
+ /** ログイン(identifier)の REST 接続先。steady があれば `<steady>/identifier`、無ければ従来 */
357
+ Gs2WebSocketSession.prototype.endpointHost = function (service) {
358
+ var template = steadyRestTemplate(this.steadyEndpoint) || exports.Gs2Constant.ENDPOINT_HOST;
359
+ return template
360
+ .replace('{service}', service)
361
+ .replace('{region}', this.region);
362
+ };
87
363
  Gs2WebSocketSession.prototype.connect = function () {
88
364
  return tslib_1.__awaiter(this, void 0, void 0, function () {
89
- var service, url, data, response, result;
365
+ var url, data, response, result, wsUrl;
90
366
  var _this = this;
91
367
  return tslib_1.__generator(this, function (_a) {
92
368
  switch (_a.label) {
93
369
  case 0:
94
- service = 'identifier';
95
- url = exports.Gs2Constant.ENDPOINT_HOST
96
- .replace('{service}', service)
97
- .replace('{region}', this.region)
98
- + '/projectToken/login';
370
+ url = this.endpointHost('identifier') + '/projectToken/login';
99
371
  if (!(this.credential instanceof BasicGs2Credential)) return [3 /*break*/, 2];
100
372
  data = {
101
373
  client_id: this.credential.clientId,
102
374
  client_secret: this.credential.clientSecret,
103
375
  };
104
- return [4 /*yield*/, axios_1.default.post(url, data)];
376
+ return [4 /*yield*/, postWithSteadyResilience(url, data, this.steadyEndpoint, this.steadyConnectTimeoutMs)];
105
377
  case 1:
106
378
  response = _a.sent();
107
379
  result = new LoginResult(response.data);
@@ -114,11 +386,12 @@ var Gs2WebSocketSession = /** @class */ (function () {
114
386
  }
115
387
  _a.label = 3;
116
388
  case 3:
389
+ wsUrl = this.webSocketUrl();
117
390
  if (typeof window === 'undefined') {
118
- this.client = new NodeWebSocket(exports.Gs2Constant.WS_ENDPOINT_HOST.replace('{region}', this.region));
391
+ this.client = new NodeWebSocket(wsUrl, this.webSocketOptions());
119
392
  }
120
393
  else {
121
- this.client = new WebSocket(exports.Gs2Constant.WS_ENDPOINT_HOST.replace('{region}', this.region));
394
+ this.client = new WebSocket(wsUrl);
122
395
  }
123
396
  this.client.onopen = function (event) {
124
397
  for (var i = 0; i < _this.onOpenHandlers.length; i++) {
package/core/model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/core/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/core/model.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gs2",
3
- "version": "1.4.126",
3
+ "version": "1.4.127",
4
4
  "scripts": {
5
5
  "build": "tsc",
6
6
  "prepublishOnly": "npm run build"