@google-cloud/pubsub 2.17.0 → 2.18.3
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/CHANGELOG.md +34 -0
- package/README.md +1 -0
- package/build/protos/protos.d.ts +2 -1
- package/build/protos/protos.js +7 -0
- package/build/protos/protos.json +14 -1
- package/build/src/iam.d.ts +180 -0
- package/build/src/iam.js +11 -176
- package/build/src/iam.js.map +1 -1
- package/build/src/index.d.ts +13 -4
- package/build/src/index.js +12 -4
- package/build/src/index.js.map +1 -1
- package/build/src/lease-manager.d.ts +7 -2
- package/build/src/lease-manager.js +19 -4
- package/build/src/lease-manager.js.map +1 -1
- package/build/src/publisher/flow-control.d.ts +90 -0
- package/build/src/publisher/flow-control.js +145 -0
- package/build/src/publisher/flow-control.js.map +1 -0
- package/build/src/publisher/flow-publisher.d.ts +95 -0
- package/build/src/publisher/flow-publisher.js +133 -0
- package/build/src/publisher/flow-publisher.js.map +1 -0
- package/build/src/publisher/index.d.ts +33 -5
- package/build/src/publisher/index.js +16 -39
- package/build/src/publisher/index.js.map +1 -1
- package/build/src/publisher/message-batch.d.ts +1 -1
- package/build/src/publisher/message-batch.js +4 -3
- package/build/src/publisher/message-batch.js.map +1 -1
- package/build/src/publisher/message-queues.js.map +1 -1
- package/build/src/publisher/pubsub-message.d.ts +52 -0
- package/build/src/publisher/pubsub-message.js +56 -0
- package/build/src/publisher/pubsub-message.js.map +1 -0
- package/build/src/pubsub.d.ts +354 -4
- package/build/src/pubsub.js +28 -322
- package/build/src/pubsub.js.map +1 -1
- package/build/src/schema.d.ts +9 -4
- package/build/src/schema.js +9 -4
- package/build/src/schema.js.map +1 -1
- package/build/src/snapshot.d.ts +87 -0
- package/build/src/snapshot.js +7 -83
- package/build/src/snapshot.js.map +1 -1
- package/build/src/subscriber.d.ts +6 -0
- package/build/src/subscriber.js +6 -0
- package/build/src/subscriber.js.map +1 -1
- package/build/src/subscription.d.ts +439 -9
- package/build/src/subscription.js +38 -404
- package/build/src/subscription.js.map +1 -1
- package/build/src/topic.d.ts +481 -1
- package/build/src/topic.js +51 -430
- package/build/src/topic.js.map +1 -1
- package/build/src/util.d.ts +2 -1
- package/build/src/util.js +2 -2
- package/build/src/util.js.map +1 -1
- package/build/src/v1/publisher_client.d.ts +246 -15
- package/build/src/v1/publisher_client.js +18 -264
- package/build/src/v1/publisher_client.js.map +1 -1
- package/build/src/v1/publisher_client_config.json +1 -1
- package/build/src/v1/schema_service_client.d.ts +151 -5
- package/build/src/v1/schema_service_client.js +6 -157
- package/build/src/v1/schema_service_client.js.map +1 -1
- package/build/src/v1/subscriber_client.d.ts +536 -16
- package/build/src/v1/subscriber_client.js +14 -552
- package/build/src/v1/subscriber_client.js.map +1 -1
- package/package.json +3 -3
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.Publisher = exports.BATCH_LIMITS = void 0;
|
|
18
|
+
exports.Publisher = exports.flowControlDefaults = exports.BATCH_LIMITS = void 0;
|
|
19
19
|
const promisify_1 = require("@google-cloud/promisify");
|
|
20
20
|
const extend = require("extend");
|
|
21
21
|
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
|
|
@@ -23,10 +23,14 @@ const api_1 = require("@opentelemetry/api");
|
|
|
23
23
|
const message_queues_1 = require("./message-queues");
|
|
24
24
|
const default_options_1 = require("../default-options");
|
|
25
25
|
const opentelemetry_tracing_1 = require("../opentelemetry-tracing");
|
|
26
|
+
const flow_control_1 = require("./flow-control");
|
|
27
|
+
const util_1 = require("../util");
|
|
26
28
|
/**
|
|
27
29
|
* @typedef PublishOptions
|
|
28
30
|
* @property {BatchPublishOptions} [batching] The maximum number of bytes to
|
|
29
31
|
* buffer before sending a payload.
|
|
32
|
+
* @property {FlowControlOptions} [publisherFlowControl] Publisher-side flow
|
|
33
|
+
* control settings. If this is undefined, Ignore will be the assumed action.
|
|
30
34
|
* @property {object} [gaxOpts] Request configuration options, outlined
|
|
31
35
|
* {@link https://googleapis.github.io/gax-nodejs/interfaces/CallOptions.html|here.}
|
|
32
36
|
* @property {boolean} [messageOrdering] If true, messages published with the
|
|
@@ -38,6 +42,10 @@ exports.BATCH_LIMITS = {
|
|
|
38
42
|
maxBytes: Math.pow(1024, 2) * 9,
|
|
39
43
|
maxMessages: 1000,
|
|
40
44
|
};
|
|
45
|
+
exports.flowControlDefaults = {
|
|
46
|
+
maxOutstandingBytes: undefined,
|
|
47
|
+
maxOutstandingMessages: undefined,
|
|
48
|
+
};
|
|
41
49
|
/**
|
|
42
50
|
* A Publisher object allows you to publish messages to a specific topic.
|
|
43
51
|
*
|
|
@@ -51,21 +59,12 @@ exports.BATCH_LIMITS = {
|
|
|
51
59
|
*/
|
|
52
60
|
class Publisher {
|
|
53
61
|
constructor(topic, options) {
|
|
62
|
+
this.flowControl = new flow_control_1.FlowControl((options === null || options === void 0 ? void 0 : options.flowControlOptions) || exports.flowControlDefaults);
|
|
54
63
|
this.setOptions(options);
|
|
55
64
|
this.topic = topic;
|
|
56
65
|
this.queue = new message_queues_1.Queue(this);
|
|
57
66
|
this.orderedQueues = new Map();
|
|
58
67
|
}
|
|
59
|
-
/**
|
|
60
|
-
* Immediately sends all remaining queued data. This is mostly useful
|
|
61
|
-
* if you are planning to call close() on the PubSub object that holds
|
|
62
|
-
* the server connections.
|
|
63
|
-
*
|
|
64
|
-
* @private
|
|
65
|
-
*
|
|
66
|
-
* @param {EmptyCallback} [callback] Callback function.
|
|
67
|
-
* @returns {Promise<EmptyResponse>}
|
|
68
|
-
*/
|
|
69
68
|
flush(callback) {
|
|
70
69
|
const definedCallback = callback ? callback : () => { };
|
|
71
70
|
const publishes = [promisify_1.promisify(this.queue.publish).bind(this.queue)()];
|
|
@@ -77,36 +76,11 @@ class Publisher {
|
|
|
77
76
|
})
|
|
78
77
|
.catch(definedCallback);
|
|
79
78
|
}
|
|
80
|
-
/**
|
|
81
|
-
* Publish the provided message.
|
|
82
|
-
*
|
|
83
|
-
* @deprecated use {@link Publisher#publishMessage} instead.
|
|
84
|
-
*
|
|
85
|
-
* @private
|
|
86
|
-
* @see Publisher#publishMessage
|
|
87
|
-
*
|
|
88
|
-
* @param {buffer} data The message data. This must come in the form of a
|
|
89
|
-
* Buffer object.
|
|
90
|
-
* @param {object.<string, string>} [attributes] Attributes for this message.
|
|
91
|
-
* @param {PublishCallback} [callback] Callback function.
|
|
92
|
-
* @returns {Promise<PublishResponse>}
|
|
93
|
-
*/
|
|
94
79
|
publish(data, attrsOrCb, callback) {
|
|
95
80
|
const attributes = typeof attrsOrCb === 'object' ? attrsOrCb : {};
|
|
96
81
|
callback = typeof attrsOrCb === 'function' ? attrsOrCb : callback;
|
|
97
82
|
return this.publishMessage({ data, attributes }, callback);
|
|
98
83
|
}
|
|
99
|
-
/**
|
|
100
|
-
* Publish the provided message.
|
|
101
|
-
*
|
|
102
|
-
* @private
|
|
103
|
-
*
|
|
104
|
-
* @throws {TypeError} If data is not a Buffer object.
|
|
105
|
-
* @throws {TypeError} If any value in `attributes` object is not a string.
|
|
106
|
-
*
|
|
107
|
-
* @param {PubsubMessage} [message] Options for this message.
|
|
108
|
-
* @param {PublishCallback} [callback] Callback function.
|
|
109
|
-
*/
|
|
110
84
|
publishMessage(message, callback) {
|
|
111
85
|
const { data, attributes = {} } = message;
|
|
112
86
|
// We must have at least one of:
|
|
@@ -183,6 +157,7 @@ class Publisher {
|
|
|
183
157
|
isBundling: false,
|
|
184
158
|
},
|
|
185
159
|
enableOpenTelemetryTracing: false,
|
|
160
|
+
flowControlOptions: Object.assign({}, exports.flowControlDefaults),
|
|
186
161
|
};
|
|
187
162
|
return defaults;
|
|
188
163
|
}
|
|
@@ -195,7 +170,7 @@ class Publisher {
|
|
|
195
170
|
*/
|
|
196
171
|
setOptions(options = {}) {
|
|
197
172
|
const defaults = this.getOptionDefaults();
|
|
198
|
-
const { batching, gaxOpts, messageOrdering, enableOpenTelemetryTracing } = extend(true, defaults, options);
|
|
173
|
+
const { batching, gaxOpts, messageOrdering, enableOpenTelemetryTracing, flowControlOptions, } = extend(true, defaults, options);
|
|
199
174
|
this.settings = {
|
|
200
175
|
batching: {
|
|
201
176
|
maxBytes: Math.min(batching.maxBytes, exports.BATCH_LIMITS.maxBytes),
|
|
@@ -205,6 +180,7 @@ class Publisher {
|
|
|
205
180
|
gaxOpts,
|
|
206
181
|
messageOrdering,
|
|
207
182
|
enableOpenTelemetryTracing,
|
|
183
|
+
flowControlOptions,
|
|
208
184
|
};
|
|
209
185
|
// We also need to let all of our queues know that they need to update their options.
|
|
210
186
|
// Note that these might be undefined, because setOptions() is called in the constructor.
|
|
@@ -216,6 +192,8 @@ class Publisher {
|
|
|
216
192
|
q.updateOptions();
|
|
217
193
|
}
|
|
218
194
|
}
|
|
195
|
+
// This will always be filled in by our defaults if nothing else.
|
|
196
|
+
this.flowControl.setOptions(this.settings.flowControlOptions);
|
|
219
197
|
}
|
|
220
198
|
/**
|
|
221
199
|
* Constructs an OpenTelemetry span
|
|
@@ -259,8 +237,7 @@ class Publisher {
|
|
|
259
237
|
}
|
|
260
238
|
}
|
|
261
239
|
exports.Publisher = Publisher;
|
|
262
|
-
|
|
240
|
+
util_1.promisifySome(Publisher, Publisher.prototype, ['flush', 'publishMessage'], {
|
|
263
241
|
singular: true,
|
|
264
|
-
exclude: ['publish', 'setOptions', 'constructSpan', 'getOptionDefaults'],
|
|
265
242
|
});
|
|
266
243
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/publisher/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/publisher/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,7 +61,7 @@ export declare class MessageBatch {
|
|
|
61
61
|
* @param {object} message The message in question.
|
|
62
62
|
* @returns {boolean}
|
|
63
63
|
*/
|
|
64
|
-
canFit(
|
|
64
|
+
canFit(message: PubsubMessage): boolean;
|
|
65
65
|
/**
|
|
66
66
|
* Checks to see if this batch is at the maximum allowed payload size.
|
|
67
67
|
* When publishing ordered messages, it is ok to exceed the user configured
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.MessageBatch = void 0;
|
|
19
19
|
const _1 = require("./");
|
|
20
|
+
const pubsub_message_1 = require("./pubsub-message");
|
|
20
21
|
/**
|
|
21
22
|
* @typedef BatchPublishOptions
|
|
22
23
|
* @property {number} [maxBytes=1 * 1024 * 1024] The maximum number of bytes to
|
|
@@ -58,7 +59,7 @@ class MessageBatch {
|
|
|
58
59
|
add(message, callback) {
|
|
59
60
|
this.messages.push(message);
|
|
60
61
|
this.callbacks.push(callback);
|
|
61
|
-
this.bytes += message
|
|
62
|
+
this.bytes += pubsub_message_1.calculateMessageSize(message);
|
|
62
63
|
}
|
|
63
64
|
/**
|
|
64
65
|
* Indicates if a given message can fit in the batch.
|
|
@@ -66,10 +67,10 @@ class MessageBatch {
|
|
|
66
67
|
* @param {object} message The message in question.
|
|
67
68
|
* @returns {boolean}
|
|
68
69
|
*/
|
|
69
|
-
canFit(
|
|
70
|
+
canFit(message) {
|
|
70
71
|
const { maxMessages, maxBytes } = this.options;
|
|
71
72
|
return (this.messages.length < maxMessages &&
|
|
72
|
-
this.bytes +
|
|
73
|
+
this.bytes + pubsub_message_1.calculateMessageSize(message) <= maxBytes);
|
|
73
74
|
}
|
|
74
75
|
/**
|
|
75
76
|
* Checks to see if this batch is at the maximum allowed payload size.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-batch.js","sourceRoot":"","sources":["../../../src/publisher/message-batch.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,yBAAgE;
|
|
1
|
+
{"version":3,"file":"message-batch.js","sourceRoot":"","sources":["../../../src/publisher/message-batch.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,yBAAgE;AAChE,qDAAsD;AAQtD;;;;;;;;GAQG;AACH;;;;;;GAMG;AACH,MAAa,YAAY;IAMvB,YAAY,OAA4B;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,OAA4B;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,OAAsB,EAAE,QAAyB;QACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,IAAI,qCAAoB,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IACD;;;;;OAKG;IACH,MAAM,CAAC,OAAsB;QAC3B,MAAM,EAAC,WAAW,EAAE,QAAQ,EAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7C,OAAO,CACL,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,WAAY;YACnC,IAAI,CAAC,KAAK,GAAG,qCAAoB,CAAC,OAAO,CAAC,IAAI,QAAS,CACxD,CAAC;IACJ,CAAC;IACD;;;;;;OAMG;IACH,OAAO;QACL,MAAM,EAAC,WAAW,EAAE,QAAQ,EAAC,GAAG,eAAY,CAAC;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,WAAY,IAAI,IAAI,CAAC,KAAK,IAAI,QAAS,CAAC;IACzE,CAAC;IACD;;;;OAIG;IACH,MAAM;QACJ,MAAM,EAAC,WAAW,EAAE,QAAQ,EAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,WAAY,IAAI,IAAI,CAAC,KAAK,IAAI,QAAS,CAAC;IACzE,CAAC;CACF;AAnED,oCAmEC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-queues.js","sourceRoot":"","sources":["../../../src/publisher/message-queues.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAGH,mCAAoC;AAEpC,mDAAkE;AAClE,mDAA6C;AAQ7C;;;;;;GAMG;AACH,MAAsB,YAAa,SAAQ,qBAAY;
|
|
1
|
+
{"version":3,"file":"message-queues.js","sourceRoot":"","sources":["../../../src/publisher/message-queues.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2021 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { google } from '../../protos/protos';
|
|
17
|
+
/**
|
|
18
|
+
* Strings are the only allowed values for keys and values in message attributes.
|
|
19
|
+
*/
|
|
20
|
+
export declare type Attributes = Record<string, string>;
|
|
21
|
+
/**
|
|
22
|
+
* The basic {data, attributes} for a message to be published.
|
|
23
|
+
*/
|
|
24
|
+
export interface PubsubMessage extends google.pubsub.v1.IPubsubMessage {
|
|
25
|
+
/**
|
|
26
|
+
* If we've calculated the size of this message, it will be cached here.
|
|
27
|
+
* This is done to avoid having to build up the attribute size over and over.
|
|
28
|
+
*
|
|
29
|
+
* This field should not be used outside of this library. Its implementation
|
|
30
|
+
* may change, and it may disappear later.
|
|
31
|
+
*
|
|
32
|
+
* @private
|
|
33
|
+
*/
|
|
34
|
+
calculatedSize?: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Precisely calculates the size of a message with optional `data` and
|
|
38
|
+
* `attributes` fields. If a `data` field is present, its {@link Buffer#length}
|
|
39
|
+
* member will be used. If `attributes` are present, each attribute's
|
|
40
|
+
* key and value will be calculated for byte length.
|
|
41
|
+
*
|
|
42
|
+
* When the calculation is complete, the result will be stored in
|
|
43
|
+
* `calculatedSize`. Since this calculation is generally only done
|
|
44
|
+
* after the message has been handed off to this library, there shouldn't
|
|
45
|
+
* be an issue with it being updated after the fact.
|
|
46
|
+
*
|
|
47
|
+
* This should not be used outside of this library. Its implementation
|
|
48
|
+
* may change.
|
|
49
|
+
*
|
|
50
|
+
* @private
|
|
51
|
+
*/
|
|
52
|
+
export declare function calculateMessageSize(message: PubsubMessage | google.pubsub.v1.IPubsubMessage): number;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*!
|
|
3
|
+
* Copyright 2021 Google LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.calculateMessageSize = void 0;
|
|
19
|
+
/**
|
|
20
|
+
* Precisely calculates the size of a message with optional `data` and
|
|
21
|
+
* `attributes` fields. If a `data` field is present, its {@link Buffer#length}
|
|
22
|
+
* member will be used. If `attributes` are present, each attribute's
|
|
23
|
+
* key and value will be calculated for byte length.
|
|
24
|
+
*
|
|
25
|
+
* When the calculation is complete, the result will be stored in
|
|
26
|
+
* `calculatedSize`. Since this calculation is generally only done
|
|
27
|
+
* after the message has been handed off to this library, there shouldn't
|
|
28
|
+
* be an issue with it being updated after the fact.
|
|
29
|
+
*
|
|
30
|
+
* This should not be used outside of this library. Its implementation
|
|
31
|
+
* may change.
|
|
32
|
+
*
|
|
33
|
+
* @private
|
|
34
|
+
*/
|
|
35
|
+
function calculateMessageSize(message) {
|
|
36
|
+
// If it's not a PubsubMessage, we'll augment it into one.
|
|
37
|
+
const msg = message;
|
|
38
|
+
if (msg.calculatedSize !== undefined) {
|
|
39
|
+
return msg.calculatedSize;
|
|
40
|
+
}
|
|
41
|
+
let size = 0;
|
|
42
|
+
if (msg.data) {
|
|
43
|
+
size += msg.data.length;
|
|
44
|
+
}
|
|
45
|
+
if (msg.attributes) {
|
|
46
|
+
const attrs = msg.attributes;
|
|
47
|
+
for (const key of Object.getOwnPropertyNames(attrs)) {
|
|
48
|
+
const val = attrs[key] || '';
|
|
49
|
+
size += Buffer.byteLength(key + val);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
msg.calculatedSize = size;
|
|
53
|
+
return size;
|
|
54
|
+
}
|
|
55
|
+
exports.calculateMessageSize = calculateMessageSize;
|
|
56
|
+
//# sourceMappingURL=pubsub-message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pubsub-message.js","sourceRoot":"","sources":["../../../src/publisher/pubsub-message.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAyBH;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,oBAAoB,CAClC,OAAwD;IAExD,0DAA0D;IAC1D,MAAM,GAAG,GAAG,OAAmC,CAAC;IAEhD,IAAI,GAAG,CAAC,cAAc,KAAK,SAAS,EAAE;QACpC,OAAO,GAAG,CAAC,cAAc,CAAC;KAC3B;IAED,IAAI,IAAI,GAAG,CAAC,CAAC;IAEb,IAAI,GAAG,CAAC,IAAI,EAAE;QACZ,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;KACzB;IACD,IAAI,GAAG,CAAC,UAAU,EAAE;QAClB,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE;YACnD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;SACtC;KACF;IAED,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;IAC1B,OAAO,IAAI,CAAC;AACd,CAAC;AAzBD,oDAyBC"}
|