velocious 1.0.131 → 1.0.133
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.
- package/README.md +103 -0
- package/build/src/configuration.d.ts +8 -0
- package/build/src/configuration.d.ts.map +1 -1
- package/build/src/configuration.js +13 -1
- package/build/src/database/drivers/base-table.d.ts +5 -0
- package/build/src/database/drivers/base-table.d.ts.map +1 -1
- package/build/src/database/drivers/base-table.js +11 -1
- package/build/src/database/drivers/base.d.ts +9 -0
- package/build/src/database/drivers/base.d.ts.map +1 -1
- package/build/src/database/drivers/base.js +41 -4
- package/build/src/database/drivers/mssql/index.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/index.js +7 -3
- package/build/src/database/drivers/mysql/index.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/index.js +2 -1
- package/build/src/database/drivers/pgsql/index.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/index.js +2 -1
- package/build/src/database/drivers/sqlite/base.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/base.js +3 -2
- package/build/src/database/migration/index.d.ts.map +1 -1
- package/build/src/database/migration/index.js +11 -2
- package/build/src/database/query/preloader/belongs-to.d.ts +4 -1
- package/build/src/database/query/preloader/belongs-to.d.ts.map +1 -1
- package/build/src/database/query/preloader/belongs-to.js +55 -3
- package/build/src/database/query/preloader/has-many.d.ts.map +1 -1
- package/build/src/database/query/preloader/has-many.js +5 -1
- package/build/src/database/query/preloader/has-one.d.ts.map +1 -1
- package/build/src/database/query/preloader/has-one.js +5 -1
- package/build/src/database/query/preloader.d.ts.map +1 -1
- package/build/src/database/query/preloader.js +25 -10
- package/build/src/database/record/index.d.ts.map +1 -1
- package/build/src/database/record/index.js +15 -2
- package/build/src/database/record/relationships/base.d.ts +3 -0
- package/build/src/database/record/relationships/base.d.ts.map +1 -1
- package/build/src/database/record/relationships/base.js +21 -3
- package/build/src/database/record/relationships/belongs-to.d.ts.map +1 -1
- package/build/src/database/record/relationships/belongs-to.js +10 -5
- package/build/src/http-client/response.d.ts +4 -0
- package/build/src/http-client/response.d.ts.map +1 -1
- package/build/src/http-client/response.js +19 -17
- package/build/src/http-client/websocket-client.d.ts +105 -0
- package/build/src/http-client/websocket-client.d.ts.map +1 -0
- package/build/src/http-client/websocket-client.js +237 -0
- package/build/src/http-server/client/index.d.ts +14 -0
- package/build/src/http-server/client/index.d.ts.map +1 -1
- package/build/src/http-server/client/index.js +72 -1
- package/build/src/http-server/client/params-to-object.d.ts +7 -7
- package/build/src/http-server/client/params-to-object.d.ts.map +1 -1
- package/build/src/http-server/client/params-to-object.js +4 -4
- package/build/src/http-server/client/request-buffer/form-data-part.d.ts +21 -2
- package/build/src/http-server/client/request-buffer/form-data-part.d.ts.map +1 -1
- package/build/src/http-server/client/request-buffer/form-data-part.js +62 -4
- package/build/src/http-server/client/request-parser.js +2 -2
- package/build/src/http-server/client/request-runner.d.ts +4 -4
- package/build/src/http-server/client/request-runner.d.ts.map +1 -1
- package/build/src/http-server/client/request-runner.js +2 -2
- package/build/src/http-server/client/uploaded-file/memory-uploaded-file.d.ts +21 -0
- package/build/src/http-server/client/uploaded-file/memory-uploaded-file.d.ts.map +1 -0
- package/build/src/http-server/client/uploaded-file/memory-uploaded-file.js +26 -0
- package/build/src/http-server/client/uploaded-file/temporary-uploaded-file.d.ts +21 -0
- package/build/src/http-server/client/uploaded-file/temporary-uploaded-file.d.ts.map +1 -0
- package/build/src/http-server/client/uploaded-file/temporary-uploaded-file.js +26 -0
- package/build/src/http-server/client/uploaded-file/uploaded-file.d.ts +29 -0
- package/build/src/http-server/client/uploaded-file/uploaded-file.d.ts.map +1 -0
- package/build/src/http-server/client/uploaded-file/uploaded-file.js +34 -0
- package/build/src/http-server/client/websocket-request.d.ts +40 -0
- package/build/src/http-server/client/websocket-request.d.ts.map +1 -0
- package/build/src/http-server/client/websocket-request.js +88 -0
- package/build/src/http-server/client/websocket-session.d.ts +73 -0
- package/build/src/http-server/client/websocket-session.d.ts.map +1 -0
- package/build/src/http-server/client/websocket-session.js +231 -0
- package/build/src/http-server/server-client.d.ts.map +1 -1
- package/build/src/http-server/server-client.js +6 -3
- package/build/src/http-server/websocket-events-host.d.ts +22 -0
- package/build/src/http-server/websocket-events-host.d.ts.map +1 -0
- package/build/src/http-server/websocket-events-host.js +29 -0
- package/build/src/http-server/websocket-events.d.ts +20 -0
- package/build/src/http-server/websocket-events.d.ts.map +1 -0
- package/build/src/http-server/websocket-events.js +23 -0
- package/build/src/http-server/worker-handler/index.d.ts +19 -4
- package/build/src/http-server/worker-handler/index.d.ts.map +1 -1
- package/build/src/http-server/worker-handler/index.js +24 -3
- package/build/src/http-server/worker-handler/worker-thread.d.ts +18 -2
- package/build/src/http-server/worker-handler/worker-thread.d.ts.map +1 -1
- package/build/src/http-server/worker-handler/worker-thread.js +23 -2
- package/build/src/routes/resolver.d.ts +5 -0
- package/build/src/routes/resolver.d.ts.map +1 -1
- package/build/src/routes/resolver.js +28 -2
- package/package.json +1 -1
|
@@ -45,6 +45,9 @@ export default class VelociousDatabaseRecordBaseRelationship {
|
|
|
45
45
|
getRelationshipName(): string;
|
|
46
46
|
/** @returns {boolean} */
|
|
47
47
|
getPolymorphic(): boolean;
|
|
48
|
+
/** @returns {string} */
|
|
49
|
+
getPolymorphicTypeColumn(): string;
|
|
50
|
+
_polymorphicTypeColumn: string;
|
|
48
51
|
/** @returns {string} The name of the foreign key, e.g. "id" etc. */
|
|
49
52
|
getPrimaryKey(): string;
|
|
50
53
|
/** @returns {string} The type of the relationship, e.g. "has_many", "belongs_to", "has_one", "has_and_belongs_to_many" etc. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/relationships/base.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/relationships/base.js"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;GAaG;AAEH;IACE,6CAA6C;IAC7C,uJADY,wBAAwB,EAsBnC;IAXC,kBAA0B;IAC1B,mBAA2B;IAC3B,mBAA4B;IAC5B,mBAA2B;IAC3B,4CAAkB;IAClB,iDAA4B;IAC5B,sBAA+B;IAC/B,oBAA6B;IAC7B,yBAAwC;IACxC,gBAAsB;IACtB,aAAgB;IAGlB,gEAAiE;IAEjE,sIAAsI;IACtI,gBADc,MAAM,GAAG,SAAS,CACS;IAEzC;;;OAGG;IACH,iBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,gBAFa,MAAM,GAAG,SAAS,CAI9B;IAED,sDAAsD;IACtD,iBADc,cAAc,aAAa,EAAE,OAAO,CACR;IAE1C,4FAA4F;IAC5F,uBADc,MAAM,CACkC;IAEtD,yBAAyB;IACzB,kBADc,OAAO,CAGpB;IAED,wBAAwB;IACxB,4BADc,MAAM,CAmBnB;IATK,+BAAiE;IAWvE,oEAAoE;IACpE,iBADc,MAAM,CACuB;IAE3C,+HAA+H;IAC/H,WADc,MAAM,CACU;IAE9B,mMAAmM;IACnM,uBADc,cAAc,aAAa,EAAE,OAAO,GAAG,SAAS,CAW7D;CACF;;gBA7Ga,MAAM;gBACN,MAAM;iBACN,MAAM,GAAG,SAAS;gBAClB,MAAM;YACN,cAAc,aAAa,EAAE,OAAO;gBACpC,cAAc,aAAa,EAAE,OAAO;iBACpC,MAAM;kBACN,OAAO;sBACP,MAAM;cACN,MAAM;UACN,MAAM"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
import restArgsError from "../../../utils/rest-args-error.js";
|
|
3
|
+
import * as inflection from "inflection";
|
|
3
4
|
/**
|
|
4
5
|
* @typedef {object} RelationshipBaseArgsType
|
|
5
6
|
* @property {string} [className]
|
|
@@ -20,7 +21,7 @@ export default class VelociousDatabaseRecordBaseRelationship {
|
|
|
20
21
|
restArgsError(restArgs);
|
|
21
22
|
if (!modelClass)
|
|
22
23
|
throw new Error(`'modelClass' wasn't given for ${relationshipName}`);
|
|
23
|
-
if (!className && !klass)
|
|
24
|
+
if (!className && !klass && !polymorphic)
|
|
24
25
|
throw new Error(`Neither 'className' or 'klass' was given for ${modelClass.name}#${relationshipName}`);
|
|
25
26
|
if (className == "EventSery") {
|
|
26
27
|
throw new Error(`Invalid model name: ${className}`);
|
|
@@ -62,13 +63,30 @@ export default class VelociousDatabaseRecordBaseRelationship {
|
|
|
62
63
|
getPolymorphic() {
|
|
63
64
|
return this._polymorphic || false;
|
|
64
65
|
}
|
|
66
|
+
/** @returns {string} */
|
|
67
|
+
getPolymorphicTypeColumn() {
|
|
68
|
+
if (!this.getPolymorphic()) {
|
|
69
|
+
throw new Error(`${this.modelClass.name}#${this.relationshipName} isn't polymorphic`);
|
|
70
|
+
}
|
|
71
|
+
if (!this._polymorphicTypeColumn) {
|
|
72
|
+
const foreignKey = this.getForeignKey();
|
|
73
|
+
if (foreignKey && foreignKey.endsWith("_id")) {
|
|
74
|
+
this._polymorphicTypeColumn = foreignKey.replace(/_id$/, "_type");
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
const underscoredName = inflection.underscore(this.getRelationshipName());
|
|
78
|
+
this._polymorphicTypeColumn = `${underscoredName}_type`;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return this._polymorphicTypeColumn;
|
|
82
|
+
}
|
|
65
83
|
/** @returns {string} The name of the foreign key, e.g. "id" etc. */
|
|
66
84
|
getPrimaryKey() { return this._primaryKey; }
|
|
67
85
|
/** @returns {string} The type of the relationship, e.g. "has_many", "belongs_to", "has_one", "has_and_belongs_to_many" etc. */
|
|
68
86
|
getType() { return this.type; }
|
|
69
87
|
/** @returns {typeof import("../index.js").default | undefined} The target model class for this relationship, e.g. if the relationship is "posts" then the target model class is the Post class. */
|
|
70
88
|
getTargetModelClass() {
|
|
71
|
-
if (this.getPolymorphic()) {
|
|
89
|
+
if (this.getPolymorphic() && this.type == "belongsTo") {
|
|
72
90
|
return undefined;
|
|
73
91
|
}
|
|
74
92
|
else if (this.className) {
|
|
@@ -80,4 +98,4 @@ export default class VelociousDatabaseRecordBaseRelationship {
|
|
|
80
98
|
throw new Error("Couldn't figure out the target model class");
|
|
81
99
|
}
|
|
82
100
|
}
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9yZWNvcmQvcmVsYXRpb25zaGlwcy9iYXNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLGFBQWEsTUFBTSxtQ0FBbUMsQ0FBQTtBQUM3RCxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUV4Qzs7Ozs7Ozs7Ozs7OztHQWFHO0FBRUgsTUFBTSxDQUFDLE9BQU8sT0FBTyx1Q0FBdUM7SUFDMUQsNkNBQTZDO0lBQzdDLFlBQVksRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxVQUFVLEdBQUcsSUFBSSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsUUFBUSxFQUFDO1FBQ3hKLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUV2QixJQUFJLENBQUMsVUFBVTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLGdCQUFnQixFQUFFLENBQUMsQ0FBQTtRQUNyRixJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsV0FBVztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELFVBQVUsQ0FBQyxJQUFJLElBQUksZ0JBQWdCLEVBQUUsQ0FBQyxDQUFBO1FBRWhKLElBQUksU0FBUyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLFNBQVMsRUFBRSxDQUFDLENBQUE7UUFDckQsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFBO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFBO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdB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QUFJLENBQUMsS0FBSyxDQUFBO1FBQ25CLENBQUM7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUE7SUFDL0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCByZXN0QXJnc0Vycm9yIGZyb20gXCIuLi8uLi8uLi91dGlscy9yZXN0LWFyZ3MtZXJyb3IuanNcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gUmVsYXRpb25zaGlwQmFzZUFyZ3NUeXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2NsYXNzTmFtZV1cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbZGVwZW5kZW50XVxuICogQHByb3BlcnR5IHtzdHJpbmcgfCB1bmRlZmluZWR9IFtmb3JlaWduS2V5XVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtpbnZlcnNlT2ZdXG4gKiBAcHJvcGVydHkge3R5cGVvZiBpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0fSBba2xhc3NdXG4gKiBAcHJvcGVydHkge3R5cGVvZiBpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0fSBtb2RlbENsYXNzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3ByaW1hcnlLZXldXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtwb2x5bW9ycGhpY11cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSByZWxhdGlvbnNoaXBOYW1lXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3Rocm91Z2hdXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdHlwZVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlUmVjb3JkQmFzZVJlbGF0aW9uc2hpcCB7XG4gIC8qKiBAcGFyYW0ge1JlbGF0aW9uc2hpcEJhc2VBcmdzVHlwZX0gYXJncyAqL1xuICBjb25zdHJ1Y3Rvcih7Y2xhc3NOYW1lLCBkZXBlbmRlbnQsIGZvcmVpZ25LZXksIGludmVyc2VPZiwga2xhc3MsIG1vZGVsQ2xhc3MsIHByaW1hcnlLZXkgPSBcImlkXCIsIHBvbHltb3JwaGljLCByZWxhdGlvbnNoaXBOYW1lLCB0aHJvdWdoLCB0eXBlLCAuLi5yZXN0QXJnc30pIHtcbiAgICByZXN0QXJnc0Vycm9yKHJlc3RBcmdzKVxuXG4gICAgaWYgKCFtb2RlbENsYXNzKSB0aHJvdyBuZXcgRXJyb3IoYCdtb2RlbENsYXNzJyB3YXNuJ3QgZ2l2ZW4gZm9yICR7cmVsYXRpb25zaGlwTmFtZX1gKVxuICAgIGlmICghY2xhc3NOYW1lICYmICFrbGFzcyAmJiAhcG9seW1vcnBoaWMpIHRocm93IG5ldyBFcnJvcihgTmVpdGhlciAnY2xhc3NOYW1lJyBvciAna2xhc3MnIHdhcyBnaXZlbiBmb3IgJHttb2RlbENsYXNzLm5hbWV9IyR7cmVsYXRpb25zaGlwTmFtZX1gKVxuXG4gICAgaWYgKGNsYXNzTmFtZSA9PSBcIkV2ZW50U2VyeVwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbW9kZWwgbmFtZTogJHtjbGFzc05hbWV9YClcbiAgICB9XG5cbiAgICB0aGlzLmNsYXNzTmFtZSA9IGNsYXNzTmFtZVxuICAgIHRoaXMuX2RlcGVuZGVudCA9IGRlcGVuZGVudFxuICAgIHRoaXMuZm9yZWlnbktleSA9IGZvcmVpZ25LZXlcbiAgICB0aGlzLl9pbnZlcnNlT2YgPSBpbnZlcnNlT2ZcbiAgICB0aGlzLmtsYXNzID0ga2xhc3NcbiAgICB0aGlzLm1vZGVsQ2xhc3MgPSBtb2RlbENsYXNzXG4gICAgdGhpcy5fcG9seW1vcnBoaWMgPSBwb2x5bW9ycGhpY1xuICAgIHRoaXMuX3ByaW1hcnlLZXkgPSBwcmltYXJ5S2V5XG4gICAgdGhpcy5yZWxhdGlvbnNoaXBOYW1lID0gcmVsYXRpb25zaGlwTmFtZVxuICAgIHRoaXMudGhyb3VnaCA9IHRocm91Z2hcbiAgICB0aGlzLnR5cGUgPSB0eXBlXG4gIH1cblxuICBnZXRDb25maWd1cmF0aW9uKCkgeyByZXR1cm4gdGhpcy5tb2RlbENsYXNzLl9nZXRDb25maWd1cmF0aW9uKCkgfVxuXG4gIC8qKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfSBXaGF0IHdpbGwgYmUgZG9uZSB3aGVuIHRoZSBwYXJlbnQgcmVjb3JkIGlzIGRlc3Ryb3llZC4gRS5nLiBcImRlc3Ryb3lcIiwgXCJudWxsaWZ5XCIsIFwicmVzdHJpY3RcIiBldGMuICovXG4gIGdldERlcGVuZGVudCgpIHsgcmV0dXJuIHRoaXMuX2RlcGVuZGVudCB9XG5cbiAgLyoqXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgbmFtZSBvZiB0aGUgZm9yZWlnbiBrZXksIGUuZy4gXCJ1c2VyX2lkXCIsIFwicG9zdF9pZFwiIGV0Yy5cbiAgICovXG4gIGdldEZvcmVpZ25LZXkoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiZ2V0Rm9yZWlnbktleSBub3QgaW1wbGVtZW50ZWRcIilcbiAgfVxuXG4gIC8qKlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH0gVGhlIG5hbWUgb2YgdGhlIGludmVyc2UgcmVsYXRpb25zaGlwLCBlLmcuIFwicG9zdHNcIiwgXCJjb21tZW50c1wiIGV0Yy5cbiAgICovXG4gIGdldEludmVyc2VPZigpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJnZXRJbnZlcnNlT2Ygbm90IGltcGxlbWVudGVkXCIpXG4gIH1cblxuICAvKiogQHJldHVybnMge3R5cGVvZiBpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0fSAqL1xuICBnZXRNb2RlbENsYXNzKCkgeyByZXR1cm4gdGhpcy5tb2RlbENsYXNzIH1cblxuICAvKiogQHJldHVybnMge3N0cmluZ30gVGhlIG5hbWUgb2YgdGhlIHJlbGF0aW9uc2hpcCwgZS5nLiBcInBvc3RzXCIsIFwidXNlclwiLCBcImNvbW1lbnRzXCIgZXRjLiAqL1xuICBnZXRSZWxhdGlvbnNoaXBOYW1lKCkgeyByZXR1cm4gdGhpcy5yZWxhdGlvbnNoaXBOYW1lIH1cblxuICAvKiogQHJldHVybnMge2Jvb2xlYW59ICovXG4gIGdldFBvbHltb3JwaGljKCkge1xuICAgIHJldHVybiB0aGlzLl9wb2x5bW9ycGhpYyB8fCBmYWxzZVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtzdHJpbmd9ICovXG4gIGdldFBvbHltb3JwaGljVHlwZUNvbHVtbigpIHtcbiAgICBpZiAoIXRoaXMuZ2V0UG9seW1vcnBoaWMoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3RoaXMubW9kZWxDbGFzcy5uYW1lfSMke3RoaXMucmVsYXRpb25zaGlwTmFtZX0gaXNuJ3QgcG9seW1vcnBoaWNgKVxuICAgIH1cblxuICAgIGlmICghdGhpcy5fcG9seW1vcnBoaWNUeXBlQ29sdW1uKSB7XG4gICAgICBjb25zdCBmb3JlaWduS2V5ID0gdGhpcy5nZXRGb3JlaWduS2V5KClcblxuICAgICAgaWYgKGZvcmVpZ25LZXkgJiYgZm9yZWlnbktleS5lbmRzV2l0aChcIl9pZFwiKSkge1xuICAgICAgICB0aGlzLl9wb2x5bW9ycGhpY1R5cGVDb2x1bW4gPSBmb3JlaWduS2V5LnJlcGxhY2UoL19pZCQvLCBcIl90eXBlXCIpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB1bmRlcnNjb3JlZE5hbWUgPSBpbmZsZWN0aW9uLnVuZGVyc2NvcmUodGhpcy5nZXRSZWxhdGlvbnNoaXBOYW1lKCkpXG5cbiAgICAgICAgdGhpcy5fcG9seW1vcnBoaWNUeXBlQ29sdW1uID0gYCR7dW5kZXJzY29yZWROYW1lfV90eXBlYFxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9wb2x5bW9ycGhpY1R5cGVDb2x1bW5cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgbmFtZSBvZiB0aGUgZm9yZWlnbiBrZXksIGUuZy4gXCJpZFwiIGV0Yy4gKi9cbiAgZ2V0UHJpbWFyeUtleSgpIHsgcmV0dXJuIHRoaXMuX3ByaW1hcnlLZXkgfVxuXG4gIC8qKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgdHlwZSBvZiB0aGUgcmVsYXRpb25zaGlwLCBlLmcuIFwiaGFzX21hbnlcIiwgXCJiZWxvbmdzX3RvXCIsIFwiaGFzX29uZVwiLCBcImhhc19hbmRfYmVsb25nc190b19tYW55XCIgZXRjLiAqL1xuICBnZXRUeXBlKCkgeyByZXR1cm4gdGhpcy50eXBlIH1cblxuICAvKiogQHJldHVybnMge3R5cGVvZiBpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0IHwgdW5kZWZpbmVkfSBUaGUgdGFyZ2V0IG1vZGVsIGNsYXNzIGZvciB0aGlzIHJlbGF0aW9uc2hpcCwgZS5nLiBpZiB0aGUgcmVsYXRpb25zaGlwIGlzIFwicG9zdHNcIiB0aGVuIHRoZSB0YXJnZXQgbW9kZWwgY2xhc3MgaXMgdGhlIFBvc3QgY2xhc3MuICovXG4gIGdldFRhcmdldE1vZGVsQ2xhc3MoKSB7XG4gICAgaWYgKHRoaXMuZ2V0UG9seW1vcnBoaWMoKSAmJiB0aGlzLnR5cGUgPT0gXCJiZWxvbmdzVG9cIikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0gZWxzZSBpZiAodGhpcy5jbGFzc05hbWUpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldENvbmZpZ3VyYXRpb24oKS5nZXRNb2RlbENsYXNzKHRoaXMuY2xhc3NOYW1lKVxuICAgIH0gZWxzZSBpZiAodGhpcy5rbGFzcykge1xuICAgICAgcmV0dXJuIHRoaXMua2xhc3NcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZG4ndCBmaWd1cmUgb3V0IHRoZSB0YXJnZXQgbW9kZWwgY2xhc3NcIilcbiAgfVxufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"belongs-to.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/relationships/belongs-to.js"],"names":[],"mappings":"AAKA;
|
|
1
|
+
{"version":3,"file":"belongs-to.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/relationships/belongs-to.js"],"names":[],"mappings":"AAKA;IAqBM,yCAA2C;CAuBhD;6BA/C4B,WAAW"}
|
|
@@ -5,10 +5,15 @@ export default class VelociousDatabaseRecordBelongsToRelationship extends BaseRe
|
|
|
5
5
|
/** @returns {string} */
|
|
6
6
|
getForeignKey() {
|
|
7
7
|
if (!this.foreignKey) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
if (this.getPolymorphic()) {
|
|
9
|
+
this.foreignKey = `${inflection.underscore(this.getRelationshipName())}_id`;
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
const targetModelClass = this.getTargetModelClass();
|
|
13
|
+
if (!targetModelClass)
|
|
14
|
+
throw new Error("Can't calculate foreign key without a target model class");
|
|
15
|
+
this.foreignKey = `${inflection.underscore(targetModelClass.name)}_id`;
|
|
16
|
+
}
|
|
12
17
|
}
|
|
13
18
|
return this.foreignKey;
|
|
14
19
|
}
|
|
@@ -35,4 +40,4 @@ export default class VelociousDatabaseRecordBelongsToRelationship extends BaseRe
|
|
|
35
40
|
return this._inverseOf;
|
|
36
41
|
}
|
|
37
42
|
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVsb25ncy10by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9yZWNvcmQvcmVsYXRpb25zaGlwcy9iZWxvbmdzLXRvLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLGdCQUFnQixNQUFNLFdBQVcsQ0FBQTtBQUN4QyxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUV4QyxNQUFNLENBQUMsT0FBTyxPQUFPLDRDQUE2QyxTQUFRLGdCQUFnQjtJQUN4Rix3QkFBd0I7SUFDeEIsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsS0FBSyxDQUFBO1lBQzdFLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO2dCQUVuRCxJQUFJLENBQUMsZ0JBQWdCO29CQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELENBQUMsQ0FBQTtnQkFFbEcsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQTtZQUN4RSxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQTtJQUN4QixDQUFDO0lBRUQsb0NBQW9DO0lBQ3BDLFlBQVk7UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQywrQkFBK0IsRUFBRSxDQUFDO1lBQzlELElBQUksQ0FBQywrQkFBK0IsR0FBRyxJQUFJLENBQUE7WUFFM0MsNEZBQTRGO1lBQzVGLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQTtZQUV4SyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO1lBRW5ELElBQUksZ0JBQWdCLElBQUkscUJBQXFCLElBQUksZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3ZFLDZGQUE2RjtnQkFDN0YsTUFBTSw0QkFBNEIsR0FBRyxnQkFBZ0IsQ0FBQyxvQkFBb0IsRUFBRSxDQUFBO2dCQUM1RSxNQUFNLGdDQUFnQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUE7Z0JBQ2pLLE1BQU0saUNBQWlDLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO2dCQUVoRyxJQUFJLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFFLENBQUM7b0JBQzVFLElBQUksQ0FBQyxVQUFVLEdBQUcsZ0NBQWdDLENBQUE7Z0JBQ3BELENBQUM7cUJBQU0sSUFBSSw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsaUNBQWlDLENBQUMsRUFBRSxDQUFDO29CQUNwRixJQUFJLENBQUMsVUFBVSxHQUFHLGlDQUFpQyxDQUFBO2dCQUNyRCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUE7SUFDeEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBCYXNlUmVsYXRpb25zaGlwIGZyb20gXCIuL2Jhc2UuanNcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlUmVjb3JkQmVsb25nc1RvUmVsYXRpb25zaGlwIGV4dGVuZHMgQmFzZVJlbGF0aW9uc2hpcCB7XG4gIC8qKiBAcmV0dXJucyB7c3RyaW5nfSAqL1xuICBnZXRGb3JlaWduS2V5KCkge1xuICAgIGlmICghdGhpcy5mb3JlaWduS2V5KSB7XG4gICAgICBpZiAodGhpcy5nZXRQb2x5bW9ycGhpYygpKSB7XG4gICAgICAgIHRoaXMuZm9yZWlnbktleSA9IGAke2luZmxlY3Rpb24udW5kZXJzY29yZSh0aGlzLmdldFJlbGF0aW9uc2hpcE5hbWUoKSl9X2lkYFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0TW9kZWxDbGFzcyA9IHRoaXMuZ2V0VGFyZ2V0TW9kZWxDbGFzcygpXG5cbiAgICAgICAgaWYgKCF0YXJnZXRNb2RlbENsYXNzKSB0aHJvdyBuZXcgRXJyb3IoXCJDYW4ndCBjYWxjdWxhdGUgZm9yZWlnbiBrZXkgd2l0aG91dCBhIHRhcmdldCBtb2RlbCBjbGFzc1wiKVxuXG4gICAgICAgIHRoaXMuZm9yZWlnbktleSA9IGAke2luZmxlY3Rpb24udW5kZXJzY29yZSh0YXJnZXRNb2RlbENsYXNzLm5hbWUpfV9pZGBcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5mb3JlaWduS2V5XG4gIH1cblxuICAvKiogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH0gKi9cbiAgZ2V0SW52ZXJzZU9mKCkge1xuICAgIGlmICghdGhpcy5faW52ZXJzZU9mICYmICF0aGlzLl9hdXRvR2VuZXJhdGVJbnZlcnNlT2ZBdHRlbXB0ZWQpIHtcbiAgICAgIHRoaXMuX2F1dG9HZW5lcmF0ZUludmVyc2VPZkF0dGVtcHRlZCA9IHRydWVcblxuICAgICAgLy8gT25seSBtYWtlIGF1dG8taW52ZXJzZS1vZiBpZiB0aGUgcmVsYXRpb25zaGlwcyBuYW1lIG1hdGNoZXMgdGhlIHRhcmdldCBtb2RlbCBjbGFzcydzIG5hbWVcbiAgICAgIGNvbnN0IHRhcmdldENsYXNzU2ltcGxlTmFtZSA9IGAke3RoaXMuZ2V0UmVsYXRpb25zaGlwTmFtZSgpLnN1YnN0cmluZygwLCAxKS50b1VwcGVyQ2FzZSgpfSR7dGhpcy5nZXRSZWxhdGlvbnNoaXBOYW1lKCkuc3Vic3RyaW5nKDEsIHRoaXMuZ2V0UmVsYXRpb25zaGlwTmFtZSgpLmxlbmd0aCl9YFxuXG4gICAgICBjb25zdCB0YXJnZXRNb2RlbENsYXNzID0gdGhpcy5nZXRUYXJnZXRNb2RlbENsYXNzKClcblxuICAgICAgaWYgKHRhcmdldE1vZGVsQ2xhc3MgJiYgdGFyZ2V0Q2xhc3NTaW1wbGVOYW1lID09IHRhcmdldE1vZGVsQ2xhc3MubmFtZSkge1xuICAgICAgICAvLyBPbmx5IG1ha2UgYXV0by1pbnZlcnNlLW9mIGlmIHRoZSBleHBlY3RlZCByZWxhdGlvbnNoaXAgZXhpc3QgaW4gYSBoYXMtb25lIG9yIGhhcy1tYW55IGZvcm1cbiAgICAgICAgY29uc3QgdGFyZ2V0Q2xhc3NSZWxhdGlvbnNoaXBOYW1lcyA9IHRhcmdldE1vZGVsQ2xhc3MuZ2V0UmVsYXRpb25zaGlwTmFtZXMoKVxuICAgICAgICBjb25zdCBhdXRvR2VuZXJhdGVkSGFzT25lSW52ZXJzZU9mTmFtZSA9IGAke3RoaXMubW9kZWxDbGFzcy5uYW1lLnN1YnN0cmluZygwLCAxKS50b0xvd2VyQ2FzZSgpfSR7dGhpcy5tb2RlbENsYXNzLm5hbWUuc3Vic3RyaW5nKDEsIHRoaXMubW9kZWxDbGFzcy5uYW1lLmxlbmd0aCl9YFxuICAgICAgICBjb25zdCBhdXRvR2VuZXJhdGVkSGFzTWFueUludmVyc2VPZk5hbWUgPSBpbmZsZWN0aW9uLnBsdXJhbGl6ZShhdXRvR2VuZXJhdGVkSGFzT25lSW52ZXJzZU9mTmFtZSlcblxuICAgICAgICBpZiAodGFyZ2V0Q2xhc3NSZWxhdGlvbnNoaXBOYW1lcy5pbmNsdWRlcyhhdXRvR2VuZXJhdGVkSGFzT25lSW52ZXJzZU9mTmFtZSkpIHtcbiAgICAgICAgICB0aGlzLl9pbnZlcnNlT2YgPSBhdXRvR2VuZXJhdGVkSGFzT25lSW52ZXJzZU9mTmFtZVxuICAgICAgICB9IGVsc2UgaWYgKHRhcmdldENsYXNzUmVsYXRpb25zaGlwTmFtZXMuaW5jbHVkZXMoYXV0b0dlbmVyYXRlZEhhc01hbnlJbnZlcnNlT2ZOYW1lKSkge1xuICAgICAgICAgIHRoaXMuX2ludmVyc2VPZiA9IGF1dG9HZW5lcmF0ZWRIYXNNYW55SW52ZXJzZU9mTmFtZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2ludmVyc2VPZlxuICB9XG59XG4iXX0=
|
|
@@ -26,6 +26,10 @@ export default class Response {
|
|
|
26
26
|
tryToParse(): void;
|
|
27
27
|
statusLine: string;
|
|
28
28
|
completeResponse(): void;
|
|
29
|
+
/**
|
|
30
|
+
* @returns {number}
|
|
31
|
+
*/
|
|
32
|
+
_contentLengthNumber(): number;
|
|
29
33
|
}
|
|
30
34
|
import Header from "./header.js";
|
|
31
35
|
//# sourceMappingURL=response.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/http-client/response.js"],"names":[],"mappings":"AAIA;IACE;;;;OAIG;IACH,oCAHG;QAAqB,MAAM,EAAnB,MAAM;QACkB,UAAU,EAAlC,MAAa,IAAI;KAC3B,EAaA;IATC,uBAAuB;IACvB,SADW,MAAM,EAAE,CACF;IAEjB,eAAyC;IACzC,kBATsB,IAAI,CASE;IAC5B,cAA0B;IAE1B,qBAAqB;IACrB,UADW,MAAM,CACc;IAGjC,2BAA2B;IAC3B,WADY,MAAM,QAIjB;IAED;;;OAGG;IACH,gBAHW,MAAM,GACJ,MAAM,CAclB;IAED,YAaC;IAED,
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/http-client/response.js"],"names":[],"mappings":"AAIA;IACE;;;;OAIG;IACH,oCAHG;QAAqB,MAAM,EAAnB,MAAM;QACkB,UAAU,EAAlC,MAAa,IAAI;KAC3B,EAaA;IATC,uBAAuB;IACvB,SADW,MAAM,EAAE,CACF;IAEjB,eAAyC;IACzC,kBATsB,IAAI,CASE;IAC5B,cAA0B;IAE1B,qBAAqB;IACrB,UADW,MAAM,CACc;IAGjC,2BAA2B;IAC3B,WADY,MAAM,QAIjB;IAED;;;OAGG;IACH,gBAHW,MAAM,GACJ,MAAM,CAclB;IAED,YAaC;IAED,mBAsDC;IA3BS,mBAAsB;IA6BhC,yBAGC;IAED;;OAEG;IACH,wBAFa,MAAM,CAalB;CACF;mBAzIkB,aAAa"}
|
|
@@ -50,20 +50,7 @@ export default class Response {
|
|
|
50
50
|
tryToParse() {
|
|
51
51
|
while (true) {
|
|
52
52
|
if (this.state == "body") {
|
|
53
|
-
const
|
|
54
|
-
if (contentLengthValue === undefined) {
|
|
55
|
-
throw new Error("No content length given");
|
|
56
|
-
}
|
|
57
|
-
let contentLengthNumber;
|
|
58
|
-
if (typeof contentLengthValue == "number") {
|
|
59
|
-
contentLengthNumber = contentLengthValue;
|
|
60
|
-
}
|
|
61
|
-
else if (contentLengthValue == "string") {
|
|
62
|
-
contentLengthNumber = parseInt(contentLengthValue);
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
throw new Error(`Content-Length is not a number: ${contentLengthValue}`);
|
|
66
|
-
}
|
|
53
|
+
const contentLengthNumber = this._contentLengthNumber();
|
|
67
54
|
if (this.response.byteLength >= contentLengthNumber) {
|
|
68
55
|
this.completeResponse();
|
|
69
56
|
break;
|
|
@@ -89,11 +76,12 @@ export default class Response {
|
|
|
89
76
|
}
|
|
90
77
|
else if (this.state == "headers") {
|
|
91
78
|
if (line == "") {
|
|
92
|
-
|
|
79
|
+
const contentLengthNumber = this._contentLengthNumber();
|
|
80
|
+
if (!contentLengthNumber) {
|
|
93
81
|
this.completeResponse();
|
|
94
82
|
break;
|
|
95
83
|
}
|
|
96
|
-
else
|
|
84
|
+
else {
|
|
97
85
|
this.state = "body";
|
|
98
86
|
}
|
|
99
87
|
}
|
|
@@ -116,5 +104,19 @@ export default class Response {
|
|
|
116
104
|
this.state = "done";
|
|
117
105
|
this.onComplete();
|
|
118
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* @returns {number}
|
|
109
|
+
*/
|
|
110
|
+
_contentLengthNumber() {
|
|
111
|
+
const header = this.headers.find((currentHeader) => currentHeader.getName().toLowerCase() == "content-length");
|
|
112
|
+
if (!header)
|
|
113
|
+
return 0;
|
|
114
|
+
const contentLengthValue = header.getValue();
|
|
115
|
+
if (typeof contentLengthValue === "number")
|
|
116
|
+
return contentLengthValue;
|
|
117
|
+
if (typeof contentLengthValue === "string")
|
|
118
|
+
return parseInt(contentLengthValue);
|
|
119
|
+
throw new Error(`Content-Length is not a number: ${contentLengthValue}`);
|
|
120
|
+
}
|
|
119
121
|
}
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaHR0cC1jbGllbnQvcmVzcG9uc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUVoQyxNQUFNLENBQUMsT0FBTyxPQUFPLFFBQVE7SUFDM0I7Ozs7T0FJRztJQUNILFlBQVksRUFBQyxNQUFNLEdBQUcsS0FBSyxFQUFFLFVBQVUsRUFBQztRQUN0QyxJQUFJLENBQUMsTUFBTTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFFL0QsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFBO1FBRWpCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ3pDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFBO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFBO1FBRTFCLHFCQUFxQjtRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELDJCQUEyQjtJQUMzQixJQUFJLENBQUMsSUFBSTtRQUNQLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUNwRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7SUFDbkIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxJQUFJO1FBQ1osTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFBO1FBRTdDLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFB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QUssRUFBRSxDQUFDLENBQUE7b0JBQ3BELENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFBO1FBQ25CLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEhlYWRlciBmcm9tIFwiLi9oZWFkZXIuanNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSZXNwb25zZSB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJnc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5tZXRob2RcbiAgICogQHBhcmFtIHtmdW5jdGlvbigpIDogdm9pZH0gYXJncy5vbkNvbXBsZXRlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7bWV0aG9kID0gXCJHRVRcIiwgb25Db21wbGV0ZX0pIHtcbiAgICBpZiAoIW1ldGhvZCkgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIG1ldGhvZCBnaXZlbjogJHttZXRob2R9YClcblxuICAgIC8qKiBAdHlwZSB7SGVhZGVyW119ICovXG4gICAgdGhpcy5oZWFkZXJzID0gW11cblxuICAgIHRoaXMubWV0aG9kID0gbWV0aG9kLnRvVXBwZXJDYXNlKCkudHJpbSgpXG4gICAgdGhpcy5vbkNvbXBsZXRlID0gb25Db21wbGV0ZVxuICAgIHRoaXMuc3RhdGUgPSBcInN0YXR1cy1saW5lXCJcblxuICAgIC8qKiBAdHlwZSB7QnVmZmVyfSAqL1xuICAgIHRoaXMucmVzcG9uc2UgPSBCdWZmZXIuYWxsb2MoMCk7XG4gIH1cblxuICAvKiogQHBhcmFtIHtCdWZmZXJ9IGRhdGEgKi9cbiAgZmVlZChkYXRhKSB7XG4gICAgdGhpcy5yZXNwb25zZSA9IEJ1ZmZlci5jb25jYXQoW3RoaXMucmVzcG9uc2UsIGRhdGFdKVxuICAgIHRoaXMudHJ5VG9QYXJzZSgpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAgICogQHJldHVybnMge0hlYWRlcn1cbiAgICovXG4gIGdldEhlYWRlcihuYW1lKSB7XG4gICAgY29uc3QgY29tcGFyZU5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCkudHJpbSgpXG5cbiAgICBmb3IgKGNvbnN0IGhlYWRlciBvZiB0aGlzLmhlYWRlcnMpIHtcbiAgICAgIGNvbnN0IGhlYWRlckNvbXBhcmVOYW1lID0gaGVhZGVyLmdldE5hbWUoKS50b0xvd2VyQ2FzZSgpLnRyaW0oKVxuXG4gICAgICBpZiAoY29tcGFyZU5hbWUgPT0gaGVhZGVyQ29tcGFyZU5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGhlYWRlclxuICAgICAgfVxuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgSGVhZGVyICR7bmFtZX0gbm90IGZvdW5kYClcbiAgfVxuXG4gIGpzb24oKSB7XG4gICAgY29uc3QgY29udGVudFR5cGVIZWFkZXIgPSB0aGlzLmdldEhlYWRlcihcIkNvbnRlbnQtVHlwZVwiKT8uZ2V0VmFsdWUoKVxuXG4gICAgaWYgKHR5cGVvZiBjb250ZW50VHlwZUhlYWRlciAhPSBcInN0cmluZ1wiKSB0aHJvdyBuZXcgRXJyb3IoYENvbnRlbnQtVHlwZSB3YXNuJ3QgYSBzdHJpbmc6ICR7Y29udGVudFR5cGVIZWFkZXJ9YClcblxuICAgIGlmICghY29udGVudFR5cGVIZWFkZXIudG9Mb3dlckNhc2UoKS50cmltKCkuc3RhcnRzV2l0aChcImFwcGxpY2F0aW9uL2pzb25cIikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29udGVudC1UeXBlIGlzIG5vdCBKU09OOiAke2NvbnRlbnRUeXBlSGVhZGVyfWApXG4gICAgfVxuXG4gICAgY29uc3QgYm9keSA9IHRoaXMucmVzcG9uc2UudG9TdHJpbmcoKVxuICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKGJvZHkpXG5cbiAgICByZXR1cm4ganNvblxuICB9XG5cbiAgdHJ5VG9QYXJzZSgpIHtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKHRoaXMuc3RhdGUgPT0gXCJib2R5XCIpIHtcbiAgICAgICAgY29uc3QgY29udGVudExlbmd0aFZhbHVlID0gdGhpcy5nZXRIZWFkZXIoXCJDb250ZW50LUxlbmd0aFwiKT8uZ2V0VmFsdWUoKVxuXG4gICAgICAgIGlmIChjb250ZW50TGVuZ3RoVmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIGNvbnRlbnQgbGVuZ3RoIGdpdmVuXCIpXG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY29udGVudExlbmd0aE51bWJlclxuXG4gICAgICAgIGlmICh0eXBlb2YgY29udGVudExlbmd0aFZhbHVlID09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICBjb250ZW50TGVuZ3RoTnVtYmVyID0gY29udGVudExlbmd0aFZhbHVlXG4gICAgICAgIH0gZWxzZSBpZiAoY29udGVudExlbmd0aFZhbHVlID09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICBjb250ZW50TGVuZ3RoTnVtYmVyID0gcGFyc2VJbnQoY29udGVudExlbmd0aFZhbHVlKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ29udGVudC1MZW5ndGggaXMgbm90IGEgbnVtYmVyOiAke2NvbnRlbnRMZW5ndGhWYWx1ZX1gKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucmVzcG9uc2UuYnl0ZUxlbmd0aCA+PSBjb250ZW50TGVuZ3RoTnVtYmVyKSB7XG4gICAgICAgICAgdGhpcy5jb21wbGV0ZVJlc3BvbnNlKClcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHRoaXMucmVzcG9uc2UudG9TdHJpbmcoKVxuICAgICAgICBsZXQgbGluZUVuZEluZGV4ID0gcmVzcG9uc2UuaW5kZXhPZihcIlxcclxcblwiKVxuICAgICAgICBsZXQgbGluZUVuZExlbmd0aCA9IDJcblxuICAgICAgICBpZiAobGluZUVuZEluZGV4ID09PSAtMSkge1xuICAgICAgICAgIGxpbmVFbmRJbmRleCA9IHJlc3BvbnNlLmluZGV4T2YoXCJcXG5cIilcbiAgICAgICAgICBsaW5lRW5kTGVuZ3RoID0gMVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxpbmVFbmRJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICBicmVhayAvLyBXZSBuZWVkIHRvIGdldCBmZWQgbW9yZSB0byBjb250aW51ZSByZWFkaW5nXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgbGluZSA9IHJlc3BvbnNlLnN1YnN0cmluZygwLCBsaW5lRW5kSW5kZXgpXG5cbiAgICAgICAgICB0aGlzLnJlc3BvbnNlID0gdGhpcy5yZXNwb25zZS5zbGljZShsaW5lRW5kSW5kZXggKyBsaW5lRW5kTGVuZ3RoKVxuXG4gICAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT0gXCJzdGF0dXMtbGluZVwiKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXR1c0xpbmUgPSBsaW5lXG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gXCJoZWFkZXJzXCJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUgPT0gXCJoZWFkZXJzXCIpIHtcbiAgICAgICAgICAgIGlmIChsaW5lID09IFwiXCIpIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMubWV0aG9kID09IFwiR0VUXCIgfHwgdGhpcy5tZXRob2QgPT0gXCJIRUFEXCIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBsZXRlUmVzcG9uc2UoKVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5tZXRob2QgPT0gXCJQT1NUXCIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gXCJib2R5XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc3QgaGVhZGVyTWF0Y2ggPSBsaW5lLm1hdGNoKC9eKC4rPyk6XFxzKiguKykkLylcblxuICAgICAgICAgICAgICBpZiAoIWhlYWRlck1hdGNoKSB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaGVhZGVyOiAke2xpbmV9YClcblxuICAgICAgICAgICAgICBjb25zdCBoZWFkZXIgPSBuZXcgSGVhZGVyKGhlYWRlck1hdGNoWzFdLCBoZWFkZXJNYXRjaFsyXSlcblxuICAgICAgICAgICAgICB0aGlzLmhlYWRlcnMucHVzaChoZWFkZXIpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBzdGF0ZTogJHt0aGlzLnN0YXRlfWApXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29tcGxldGVSZXNwb25zZSgpIHtcbiAgICB0aGlzLnN0YXRlID0gXCJkb25lXCJcbiAgICB0aGlzLm9uQ29tcGxldGUoKVxuICB9XG59XG4iXX0=
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaHR0cC1jbGllbnQvcmVzcG9uc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUVoQyxNQUFNLENBQUMsT0FBTyxPQUFPLFFBQVE7SUFDM0I7Ozs7T0FJRztJQUNILFlBQVksRUFBQyxNQUFNLEdBQUcsS0FBSyxFQUFFLFVBQVUsRUFBQztRQUN0QyxJQUFJLENBQUMsTUFBTTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFFL0QsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFBO1FBRWpCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ3pDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFBO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFBO1FBRTFCLHFCQUFxQjtRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELDJCQUEyQjtJQUMzQixJQUFJLENBQUMsSUFBSTtRQUNQLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUNwRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7SUFDbkIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxJQUFJO1FBQ1osTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFBO1FBRTdDLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFB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SyxRQUFRO1lBQUUsT0FBTyxrQkFBa0IsQ0FBQTtRQUNyRSxJQUFJLE9BQU8sa0JBQWtCLEtBQUssUUFBUTtZQUFFLE9BQU8sUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFFL0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFBO0lBQzFFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgSGVhZGVyIGZyb20gXCIuL2hlYWRlci5qc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlc3BvbnNlIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLm1ldGhvZFxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKCkgOiB2b2lkfSBhcmdzLm9uQ29tcGxldGVcbiAgICovXG4gIGNvbnN0cnVjdG9yKHttZXRob2QgPSBcIkdFVFwiLCBvbkNvbXBsZXRlfSkge1xuICAgIGlmICghbWV0aG9kKSB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbWV0aG9kIGdpdmVuOiAke21ldGhvZH1gKVxuXG4gICAgLyoqIEB0eXBlIHtIZWFkZXJbXX0gKi9cbiAgICB0aGlzLmhlYWRlcnMgPSBbXVxuXG4gICAgdGhpcy5tZXRob2QgPSBtZXRob2QudG9VcHBlckNhc2UoKS50cmltKClcbiAgICB0aGlzLm9uQ29tcGxldGUgPSBvbkNvbXBsZXRlXG4gICAgdGhpcy5zdGF0ZSA9IFwic3RhdHVzLWxpbmVcIlxuXG4gICAgLyoqIEB0eXBlIHtCdWZmZXJ9ICovXG4gICAgdGhpcy5yZXNwb25zZSA9IEJ1ZmZlci5hbGxvYygwKTtcbiAgfVxuXG4gIC8qKiBAcGFyYW0ge0J1ZmZlcn0gZGF0YSAqL1xuICBmZWVkKGRhdGEpIHtcbiAgICB0aGlzLnJlc3BvbnNlID0gQnVmZmVyLmNvbmNhdChbdGhpcy5yZXNwb25zZSwgZGF0YV0pXG4gICAgdGhpcy50cnlUb1BhcnNlKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICAgKiBAcmV0dXJucyB7SGVhZGVyfVxuICAgKi9cbiAgZ2V0SGVhZGVyKG5hbWUpIHtcbiAgICBjb25zdCBjb21wYXJlTmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKS50cmltKClcblxuICAgIGZvciAoY29uc3QgaGVhZGVyIG9mIHRoaXMuaGVhZGVycykge1xuICAgICAgY29uc3QgaGVhZGVyQ29tcGFyZU5hbWUgPSBoZWFkZXIuZ2V0TmFtZSgpLnRvTG93ZXJDYXNlKCkudHJpbSgpXG5cbiAgICAgIGlmIChjb21wYXJlTmFtZSA9PSBoZWFkZXJDb21wYXJlTmFtZSkge1xuICAgICAgICByZXR1cm4gaGVhZGVyXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBIZWFkZXIgJHtuYW1lfSBub3QgZm91bmRgKVxuICB9XG5cbiAganNvbigpIHtcbiAgICBjb25zdCBjb250ZW50VHlwZUhlYWRlciA9IHRoaXMuZ2V0SGVhZGVyKFwiQ29udGVudC1UeXBlXCIpPy5nZXRWYWx1ZSgpXG5cbiAgICBpZiAodHlwZW9mIGNvbnRlbnRUeXBlSGVhZGVyICE9IFwic3RyaW5nXCIpIHRocm93IG5ldyBFcnJvcihgQ29udGVudC1UeXBlIHdhc24ndCBhIHN0cmluZzogJHtjb250ZW50VHlwZUhlYWRlcn1gKVxuXG4gICAgaWYgKCFjb250ZW50VHlwZUhlYWRlci50b0xvd2VyQ2FzZSgpLnRyaW0oKS5zdGFydHNXaXRoKFwiYXBwbGljYXRpb24vanNvblwiKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb250ZW50LVR5cGUgaXMgbm90IEpTT046ICR7Y29udGVudFR5cGVIZWFkZXJ9YClcbiAgICB9XG5cbiAgICBjb25zdCBib2R5ID0gdGhpcy5yZXNwb25zZS50b1N0cmluZygpXG4gICAgY29uc3QganNvbiA9IEpTT04ucGFyc2UoYm9keSlcblxuICAgIHJldHVybiBqc29uXG4gIH1cblxuICB0cnlUb1BhcnNlKCkge1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBpZiAodGhpcy5zdGF0ZSA9PSBcImJvZHlcIikge1xuICAgICAgICBjb25zdCBjb250ZW50TGVuZ3RoTnVtYmVyID0gdGhpcy5fY29udGVudExlbmd0aE51bWJlcigpXG5cbiAgICAgICAgaWYgKHRoaXMucmVzcG9uc2UuYnl0ZUxlbmd0aCA+PSBjb250ZW50TGVuZ3RoTnVtYmVyKSB7XG4gICAgICAgICAgdGhpcy5jb21wbGV0ZVJlc3BvbnNlKClcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHRoaXMucmVzcG9uc2UudG9TdHJpbmcoKVxuICAgICAgICBsZXQgbGluZUVuZEluZGV4ID0gcmVzcG9uc2UuaW5kZXhPZihcIlxcclxcblwiKVxuICAgICAgICBsZXQgbGluZUVuZExlbmd0aCA9IDJcblxuICAgICAgICBpZiAobGluZUVuZEluZGV4ID09PSAtMSkge1xuICAgICAgICAgIGxpbmVFbmRJbmRleCA9IHJlc3BvbnNlLmluZGV4T2YoXCJcXG5cIilcbiAgICAgICAgICBsaW5lRW5kTGVuZ3RoID0gMVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxpbmVFbmRJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICBicmVhayAvLyBXZSBuZWVkIHRvIGdldCBmZWQgbW9yZSB0byBjb250aW51ZSByZWFkaW5nXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgbGluZSA9IHJlc3BvbnNlLnN1YnN0cmluZygwLCBsaW5lRW5kSW5kZXgpXG5cbiAgICAgICAgICB0aGlzLnJlc3BvbnNlID0gdGhpcy5yZXNwb25zZS5zbGljZShsaW5lRW5kSW5kZXggKyBsaW5lRW5kTGVuZ3RoKVxuXG4gICAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT0gXCJzdGF0dXMtbGluZVwiKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXR1c0xpbmUgPSBsaW5lXG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gXCJoZWFkZXJzXCJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUgPT0gXCJoZWFkZXJzXCIpIHtcbiAgICAgICAgICAgIGlmIChsaW5lID09IFwiXCIpIHtcbiAgICAgICAgICAgICAgY29uc3QgY29udGVudExlbmd0aE51bWJlciA9IHRoaXMuX2NvbnRlbnRMZW5ndGhOdW1iZXIoKVxuXG4gICAgICAgICAgICAgIGlmICghY29udGVudExlbmd0aE51bWJlcikge1xuICAgICAgICAgICAgICAgIHRoaXMuY29tcGxldGVSZXNwb25zZSgpXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gXCJib2R5XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc3QgaGVhZGVyTWF0Y2ggPSBsaW5lLm1hdGNoKC9eKC4rPyk6XFxzKiguKykkLylcblxuICAgICAgICAgICAgICBpZiAoIWhlYWRlck1hdGNoKSB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaGVhZGVyOiAke2xpbmV9YClcblxuICAgICAgICAgICAgICBjb25zdCBoZWFkZXIgPSBuZXcgSGVhZGVyKGhlYWRlck1hdGNoWzFdLCBoZWFkZXJNYXRjaFsyXSlcblxuICAgICAgICAgICAgICB0aGlzLmhlYWRlcnMucHVzaChoZWFkZXIpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBzdGF0ZTogJHt0aGlzLnN0YXRlfWApXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29tcGxldGVSZXNwb25zZSgpIHtcbiAgICB0aGlzLnN0YXRlID0gXCJkb25lXCJcbiAgICB0aGlzLm9uQ29tcGxldGUoKVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9XG4gICAqL1xuICBfY29udGVudExlbmd0aE51bWJlcigpIHtcbiAgICBjb25zdCBoZWFkZXIgPSB0aGlzLmhlYWRlcnMuZmluZCgoY3VycmVudEhlYWRlcikgPT4gY3VycmVudEhlYWRlci5nZXROYW1lKCkudG9Mb3dlckNhc2UoKSA9PSBcImNvbnRlbnQtbGVuZ3RoXCIpXG5cbiAgICBpZiAoIWhlYWRlcikgcmV0dXJuIDBcblxuICAgIGNvbnN0IGNvbnRlbnRMZW5ndGhWYWx1ZSA9IGhlYWRlci5nZXRWYWx1ZSgpXG5cbiAgICBpZiAodHlwZW9mIGNvbnRlbnRMZW5ndGhWYWx1ZSA9PT0gXCJudW1iZXJcIikgcmV0dXJuIGNvbnRlbnRMZW5ndGhWYWx1ZVxuICAgIGlmICh0eXBlb2YgY29udGVudExlbmd0aFZhbHVlID09PSBcInN0cmluZ1wiKSByZXR1cm4gcGFyc2VJbnQoY29udGVudExlbmd0aFZhbHVlKVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBDb250ZW50LUxlbmd0aCBpcyBub3QgYSBudW1iZXI6ICR7Y29udGVudExlbmd0aFZhbHVlfWApXG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A small websocket client that mirrors simple HTTP-style calls and channel subscriptions.
|
|
3
|
+
*/
|
|
4
|
+
export default class VelociousWebsocketClient {
|
|
5
|
+
/**
|
|
6
|
+
* @param {object} [args]
|
|
7
|
+
* @param {boolean} [args.debug]
|
|
8
|
+
* @param {string} [args.url] Full websocket URL (default: ws://127.0.0.1:3006/websocket)
|
|
9
|
+
*/
|
|
10
|
+
constructor({ debug, url }?: {
|
|
11
|
+
debug?: boolean;
|
|
12
|
+
url?: string;
|
|
13
|
+
});
|
|
14
|
+
debug: boolean;
|
|
15
|
+
pendingRequests: Map<any, any>;
|
|
16
|
+
subscribedChannels: Set<any>;
|
|
17
|
+
url: string;
|
|
18
|
+
listeners: Map<any, any>;
|
|
19
|
+
nextID: number;
|
|
20
|
+
/**
|
|
21
|
+
* Ensure a websocket connection is open.
|
|
22
|
+
* @returns {Promise<void>}
|
|
23
|
+
*/
|
|
24
|
+
connect(): Promise<void>;
|
|
25
|
+
connectPromise: Promise<any>;
|
|
26
|
+
socket: WebSocket;
|
|
27
|
+
/**
|
|
28
|
+
* Close the websocket and clear pending state.
|
|
29
|
+
* @returns {Promise<void>}
|
|
30
|
+
*/
|
|
31
|
+
close(): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Perform a POST request over the websocket.
|
|
34
|
+
* @param {string} path
|
|
35
|
+
* @param {any} [body]
|
|
36
|
+
* @param {{headers?: Record<string, string>}} [options]
|
|
37
|
+
* @returns {Promise<VelociousWebsocketResponse>}
|
|
38
|
+
*/
|
|
39
|
+
post(path: string, body?: any, options?: {
|
|
40
|
+
headers?: Record<string, string>;
|
|
41
|
+
}): Promise<VelociousWebsocketResponse>;
|
|
42
|
+
/**
|
|
43
|
+
* Perform a GET request over the websocket.
|
|
44
|
+
* @param {string} path
|
|
45
|
+
* @param {{headers?: Record<string, string>}} [options]
|
|
46
|
+
* @returns {Promise<VelociousWebsocketResponse>}
|
|
47
|
+
*/
|
|
48
|
+
get(path: string, options?: {
|
|
49
|
+
headers?: Record<string, string>;
|
|
50
|
+
}): Promise<VelociousWebsocketResponse>;
|
|
51
|
+
/**
|
|
52
|
+
* Subscribe to a channel for server-sent events.
|
|
53
|
+
* @param {string} channel
|
|
54
|
+
* @param {(payload: any) => void} callback
|
|
55
|
+
* @returns {() => void} unsubscribe function
|
|
56
|
+
*/
|
|
57
|
+
on(channel: string, callback: (payload: any) => void): () => void;
|
|
58
|
+
/**
|
|
59
|
+
* @private
|
|
60
|
+
* @param {string} method
|
|
61
|
+
* @param {string} path
|
|
62
|
+
* @param {object} [options]
|
|
63
|
+
* @param {any} [options.body]
|
|
64
|
+
* @param {Record<string, string>} [options.headers]
|
|
65
|
+
* @returns {Promise<VelociousWebsocketResponse>}
|
|
66
|
+
*/
|
|
67
|
+
private request;
|
|
68
|
+
/**
|
|
69
|
+
* @private
|
|
70
|
+
* @param {MessageEvent<any>} event
|
|
71
|
+
*/
|
|
72
|
+
private onMessage;
|
|
73
|
+
/**
|
|
74
|
+
* Reject all pending requests when the socket closes unexpectedly.
|
|
75
|
+
* @private
|
|
76
|
+
*/
|
|
77
|
+
private onClose;
|
|
78
|
+
/**
|
|
79
|
+
* @private
|
|
80
|
+
* @param {Record<string, any>} payload
|
|
81
|
+
*/
|
|
82
|
+
private _sendMessage;
|
|
83
|
+
/**
|
|
84
|
+
* @private
|
|
85
|
+
* @param {...any} args
|
|
86
|
+
* @returns {void}
|
|
87
|
+
*/
|
|
88
|
+
private _debug;
|
|
89
|
+
}
|
|
90
|
+
declare class VelociousWebsocketResponse {
|
|
91
|
+
/**
|
|
92
|
+
* @param {object} message
|
|
93
|
+
*/
|
|
94
|
+
constructor(message: object);
|
|
95
|
+
body: any;
|
|
96
|
+
headers: any;
|
|
97
|
+
id: any;
|
|
98
|
+
statusCode: any;
|
|
99
|
+
statusMessage: any;
|
|
100
|
+
type: any;
|
|
101
|
+
/** @returns {any} */
|
|
102
|
+
json(): any;
|
|
103
|
+
}
|
|
104
|
+
export {};
|
|
105
|
+
//# sourceMappingURL=websocket-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket-client.d.ts","sourceRoot":"","sources":["../../../src/http-client/websocket-client.js"],"names":[],"mappings":"AAEA;;GAEG;AACH;IACE;;;;OAIG;IACH,6BAHG;QAAuB,KAAK,GAApB,OAAO;QACO,GAAG,GAAjB,MAAM;KAChB,EAUA;IANC,eAAkB;IAClB,+BAAgC;IAChC,6BAAmC;IACnC,YAAiD;IACjD,yBAA0B;IAC1B,eAAe;IAGjB;;;OAGG;IACH,WAFa,OAAO,CAAC,IAAI,CAAC,CA+BzB;IAzBC,6BAsBE;IArBA,kBAAqC;IA0BzC;;;OAGG;IACH,SAFa,OAAO,CAAC,IAAI,CAAC,CAYzB;IAED;;;;;;OAMG;IACH,WALW,MAAM,SACN,GAAG,YACH;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAC,GAChC,OAAO,CAAC,0BAA0B,CAAC,CAI/C;IAED;;;;;OAKG;IACH,UAJW,MAAM,YACN;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAC,GAChC,OAAO,CAAC,0BAA0B,CAAC,CAI/C;IAED;;;;;OAKG;IACH,YAJW,MAAM,YACN,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GACpB,MAAM,IAAI,CAyBtB;IAED;;;;;;;;OAQG;IACH,gBAiBC;IAED;;;OAGG;IACH,kBA6CC;IAED;;;OAGG;IACH,gBAOC;IAED;;;OAGG;IACH,qBASC;IAED;;;;OAIG;IACH,eAIC;CACF;AAED;IACE;;OAEG;IACH,qBAFW,MAAM,EAShB;IANC,UAAwB;IACxB,aAAoC;IACpC,QAAoB;IACpB,gBAA2C;IAC3C,mBAAkD;IAClD,UAAwB;IAG1B,qBAAqB;IACrB,QADc,GAAG,CAOhB;CACF"}
|