@addon-core/inject-css 0.3.0 → 0.3.1

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/index.cjs CHANGED
@@ -121,7 +121,11 @@ var InjectCssV3_default = class extends AbstractInjectCss_default {
121
121
  if (this.allFrames === true) {
122
122
  return { ...target, allFrames: true };
123
123
  }
124
- const isFirefox = !!browser().runtime.getBrowserInfo;
124
+ let isFirefox = false;
125
+ try {
126
+ isFirefox = !!browser().runtime.getBrowserInfo;
127
+ } catch (_e) {
128
+ }
125
129
  if (!isFirefox) {
126
130
  const documentIds = this.documentIds;
127
131
  if (documentIds && documentIds.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/InjectCssV2.ts","../src/AbstractInjectCss.ts","../src/InjectCssV3.ts"],"sourcesContent":["import {isManifestVersion3} from \"@addon-core/browser\";\nimport InjectCssV2 from \"./InjectCssV2\";\nimport InjectCssV3 from \"./InjectCssV3\";\nimport type {InjectCssContract, InjectCssOptions} from \"./types\";\n\nexport type {InjectCssContract, InjectCssOptions};\n\nexport default (options: InjectCssOptions): InjectCssContract => {\n return isManifestVersion3() ? new InjectCssV3(options) : new InjectCssV2(options);\n};\n","import {insertCssTab} from \"@addon-core/browser\";\nimport AbstractInjectCss from \"./AbstractInjectCss\";\n\ntype CSSOrigin = chrome.extensionTypes.CSSOrigin;\ntype InjectDetails = chrome.extensionTypes.InjectDetails;\n\nexport default class extends AbstractInjectCss {\n public async insert(code: string): Promise<void> {\n const {tabId, runAt} = this._options;\n\n const details: InjectDetails = {\n code,\n runAt,\n cssOrigin: this.cssOrigin,\n matchAboutBlank: this.matchAboutBlank,\n };\n\n if (this.allFrames) {\n await insertCssTab(tabId, {...details, allFrames: true});\n } else if (this.frameIds) {\n await Promise.all(this.frameIds.map(frameId => insertCssTab(tabId, {...details, frameId})));\n } else {\n await insertCssTab(tabId, details);\n }\n }\n\n public async file(files: string | string[]): Promise<void> {\n const {tabId, runAt} = this._options;\n\n const fileList = typeof files === \"string\" ? [files] : files;\n\n const injectTasks: Promise<any>[] = [];\n\n for (const file of fileList) {\n const details: InjectDetails = {\n file,\n runAt,\n cssOrigin: this.cssOrigin,\n matchAboutBlank: this.matchAboutBlank,\n };\n\n if (this.allFrames) {\n injectTasks.push(insertCssTab(tabId, {...details, allFrames: true}));\n } else if (this.frameIds) {\n injectTasks.push(...this.frameIds.map(frameId => insertCssTab(tabId, {...details, frameId})));\n } else {\n injectTasks.push(insertCssTab(tabId, details));\n }\n }\n\n await Promise.all(injectTasks);\n }\n\n protected get cssOrigin(): CSSOrigin | undefined {\n const {origin} = this._options;\n\n return origin && (origin.toLowerCase() as CSSOrigin);\n }\n}\n","import type {InjectCssContract, InjectCssOptions} from \"./types\";\n\nexport default abstract class implements InjectCssContract {\n constructor(protected _options: InjectCssOptions) {}\n\n public options(options: Partial<InjectCssOptions>): this {\n this._options = {...this._options, ...options, tabId: options.tabId ?? this._options.tabId};\n\n return this;\n }\n\n public abstract insert(css: string): Promise<void>;\n\n public abstract file(files: string | string[]): Promise<void>;\n\n protected get frameIds(): number[] | undefined {\n const {frameId} = this._options;\n\n return typeof frameId === \"number\" ? [frameId] : typeof frameId !== \"boolean\" ? frameId : undefined;\n }\n\n protected get allFrames(): boolean | undefined {\n const {frameId} = this._options;\n\n return typeof frameId === \"boolean\" ? frameId : undefined;\n }\n\n protected get matchAboutBlank(): boolean {\n const {matchAboutBlank} = this._options;\n\n return typeof matchAboutBlank === \"boolean\" ? matchAboutBlank : true;\n }\n}\n","import {insertCss} from \"@addon-core/browser\";\nimport AbstractInjectCss from \"./AbstractInjectCss\";\n\ntype InjectionTarget = chrome.scripting.InjectionTarget;\n\nexport default class extends AbstractInjectCss {\n public async insert(css: string): Promise<void> {\n await insertCss({\n target: this.target,\n origin: this._options.origin,\n css,\n });\n }\n\n public async file(fileList: string | string[]): Promise<void> {\n await insertCss({\n target: this.target,\n origin: this._options.origin,\n files: typeof fileList === \"string\" ? [fileList] : fileList,\n });\n }\n\n protected get target(): InjectionTarget {\n const target = {tabId: this._options.tabId};\n\n if (this.frameIds && this.frameIds.length > 0) {\n return {...target, frameIds: this.frameIds};\n }\n\n if (this.allFrames === true) {\n return {...target, allFrames: true};\n }\n\n // Firefox does not support `documentIds` in the target\n // getBrowserInfo is only available in firefox\n // @ts-expect-error\n const isFirefox = !!browser().runtime.getBrowserInfo;\n\n if (!isFirefox) {\n const documentIds = this.documentIds;\n\n if (documentIds && documentIds.length > 0) {\n return {...target, documentIds};\n }\n }\n\n return target;\n }\n\n protected get documentIds(): string[] | undefined {\n const {documentId} = this._options;\n\n return typeof documentId === \"string\" ? [documentId] : documentId;\n }\n}\n"],"mappings":"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","names":["import_browser","import_browser"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/InjectCssV2.ts","../src/AbstractInjectCss.ts","../src/InjectCssV3.ts"],"sourcesContent":["import {isManifestVersion3} from \"@addon-core/browser\";\nimport InjectCssV2 from \"./InjectCssV2\";\nimport InjectCssV3 from \"./InjectCssV3\";\nimport type {InjectCssContract, InjectCssOptions} from \"./types\";\n\nexport type {InjectCssContract, InjectCssOptions};\n\nexport default (options: InjectCssOptions): InjectCssContract => {\n return isManifestVersion3() ? new InjectCssV3(options) : new InjectCssV2(options);\n};\n","import {insertCssTab} from \"@addon-core/browser\";\nimport AbstractInjectCss from \"./AbstractInjectCss\";\n\ntype CSSOrigin = chrome.extensionTypes.CSSOrigin;\ntype InjectDetails = chrome.extensionTypes.InjectDetails;\n\nexport default class extends AbstractInjectCss {\n public async insert(code: string): Promise<void> {\n const {tabId, runAt} = this._options;\n\n const details: InjectDetails = {\n code,\n runAt,\n cssOrigin: this.cssOrigin,\n matchAboutBlank: this.matchAboutBlank,\n };\n\n if (this.allFrames) {\n await insertCssTab(tabId, {...details, allFrames: true});\n } else if (this.frameIds) {\n await Promise.all(this.frameIds.map(frameId => insertCssTab(tabId, {...details, frameId})));\n } else {\n await insertCssTab(tabId, details);\n }\n }\n\n public async file(files: string | string[]): Promise<void> {\n const {tabId, runAt} = this._options;\n\n const fileList = typeof files === \"string\" ? [files] : files;\n\n const injectTasks: Promise<any>[] = [];\n\n for (const file of fileList) {\n const details: InjectDetails = {\n file,\n runAt,\n cssOrigin: this.cssOrigin,\n matchAboutBlank: this.matchAboutBlank,\n };\n\n if (this.allFrames) {\n injectTasks.push(insertCssTab(tabId, {...details, allFrames: true}));\n } else if (this.frameIds) {\n injectTasks.push(...this.frameIds.map(frameId => insertCssTab(tabId, {...details, frameId})));\n } else {\n injectTasks.push(insertCssTab(tabId, details));\n }\n }\n\n await Promise.all(injectTasks);\n }\n\n protected get cssOrigin(): CSSOrigin | undefined {\n const {origin} = this._options;\n\n return origin && (origin.toLowerCase() as CSSOrigin);\n }\n}\n","import type {InjectCssContract, InjectCssOptions} from \"./types\";\n\nexport default abstract class implements InjectCssContract {\n constructor(protected _options: InjectCssOptions) {}\n\n public options(options: Partial<InjectCssOptions>): this {\n this._options = {...this._options, ...options, tabId: options.tabId ?? this._options.tabId};\n\n return this;\n }\n\n public abstract insert(css: string): Promise<void>;\n\n public abstract file(files: string | string[]): Promise<void>;\n\n protected get frameIds(): number[] | undefined {\n const {frameId} = this._options;\n\n return typeof frameId === \"number\" ? [frameId] : typeof frameId !== \"boolean\" ? frameId : undefined;\n }\n\n protected get allFrames(): boolean | undefined {\n const {frameId} = this._options;\n\n return typeof frameId === \"boolean\" ? frameId : undefined;\n }\n\n protected get matchAboutBlank(): boolean {\n const {matchAboutBlank} = this._options;\n\n return typeof matchAboutBlank === \"boolean\" ? matchAboutBlank : true;\n }\n}\n","import {insertCss} from \"@addon-core/browser\";\nimport AbstractInjectCss from \"./AbstractInjectCss\";\n\ntype InjectionTarget = chrome.scripting.InjectionTarget;\n\nexport default class extends AbstractInjectCss {\n public async insert(css: string): Promise<void> {\n await insertCss({\n target: this.target,\n origin: this._options.origin,\n css,\n });\n }\n\n public async file(fileList: string | string[]): Promise<void> {\n await insertCss({\n target: this.target,\n origin: this._options.origin,\n files: typeof fileList === \"string\" ? [fileList] : fileList,\n });\n }\n\n protected get target(): InjectionTarget {\n const target = {tabId: this._options.tabId};\n\n if (this.frameIds && this.frameIds.length > 0) {\n return {...target, frameIds: this.frameIds};\n }\n\n if (this.allFrames === true) {\n return {...target, allFrames: true};\n }\n\n // Firefox does not support `documentIds` in the target\n // getBrowserInfo is only available in firefox\n let isFirefox = false;\n try {\n // @ts-expect-error\n isFirefox = !!browser().runtime.getBrowserInfo;\n } catch (_e) {}\n\n if (!isFirefox) {\n const documentIds = this.documentIds;\n\n if (documentIds && documentIds.length > 0) {\n return {...target, documentIds};\n }\n }\n\n return target;\n }\n\n protected get documentIds(): string[] | undefined {\n const {documentId} = this._options;\n\n return typeof documentId === \"string\" ? [documentId] : documentId;\n }\n}\n"],"mappings":"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","names":["import_browser","import_browser"]}
package/dist/index.js CHANGED
@@ -97,7 +97,11 @@ var InjectCssV3_default = class extends AbstractInjectCss_default {
97
97
  if (this.allFrames === true) {
98
98
  return { ...target, allFrames: true };
99
99
  }
100
- const isFirefox = !!browser().runtime.getBrowserInfo;
100
+ let isFirefox = false;
101
+ try {
102
+ isFirefox = !!browser().runtime.getBrowserInfo;
103
+ } catch (_e) {
104
+ }
101
105
  if (!isFirefox) {
102
106
  const documentIds = this.documentIds;
103
107
  if (documentIds && documentIds.length > 0) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/InjectCssV2.ts","../src/AbstractInjectCss.ts","../src/InjectCssV3.ts"],"sourcesContent":["import {isManifestVersion3} from \"@addon-core/browser\";\nimport InjectCssV2 from \"./InjectCssV2\";\nimport InjectCssV3 from \"./InjectCssV3\";\nimport type {InjectCssContract, InjectCssOptions} from \"./types\";\n\nexport type {InjectCssContract, InjectCssOptions};\n\nexport default (options: InjectCssOptions): InjectCssContract => {\n return isManifestVersion3() ? new InjectCssV3(options) : new InjectCssV2(options);\n};\n","import {insertCssTab} from \"@addon-core/browser\";\nimport AbstractInjectCss from \"./AbstractInjectCss\";\n\ntype CSSOrigin = chrome.extensionTypes.CSSOrigin;\ntype InjectDetails = chrome.extensionTypes.InjectDetails;\n\nexport default class extends AbstractInjectCss {\n public async insert(code: string): Promise<void> {\n const {tabId, runAt} = this._options;\n\n const details: InjectDetails = {\n code,\n runAt,\n cssOrigin: this.cssOrigin,\n matchAboutBlank: this.matchAboutBlank,\n };\n\n if (this.allFrames) {\n await insertCssTab(tabId, {...details, allFrames: true});\n } else if (this.frameIds) {\n await Promise.all(this.frameIds.map(frameId => insertCssTab(tabId, {...details, frameId})));\n } else {\n await insertCssTab(tabId, details);\n }\n }\n\n public async file(files: string | string[]): Promise<void> {\n const {tabId, runAt} = this._options;\n\n const fileList = typeof files === \"string\" ? [files] : files;\n\n const injectTasks: Promise<any>[] = [];\n\n for (const file of fileList) {\n const details: InjectDetails = {\n file,\n runAt,\n cssOrigin: this.cssOrigin,\n matchAboutBlank: this.matchAboutBlank,\n };\n\n if (this.allFrames) {\n injectTasks.push(insertCssTab(tabId, {...details, allFrames: true}));\n } else if (this.frameIds) {\n injectTasks.push(...this.frameIds.map(frameId => insertCssTab(tabId, {...details, frameId})));\n } else {\n injectTasks.push(insertCssTab(tabId, details));\n }\n }\n\n await Promise.all(injectTasks);\n }\n\n protected get cssOrigin(): CSSOrigin | undefined {\n const {origin} = this._options;\n\n return origin && (origin.toLowerCase() as CSSOrigin);\n }\n}\n","import type {InjectCssContract, InjectCssOptions} from \"./types\";\n\nexport default abstract class implements InjectCssContract {\n constructor(protected _options: InjectCssOptions) {}\n\n public options(options: Partial<InjectCssOptions>): this {\n this._options = {...this._options, ...options, tabId: options.tabId ?? this._options.tabId};\n\n return this;\n }\n\n public abstract insert(css: string): Promise<void>;\n\n public abstract file(files: string | string[]): Promise<void>;\n\n protected get frameIds(): number[] | undefined {\n const {frameId} = this._options;\n\n return typeof frameId === \"number\" ? [frameId] : typeof frameId !== \"boolean\" ? frameId : undefined;\n }\n\n protected get allFrames(): boolean | undefined {\n const {frameId} = this._options;\n\n return typeof frameId === \"boolean\" ? frameId : undefined;\n }\n\n protected get matchAboutBlank(): boolean {\n const {matchAboutBlank} = this._options;\n\n return typeof matchAboutBlank === \"boolean\" ? matchAboutBlank : true;\n }\n}\n","import {insertCss} from \"@addon-core/browser\";\nimport AbstractInjectCss from \"./AbstractInjectCss\";\n\ntype InjectionTarget = chrome.scripting.InjectionTarget;\n\nexport default class extends AbstractInjectCss {\n public async insert(css: string): Promise<void> {\n await insertCss({\n target: this.target,\n origin: this._options.origin,\n css,\n });\n }\n\n public async file(fileList: string | string[]): Promise<void> {\n await insertCss({\n target: this.target,\n origin: this._options.origin,\n files: typeof fileList === \"string\" ? [fileList] : fileList,\n });\n }\n\n protected get target(): InjectionTarget {\n const target = {tabId: this._options.tabId};\n\n if (this.frameIds && this.frameIds.length > 0) {\n return {...target, frameIds: this.frameIds};\n }\n\n if (this.allFrames === true) {\n return {...target, allFrames: true};\n }\n\n // Firefox does not support `documentIds` in the target\n // getBrowserInfo is only available in firefox\n // @ts-expect-error\n const isFirefox = !!browser().runtime.getBrowserInfo;\n\n if (!isFirefox) {\n const documentIds = this.documentIds;\n\n if (documentIds && documentIds.length > 0) {\n return {...target, documentIds};\n }\n }\n\n return target;\n }\n\n protected get documentIds(): string[] | undefined {\n const {documentId} = this._options;\n\n return typeof documentId === \"string\" ? [documentId] : documentId;\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/index.ts","../src/InjectCssV2.ts","../src/AbstractInjectCss.ts","../src/InjectCssV3.ts"],"sourcesContent":["import {isManifestVersion3} from \"@addon-core/browser\";\nimport InjectCssV2 from \"./InjectCssV2\";\nimport InjectCssV3 from \"./InjectCssV3\";\nimport type {InjectCssContract, InjectCssOptions} from \"./types\";\n\nexport type {InjectCssContract, InjectCssOptions};\n\nexport default (options: InjectCssOptions): InjectCssContract => {\n return isManifestVersion3() ? new InjectCssV3(options) : new InjectCssV2(options);\n};\n","import {insertCssTab} from \"@addon-core/browser\";\nimport AbstractInjectCss from \"./AbstractInjectCss\";\n\ntype CSSOrigin = chrome.extensionTypes.CSSOrigin;\ntype InjectDetails = chrome.extensionTypes.InjectDetails;\n\nexport default class extends AbstractInjectCss {\n public async insert(code: string): Promise<void> {\n const {tabId, runAt} = this._options;\n\n const details: InjectDetails = {\n code,\n runAt,\n cssOrigin: this.cssOrigin,\n matchAboutBlank: this.matchAboutBlank,\n };\n\n if (this.allFrames) {\n await insertCssTab(tabId, {...details, allFrames: true});\n } else if (this.frameIds) {\n await Promise.all(this.frameIds.map(frameId => insertCssTab(tabId, {...details, frameId})));\n } else {\n await insertCssTab(tabId, details);\n }\n }\n\n public async file(files: string | string[]): Promise<void> {\n const {tabId, runAt} = this._options;\n\n const fileList = typeof files === \"string\" ? [files] : files;\n\n const injectTasks: Promise<any>[] = [];\n\n for (const file of fileList) {\n const details: InjectDetails = {\n file,\n runAt,\n cssOrigin: this.cssOrigin,\n matchAboutBlank: this.matchAboutBlank,\n };\n\n if (this.allFrames) {\n injectTasks.push(insertCssTab(tabId, {...details, allFrames: true}));\n } else if (this.frameIds) {\n injectTasks.push(...this.frameIds.map(frameId => insertCssTab(tabId, {...details, frameId})));\n } else {\n injectTasks.push(insertCssTab(tabId, details));\n }\n }\n\n await Promise.all(injectTasks);\n }\n\n protected get cssOrigin(): CSSOrigin | undefined {\n const {origin} = this._options;\n\n return origin && (origin.toLowerCase() as CSSOrigin);\n }\n}\n","import type {InjectCssContract, InjectCssOptions} from \"./types\";\n\nexport default abstract class implements InjectCssContract {\n constructor(protected _options: InjectCssOptions) {}\n\n public options(options: Partial<InjectCssOptions>): this {\n this._options = {...this._options, ...options, tabId: options.tabId ?? this._options.tabId};\n\n return this;\n }\n\n public abstract insert(css: string): Promise<void>;\n\n public abstract file(files: string | string[]): Promise<void>;\n\n protected get frameIds(): number[] | undefined {\n const {frameId} = this._options;\n\n return typeof frameId === \"number\" ? [frameId] : typeof frameId !== \"boolean\" ? frameId : undefined;\n }\n\n protected get allFrames(): boolean | undefined {\n const {frameId} = this._options;\n\n return typeof frameId === \"boolean\" ? frameId : undefined;\n }\n\n protected get matchAboutBlank(): boolean {\n const {matchAboutBlank} = this._options;\n\n return typeof matchAboutBlank === \"boolean\" ? matchAboutBlank : true;\n }\n}\n","import {insertCss} from \"@addon-core/browser\";\nimport AbstractInjectCss from \"./AbstractInjectCss\";\n\ntype InjectionTarget = chrome.scripting.InjectionTarget;\n\nexport default class extends AbstractInjectCss {\n public async insert(css: string): Promise<void> {\n await insertCss({\n target: this.target,\n origin: this._options.origin,\n css,\n });\n }\n\n public async file(fileList: string | string[]): Promise<void> {\n await insertCss({\n target: this.target,\n origin: this._options.origin,\n files: typeof fileList === \"string\" ? [fileList] : fileList,\n });\n }\n\n protected get target(): InjectionTarget {\n const target = {tabId: this._options.tabId};\n\n if (this.frameIds && this.frameIds.length > 0) {\n return {...target, frameIds: this.frameIds};\n }\n\n if (this.allFrames === true) {\n return {...target, allFrames: true};\n }\n\n // Firefox does not support `documentIds` in the target\n // getBrowserInfo is only available in firefox\n let isFirefox = false;\n try {\n // @ts-expect-error\n isFirefox = !!browser().runtime.getBrowserInfo;\n } catch (_e) {}\n\n if (!isFirefox) {\n const documentIds = this.documentIds;\n\n if (documentIds && documentIds.length > 0) {\n return {...target, documentIds};\n }\n }\n\n return target;\n }\n\n protected get documentIds(): string[] | undefined {\n const {documentId} = this._options;\n\n return typeof documentId === \"string\" ? [documentId] : documentId;\n }\n}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@addon-core/inject-css",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "A lightweight TypeScript-friendly library to inject CSS into browser extensions (Manifest V2 & V3)",
5
5
  "keywords": [
6
6
  "browser",