@player-ui/pubsub-plugin 0.15.3-next.0 → 0.15.3-next.2
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.
|
@@ -74,20 +74,20 @@ var PubSubPlugin = function() {
|
|
|
74
74
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
75
75
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
76
76
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
77
|
-
var __export = function(target, all) {
|
|
77
|
+
var __export = function __export(target, all) {
|
|
78
78
|
for(var name in all)__defProp(target, name, {
|
|
79
79
|
get: all[name],
|
|
80
80
|
enumerable: true
|
|
81
81
|
});
|
|
82
82
|
};
|
|
83
|
-
var __copyProps = function(to, from, except, desc) {
|
|
83
|
+
var __copyProps = function __copyProps(to, from, except, desc) {
|
|
84
84
|
if (from && (typeof from === "undefined" ? "undefined" : _type_of(from)) === "object" || typeof from === "function") {
|
|
85
85
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
86
86
|
try {
|
|
87
87
|
var _loop = function() {
|
|
88
88
|
var key = _step.value;
|
|
89
89
|
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
90
|
-
get: function() {
|
|
90
|
+
get: function get() {
|
|
91
91
|
return from[key];
|
|
92
92
|
},
|
|
93
93
|
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
@@ -111,7 +111,7 @@ var PubSubPlugin = function() {
|
|
|
111
111
|
}
|
|
112
112
|
return to;
|
|
113
113
|
};
|
|
114
|
-
var __toCommonJS = function(mod) {
|
|
114
|
+
var __toCommonJS = function __toCommonJS(mod) {
|
|
115
115
|
return __copyProps(__defProp({}, "__esModule", {
|
|
116
116
|
value: true
|
|
117
117
|
}), mod);
|
|
@@ -119,13 +119,13 @@ var PubSubPlugin = function() {
|
|
|
119
119
|
// ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/index.ts
|
|
120
120
|
var src_exports = {};
|
|
121
121
|
__export(src_exports, {
|
|
122
|
-
PubSubHandlerPlugin: function() {
|
|
122
|
+
PubSubHandlerPlugin: function PubSubHandlerPlugin1() {
|
|
123
123
|
return PubSubHandlerPlugin;
|
|
124
124
|
},
|
|
125
|
-
PubSubPlugin: function() {
|
|
125
|
+
PubSubPlugin: function PubSubPlugin1() {
|
|
126
126
|
return PubSubPlugin;
|
|
127
127
|
},
|
|
128
|
-
PubSubPluginSymbol: function() {
|
|
128
|
+
PubSubPluginSymbol: function PubSubPluginSymbol1() {
|
|
129
129
|
return PubSubPluginSymbol;
|
|
130
130
|
}
|
|
131
131
|
});
|
|
@@ -354,10 +354,10 @@ var PubSubPlugin = function() {
|
|
|
354
354
|
var _PubSubPlugin = /*#__PURE__*/ function() {
|
|
355
355
|
function _PubSubPlugin(config) {
|
|
356
356
|
_class_call_check(this, _PubSubPlugin);
|
|
357
|
+
var _ref;
|
|
357
358
|
this.name = "pub-sub";
|
|
358
359
|
this.symbol = _PubSubPlugin.Symbol;
|
|
359
|
-
|
|
360
|
-
this.expressionName = (_config_expressionName = config === null || config === void 0 ? void 0 : config.expressionName) !== null && _config_expressionName !== void 0 ? _config_expressionName : "publish";
|
|
360
|
+
this.expressionName = (_ref = config === null || config === void 0 ? void 0 : config.expressionName) !== null && _ref !== void 0 ? _ref : "publish";
|
|
361
361
|
this.pubsub = pubsub;
|
|
362
362
|
}
|
|
363
363
|
_create_class(_PubSubPlugin, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/circleci/.cache/bazel/_bazel_circleci/e8362d362e14c7d23506d1dfa3aea8b8/sandbox/processwrapper-sandbox/2470/execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/dist/index.global.js","../../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/pubsub.ts","../../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/utils.ts","../../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/index.ts","../../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/symbols.ts","../../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/plugin.ts","../../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/handler.ts"],"names":["PubSubPlugin","splitEvent","event","split","reduce","prev","curr","index","getPubSubPlugin","player","existing","findPlugin","PubSubPluginSymbol","plugin","registerPlugin","__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","src_exports","PubSubHandlerPlugin","count","TinyPubSub","events","Map","tokens","publish","args","includes","eventKeys","forEach","deliver","subscribe","handler","uuid","has","set","handlers","unsubscribe","startsWith","path","innerPath","delete","keys","indexOf","size","token","counter","values","clear","pubsub","Symbol","for","_PubSubPlugin","config","symbol","expressionName","apply","hooks","expressionEvaluator","tap","expEvaluator","existingExpression","operators","expressions","logger","warn","addExpressionFunction","_ctx","onEnd","subscriptions","onStart","_","state","getState","status","info"],"mappings":"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","sourcesContent":["\"use strict\";\nvar PubSubPlugin = (() => {\n var __defProp = Object.defineProperty;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n };\n var __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n };\n var __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n // ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/index.ts\n var src_exports = {};\n __export(src_exports, {\n PubSubHandlerPlugin: () => PubSubHandlerPlugin,\n PubSubPlugin: () => PubSubPlugin,\n PubSubPluginSymbol: () => PubSubPluginSymbol\n });\n\n // ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/pubsub.ts\n function splitEvent(event) {\n return event.split(\".\").reduce((prev, curr, index) => {\n if (index === 0) {\n return [curr];\n }\n return [...prev, `${prev[index - 1]}.${curr}`];\n }, []);\n }\n var count = 1;\n var TinyPubSub = class {\n constructor() {\n this.events = /* @__PURE__ */ new Map();\n this.tokens = /* @__PURE__ */ new Map();\n }\n /**\n * Publish an event with any number of additional arguments\n */\n publish(event, ...args) {\n if (typeof event !== \"string\") {\n return;\n }\n if (event.includes(\".\")) {\n const eventKeys = splitEvent(event);\n eventKeys.forEach((key) => {\n this.deliver(key, event, ...args);\n });\n } else {\n this.deliver(event, event, ...args);\n }\n this.deliver(\"*\", event, ...args);\n }\n /**\n * Subscribe to an event\n *\n * Events are also heirarchical when separated by a period. Given the following:\n *\n * publish('a.b.c', 'one', 'two', 'three)\n *\n * The subscribe event will be called when the event is passed as 'a', 'a.b', or 'a.b.c'.\n *\n * @example\n * // subscribes to the top level 'a' publish\n * subscribe('a', (event, ...args) => console.log(event, ...args))\n */\n subscribe(event, handler) {\n const uuid = `uuid_${++count}`;\n if (typeof event === \"string\") {\n if (!this.events.has(event)) {\n this.events.set(event, /* @__PURE__ */ new Map());\n }\n const handlers = this.events.get(event);\n handlers.set(uuid, handler);\n this.tokens.set(uuid, event);\n }\n return uuid;\n }\n /**\n * Unsubscribes to a specific subscription given it's symbol or an entire\n * event when passed as a string.\n *\n * When existing subscriptions exist for heirarchical events such as 'a.b.c',\n * when passing an event 'a' to unsubscribe, all subscriptions for 'a', 'a.b',\n * & 'a.b.c' will be unsubscribed as well.\n */\n unsubscribe(value) {\n if (typeof value === \"string\" && value.startsWith(\"uuid\")) {\n const path = this.tokens.get(value);\n if (typeof path === \"undefined\") {\n return;\n }\n const innerPath = this.events.get(path);\n innerPath?.delete(value);\n this.tokens.delete(value);\n return;\n }\n if (typeof value === \"string\") {\n for (const key of this.events.keys()) {\n if (key.indexOf(value) === 0) {\n const tokens = this.events.get(key);\n if (tokens && tokens.size) {\n for (const token of tokens.keys()) {\n this.tokens.delete(token);\n }\n }\n this.events.delete(key);\n }\n }\n }\n }\n /**\n * Get the number of subscriptions for a specific event, or when left blank\n * will return the overall number of subscriptions for the entire pubsub.\n */\n count(event) {\n let counter = 0;\n if (typeof event === \"undefined\") {\n for (const handlers2 of this.events.values()) {\n counter += handlers2.size;\n }\n return counter;\n }\n const handlers = this.events.get(event);\n if (handlers?.size) {\n return handlers.size;\n }\n return counter;\n }\n /**\n * Deletes all existing subscriptions\n */\n clear() {\n this.events.clear();\n this.tokens.clear();\n }\n deliver(path, event, ...args) {\n const handlers = this.events.get(path);\n if (handlers && handlers.size) {\n for (const handler of handlers.values()) {\n handler(event, ...args);\n }\n }\n }\n };\n var pubsub = new TinyPubSub();\n\n // ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/symbols.ts\n var PubSubPluginSymbol = Symbol.for(\"PubSubPlugin\");\n\n // ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/plugin.ts\n var _PubSubPlugin = class _PubSubPlugin {\n constructor(config) {\n this.name = \"pub-sub\";\n this.symbol = _PubSubPlugin.Symbol;\n this.expressionName = config?.expressionName ?? \"publish\";\n this.pubsub = pubsub;\n }\n apply(player) {\n const existing = player.findPlugin(PubSubPluginSymbol);\n if (existing !== void 0) {\n this.pubsub = existing.pubsub;\n }\n player.hooks.expressionEvaluator.tap(this.name, (expEvaluator) => {\n const existingExpression = expEvaluator.operators.expressions.get(\n this.expressionName\n );\n if (existingExpression) {\n player.logger.warn(\n `[PubSubPlugin] expression ${this.expressionName} is already registered.`\n );\n } else {\n expEvaluator.addExpressionFunction(\n this.expressionName,\n (_ctx, event, ...args) => {\n if (typeof event === \"string\") {\n this.publish(event, ...args);\n }\n }\n );\n }\n });\n player.hooks.onEnd.tap(this.name, () => {\n this.clear();\n });\n }\n /**\n * A way of publishing an event, notifying any listeners\n *\n * @param event - The name of the event to publish. Can take sub-topics like: foo.bar\n * @param data - Any additional data to attach to the event\n */\n publish(event, ...args) {\n this.pubsub.publish(event, ...args);\n }\n /**\n * Subscribe to an event with the given name. The handler will get called for any published event\n *\n * @param event - The name of the event to subscribe to\n * @param handler - A function to be called when the event is triggered\n * @returns A token to be used to unsubscribe from the event\n */\n subscribe(event, handler) {\n return this.pubsub.subscribe(event, handler);\n }\n /**\n * Remove any subscriptions using the given token\n *\n * @param token - A token from a `subscribe` call\n */\n unsubscribe(token) {\n this.pubsub.unsubscribe(token);\n }\n /**\n * Remove all subscriptions\n */\n clear() {\n this.pubsub.clear();\n }\n };\n _PubSubPlugin.Symbol = PubSubPluginSymbol;\n var PubSubPlugin = _PubSubPlugin;\n\n // ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/utils.ts\n function getPubSubPlugin(player) {\n const existing = player.findPlugin(PubSubPluginSymbol);\n const plugin = existing || new PubSubPlugin();\n if (!existing) {\n player.registerPlugin(plugin);\n }\n return plugin;\n }\n\n // ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/handler.ts\n var PubSubHandlerPlugin = class {\n constructor(subscriptions) {\n this.name = \"pubsub-handler\";\n this.subscriptions = subscriptions;\n }\n apply(player) {\n const pubsub2 = getPubSubPlugin(player);\n player.hooks.onStart.tap(this.name, () => {\n this.subscriptions.forEach((handler, key) => {\n pubsub2.subscribe(key, (_, ...args) => {\n const state = player.getState();\n if (state.status === \"in-progress\") {\n return handler(state, ...args);\n }\n player.logger.info(\n `[PubSubHandlerPlugin] subscriber for ${key} was called when player was not in-progress`\n );\n });\n });\n });\n }\n };\n return __toCommonJS(src_exports);\n})();\n","/**\n * Based off the pubsub-js library and rewritten to match the same used APIs but modified so that\n * multiple arguments could be passed into the publish and subscription handlers.\n */\n\nexport type SubscribeHandler<T extends string, A extends unknown[]> = (\n type: T,\n ...args: A\n) => void;\n\nexport type PubSubUUID = `uuid_${number}`;\n\n/**\n * Split a string into an array of event layers\n */\nfunction splitEvent(event: string) {\n return event.split(\".\").reduce<string[]>((prev, curr, index) => {\n if (index === 0) {\n return [curr];\n }\n\n return [...prev, `${prev[index - 1]}.${curr}`];\n }, []);\n}\n\nlet count = 1;\n\n/**\n * Tiny pubsub maker\n */\nexport class TinyPubSub {\n private events: Map<string, Map<PubSubUUID, SubscribeHandler<any, any>>>;\n private tokens: Map<PubSubUUID, string>;\n\n constructor() {\n this.events = new Map();\n this.tokens = new Map();\n }\n\n /**\n * Publish an event with any number of additional arguments\n */\n publish(event: string, ...args: unknown[]) {\n if (typeof event !== \"string\") {\n return;\n }\n\n if (event.includes(\".\")) {\n const eventKeys = splitEvent(event);\n\n eventKeys.forEach((key) => {\n this.deliver(key, event, ...args);\n });\n } else {\n this.deliver(event, event, ...args);\n }\n\n this.deliver(\"*\", event, ...args);\n }\n\n /**\n * Subscribe to an event\n *\n * Events are also heirarchical when separated by a period. Given the following:\n *\n * publish('a.b.c', 'one', 'two', 'three)\n *\n * The subscribe event will be called when the event is passed as 'a', 'a.b', or 'a.b.c'.\n *\n * @example\n * // subscribes to the top level 'a' publish\n * subscribe('a', (event, ...args) => console.log(event, ...args))\n */\n subscribe(event: string, handler: SubscribeHandler<any, any>) {\n const uuid = `uuid_${++count}`;\n\n if (typeof event === \"string\") {\n if (!this.events.has(event)) {\n this.events.set(event, new Map());\n }\n\n const handlers = this.events.get(event);\n handlers!.set(uuid as PubSubUUID, handler);\n this.tokens.set(uuid as PubSubUUID, event);\n }\n\n return uuid;\n }\n\n /**\n * Unsubscribes to a specific subscription given it's symbol or an entire\n * event when passed as a string.\n *\n * When existing subscriptions exist for heirarchical events such as 'a.b.c',\n * when passing an event 'a' to unsubscribe, all subscriptions for 'a', 'a.b',\n * & 'a.b.c' will be unsubscribed as well.\n */\n unsubscribe(value: string | symbol) {\n if (typeof value === \"string\" && value.startsWith(\"uuid\")) {\n const path = this.tokens.get(value as PubSubUUID);\n\n if (typeof path === \"undefined\") {\n return;\n }\n\n const innerPath = this.events.get(path);\n innerPath?.delete(value as PubSubUUID);\n this.tokens.delete(value as PubSubUUID);\n return;\n }\n\n if (typeof value === \"string\") {\n for (const key of this.events.keys()) {\n if (key.indexOf(value) === 0) {\n const tokens = this.events.get(key);\n\n if (tokens && tokens.size) {\n for (const token of tokens.keys()) {\n this.tokens.delete(token);\n }\n }\n\n this.events.delete(key);\n }\n }\n }\n }\n\n /**\n * Get the number of subscriptions for a specific event, or when left blank\n * will return the overall number of subscriptions for the entire pubsub.\n */\n count(event?: string) {\n let counter = 0;\n\n if (typeof event === \"undefined\") {\n for (const handlers of this.events.values()) {\n counter += handlers.size;\n }\n\n return counter;\n }\n\n const handlers = this.events.get(event);\n\n if (handlers?.size) {\n return handlers.size;\n }\n\n return counter;\n }\n\n /**\n * Deletes all existing subscriptions\n */\n clear() {\n this.events.clear();\n this.tokens.clear();\n }\n\n private deliver(path: string, event: string, ...args: unknown[]) {\n const handlers = this.events.get(path);\n\n if (handlers && handlers.size) {\n for (const handler of handlers.values()) {\n handler(event, ...args);\n }\n }\n }\n}\n\nexport const pubsub = new TinyPubSub();\n","import type { Player } from \"@player-ui/player\";\nimport { PubSubPlugin } from \"./plugin\";\nimport { PubSubPluginSymbol } from \"./symbols\";\n\n/**\n * Returns the existing PubSubPlugin or creates and registers a new plugin\n */\nexport function getPubSubPlugin(player: Player) {\n const existing = player.findPlugin<PubSubPlugin>(PubSubPluginSymbol);\n const plugin = existing || new PubSubPlugin();\n\n if (!existing) {\n player.registerPlugin(plugin);\n }\n\n return plugin;\n}\n","export * from \"./plugin\";\nexport * from \"./symbols\";\nexport * from \"./handler\";\n","export const PubSubPluginSymbol = Symbol.for(\"PubSubPlugin\");\n","import type {\n Player,\n PlayerPlugin,\n ExpressionContext,\n} from \"@player-ui/player\";\nimport type { SubscribeHandler, TinyPubSub } from \"./pubsub\";\nimport { pubsub } from \"./pubsub\";\nimport { PubSubPluginSymbol } from \"./symbols\";\n\nexport interface PubSubConfig {\n /** A custom expression name to register */\n expressionName: string;\n}\n\n/**\n * The PubSubPlugin is a great way to enable your FRF content to publish events back to your app\n * It injects a publish() function into the expression language, and will forward all events back to any subscribers.\n *\n * Published/Subscribed events support a hierarchy:\n * - publish('foo', 'data') -- will trigger any listeners for 'foo'\n * - publish('foo.bar', 'data') -- will trigger any listeners for 'foo' or 'foo.bar'\n *\n */\nexport class PubSubPlugin implements PlayerPlugin {\n name = \"pub-sub\";\n\n static Symbol = PubSubPluginSymbol;\n public readonly symbol = PubSubPlugin.Symbol;\n\n protected pubsub: TinyPubSub;\n\n private expressionName: string;\n\n constructor(config?: PubSubConfig) {\n this.expressionName = config?.expressionName ?? \"publish\";\n this.pubsub = pubsub;\n }\n\n apply(player: Player) {\n // if there is already a pubsub plugin, reuse its pubsub instance\n // to maintain the singleton across bundles for iOS/Android\n const existing = player.findPlugin<PubSubPlugin>(PubSubPluginSymbol);\n if (existing !== undefined) {\n this.pubsub = existing.pubsub;\n }\n\n player.hooks.expressionEvaluator.tap(this.name, (expEvaluator) => {\n const existingExpression = expEvaluator.operators.expressions.get(\n this.expressionName,\n );\n\n if (existingExpression) {\n player.logger.warn(\n `[PubSubPlugin] expression ${this.expressionName} is already registered.`,\n );\n } else {\n expEvaluator.addExpressionFunction(\n this.expressionName,\n (_ctx: ExpressionContext, event: unknown, ...args: unknown[]) => {\n if (typeof event === \"string\") {\n this.publish(event, ...args);\n }\n },\n );\n }\n });\n\n player.hooks.onEnd.tap(this.name, () => {\n this.clear();\n });\n }\n\n /**\n * A way of publishing an event, notifying any listeners\n *\n * @param event - The name of the event to publish. Can take sub-topics like: foo.bar\n * @param data - Any additional data to attach to the event\n */\n publish(event: string, ...args: unknown[]) {\n this.pubsub.publish(event, ...args);\n }\n\n /**\n * Subscribe to an event with the given name. The handler will get called for any published event\n *\n * @param event - The name of the event to subscribe to\n * @param handler - A function to be called when the event is triggered\n * @returns A token to be used to unsubscribe from the event\n */\n subscribe<T extends string, A extends unknown[]>(\n event: T,\n handler: SubscribeHandler<T, A>,\n ) {\n return this.pubsub.subscribe(event, handler);\n }\n\n /**\n * Remove any subscriptions using the given token\n *\n * @param token - A token from a `subscribe` call\n */\n unsubscribe(token: string) {\n this.pubsub.unsubscribe(token);\n }\n\n /**\n * Remove all subscriptions\n */\n clear() {\n this.pubsub.clear();\n }\n}\n","import type { Player, PlayerPlugin, InProgressState } from \"@player-ui/player\";\nimport { getPubSubPlugin } from \"./utils\";\n\nexport type PubSubHandler<T extends unknown[]> = (\n context: InProgressState,\n ...args: T\n) => void;\n\nexport type SubscriptionMap = Map<string, PubSubHandler<any>>;\n\n/**\n * Plugin to easily add subscribers to the PubSubPlugin\n */\nexport class PubSubHandlerPlugin implements PlayerPlugin {\n name = \"pubsub-handler\";\n private subscriptions: SubscriptionMap;\n\n constructor(subscriptions: SubscriptionMap) {\n this.subscriptions = subscriptions;\n }\n\n apply(player: Player) {\n const pubsub = getPubSubPlugin(player);\n\n player.hooks.onStart.tap(this.name, () => {\n this.subscriptions.forEach((handler, key) => {\n pubsub.subscribe(key, (_, ...args) => {\n const state = player.getState();\n\n if (state.status === \"in-progress\") {\n return handler(state, ...args);\n }\n\n player.logger.info(\n `[PubSubHandlerPlugin] subscriber for ${key} was called when player was not in-progress`,\n );\n });\n });\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/circleci/.cache/bazel/_bazel_circleci/e8362d362e14c7d23506d1dfa3aea8b8/sandbox/processwrapper-sandbox/2530/execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/dist/index.global.js","../../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/pubsub.ts","../../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/utils.ts","../../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/index.ts","../../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/symbols.ts","../../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/plugin.ts","../../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/handler.ts"],"names":["PubSubPlugin","splitEvent","event","split","reduce","prev","curr","index","getPubSubPlugin","player","existing","findPlugin","PubSubPluginSymbol","plugin","registerPlugin","__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","src_exports","PubSubHandlerPlugin","count","TinyPubSub","events","Map","tokens","publish","args","includes","eventKeys","forEach","deliver","subscribe","handler","uuid","has","set","handlers","unsubscribe","startsWith","path","innerPath","delete","keys","indexOf","size","token","counter","values","clear","pubsub","Symbol","for","_PubSubPlugin","config","symbol","expressionName","apply","hooks","expressionEvaluator","tap","expEvaluator","existingExpression","operators","expressions","logger","warn","addExpressionFunction","_ctx","onEnd","subscriptions","onStart","_","state","getState","status","info"],"mappings":"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","sourcesContent":["\"use strict\";\nvar PubSubPlugin = (() => {\n var __defProp = Object.defineProperty;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n };\n var __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n };\n var __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n // ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/index.ts\n var src_exports = {};\n __export(src_exports, {\n PubSubHandlerPlugin: () => PubSubHandlerPlugin,\n PubSubPlugin: () => PubSubPlugin,\n PubSubPluginSymbol: () => PubSubPluginSymbol\n });\n\n // ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/pubsub.ts\n function splitEvent(event) {\n return event.split(\".\").reduce((prev, curr, index) => {\n if (index === 0) {\n return [curr];\n }\n return [...prev, `${prev[index - 1]}.${curr}`];\n }, []);\n }\n var count = 1;\n var TinyPubSub = class {\n constructor() {\n this.events = /* @__PURE__ */ new Map();\n this.tokens = /* @__PURE__ */ new Map();\n }\n /**\n * Publish an event with any number of additional arguments\n */\n publish(event, ...args) {\n if (typeof event !== \"string\") {\n return;\n }\n if (event.includes(\".\")) {\n const eventKeys = splitEvent(event);\n eventKeys.forEach((key) => {\n this.deliver(key, event, ...args);\n });\n } else {\n this.deliver(event, event, ...args);\n }\n this.deliver(\"*\", event, ...args);\n }\n /**\n * Subscribe to an event\n *\n * Events are also heirarchical when separated by a period. Given the following:\n *\n * publish('a.b.c', 'one', 'two', 'three)\n *\n * The subscribe event will be called when the event is passed as 'a', 'a.b', or 'a.b.c'.\n *\n * @example\n * // subscribes to the top level 'a' publish\n * subscribe('a', (event, ...args) => console.log(event, ...args))\n */\n subscribe(event, handler) {\n const uuid = `uuid_${++count}`;\n if (typeof event === \"string\") {\n if (!this.events.has(event)) {\n this.events.set(event, /* @__PURE__ */ new Map());\n }\n const handlers = this.events.get(event);\n handlers.set(uuid, handler);\n this.tokens.set(uuid, event);\n }\n return uuid;\n }\n /**\n * Unsubscribes to a specific subscription given it's symbol or an entire\n * event when passed as a string.\n *\n * When existing subscriptions exist for heirarchical events such as 'a.b.c',\n * when passing an event 'a' to unsubscribe, all subscriptions for 'a', 'a.b',\n * & 'a.b.c' will be unsubscribed as well.\n */\n unsubscribe(value) {\n if (typeof value === \"string\" && value.startsWith(\"uuid\")) {\n const path = this.tokens.get(value);\n if (typeof path === \"undefined\") {\n return;\n }\n const innerPath = this.events.get(path);\n innerPath?.delete(value);\n this.tokens.delete(value);\n return;\n }\n if (typeof value === \"string\") {\n for (const key of this.events.keys()) {\n if (key.indexOf(value) === 0) {\n const tokens = this.events.get(key);\n if (tokens && tokens.size) {\n for (const token of tokens.keys()) {\n this.tokens.delete(token);\n }\n }\n this.events.delete(key);\n }\n }\n }\n }\n /**\n * Get the number of subscriptions for a specific event, or when left blank\n * will return the overall number of subscriptions for the entire pubsub.\n */\n count(event) {\n let counter = 0;\n if (typeof event === \"undefined\") {\n for (const handlers2 of this.events.values()) {\n counter += handlers2.size;\n }\n return counter;\n }\n const handlers = this.events.get(event);\n if (handlers?.size) {\n return handlers.size;\n }\n return counter;\n }\n /**\n * Deletes all existing subscriptions\n */\n clear() {\n this.events.clear();\n this.tokens.clear();\n }\n deliver(path, event, ...args) {\n const handlers = this.events.get(path);\n if (handlers && handlers.size) {\n for (const handler of handlers.values()) {\n handler(event, ...args);\n }\n }\n }\n };\n var pubsub = new TinyPubSub();\n\n // ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/symbols.ts\n var PubSubPluginSymbol = Symbol.for(\"PubSubPlugin\");\n\n // ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/plugin.ts\n var _PubSubPlugin = class _PubSubPlugin {\n constructor(config) {\n this.name = \"pub-sub\";\n this.symbol = _PubSubPlugin.Symbol;\n this.expressionName = config?.expressionName ?? \"publish\";\n this.pubsub = pubsub;\n }\n apply(player) {\n const existing = player.findPlugin(PubSubPluginSymbol);\n if (existing !== void 0) {\n this.pubsub = existing.pubsub;\n }\n player.hooks.expressionEvaluator.tap(this.name, (expEvaluator) => {\n const existingExpression = expEvaluator.operators.expressions.get(\n this.expressionName\n );\n if (existingExpression) {\n player.logger.warn(\n `[PubSubPlugin] expression ${this.expressionName} is already registered.`\n );\n } else {\n expEvaluator.addExpressionFunction(\n this.expressionName,\n (_ctx, event, ...args) => {\n if (typeof event === \"string\") {\n this.publish(event, ...args);\n }\n }\n );\n }\n });\n player.hooks.onEnd.tap(this.name, () => {\n this.clear();\n });\n }\n /**\n * A way of publishing an event, notifying any listeners\n *\n * @param event - The name of the event to publish. Can take sub-topics like: foo.bar\n * @param data - Any additional data to attach to the event\n */\n publish(event, ...args) {\n this.pubsub.publish(event, ...args);\n }\n /**\n * Subscribe to an event with the given name. The handler will get called for any published event\n *\n * @param event - The name of the event to subscribe to\n * @param handler - A function to be called when the event is triggered\n * @returns A token to be used to unsubscribe from the event\n */\n subscribe(event, handler) {\n return this.pubsub.subscribe(event, handler);\n }\n /**\n * Remove any subscriptions using the given token\n *\n * @param token - A token from a `subscribe` call\n */\n unsubscribe(token) {\n this.pubsub.unsubscribe(token);\n }\n /**\n * Remove all subscriptions\n */\n clear() {\n this.pubsub.clear();\n }\n };\n _PubSubPlugin.Symbol = PubSubPluginSymbol;\n var PubSubPlugin = _PubSubPlugin;\n\n // ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/utils.ts\n function getPubSubPlugin(player) {\n const existing = player.findPlugin(PubSubPluginSymbol);\n const plugin = existing || new PubSubPlugin();\n if (!existing) {\n player.registerPlugin(plugin);\n }\n return plugin;\n }\n\n // ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/pubsub/core/src/handler.ts\n var PubSubHandlerPlugin = class {\n constructor(subscriptions) {\n this.name = \"pubsub-handler\";\n this.subscriptions = subscriptions;\n }\n apply(player) {\n const pubsub2 = getPubSubPlugin(player);\n player.hooks.onStart.tap(this.name, () => {\n this.subscriptions.forEach((handler, key) => {\n pubsub2.subscribe(key, (_, ...args) => {\n const state = player.getState();\n if (state.status === \"in-progress\") {\n return handler(state, ...args);\n }\n player.logger.info(\n `[PubSubHandlerPlugin] subscriber for ${key} was called when player was not in-progress`\n );\n });\n });\n });\n }\n };\n return __toCommonJS(src_exports);\n})();\n","/**\n * Based off the pubsub-js library and rewritten to match the same used APIs but modified so that\n * multiple arguments could be passed into the publish and subscription handlers.\n */\n\nexport type SubscribeHandler<T extends string, A extends unknown[]> = (\n type: T,\n ...args: A\n) => void;\n\nexport type PubSubUUID = `uuid_${number}`;\n\n/**\n * Split a string into an array of event layers\n */\nfunction splitEvent(event: string) {\n return event.split(\".\").reduce<string[]>((prev, curr, index) => {\n if (index === 0) {\n return [curr];\n }\n\n return [...prev, `${prev[index - 1]}.${curr}`];\n }, []);\n}\n\nlet count = 1;\n\n/**\n * Tiny pubsub maker\n */\nexport class TinyPubSub {\n private events: Map<string, Map<PubSubUUID, SubscribeHandler<any, any>>>;\n private tokens: Map<PubSubUUID, string>;\n\n constructor() {\n this.events = new Map();\n this.tokens = new Map();\n }\n\n /**\n * Publish an event with any number of additional arguments\n */\n publish(event: string, ...args: unknown[]) {\n if (typeof event !== \"string\") {\n return;\n }\n\n if (event.includes(\".\")) {\n const eventKeys = splitEvent(event);\n\n eventKeys.forEach((key) => {\n this.deliver(key, event, ...args);\n });\n } else {\n this.deliver(event, event, ...args);\n }\n\n this.deliver(\"*\", event, ...args);\n }\n\n /**\n * Subscribe to an event\n *\n * Events are also heirarchical when separated by a period. Given the following:\n *\n * publish('a.b.c', 'one', 'two', 'three)\n *\n * The subscribe event will be called when the event is passed as 'a', 'a.b', or 'a.b.c'.\n *\n * @example\n * // subscribes to the top level 'a' publish\n * subscribe('a', (event, ...args) => console.log(event, ...args))\n */\n subscribe(event: string, handler: SubscribeHandler<any, any>) {\n const uuid = `uuid_${++count}`;\n\n if (typeof event === \"string\") {\n if (!this.events.has(event)) {\n this.events.set(event, new Map());\n }\n\n const handlers = this.events.get(event);\n handlers!.set(uuid as PubSubUUID, handler);\n this.tokens.set(uuid as PubSubUUID, event);\n }\n\n return uuid;\n }\n\n /**\n * Unsubscribes to a specific subscription given it's symbol or an entire\n * event when passed as a string.\n *\n * When existing subscriptions exist for heirarchical events such as 'a.b.c',\n * when passing an event 'a' to unsubscribe, all subscriptions for 'a', 'a.b',\n * & 'a.b.c' will be unsubscribed as well.\n */\n unsubscribe(value: string | symbol) {\n if (typeof value === \"string\" && value.startsWith(\"uuid\")) {\n const path = this.tokens.get(value as PubSubUUID);\n\n if (typeof path === \"undefined\") {\n return;\n }\n\n const innerPath = this.events.get(path);\n innerPath?.delete(value as PubSubUUID);\n this.tokens.delete(value as PubSubUUID);\n return;\n }\n\n if (typeof value === \"string\") {\n for (const key of this.events.keys()) {\n if (key.indexOf(value) === 0) {\n const tokens = this.events.get(key);\n\n if (tokens && tokens.size) {\n for (const token of tokens.keys()) {\n this.tokens.delete(token);\n }\n }\n\n this.events.delete(key);\n }\n }\n }\n }\n\n /**\n * Get the number of subscriptions for a specific event, or when left blank\n * will return the overall number of subscriptions for the entire pubsub.\n */\n count(event?: string) {\n let counter = 0;\n\n if (typeof event === \"undefined\") {\n for (const handlers of this.events.values()) {\n counter += handlers.size;\n }\n\n return counter;\n }\n\n const handlers = this.events.get(event);\n\n if (handlers?.size) {\n return handlers.size;\n }\n\n return counter;\n }\n\n /**\n * Deletes all existing subscriptions\n */\n clear() {\n this.events.clear();\n this.tokens.clear();\n }\n\n private deliver(path: string, event: string, ...args: unknown[]) {\n const handlers = this.events.get(path);\n\n if (handlers && handlers.size) {\n for (const handler of handlers.values()) {\n handler(event, ...args);\n }\n }\n }\n}\n\nexport const pubsub = new TinyPubSub();\n","import type { Player } from \"@player-ui/player\";\nimport { PubSubPlugin } from \"./plugin\";\nimport { PubSubPluginSymbol } from \"./symbols\";\n\n/**\n * Returns the existing PubSubPlugin or creates and registers a new plugin\n */\nexport function getPubSubPlugin(player: Player) {\n const existing = player.findPlugin<PubSubPlugin>(PubSubPluginSymbol);\n const plugin = existing || new PubSubPlugin();\n\n if (!existing) {\n player.registerPlugin(plugin);\n }\n\n return plugin;\n}\n","export * from \"./plugin\";\nexport * from \"./symbols\";\nexport * from \"./handler\";\n","export const PubSubPluginSymbol = Symbol.for(\"PubSubPlugin\");\n","import type {\n Player,\n PlayerPlugin,\n ExpressionContext,\n} from \"@player-ui/player\";\nimport type { SubscribeHandler, TinyPubSub } from \"./pubsub\";\nimport { pubsub } from \"./pubsub\";\nimport { PubSubPluginSymbol } from \"./symbols\";\n\nexport interface PubSubConfig {\n /** A custom expression name to register */\n expressionName: string;\n}\n\n/**\n * The PubSubPlugin is a great way to enable your FRF content to publish events back to your app\n * It injects a publish() function into the expression language, and will forward all events back to any subscribers.\n *\n * Published/Subscribed events support a hierarchy:\n * - publish('foo', 'data') -- will trigger any listeners for 'foo'\n * - publish('foo.bar', 'data') -- will trigger any listeners for 'foo' or 'foo.bar'\n *\n */\nexport class PubSubPlugin implements PlayerPlugin {\n name = \"pub-sub\";\n\n static Symbol = PubSubPluginSymbol;\n public readonly symbol = PubSubPlugin.Symbol;\n\n protected pubsub: TinyPubSub;\n\n private expressionName: string;\n\n constructor(config?: PubSubConfig) {\n this.expressionName = config?.expressionName ?? \"publish\";\n this.pubsub = pubsub;\n }\n\n apply(player: Player) {\n // if there is already a pubsub plugin, reuse its pubsub instance\n // to maintain the singleton across bundles for iOS/Android\n const existing = player.findPlugin<PubSubPlugin>(PubSubPluginSymbol);\n if (existing !== undefined) {\n this.pubsub = existing.pubsub;\n }\n\n player.hooks.expressionEvaluator.tap(this.name, (expEvaluator) => {\n const existingExpression = expEvaluator.operators.expressions.get(\n this.expressionName,\n );\n\n if (existingExpression) {\n player.logger.warn(\n `[PubSubPlugin] expression ${this.expressionName} is already registered.`,\n );\n } else {\n expEvaluator.addExpressionFunction(\n this.expressionName,\n (_ctx: ExpressionContext, event: unknown, ...args: unknown[]) => {\n if (typeof event === \"string\") {\n this.publish(event, ...args);\n }\n },\n );\n }\n });\n\n player.hooks.onEnd.tap(this.name, () => {\n this.clear();\n });\n }\n\n /**\n * A way of publishing an event, notifying any listeners\n *\n * @param event - The name of the event to publish. Can take sub-topics like: foo.bar\n * @param data - Any additional data to attach to the event\n */\n publish(event: string, ...args: unknown[]) {\n this.pubsub.publish(event, ...args);\n }\n\n /**\n * Subscribe to an event with the given name. The handler will get called for any published event\n *\n * @param event - The name of the event to subscribe to\n * @param handler - A function to be called when the event is triggered\n * @returns A token to be used to unsubscribe from the event\n */\n subscribe<T extends string, A extends unknown[]>(\n event: T,\n handler: SubscribeHandler<T, A>,\n ) {\n return this.pubsub.subscribe(event, handler);\n }\n\n /**\n * Remove any subscriptions using the given token\n *\n * @param token - A token from a `subscribe` call\n */\n unsubscribe(token: string) {\n this.pubsub.unsubscribe(token);\n }\n\n /**\n * Remove all subscriptions\n */\n clear() {\n this.pubsub.clear();\n }\n}\n","import type { Player, PlayerPlugin, InProgressState } from \"@player-ui/player\";\nimport { getPubSubPlugin } from \"./utils\";\n\nexport type PubSubHandler<T extends unknown[]> = (\n context: InProgressState,\n ...args: T\n) => void;\n\nexport type SubscriptionMap = Map<string, PubSubHandler<any>>;\n\n/**\n * Plugin to easily add subscribers to the PubSubPlugin\n */\nexport class PubSubHandlerPlugin implements PlayerPlugin {\n name = \"pubsub-handler\";\n private subscriptions: SubscriptionMap;\n\n constructor(subscriptions: SubscriptionMap) {\n this.subscriptions = subscriptions;\n }\n\n apply(player: Player) {\n const pubsub = getPubSubPlugin(player);\n\n player.hooks.onStart.tap(this.name, () => {\n this.subscriptions.forEach((handler, key) => {\n pubsub.subscribe(key, (_, ...args) => {\n const state = player.getState();\n\n if (state.status === \"in-progress\") {\n return handler(state, ...args);\n }\n\n player.logger.info(\n `[PubSubHandlerPlugin] subscriber for ${key} was called when player was not in-progress`,\n );\n });\n });\n });\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
"types"
|
|
7
7
|
],
|
|
8
8
|
"name": "@player-ui/pubsub-plugin",
|
|
9
|
-
"version": "0.15.3-next.
|
|
9
|
+
"version": "0.15.3-next.2",
|
|
10
10
|
"main": "dist/cjs/index.cjs",
|
|
11
11
|
"peerDependencies": {
|
|
12
|
-
"@player-ui/player": "0.15.3-next.
|
|
12
|
+
"@player-ui/player": "0.15.3-next.2"
|
|
13
13
|
},
|
|
14
14
|
"module": "dist/index.legacy-esm.js",
|
|
15
15
|
"types": "types/index.d.ts",
|