adnbn 0.2.1 → 0.2.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/dist/{AbstractBuilder-CKgY_Bta.d.ts → AbstractBuilder-BN4TmNJG.d.ts} +3 -3
- package/dist/{AbstractBuilder-Ce5zNRXr.d.mts → AbstractBuilder-C81kWZzQ.d.mts} +3 -3
- package/dist/{BaseTransport-C7uEgfUu.d.mts → BaseTransport-DNZ28gFF.d.mts} +1 -1
- package/dist/{BaseTransport-BdFTZfP0.d.ts → BaseTransport-Ecy2Kzti.d.ts} +1 -1
- package/dist/{Builder-FwJAxWos.d.ts → Builder-BOLvGGqp.d.ts} +2 -2
- package/dist/{Builder-rW3fzusy.d.mts → Builder-BP8SDHO1.d.mts} +2 -2
- package/dist/{Builder-7pbnGvHK.d.ts → Builder-Bc8US0PY.d.ts} +1 -1
- package/dist/{Builder-CCyBD4hF.d.mts → Builder-Df1LUO_f.d.mts} +1 -1
- package/dist/{Message-1cYgMdsu.d.mts → Message-Bnritk3D.d.mts} +1 -1
- package/dist/{Message-DAhczRx9.d.ts → Message-DFDaS7mV.d.ts} +1 -1
- package/dist/{MountBuilder-DjnAmTI0.d.ts → MountBuilder-BTltgVF2.d.mts} +26 -7
- package/dist/{MountBuilder-CjvMOcmn.d.mts → MountBuilder-C9Q-7PeI.d.ts} +26 -7
- package/dist/{ProxyRelay-Ce-szh9p.d.ts → ProxyRelay-DDOSZE3h.d.ts} +3 -3
- package/dist/{ProxyRelay-BOBEhRET.d.mts → ProxyRelay-Uel0ATcx.d.mts} +3 -3
- package/dist/{ProxyTransport-BTVUbDxE.d.mts → ProxyTransport-35rU8xqa.d.mts} +3 -3
- package/dist/{ProxyTransport-BW63K6SU.d.ts → ProxyTransport-D4jv5SFh.d.ts} +3 -3
- package/dist/{RegisterOffscreen-BukckdvS.d.mts → RegisterOffscreen-DT0gN5xN.d.mts} +2 -2
- package/dist/{RegisterOffscreen-DmlpLqjW.d.ts → RegisterOffscreen-df3W5HqA.d.ts} +2 -2
- package/dist/{RegisterRelay-MEVSR1sP.d.mts → RegisterRelay-DCVZ2_NI.d.mts} +2 -2
- package/dist/{RegisterRelay-BaIET78I.d.ts → RegisterRelay-PFT2ac4v.d.ts} +2 -2
- package/dist/{TransportMessage-Bk0wg4rF.d.mts → TransportMessage-CIKrv3DG.d.mts} +8 -4
- package/dist/{TransportMessage-BqMzXWZR.d.ts → TransportMessage-CsObvTPq.d.ts} +8 -4
- package/dist/{background-Zjiqg60g.d.ts → background-CpVjDFHQ.d.ts} +1 -1
- package/dist/{background-CyGGjmBx.d.mts → background-cxLBji1Q.d.mts} +1 -1
- package/dist/cli/index.cjs +46 -15
- package/dist/cli/index.cjs.map +1 -1
- package/dist/{command-BFsdm7Bx.d.mts → command-S2dcqx6Q.d.mts} +4 -3
- package/dist/{command-3i_5d__K.d.ts → command-TJ2JUrVd.d.ts} +4 -3
- package/dist/{content-sdYF4W-A.d.ts → content-B0znLIjr.d.ts} +37 -4
- package/dist/{content-BYoXVO6V.d.mts → content-DrrPH4ri.d.mts} +37 -4
- package/dist/entry/background/index.d.mts +2 -2
- package/dist/entry/background/index.d.ts +2 -2
- package/dist/entry/command/index.d.mts +3 -3
- package/dist/entry/command/index.d.ts +3 -3
- package/dist/entry/content/index.d.mts +2 -2
- package/dist/entry/content/index.d.ts +2 -2
- package/dist/entry/content/react/index.cjs +104 -18
- package/dist/entry/content/react/index.cjs.map +1 -1
- package/dist/entry/content/react/index.d.mts +4 -4
- package/dist/entry/content/react/index.d.ts +4 -4
- package/dist/entry/content/react/index.js +104 -18
- package/dist/entry/content/react/index.js.map +1 -1
- package/dist/entry/content/vanilla/index.cjs +108 -18
- package/dist/entry/content/vanilla/index.cjs.map +1 -1
- package/dist/entry/content/vanilla/index.d.mts +4 -4
- package/dist/entry/content/vanilla/index.d.ts +4 -4
- package/dist/entry/content/vanilla/index.js +108 -18
- package/dist/entry/content/vanilla/index.js.map +1 -1
- package/dist/entry/offscreen/index.cjs +27 -4
- package/dist/entry/offscreen/index.cjs.map +1 -1
- package/dist/entry/offscreen/index.d.mts +11 -9
- package/dist/entry/offscreen/index.d.ts +11 -9
- package/dist/entry/offscreen/index.js +27 -4
- package/dist/entry/offscreen/index.js.map +1 -1
- package/dist/entry/relay/index.d.mts +9 -8
- package/dist/entry/relay/index.d.ts +9 -8
- package/dist/entry/service/index.cjs +31 -10
- package/dist/entry/service/index.cjs.map +1 -1
- package/dist/entry/service/index.d.mts +5 -4
- package/dist/entry/service/index.d.ts +5 -4
- package/dist/entry/service/index.js +31 -10
- package/dist/entry/service/index.js.map +1 -1
- package/dist/entry/transport/index.d.mts +8 -7
- package/dist/entry/transport/index.d.ts +8 -7
- package/dist/entry/view/index.d.mts +2 -2
- package/dist/entry/view/index.d.ts +2 -2
- package/dist/entry/view/react/index.d.mts +4 -4
- package/dist/entry/view/react/index.d.ts +4 -4
- package/dist/entry/view/vanilla/index.d.mts +4 -4
- package/dist/entry/view/vanilla/index.d.ts +4 -4
- package/dist/{helpers-DnV3N7fU.d.mts → helpers-YDFORuZz.d.mts} +2 -2
- package/dist/{helpers-DnV3N7fU.d.ts → helpers-YDFORuZz.d.ts} +2 -2
- package/dist/index.cjs +11 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +63 -22
- package/dist/index.d.ts +63 -22
- package/dist/index.js +11 -2
- package/dist/index.js.map +1 -1
- package/dist/message/index.cjs.map +1 -1
- package/dist/message/index.d.mts +4 -3
- package/dist/message/index.d.ts +4 -3
- package/dist/message/index.js.map +1 -1
- package/dist/message/react/index.cjs.map +1 -1
- package/dist/message/react/index.d.mts +1 -1
- package/dist/message/react/index.d.ts +1 -1
- package/dist/message/react/index.js.map +1 -1
- package/dist/{message-55r-wFjc.d.mts → message-jsmkeGHC.d.mts} +5 -1
- package/dist/{message-55r-wFjc.d.ts → message-jsmkeGHC.d.ts} +5 -1
- package/dist/offscreen/index.cjs +30 -5
- package/dist/offscreen/index.cjs.map +1 -1
- package/dist/offscreen/index.d.mts +10 -9
- package/dist/offscreen/index.d.ts +10 -9
- package/dist/offscreen/index.js +30 -5
- package/dist/offscreen/index.js.map +1 -1
- package/dist/{offscreen-B9GiglgN.d.mts → offscreen-2EP-rRfx.d.mts} +3 -3
- package/dist/{offscreen-BG5Abe8V.d.ts → offscreen-aHdkogKj.d.ts} +3 -3
- package/dist/relay/index.d.mts +8 -7
- package/dist/relay/index.d.ts +8 -7
- package/dist/{relay-DymeeDe7.d.ts → relay-DT46Ltms.d.ts} +3 -3
- package/dist/{relay-BYeTCwKO.d.mts → relay-vaJ5R2iC.d.mts} +3 -3
- package/dist/service/index.cjs +27 -4
- package/dist/service/index.cjs.map +1 -1
- package/dist/service/index.d.mts +8 -6
- package/dist/service/index.d.ts +8 -6
- package/dist/service/index.js +27 -4
- package/dist/service/index.js.map +1 -1
- package/dist/{service-BhJhIk-O.d.ts → service-6FdoYGNC.d.ts} +3 -3
- package/dist/{service-DsivypLQ.d.mts → service-C9HbDQPE.d.mts} +3 -3
- package/dist/{transport-B_uYwoGi.d.mts → transport-BrbirhXv.d.mts} +3 -2
- package/dist/{transport-BPmSUoEU.d.ts → transport-Co9Oxp0-.d.ts} +3 -2
- package/dist/{view-QDP2Maev.d.mts → view-Bs26Jcvi.d.mts} +1 -1
- package/dist/{view-D4dquvKl.d.ts → view-u9w7nMgw.d.ts} +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/entry/core/Builder.ts","../../../../src/entry/content/core/resolvers/mount.ts","../../../../src/entry/content/core/resolvers/anchor.ts","../../../../src/entry/content/core/resolvers/render.ts","../../../../src/entry/content/core/resolvers/container.ts","../../../../src/entry/content/core/resolvers/watch.ts","../../../../src/entry/content/core/Context.ts","../../../../src/entry/content/core/ManagedContext.ts","../../../../src/entry/content/core/Builder.ts","../../../../src/entry/content/core/Node.ts","../../../../src/entry/content/core/MountNode.ts","../../../../src/entry/content/core/MountBuilder.ts","../../../../src/entry/content/react/Node.ts","../../../../src/entry/content/react/resolvers/render.ts","../../../../src/entry/content/react/Builder.ts","../../../../src/entry/content/react/index.ts"],"names":["customAlphabet","debounce","Builder_default","Node_default","createRoot","createElement","isValidElement"],"mappings":"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","file":"index.cjs","sourcesContent":["import {EntrypointBuilder, EntrypointConstructorParameter} from \"@typing/entrypoint\";\n\nexport default abstract class implements EntrypointBuilder {\n public abstract build(): Promise<void>;\n\n public abstract destroy(): Promise<void>;\n\n public static resolver<T extends new (definition: any) => EntrypointBuilder>(this: T) {\n return (definition: EntrypointConstructorParameter<T>): void => {\n new this(definition).build().catch(e => {\n console.error(\"Failed to build entrypoint:\", e);\n });\n };\n }\n}\n","import {ContentScriptAppend, ContentScriptMountFunction} from \"@typing/content\";\n\n// prettier-ignore\nexport const contentScriptMountAppendResolver =\n (append?: ContentScriptAppend): ContentScriptMountFunction =>\n (anchor: Element, container: Element): void => {\n switch (append) {\n case ContentScriptAppend.Last:\n anchor.append(container);\n break;\n default:\n case undefined:\n case ContentScriptAppend.First:\n anchor.prepend(container);\n break;\n case ContentScriptAppend.Replace:\n anchor.replaceWith(container);\n break;\n case ContentScriptAppend.After:\n anchor.parentElement?.insertBefore(container, anchor.nextElementSibling);\n break;\n case ContentScriptAppend.Before:\n anchor.parentElement?.insertBefore(container, anchor);\n break;\n }\n };\n","import {customAlphabet} from \"nanoid\";\n\nimport {ContentScriptAnchor, ContentScriptAnchorGetter, ContentScriptAnchorResolver} from \"@typing/content\";\n\nconst generateId = customAlphabet(\"abcdefghijklmnopqrstuvwxyz\", 7);\n\nexport const contentScriptAnchorAttribute = `data-${generateId()}`;\n\n// prettier-ignore\nexport const contentScriptAnchorResolver =\n (anchor?: ContentScriptAnchor | ContentScriptAnchorGetter): ContentScriptAnchorResolver =>\n async (): Promise<Element[]> => {\n const attr = contentScriptAnchorAttribute;\n\n let resolved = typeof anchor === \"function\" ? anchor() : anchor;\n\n if (resolved instanceof Promise) {\n resolved = await resolved;\n }\n\n if (resolved === undefined || resolved === null) {\n resolved = document.body;\n }\n\n const elements: Element[] = [];\n\n if (resolved instanceof Element) {\n if (!resolved.hasAttribute(attr)) {\n elements.push(resolved);\n }\n } else if (typeof resolved === \"string\") {\n if (resolved.startsWith(\"/\")) {\n const notRegex = /not\\(\\s*[^)]+\\s*\\)/;\n const condition = `not(@${attr})`;\n\n if (notRegex.test(resolved)) {\n resolved = `(${resolved})[${condition}]`;\n }\n\n const result = document.evaluate(\n resolved,\n document,\n null,\n XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,\n null\n );\n\n for (let i = 0; i < result.snapshotLength; i++) {\n elements.push(result.snapshotItem(i) as Element);\n }\n } else {\n resolved += `:not([${attr}])`;\n\n elements.push(...Array.from(document.querySelectorAll(resolved)));\n }\n }\n\n return elements;\n };\n","import {ContentScriptRenderHandler, ContentScriptRenderValue} from \"@typing/content\";\n\nexport const isValidContentScriptRenderValue = (value: unknown): value is string | number | Element => {\n return (typeof value === \"string\" && value.length > 0) || typeof value === \"number\" || value instanceof Element;\n};\n\n// prettier-ignore\nexport const contentScriptRenderResolver =\n (render?: ContentScriptRenderValue | ContentScriptRenderHandler): ContentScriptRenderHandler =>\n async (props): Promise<undefined | ContentScriptRenderValue> => {\n let resolvedRender = typeof render === \"function\" ? render(props) : render;\n\n if (resolvedRender instanceof Promise) {\n resolvedRender = await resolvedRender;\n }\n\n if (resolvedRender !== true && !isValidContentScriptRenderValue(resolvedRender)) {\n return;\n }\n\n return resolvedRender;\n };\n","import {\n ContentScriptContainerCreator,\n ContentScriptContainerFactory,\n ContentScriptContainerOptions,\n ContentScriptContainerTag,\n ContentScriptProps,\n} from \"@typing/content\";\n\nexport const contentScriptContainerResolver =\n (\n container?: ContentScriptContainerTag | ContentScriptContainerOptions | ContentScriptContainerFactory\n ): ContentScriptContainerCreator =>\n async (props: ContentScriptProps): Promise<Element> => {\n let resolvedContainer = typeof container === \"function\" ? container(props) : container;\n\n if (resolvedContainer instanceof Promise) {\n resolvedContainer = await resolvedContainer;\n }\n\n if (resolvedContainer === undefined || typeof resolvedContainer === \"string\") {\n resolvedContainer = document.createElement(resolvedContainer || \"div\");\n } else if (typeof resolvedContainer === \"object\" && resolvedContainer.constructor === Object) {\n const {tagName = \"div\", ...options} = resolvedContainer as ContentScriptContainerOptions;\n\n resolvedContainer = document.createElement(tagName);\n\n Object.assign(resolvedContainer, options);\n }\n\n if (!(resolvedContainer instanceof Element)) {\n throw new Error(\"The content script container must be a valid element\");\n }\n\n return resolvedContainer;\n };\n","import debounce from \"debounce\";\n\nimport {ContentScriptWatchStrategy} from \"@typing/content\";\n\n// prettier-ignore\nexport const contentScriptMutationObserverResolver =\n (options?: MutationObserverInit): ContentScriptWatchStrategy =>\n update => {\n if (!options) {\n options = {};\n }\n\n const handle = debounce(update, 200);\n\n const observer = new MutationObserver(handle);\n\n observer.observe(document.body, {\n childList: true,\n subtree: true,\n attributes: true,\n characterData: true,\n ...options,\n });\n\n return () => {\n handle.clear();\n observer.disconnect();\n };\n };\n\n// prettier-ignore\nexport const contentScriptAwaitFirstResolver =\n (options?: MutationObserverInit): ContentScriptWatchStrategy =>\n (update, context) => {\n const resolver = contentScriptMutationObserverResolver({\n attributes: false,\n characterData: false,\n ...options,\n });\n\n let unwatch: { (): void } | undefined;\n\n const clear = () => {\n unwatch && unwatch();\n unwatch = undefined;\n };\n\n if (context.nodes.size === 0) {\n unwatch = resolver(() => {\n update();\n\n if (context.nodes.size > 0) {\n clear();\n }\n }, context);\n }\n\n return () => {\n clear();\n };\n };\n\n// prettier-ignore\nexport const contentScriptLocationResolver =\n (strategy: ContentScriptWatchStrategy): ContentScriptWatchStrategy =>\n (update, context) => {\n let currentUrl = location.href;\n\n const interval = setInterval(() => {\n if (currentUrl !== location.href) {\n currentUrl = location.href;\n\n context.mount();\n }\n }, 300);\n\n const unwatch = strategy(update, context);\n\n return () => {\n clearInterval(interval);\n unwatch();\n };\n };\n","import {ContentScriptContext, ContentScriptNode, ContentScriptNodeSet} from \"@typing/content\";\n\nexport default class implements ContentScriptContext {\n protected readonly collection: ContentScriptNodeSet = new Set();\n\n public get nodes(): ReadonlySet<ContentScriptNode> {\n return this.collection;\n }\n\n public mount(): void {\n for (const node of this.collection) {\n if (!node.anchor.isConnected) {\n node.unmount();\n\n this.collection.delete(node);\n\n continue;\n }\n\n node.mount();\n }\n }\n\n public unmount(): void {\n for (const node of this.collection) {\n node.unmount();\n\n if (!node.anchor.isConnected) {\n this.collection.delete(node);\n }\n }\n }\n}\n","import Context from \"./Context\";\n\nimport {ContentScriptNode} from \"@typing/content\";\n\nexport default class extends Context {\n public add(node: ContentScriptNode): this {\n this.collection.add(node);\n\n return this;\n }\n}\n","import Builder from \"@entry/core/Builder\";\n\nimport {contentScriptMountAppendResolver} from \"./resolvers/mount\";\nimport {contentScriptAnchorResolver} from \"./resolvers/anchor\";\nimport {contentScriptRenderResolver} from \"./resolvers/render\";\nimport {contentScriptContainerResolver} from \"./resolvers/container\";\nimport {\n contentScriptAwaitFirstResolver,\n contentScriptLocationResolver,\n contentScriptMutationObserverResolver,\n} from \"./resolvers/watch\";\n\nimport ManagedContext from \"./ManagedContext\";\n\nimport {\n ContentScriptAnchor,\n ContentScriptAnchorGetter,\n ContentScriptAnchorResolver,\n ContentScriptBuilder,\n ContentScriptContainerCreator,\n ContentScriptContainerFactory,\n ContentScriptContainerOptions,\n ContentScriptContainerTag,\n ContentScriptContext,\n ContentScriptDefinition,\n ContentScriptMountFunction,\n ContentScriptNode,\n ContentScriptRenderHandler,\n ContentScriptRenderValue,\n ContentScriptResolvedDefinition,\n ContentScriptWatchStrategy,\n} from \"@typing/content\";\n\nimport {Awaiter} from \"@typing/helpers\";\n\nexport default abstract class extends Builder implements ContentScriptBuilder {\n protected readonly definition: ContentScriptResolvedDefinition;\n\n protected context = new ManagedContext();\n\n protected unwatch?: () => void;\n\n private isProcessing: boolean = false;\n\n protected abstract createNode(anchor: Element): Promise<ContentScriptNode>;\n\n protected abstract cleanupNode(anchor: Element): Awaiter<void>;\n\n protected constructor(definition: ContentScriptDefinition) {\n super();\n\n this.definition = {\n ...definition,\n anchor: this.resolveAnchor(definition.anchor),\n mount: this.resolveMount(definition.mount),\n container: this.resolveContainer(definition.container),\n render: this.resolveRender(definition.render),\n watch: this.resolveWatch(definition.watch),\n };\n }\n\n protected resolveAnchor(anchor?: ContentScriptAnchor | ContentScriptAnchorGetter): ContentScriptAnchorResolver {\n return contentScriptAnchorResolver(anchor);\n }\n\n protected resolveMount(mount?: ContentScriptMountFunction): ContentScriptMountFunction {\n return mount || contentScriptMountAppendResolver();\n }\n\n protected resolveContainer(\n container?: ContentScriptContainerTag | ContentScriptContainerOptions | ContentScriptContainerFactory\n ): ContentScriptContainerCreator {\n return contentScriptContainerResolver(container);\n }\n\n protected resolveRender(\n render?: ContentScriptRenderValue | ContentScriptRenderHandler\n ): ContentScriptRenderHandler | undefined {\n if (render === undefined) {\n return;\n }\n\n return contentScriptRenderResolver(render);\n }\n\n protected resolveWatch(watch?: true | ContentScriptWatchStrategy): ContentScriptWatchStrategy {\n if (watch === undefined) {\n watch = contentScriptAwaitFirstResolver();\n } else if (watch === true) {\n watch = contentScriptMutationObserverResolver();\n }\n\n return contentScriptLocationResolver(watch);\n }\n\n public getContext(): ContentScriptContext {\n return this.context;\n }\n\n public async build(): Promise<void> {\n await this.destroy();\n\n const {render, main, anchor, container, watch, mount, ...options} = this.definition;\n\n if (render !== undefined) {\n await this.processing();\n\n this.unwatch = watch(() => {\n this.processing().catch(e => {\n console.error(\"Content script processing on watch error\", e);\n });\n }, this.context);\n }\n\n await main?.(this.context, options);\n }\n\n public async destroy(): Promise<void> {\n this.unwatch?.();\n this.unwatch = undefined;\n }\n\n protected async processing(): Promise<void> {\n if (this.isProcessing) {\n return;\n }\n\n this.isProcessing = true;\n\n const anchors = await this.definition.anchor();\n\n await Promise.allSettled(anchors.map(this.processAnchor.bind(this)));\n\n this.isProcessing = false;\n }\n\n protected async processAnchor(anchor: Element): Promise<void> {\n const node = await this.createNode(anchor);\n\n this.context.add(node);\n\n await this.cleanupNode(anchor);\n\n node.mount();\n }\n}\n","import {contentScriptAnchorAttribute} from \"./resolvers/anchor\";\n\nimport {ContentScriptNode} from \"@typing/content\";\n\nenum NodeMark {\n Mounded = \"1\",\n Unmounted = \"0\",\n}\n\nexport default class implements ContentScriptNode {\n private readonly _container?: Element;\n\n private readonly attr = contentScriptAnchorAttribute;\n\n constructor(\n public readonly anchor: Element,\n public container?: Element\n ) {\n if (this.container) {\n this._container = this.container.cloneNode(false) as Element;\n }\n }\n\n public mount(): void {\n this.mark();\n\n if (!this.container && this._container) {\n this.container = this._container.cloneNode(false) as Element;\n }\n }\n\n public unmount(): void {\n this.unmark();\n\n if (this.container) {\n this.container.remove();\n this.container = undefined;\n }\n }\n\n protected mark(): this {\n let id = this.anchor.getAttribute(this.attr);\n\n if (typeof id !== \"string\" || id.length === 0 || id === NodeMark.Unmounted) {\n this.anchor.setAttribute(this.attr, NodeMark.Mounded);\n }\n\n return this;\n }\n\n protected unmark(): void {\n this.anchor.setAttribute(this.attr, NodeMark.Unmounted);\n }\n}\n","import {ContentScriptMountFunction, ContentScriptNode} from \"@typing/content\";\n\nexport default class implements ContentScriptNode {\n private unmounting?: () => void;\n\n constructor(\n protected node: ContentScriptNode,\n protected mounter?: ContentScriptMountFunction\n ) {}\n\n public get anchor(): Element {\n return this.node.anchor;\n }\n\n public get container(): Element | undefined {\n return this.node.container;\n }\n\n public mount(): void {\n this.node.mount();\n\n if (!this.container || this.container.isConnected) {\n return;\n }\n\n const unmounting = this.mounter?.(this.anchor, this.container);\n\n if (unmounting) {\n this.unmounting = unmounting;\n }\n }\n\n public unmount(): void {\n this.unmounting?.();\n this.unmounting = undefined;\n\n this.node.unmount();\n }\n}\n","import Builder from \"./Builder\";\nimport Node from \"./Node\";\nimport MountNode from \"./MountNode\";\n\nimport {ContentScriptNode, ContentScriptProps, ContentScriptRenderValue} from \"@typing/content\";\n\nexport default abstract class extends Builder {\n private values = new Map<Element, null | ContentScriptRenderValue>();\n\n protected getProps(anchor: Element): ContentScriptProps {\n const {anchor: _, mount, watch, render, container, main, ...options} = this.definition;\n\n return {...options, anchor};\n }\n\n protected async getValue(anchor: Element): Promise<undefined | ContentScriptRenderValue> {\n if (!this.values.has(anchor)) {\n const value = await this.renderValue(anchor);\n\n this.values.set(anchor, value === undefined ? undefined : value);\n }\n\n return this.values.get(anchor);\n }\n\n protected async renderValue(anchor: Element): Promise<undefined | ContentScriptRenderValue> {\n const {render} = this.definition;\n\n if (render === undefined) {\n return;\n }\n\n return render(this.getProps(anchor));\n }\n\n protected async createNode(anchor: Element): Promise<ContentScriptNode> {\n let container: Element | undefined;\n\n if (await this.getValue(anchor)) {\n container = (await this.definition.container(this.getProps(anchor))) as Element | undefined;\n }\n\n return new MountNode(new Node(anchor, container), this.definition.mount);\n }\n\n protected cleanupNode(anchor: Element): void {\n this.values.delete(anchor);\n }\n}\n","import {ReactNode as ReactComponent} from \"react\";\nimport {createRoot, Root} from \"react-dom/client\";\n\nimport {ContentScriptNode} from \"@typing/content\";\n\nexport default class implements ContentScriptNode {\n protected root?: Root;\n\n constructor(\n protected readonly node: ContentScriptNode,\n protected readonly component?: ReactComponent\n ) {}\n\n public get anchor(): Element {\n return this.node.anchor;\n }\n\n public get container(): Element | undefined {\n return this.node.container;\n }\n\n public mount(): void {\n this.node.mount();\n\n if (!this.container || this.root) {\n return;\n }\n\n if (!this.component) {\n console.warn(\"Content script react component is empty\");\n\n return;\n }\n\n this.root = createRoot(this.container);\n\n this.root.render(this.component);\n }\n\n public unmount(): void {\n this.root?.unmount();\n this.root = undefined;\n\n this.node.unmount();\n }\n}\n","import {createElement, isValidElement} from \"react\";\n\nimport {ContentScriptRenderHandler, ContentScriptRenderValue} from \"@typing/content\";\n\nexport const contentScriptReactRenderResolver =\n (render?: ContentScriptRenderValue): ContentScriptRenderHandler =>\n async (props): Promise<undefined | ContentScriptRenderValue> => {\n let resolvedRender = typeof render === \"function\" ? createElement(render, props) : render;\n\n if (isValidElement(resolvedRender)) {\n return resolvedRender;\n }\n };\n","import {isValidElement} from \"react\";\n\nimport MountBuilder from \"../core/MountBuilder\";\nimport ReactNode from \"./Node\";\n\nimport {contentScriptReactRenderResolver} from \"./resolvers/render\";\n\nimport {\n ContentScriptDefinition,\n ContentScriptNode,\n ContentScriptRenderHandler,\n ContentScriptRenderValue,\n} from \"@typing/content\";\n\nexport default class extends MountBuilder {\n constructor(definition: ContentScriptDefinition) {\n super(definition);\n }\n\n protected resolveRender(render?: ContentScriptRenderValue): ContentScriptRenderHandler | undefined {\n if (render === undefined) {\n return;\n }\n\n return contentScriptReactRenderResolver(render);\n }\n\n protected async createNode(anchor: Element): Promise<ContentScriptNode> {\n let value = await this.getValue(anchor);\n\n if (!isValidElement(value)) {\n value = undefined;\n\n console.warn(\"Content script react value is not a valid React element\");\n }\n\n return new ReactNode(await super.createNode(anchor), value);\n }\n}\n","import Builder from \"./Builder\";\n\nexport {Builder};\n\nexport default Builder.resolver();\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/entry/core/Builder.ts","../../../../src/entry/content/core/resolvers/mount.ts","../../../../src/entry/content/core/resolvers/anchor.ts","../../../../src/entry/content/core/resolvers/render.ts","../../../../src/entry/content/core/resolvers/container.ts","../../../../src/entry/content/core/resolvers/watch.ts","../../../../src/entry/content/core/Context.ts","../../../../src/entry/content/core/ManagedContext.ts","../../../../src/entry/content/core/EventEmitter.ts","../../../../src/entry/content/core/Builder.ts","../../../../src/entry/content/core/Node.ts","../../../../src/entry/content/core/MountNode.ts","../../../../src/entry/content/core/MountBuilder.ts","../../../../src/entry/content/core/EventNode.ts","../../../../src/entry/content/react/Node.ts","../../../../src/entry/content/react/resolvers/render.ts","../../../../src/entry/content/react/Builder.ts","../../../../src/entry/content/react/index.ts"],"names":["customAlphabet","debounce","Builder_default","Node_default","createRoot","createElement","isValidElement"],"mappings":"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","file":"index.cjs","sourcesContent":["import {EntrypointBuilder, EntrypointConstructorParameter} from \"@typing/entrypoint\";\n\nexport default abstract class implements EntrypointBuilder {\n public abstract build(): Promise<void>;\n\n public abstract destroy(): Promise<void>;\n\n public static resolver<T extends new (definition: any) => EntrypointBuilder>(this: T) {\n return (definition: EntrypointConstructorParameter<T>): void => {\n new this(definition).build().catch(e => {\n console.error(\"Failed to build entrypoint:\", e);\n });\n };\n }\n}\n","import {ContentScriptAppend, ContentScriptMountFunction} from \"@typing/content\";\n\n// prettier-ignore\nexport const contentScriptMountAppendResolver =\n (append?: ContentScriptAppend): ContentScriptMountFunction =>\n (anchor: Element, container: Element): void => {\n switch (append) {\n case ContentScriptAppend.Last:\n anchor.append(container);\n break;\n default:\n case undefined:\n case ContentScriptAppend.First:\n anchor.prepend(container);\n break;\n case ContentScriptAppend.Replace:\n anchor.replaceWith(container);\n break;\n case ContentScriptAppend.After:\n anchor.parentElement?.insertBefore(container, anchor.nextElementSibling);\n break;\n case ContentScriptAppend.Before:\n anchor.parentElement?.insertBefore(container, anchor);\n break;\n }\n };\n","import {customAlphabet} from \"nanoid\";\n\nimport {ContentScriptAnchor, ContentScriptAnchorGetter, ContentScriptAnchorResolver} from \"@typing/content\";\n\nconst generateId = customAlphabet(\"abcdefghijklmnopqrstuvwxyz\", 7);\n\nexport const contentScriptAnchorAttribute = `data-${generateId()}`;\n\n// prettier-ignore\nexport const contentScriptAnchorResolver =\n (anchor?: ContentScriptAnchor | ContentScriptAnchorGetter): ContentScriptAnchorResolver =>\n async (): Promise<Element[]> => {\n const attr = contentScriptAnchorAttribute;\n\n let resolved = typeof anchor === \"function\" ? anchor() : anchor;\n\n if (resolved instanceof Promise) {\n resolved = await resolved;\n }\n\n if (resolved === undefined || resolved === null) {\n resolved = document.body;\n }\n\n const elements: Element[] = [];\n\n if (resolved instanceof Element) {\n if (!resolved.hasAttribute(attr)) {\n elements.push(resolved);\n }\n } else if (typeof resolved === \"string\") {\n if (resolved.startsWith(\"/\")) {\n resolved = `(${resolved})[not(@${attr})]`;\n\n const result = document.evaluate(\n resolved,\n document,\n null,\n XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,\n null\n );\n\n for (let i = 0; i < result.snapshotLength; i++) {\n elements.push(result.snapshotItem(i) as Element);\n }\n } else {\n resolved += `:not([${attr}])`;\n\n elements.push(...Array.from(document.querySelectorAll(resolved)));\n }\n }\n\n return elements;\n };\n","import {ContentScriptRenderHandler, ContentScriptRenderValue} from \"@typing/content\";\n\nexport const isValidContentScriptRenderValue = (value: unknown): value is string | number | Element => {\n return (typeof value === \"string\" && value.length > 0) || typeof value === \"number\" || value instanceof Element;\n};\n\n// prettier-ignore\nexport const contentScriptRenderResolver =\n (render?: ContentScriptRenderValue | ContentScriptRenderHandler): ContentScriptRenderHandler =>\n async (props): Promise<undefined | ContentScriptRenderValue> => {\n let resolvedRender = typeof render === \"function\" ? render(props) : render;\n\n if (resolvedRender instanceof Promise) {\n resolvedRender = await resolvedRender;\n }\n\n if (resolvedRender !== true && !isValidContentScriptRenderValue(resolvedRender)) {\n return;\n }\n\n return resolvedRender;\n };\n","import {\n ContentScriptContainerCreator,\n ContentScriptContainerFactory,\n ContentScriptContainerOptions,\n ContentScriptContainerTag,\n ContentScriptProps,\n} from \"@typing/content\";\n\n// prettier-ignore\nexport const contentScriptContainerResolver = (\n container?:\n ContentScriptContainerTag |\n ContentScriptContainerOptions |\n ContentScriptContainerFactory\n): ContentScriptContainerCreator =>\n async (props: ContentScriptProps): Promise<Element> => {\n let resolvedContainer = typeof container === \"function\" ? container(props) : container;\n\n if (resolvedContainer instanceof Promise) {\n resolvedContainer = await resolvedContainer;\n }\n\n if (resolvedContainer === undefined || typeof resolvedContainer === \"string\") {\n resolvedContainer = document.createElement(resolvedContainer || \"div\");\n } else if (typeof resolvedContainer === \"object\" && resolvedContainer.constructor === Object) {\n const {tagName = \"div\", ...options} = resolvedContainer as ContentScriptContainerOptions;\n\n resolvedContainer = document.createElement(tagName);\n\n Object.assign(resolvedContainer, options);\n }\n\n if (!(resolvedContainer instanceof Element)) {\n throw new Error(\"The content script container must be a valid element\");\n }\n\n return resolvedContainer;\n };\n","import debounce from \"debounce\";\n\nimport {ContentScriptWatchStrategy} from \"@typing/content\";\n\n// prettier-ignore\nexport const contentScriptMutationObserverResolver =\n (options?: MutationObserverInit): ContentScriptWatchStrategy =>\n update => {\n if (!options) {\n options = {};\n }\n\n const handle = debounce(update, 200);\n\n const observer = new MutationObserver(handle);\n\n observer.observe(document.body, {\n childList: true,\n subtree: true,\n attributes: true,\n characterData: true,\n ...options,\n });\n\n return () => {\n handle.clear();\n observer.disconnect();\n };\n };\n\n// prettier-ignore\nexport const contentScriptAwaitFirstResolver =\n (options?: MutationObserverInit): ContentScriptWatchStrategy =>\n (update, context) => {\n const resolver = contentScriptMutationObserverResolver({\n attributes: false,\n characterData: false,\n ...options,\n });\n\n let unwatch: { (): void } | undefined;\n\n const clear = () => {\n unwatch && unwatch();\n unwatch = undefined;\n };\n\n if (context.nodes.size === 0) {\n unwatch = resolver(() => {\n update();\n\n if (context.nodes.size > 0) {\n clear();\n }\n }, context);\n }\n\n return () => {\n clear();\n };\n };\n\n// prettier-ignore\nexport const contentScriptLocationResolver =\n (strategy: ContentScriptWatchStrategy): ContentScriptWatchStrategy =>\n (update, context) => {\n let currentUrl = location.href;\n\n const interval = setInterval(() => {\n if (currentUrl !== location.href) {\n currentUrl = location.href;\n\n context.mount();\n }\n }, 300);\n\n const unwatch = strategy(update, context);\n\n return () => {\n clearInterval(interval);\n unwatch();\n };\n };\n","import {\n ContentScriptContext,\n ContentScriptEventCallback,\n ContentScriptEventEmitter,\n ContentScriptNode,\n ContentScriptNodeSet,\n} from \"@typing/content\";\n\nexport default class implements ContentScriptContext {\n protected readonly collection: ContentScriptNodeSet = new Set();\n\n constructor(protected readonly emitter: ContentScriptEventEmitter) {}\n\n public get nodes(): ReadonlySet<ContentScriptNode> {\n return this.collection;\n }\n\n public mount(): void {\n for (const node of this.collection) {\n if (!node.anchor.isConnected) {\n node.unmount();\n\n this.collection.delete(node);\n\n this.emitter.emitRemove(node);\n\n continue;\n }\n\n node.mount();\n }\n }\n\n public unmount(): void {\n for (const node of this.collection) {\n node.unmount();\n\n if (!node.anchor.isConnected) {\n this.collection.delete(node);\n\n this.emitter.emitRemove(node);\n }\n }\n }\n\n public watch(callback: ContentScriptEventCallback): () => void {\n this.emitter.on(callback);\n\n return () => {\n this.emitter.off(callback);\n };\n }\n\n public unwatch(): void {\n this.emitter.removeAllListeners();\n }\n}\n","import Context from \"./Context\";\n\nimport {ContentScriptNode} from \"@typing/content\";\n\nexport default class extends Context {\n public add(node: ContentScriptNode): this {\n this.collection.add(node);\n\n this.emitter.emitAdd(node);\n\n return this;\n }\n}\n","import {\n ContentScriptEvent,\n ContentScriptEventCallback,\n ContentScriptEventEmitter,\n ContentScriptNode,\n} from \"@typing/content\";\n\nexport default class implements ContentScriptEventEmitter {\n private readonly listeners: Set<ContentScriptEventCallback> = new Set();\n\n public emit(event: ContentScriptEvent, node: ContentScriptNode): void {\n for (const listener of this.listeners) {\n listener(event, node);\n }\n }\n\n public emitAdd(node: ContentScriptNode): void {\n this.emit(ContentScriptEvent.Add, node);\n }\n\n public emitMount(node: ContentScriptNode): void {\n this.emit(ContentScriptEvent.Mount, node);\n }\n\n public emitRemove(node: ContentScriptNode): void {\n this.emit(ContentScriptEvent.Remove, node);\n }\n\n public emitUnmount(node: ContentScriptNode): void {\n this.emit(ContentScriptEvent.Unmount, node);\n }\n\n public hasListeners(): boolean {\n return this.listenerCount() > 0;\n }\n\n public listenerCount(): number {\n return this.listeners.size;\n }\n\n public off(callback: ContentScriptEventCallback): void {\n this.listeners.delete(callback);\n }\n\n public on(callback: ContentScriptEventCallback): void {\n this.listeners.add(callback);\n }\n\n public removeAllListeners(): void {\n this.listeners.clear();\n }\n}\n","import Builder from \"@entry/core/Builder\";\n\nimport {contentScriptMountAppendResolver} from \"./resolvers/mount\";\nimport {contentScriptAnchorResolver} from \"./resolvers/anchor\";\nimport {contentScriptRenderResolver} from \"./resolvers/render\";\nimport {contentScriptContainerResolver} from \"./resolvers/container\";\nimport {\n contentScriptAwaitFirstResolver,\n contentScriptLocationResolver,\n contentScriptMutationObserverResolver,\n} from \"./resolvers/watch\";\n\nimport ManagedContext from \"./ManagedContext\";\nimport EventEmitter from \"./EventEmitter\";\n\nimport {\n ContentScriptAnchor,\n ContentScriptAnchorGetter,\n ContentScriptAnchorResolver,\n ContentScriptBuilder,\n ContentScriptContainerCreator,\n ContentScriptContainerFactory,\n ContentScriptContainerOptions,\n ContentScriptContainerTag,\n ContentScriptContext,\n ContentScriptDefinition,\n ContentScriptMountFunction,\n ContentScriptNode,\n ContentScriptRenderHandler,\n ContentScriptRenderValue,\n ContentScriptResolvedDefinition,\n ContentScriptWatchStrategy,\n} from \"@typing/content\";\n\nimport {Awaiter} from \"@typing/helpers\";\n\nexport default abstract class extends Builder implements ContentScriptBuilder {\n protected readonly definition: ContentScriptResolvedDefinition;\n\n protected readonly emitter = new EventEmitter();\n\n protected readonly context = new ManagedContext(this.emitter);\n\n protected unwatch?: () => void;\n\n private isProcessing: boolean = false;\n\n protected abstract createNode(anchor: Element): Promise<ContentScriptNode>;\n\n protected abstract cleanupNode(anchor: Element): Awaiter<void>;\n\n protected constructor(definition: ContentScriptDefinition) {\n super();\n\n this.definition = {\n ...definition,\n anchor: this.resolveAnchor(definition.anchor),\n mount: this.resolveMount(definition.mount),\n container: this.resolveContainer(definition.container),\n render: this.resolveRender(definition.render),\n watch: this.resolveWatch(definition.watch),\n };\n }\n\n protected resolveAnchor(anchor?: ContentScriptAnchor | ContentScriptAnchorGetter): ContentScriptAnchorResolver {\n return contentScriptAnchorResolver(anchor);\n }\n\n protected resolveMount(mount?: ContentScriptMountFunction): ContentScriptMountFunction {\n return mount || contentScriptMountAppendResolver();\n }\n\n protected resolveContainer(\n container?: ContentScriptContainerTag | ContentScriptContainerOptions | ContentScriptContainerFactory\n ): ContentScriptContainerCreator {\n return contentScriptContainerResolver(container);\n }\n\n protected resolveRender(\n render?: ContentScriptRenderValue | ContentScriptRenderHandler\n ): ContentScriptRenderHandler | undefined {\n if (render === undefined) {\n return;\n }\n\n return contentScriptRenderResolver(render);\n }\n\n protected resolveWatch(watch?: true | ContentScriptWatchStrategy): ContentScriptWatchStrategy {\n if (watch === undefined) {\n watch = contentScriptAwaitFirstResolver();\n } else if (watch === true) {\n watch = contentScriptMutationObserverResolver();\n }\n\n return contentScriptLocationResolver(watch);\n }\n\n public getContext(): ContentScriptContext {\n return this.context;\n }\n\n public async build(): Promise<void> {\n await this.destroy();\n\n const {render, main, anchor, container, watch, mount, ...options} = this.definition;\n\n await main?.(this.context, options);\n\n if (render !== undefined) {\n await this.processing();\n\n this.unwatch = watch(() => {\n this.processing().catch(e => {\n console.error(\"Content script processing on watch error\", e);\n });\n }, this.context);\n }\n }\n\n public async destroy(): Promise<void> {\n this.unwatch?.();\n this.unwatch = undefined;\n }\n\n protected async processing(): Promise<void> {\n if (this.isProcessing) {\n return;\n }\n\n this.isProcessing = true;\n\n const anchors = await this.definition.anchor();\n\n await Promise.allSettled(anchors.map(this.processAnchor.bind(this)));\n\n this.isProcessing = false;\n }\n\n protected async processAnchor(anchor: Element): Promise<void> {\n const node = await this.createNode(anchor);\n\n this.context.add(node);\n\n await this.cleanupNode(anchor);\n\n node.mount();\n }\n}\n","import {contentScriptAnchorAttribute} from \"./resolvers/anchor\";\n\nimport {ContentScriptNode} from \"@typing/content\";\n\nenum NodeMark {\n Mounded = \"1\",\n Unmounted = \"0\",\n}\n\nexport default class implements ContentScriptNode {\n private readonly _container?: Element;\n\n private readonly attr = contentScriptAnchorAttribute;\n\n constructor(\n public readonly anchor: Element,\n public container?: Element\n ) {\n if (this.container) {\n this._container = this.container.cloneNode(false) as Element;\n }\n }\n\n public mount(): boolean {\n this.mark();\n\n if (!this.container && this._container) {\n this.container = this._container.cloneNode(false) as Element;\n\n return true;\n }\n\n return false;\n }\n\n public unmount(): boolean {\n this.unmark();\n\n if (this.container) {\n this.container.remove();\n this.container = undefined;\n\n return true;\n }\n\n return false;\n }\n\n protected mark(): this {\n let id = this.anchor.getAttribute(this.attr);\n\n if (typeof id !== \"string\" || id.length === 0 || id === NodeMark.Unmounted) {\n this.anchor.setAttribute(this.attr, NodeMark.Mounded);\n }\n\n return this;\n }\n\n protected unmark(): void {\n this.anchor.setAttribute(this.attr, NodeMark.Unmounted);\n }\n}\n","import {ContentScriptMountFunction, ContentScriptNode} from \"@typing/content\";\n\nexport default class implements ContentScriptNode {\n private unmounting?: () => void;\n\n constructor(\n protected node: ContentScriptNode,\n protected mounter?: ContentScriptMountFunction\n ) {}\n\n public get anchor(): Element {\n return this.node.anchor;\n }\n\n public get container(): Element | undefined {\n return this.node.container;\n }\n\n public mount(): boolean {\n this.node.mount();\n\n if (!this.container || this.container.isConnected) {\n return false;\n }\n\n if (this.mounter) {\n const unmounting = this.mounter(this.anchor, this.container);\n\n if (unmounting) {\n this.unmounting = unmounting;\n }\n\n return true;\n }\n\n return false;\n }\n\n public unmount(): boolean {\n this.unmounting?.();\n this.unmounting = undefined;\n\n return !!this.node.unmount();\n }\n}\n","import Builder from \"./Builder\";\nimport Node from \"./Node\";\nimport MountNode from \"./MountNode\";\n\nimport {ContentScriptNode, ContentScriptProps, ContentScriptRenderValue} from \"@typing/content\";\n\nexport default abstract class extends Builder {\n private values = new Map<Element, null | ContentScriptRenderValue>();\n\n protected getProps(anchor: Element): ContentScriptProps {\n const {anchor: _, mount, watch, render, container, main, ...options} = this.definition;\n\n return {...options, anchor};\n }\n\n protected async getValue(anchor: Element): Promise<undefined | ContentScriptRenderValue> {\n if (!this.values.has(anchor)) {\n const value = await this.renderValue(anchor);\n\n this.values.set(anchor, value === undefined ? undefined : value);\n }\n\n return this.values.get(anchor);\n }\n\n protected async renderValue(anchor: Element): Promise<undefined | ContentScriptRenderValue> {\n const {render} = this.definition;\n\n if (render === undefined) {\n return;\n }\n\n return render(this.getProps(anchor));\n }\n\n protected async createNode(anchor: Element): Promise<ContentScriptNode> {\n let container: Element | undefined;\n\n const value = await this.getValue(anchor);\n\n if (typeof value !== \"boolean\" && value !== undefined) {\n container = (await this.definition.container(this.getProps(anchor))) as Element | undefined;\n }\n\n return new MountNode(new Node(anchor, container), this.definition.mount);\n }\n\n protected cleanupNode(anchor: Element): void {\n this.values.delete(anchor);\n }\n}\n","import {ContentScriptEventEmitter, ContentScriptNode} from \"@typing/content\";\n\nexport default class implements ContentScriptNode {\n constructor(\n protected readonly node: ContentScriptNode,\n protected readonly emitter: ContentScriptEventEmitter\n ) {}\n\n public get anchor(): Element {\n return this.node.anchor;\n }\n\n public get container(): Element | undefined {\n return this.node.container;\n }\n\n public mount(): boolean {\n const result = this.node.mount();\n\n if (result === true) {\n this.emitter.emitMount(this.node);\n }\n\n return !!result;\n }\n\n public unmount(): boolean {\n const result = this.node.unmount();\n\n if (result === true) {\n this.emitter.emitUnmount(this.node);\n }\n\n return !!result;\n }\n}\n","import {ReactNode as ReactComponent} from \"react\";\nimport {createRoot, Root} from \"react-dom/client\";\n\nimport {ContentScriptNode} from \"@typing/content\";\n\nexport default class implements ContentScriptNode {\n protected root?: Root;\n\n constructor(\n protected readonly node: ContentScriptNode,\n protected readonly component?: ReactComponent\n ) {}\n\n public get anchor(): Element {\n return this.node.anchor;\n }\n\n public get container(): Element | undefined {\n return this.node.container;\n }\n\n public mount(): boolean {\n this.node.mount();\n\n if (!this.container || this.root) {\n return false;\n }\n\n if (!this.component) {\n console.warn(\"Content script react component is empty\");\n\n return false;\n }\n\n this.root = createRoot(this.container);\n\n this.root.render(this.component);\n\n return true;\n }\n\n public unmount(): boolean {\n this.root?.unmount();\n this.root = undefined;\n\n return !!this.node.unmount();\n }\n}\n","import {createElement, isValidElement} from \"react\";\n\nimport {ContentScriptRenderHandler, ContentScriptRenderValue} from \"@typing/content\";\n\nexport const contentScriptReactRenderResolver =\n (render?: ContentScriptRenderValue): ContentScriptRenderHandler =>\n async (props): Promise<undefined | ContentScriptRenderValue> => {\n let resolvedRender = typeof render === \"function\" ? createElement(render, props) : render;\n\n if (isValidElement(resolvedRender)) {\n return resolvedRender;\n }\n };\n","import {isValidElement} from \"react\";\n\nimport MountBuilder from \"../core/MountBuilder\";\nimport EventNode from \"../core/EventNode\";\nimport ReactNode from \"./Node\";\n\nimport {contentScriptReactRenderResolver} from \"./resolvers/render\";\n\nimport {\n ContentScriptDefinition,\n ContentScriptNode,\n ContentScriptRenderHandler,\n ContentScriptRenderValue,\n} from \"@typing/content\";\n\nexport default class extends MountBuilder {\n constructor(definition: ContentScriptDefinition) {\n super(definition);\n }\n\n protected resolveRender(render?: ContentScriptRenderValue): ContentScriptRenderHandler | undefined {\n if (render === undefined) {\n return;\n }\n\n return contentScriptReactRenderResolver(render);\n }\n\n protected async createNode(anchor: Element): Promise<ContentScriptNode> {\n let value = await this.getValue(anchor);\n\n if (!isValidElement(value)) {\n value = undefined;\n\n console.warn(\"Content script react value is not a valid React element\");\n }\n\n return new EventNode(new ReactNode(await super.createNode(anchor), value), this.emitter);\n }\n}\n","import Builder from \"./Builder\";\n\nexport {Builder};\n\nexport default Builder.resolver();\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { a as ContentScriptDefinition, d as ContentScriptRenderValue, e as ContentScriptRenderHandler, c as ContentScriptNode } from '../../../content-
|
|
2
|
-
import { e as export_default$1 } from '../../../MountBuilder-
|
|
1
|
+
import { a as ContentScriptDefinition, d as ContentScriptRenderValue, e as ContentScriptRenderHandler, c as ContentScriptNode } from '../../../content-DrrPH4ri.mjs';
|
|
2
|
+
import { e as export_default$1 } from '../../../MountBuilder-BTltgVF2.mjs';
|
|
3
3
|
import 'react';
|
|
4
4
|
import 'utility-types';
|
|
5
|
-
import '../../../helpers-
|
|
6
|
-
import '../../../Builder-
|
|
5
|
+
import '../../../helpers-YDFORuZz.mjs';
|
|
6
|
+
import '../../../Builder-Df1LUO_f.mjs';
|
|
7
7
|
|
|
8
8
|
declare class export_default extends export_default$1 {
|
|
9
9
|
constructor(definition: ContentScriptDefinition);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { a as ContentScriptDefinition, d as ContentScriptRenderValue, e as ContentScriptRenderHandler, c as ContentScriptNode } from '../../../content-
|
|
2
|
-
import { e as export_default$1 } from '../../../MountBuilder-
|
|
1
|
+
import { a as ContentScriptDefinition, d as ContentScriptRenderValue, e as ContentScriptRenderHandler, c as ContentScriptNode } from '../../../content-B0znLIjr.js';
|
|
2
|
+
import { e as export_default$1 } from '../../../MountBuilder-C9Q-7PeI.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
import 'utility-types';
|
|
5
|
-
import '../../../helpers-
|
|
6
|
-
import '../../../Builder-
|
|
5
|
+
import '../../../helpers-YDFORuZz.js';
|
|
6
|
+
import '../../../Builder-Bc8US0PY.js';
|
|
7
7
|
|
|
8
8
|
declare class export_default extends export_default$1 {
|
|
9
9
|
constructor(definition: ContentScriptDefinition);
|
|
@@ -57,11 +57,7 @@ var contentScriptAnchorResolver = (anchor) => async () => {
|
|
|
57
57
|
}
|
|
58
58
|
} else if (typeof resolved === "string") {
|
|
59
59
|
if (resolved.startsWith("/")) {
|
|
60
|
-
|
|
61
|
-
const condition = `not(@${attr})`;
|
|
62
|
-
if (notRegex.test(resolved)) {
|
|
63
|
-
resolved = `(${resolved})[${condition}]`;
|
|
64
|
-
}
|
|
60
|
+
resolved = `(${resolved})[not(@${attr})]`;
|
|
65
61
|
const result = document.evaluate(
|
|
66
62
|
resolved,
|
|
67
63
|
document,
|
|
@@ -171,6 +167,9 @@ var contentScriptLocationResolver = (strategy) => (update, context) => {
|
|
|
171
167
|
|
|
172
168
|
// src/entry/content/core/Context.ts
|
|
173
169
|
var Context_default = class {
|
|
170
|
+
constructor(emitter) {
|
|
171
|
+
this.emitter = emitter;
|
|
172
|
+
}
|
|
174
173
|
collection = /* @__PURE__ */ new Set();
|
|
175
174
|
get nodes() {
|
|
176
175
|
return this.collection;
|
|
@@ -180,6 +179,7 @@ var Context_default = class {
|
|
|
180
179
|
if (!node.anchor.isConnected) {
|
|
181
180
|
node.unmount();
|
|
182
181
|
this.collection.delete(node);
|
|
182
|
+
this.emitter.emitRemove(node);
|
|
183
183
|
continue;
|
|
184
184
|
}
|
|
185
185
|
node.mount();
|
|
@@ -190,23 +190,72 @@ var Context_default = class {
|
|
|
190
190
|
node.unmount();
|
|
191
191
|
if (!node.anchor.isConnected) {
|
|
192
192
|
this.collection.delete(node);
|
|
193
|
+
this.emitter.emitRemove(node);
|
|
193
194
|
}
|
|
194
195
|
}
|
|
195
196
|
}
|
|
197
|
+
watch(callback) {
|
|
198
|
+
this.emitter.on(callback);
|
|
199
|
+
return () => {
|
|
200
|
+
this.emitter.off(callback);
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
unwatch() {
|
|
204
|
+
this.emitter.removeAllListeners();
|
|
205
|
+
}
|
|
196
206
|
};
|
|
197
207
|
|
|
198
208
|
// src/entry/content/core/ManagedContext.ts
|
|
199
209
|
var ManagedContext_default = class extends Context_default {
|
|
200
210
|
add(node) {
|
|
201
211
|
this.collection.add(node);
|
|
212
|
+
this.emitter.emitAdd(node);
|
|
202
213
|
return this;
|
|
203
214
|
}
|
|
204
215
|
};
|
|
205
216
|
|
|
217
|
+
// src/entry/content/core/EventEmitter.ts
|
|
218
|
+
var EventEmitter_default = class {
|
|
219
|
+
listeners = /* @__PURE__ */ new Set();
|
|
220
|
+
emit(event, node) {
|
|
221
|
+
for (const listener of this.listeners) {
|
|
222
|
+
listener(event, node);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
emitAdd(node) {
|
|
226
|
+
this.emit("add" /* Add */, node);
|
|
227
|
+
}
|
|
228
|
+
emitMount(node) {
|
|
229
|
+
this.emit("mount" /* Mount */, node);
|
|
230
|
+
}
|
|
231
|
+
emitRemove(node) {
|
|
232
|
+
this.emit("remove" /* Remove */, node);
|
|
233
|
+
}
|
|
234
|
+
emitUnmount(node) {
|
|
235
|
+
this.emit("unmount" /* Unmount */, node);
|
|
236
|
+
}
|
|
237
|
+
hasListeners() {
|
|
238
|
+
return this.listenerCount() > 0;
|
|
239
|
+
}
|
|
240
|
+
listenerCount() {
|
|
241
|
+
return this.listeners.size;
|
|
242
|
+
}
|
|
243
|
+
off(callback) {
|
|
244
|
+
this.listeners.delete(callback);
|
|
245
|
+
}
|
|
246
|
+
on(callback) {
|
|
247
|
+
this.listeners.add(callback);
|
|
248
|
+
}
|
|
249
|
+
removeAllListeners() {
|
|
250
|
+
this.listeners.clear();
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
|
|
206
254
|
// src/entry/content/core/Builder.ts
|
|
207
255
|
var Builder_default2 = class extends Builder_default {
|
|
208
256
|
definition;
|
|
209
|
-
|
|
257
|
+
emitter = new EventEmitter_default();
|
|
258
|
+
context = new ManagedContext_default(this.emitter);
|
|
210
259
|
unwatch;
|
|
211
260
|
isProcessing = false;
|
|
212
261
|
constructor(definition) {
|
|
@@ -249,6 +298,7 @@ var Builder_default2 = class extends Builder_default {
|
|
|
249
298
|
async build() {
|
|
250
299
|
await this.destroy();
|
|
251
300
|
const { render, main, anchor, container, watch, mount, ...options } = this.definition;
|
|
301
|
+
await (main == null ? void 0 : main(this.context, options));
|
|
252
302
|
if (render !== void 0) {
|
|
253
303
|
await this.processing();
|
|
254
304
|
this.unwatch = watch(() => {
|
|
@@ -257,7 +307,6 @@ var Builder_default2 = class extends Builder_default {
|
|
|
257
307
|
});
|
|
258
308
|
}, this.context);
|
|
259
309
|
}
|
|
260
|
-
await (main == null ? void 0 : main(this.context, options));
|
|
261
310
|
}
|
|
262
311
|
async destroy() {
|
|
263
312
|
var _a;
|
|
@@ -296,14 +345,18 @@ var Node_default = class {
|
|
|
296
345
|
this.mark();
|
|
297
346
|
if (!this.container && this._container) {
|
|
298
347
|
this.container = this._container.cloneNode(false);
|
|
348
|
+
return true;
|
|
299
349
|
}
|
|
350
|
+
return false;
|
|
300
351
|
}
|
|
301
352
|
unmount() {
|
|
302
353
|
this.unmark();
|
|
303
354
|
if (this.container) {
|
|
304
355
|
this.container.remove();
|
|
305
356
|
this.container = void 0;
|
|
357
|
+
return true;
|
|
306
358
|
}
|
|
359
|
+
return false;
|
|
307
360
|
}
|
|
308
361
|
mark() {
|
|
309
362
|
let id = this.anchor.getAttribute(this.attr);
|
|
@@ -331,21 +384,24 @@ var MountNode_default = class {
|
|
|
331
384
|
return this.node.container;
|
|
332
385
|
}
|
|
333
386
|
mount() {
|
|
334
|
-
var _a;
|
|
335
387
|
this.node.mount();
|
|
336
388
|
if (!this.container || this.container.isConnected) {
|
|
337
|
-
return;
|
|
389
|
+
return false;
|
|
338
390
|
}
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
391
|
+
if (this.mounter) {
|
|
392
|
+
const unmounting = this.mounter(this.anchor, this.container);
|
|
393
|
+
if (unmounting) {
|
|
394
|
+
this.unmounting = unmounting;
|
|
395
|
+
}
|
|
396
|
+
return true;
|
|
342
397
|
}
|
|
398
|
+
return false;
|
|
343
399
|
}
|
|
344
400
|
unmount() {
|
|
345
401
|
var _a;
|
|
346
402
|
(_a = this.unmounting) == null ? void 0 : _a.call(this);
|
|
347
403
|
this.unmounting = void 0;
|
|
348
|
-
this.node.unmount();
|
|
404
|
+
return !!this.node.unmount();
|
|
349
405
|
}
|
|
350
406
|
};
|
|
351
407
|
|
|
@@ -372,7 +428,8 @@ var MountBuilder_default = class extends Builder_default2 {
|
|
|
372
428
|
}
|
|
373
429
|
async createNode(anchor) {
|
|
374
430
|
let container;
|
|
375
|
-
|
|
431
|
+
const value = await this.getValue(anchor);
|
|
432
|
+
if (typeof value !== "boolean" && value !== void 0) {
|
|
376
433
|
container = await this.definition.container(this.getProps(anchor));
|
|
377
434
|
}
|
|
378
435
|
return new MountNode_default(new Node_default(anchor, container), this.definition.mount);
|
|
@@ -381,6 +438,34 @@ var MountBuilder_default = class extends Builder_default2 {
|
|
|
381
438
|
this.values.delete(anchor);
|
|
382
439
|
}
|
|
383
440
|
};
|
|
441
|
+
|
|
442
|
+
// src/entry/content/core/EventNode.ts
|
|
443
|
+
var EventNode_default = class {
|
|
444
|
+
constructor(node, emitter) {
|
|
445
|
+
this.node = node;
|
|
446
|
+
this.emitter = emitter;
|
|
447
|
+
}
|
|
448
|
+
get anchor() {
|
|
449
|
+
return this.node.anchor;
|
|
450
|
+
}
|
|
451
|
+
get container() {
|
|
452
|
+
return this.node.container;
|
|
453
|
+
}
|
|
454
|
+
mount() {
|
|
455
|
+
const result = this.node.mount();
|
|
456
|
+
if (result === true) {
|
|
457
|
+
this.emitter.emitMount(this.node);
|
|
458
|
+
}
|
|
459
|
+
return !!result;
|
|
460
|
+
}
|
|
461
|
+
unmount() {
|
|
462
|
+
const result = this.node.unmount();
|
|
463
|
+
if (result === true) {
|
|
464
|
+
this.emitter.emitUnmount(this.node);
|
|
465
|
+
}
|
|
466
|
+
return !!result;
|
|
467
|
+
}
|
|
468
|
+
};
|
|
384
469
|
var Node_default2 = class {
|
|
385
470
|
constructor(node, component) {
|
|
386
471
|
this.node = node;
|
|
@@ -396,20 +481,21 @@ var Node_default2 = class {
|
|
|
396
481
|
mount() {
|
|
397
482
|
this.node.mount();
|
|
398
483
|
if (!this.container || this.root) {
|
|
399
|
-
return;
|
|
484
|
+
return false;
|
|
400
485
|
}
|
|
401
486
|
if (!this.component) {
|
|
402
487
|
console.warn("Content script react component is empty");
|
|
403
|
-
return;
|
|
488
|
+
return false;
|
|
404
489
|
}
|
|
405
490
|
this.root = createRoot(this.container);
|
|
406
491
|
this.root.render(this.component);
|
|
492
|
+
return true;
|
|
407
493
|
}
|
|
408
494
|
unmount() {
|
|
409
495
|
var _a;
|
|
410
496
|
(_a = this.root) == null ? void 0 : _a.unmount();
|
|
411
497
|
this.root = void 0;
|
|
412
|
-
this.node.unmount();
|
|
498
|
+
return !!this.node.unmount();
|
|
413
499
|
}
|
|
414
500
|
};
|
|
415
501
|
var contentScriptReactRenderResolver = (render) => async (props) => {
|
|
@@ -436,7 +522,7 @@ var Builder_default3 = class extends MountBuilder_default {
|
|
|
436
522
|
value = void 0;
|
|
437
523
|
console.warn("Content script react value is not a valid React element");
|
|
438
524
|
}
|
|
439
|
-
return new Node_default2(await super.createNode(anchor), value);
|
|
525
|
+
return new EventNode_default(new Node_default2(await super.createNode(anchor), value), this.emitter);
|
|
440
526
|
}
|
|
441
527
|
};
|
|
442
528
|
|