mirror of
https://github.com/danielsogl/awesome-cordova-plugins.git
synced 2026-07-16 00:00:04 +08:00
Compare commits
32
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ad2b96532b | ||
|
|
3aba9fb3be | ||
|
|
c929197b72 | ||
|
|
c889c29fd7 | ||
|
|
92f25e05f0 | ||
|
|
1323d60d93 | ||
|
|
5d4b19b16f | ||
|
|
100c31f4ae | ||
|
|
b1c6135d40 | ||
|
|
1ddb8ca2b9 | ||
|
|
7042240c4c | ||
|
|
b27760071f | ||
|
|
e5c5ab5646 | ||
|
|
2655a557d2 | ||
|
|
346b93dae1 | ||
|
|
0687f8b4f8 | ||
|
|
8dbb439908 | ||
|
|
dbcfe59b75 | ||
|
|
d7d7f5ba7c | ||
|
|
dbcd8c0bda | ||
|
|
2f7eca8932 | ||
|
|
0c5380ff10 | ||
|
|
fa13dd16f4 | ||
|
|
70d5b1e2f2 | ||
|
|
694078a325 | ||
|
|
4597727725 | ||
|
|
0ef3fa9655 | ||
|
|
cc087382e4 | ||
|
|
5b4a0a4eff | ||
|
|
ee64b91371 | ||
|
|
9005eab47e | ||
|
|
ff293a931e |
@@ -1,3 +1,3 @@
|
||||
{
|
||||
".": "9.1.3"
|
||||
".": "9.2.0"
|
||||
}
|
||||
|
||||
@@ -256,6 +256,32 @@
|
||||
|
||||
|
||||
|
||||
## [9.2.0](https://github.com/danielsogl/awesome-cordova-plugins/compare/awesome-cordova-plugins-v9.1.4...awesome-cordova-plugins-v9.2.0) (2026-05-11)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **adjust:** update adjust sdk index.ts api to v5.6.0 ([#5154](https://github.com/danielsogl/awesome-cordova-plugins/issues/5154)) ([fa13dd1](https://github.com/danielsogl/awesome-cordova-plugins/commit/fa13dd16f44dd8163854039877ff019e3b461892))
|
||||
|
||||
|
||||
### Miscellaneous Chores
|
||||
|
||||
* **deps:** update dependency @swc/core to ^1.15.30 ([#5146](https://github.com/danielsogl/awesome-cordova-plugins/issues/5146)) ([ee64b91](https://github.com/danielsogl/awesome-cordova-plugins/commit/ee64b913711da74c0d76709c15bcc48abec702d8))
|
||||
* **deps:** update dependency @swc/core to ^1.15.33 ([#5155](https://github.com/danielsogl/awesome-cordova-plugins/issues/5155)) ([0ef3fa9](https://github.com/danielsogl/awesome-cordova-plugins/commit/0ef3fa9655477d457401e230053f410058186641))
|
||||
* **deps:** update dependency @types/node to ^22.19.18 ([#5157](https://github.com/danielsogl/awesome-cordova-plugins/issues/5157)) ([694078a](https://github.com/danielsogl/awesome-cordova-plugins/commit/694078a325882872a80997434d3a2731754271e2))
|
||||
* **deps:** update dependency rollup to ^4.60.2 ([#5147](https://github.com/danielsogl/awesome-cordova-plugins/issues/5147)) ([5b4a0a4](https://github.com/danielsogl/awesome-cordova-plugins/commit/5b4a0a4efff086c91424bbf53667d57d17103e3d))
|
||||
* **deps:** update dependency rollup to ^4.60.3 ([#5158](https://github.com/danielsogl/awesome-cordova-plugins/issues/5158)) ([0c5380f](https://github.com/danielsogl/awesome-cordova-plugins/commit/0c5380ff10adb71000218af62785b7ca893b44d2))
|
||||
* **deps:** update dependency typescript to ~5.9.3 ([#5151](https://github.com/danielsogl/awesome-cordova-plugins/issues/5151)) ([70d5b1e](https://github.com/danielsogl/awesome-cordova-plugins/commit/70d5b1e2f2382ed06c4d7ab269a51bc4735c6319))
|
||||
* **deps:** update linting and formatting ([#5152](https://github.com/danielsogl/awesome-cordova-plugins/issues/5152)) ([cc08738](https://github.com/danielsogl/awesome-cordova-plugins/commit/cc087382e4f6e458d3a2fad000cd3ca3895e4873))
|
||||
* **deps:** update linting and formatting ([#5156](https://github.com/danielsogl/awesome-cordova-plugins/issues/5156)) ([4597727](https://github.com/danielsogl/awesome-cordova-plugins/commit/459772772581a20b54d2f73c508fcfd7b6286f09))
|
||||
|
||||
## [9.1.4](https://github.com/danielsogl/awesome-cordova-plugins/compare/awesome-cordova-plugins-v9.1.3...awesome-cordova-plugins-v9.1.4) (2026-04-15)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* restore v9 plugin exports ([#5144](https://github.com/danielsogl/awesome-cordova-plugins/issues/5144)) ([ff293a9](https://github.com/danielsogl/awesome-cordova-plugins/commit/ff293a931e135d86e4f8b16f75fd2e8a3e42c11a))
|
||||
|
||||
## [9.1.3](https://github.com/danielsogl/awesome-cordova-plugins/compare/awesome-cordova-plugins-v9.1.2...awesome-cordova-plugins-v9.1.3) (2026-04-15)
|
||||
|
||||
|
||||
|
||||
Generated
+1215
-1104
File diff suppressed because it is too large
Load Diff
+15
-15
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "awesome-cordova-plugins",
|
||||
"version": "9.1.3",
|
||||
"version": "9.2.0",
|
||||
"description": "Native plugin wrappers for Cordova and Ionic with TypeScript, ES6+, Promise and Observable support",
|
||||
"homepage": "https://awesome-cordova-plugins.com",
|
||||
"author": "Daniel Sogl <me@danielsogl.com> (https://danielsogl.com)",
|
||||
@@ -32,25 +32,25 @@
|
||||
"@angular/compiler-cli": "20.3.18",
|
||||
"@angular/core": "20.3.18",
|
||||
"@eslint/js": "^10.0.0",
|
||||
"@swc/core": "^1.15.24",
|
||||
"@swc/core": "^1.15.43",
|
||||
"@swc/jest": "^0.2.39",
|
||||
"@types/cordova": "11.0.3",
|
||||
"@types/jest": "^30.0.0",
|
||||
"@types/node": "^22.19.17",
|
||||
"eslint": "^10.1.0",
|
||||
"@types/node": "^24.13.3",
|
||||
"eslint": "^10.6.0",
|
||||
"eslint-config-prettier": "10.1.8",
|
||||
"eslint-plugin-jsdoc": "^62.8.1",
|
||||
"jest": "^30.3.0",
|
||||
"jest-environment-jsdom": "^30.3.0",
|
||||
"lefthook": "^2.1.4",
|
||||
"prettier": "^3.8.1",
|
||||
"rollup": "^4.60.1",
|
||||
"eslint-plugin-jsdoc": "^63.0.12",
|
||||
"jest": "^30.4.2",
|
||||
"jest-environment-jsdom": "^30.4.1",
|
||||
"lefthook": "^2.1.9",
|
||||
"prettier": "^3.9.4",
|
||||
"rollup": "^4.62.2",
|
||||
"rxjs": "^7.8.2",
|
||||
"tsx": "^4.21.0",
|
||||
"typedoc": "^0.28.19",
|
||||
"typedoc-plugin-markdown": "^4.11.0",
|
||||
"typescript": "~5.8.3",
|
||||
"typescript-eslint": "^8.57.2"
|
||||
"tsx": "^4.23.1",
|
||||
"typedoc": "^0.28.20",
|
||||
"typedoc-plugin-markdown": "^4.12.0",
|
||||
"typescript": "~5.9.3",
|
||||
"typescript-eslint": "^8.62.1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
import { rewriteInjectableExports } from './esm-exports';
|
||||
|
||||
describe('rewriteInjectableExports', () => {
|
||||
test('rewrites inline class exports into instance exports', () => {
|
||||
const jsFile = `import { AwesomeCordovaNativePlugin } from '@awesome-cordova-plugins/core';
|
||||
export class File extends AwesomeCordovaNativePlugin {
|
||||
static pluginName = 'File';
|
||||
}
|
||||
//# sourceMappingURL=index.js.map`;
|
||||
|
||||
expect(rewriteInjectableExports(jsFile, [{ className: 'File', dirName: 'file', file: '/tmp/file/index.ts' }]))
|
||||
.toBe(`import { AwesomeCordovaNativePlugin } from '@awesome-cordova-plugins/core';
|
||||
class FileOriginal extends AwesomeCordovaNativePlugin {
|
||||
static pluginName = 'File';
|
||||
}
|
||||
const File = new FileOriginal();
|
||||
export { File };
|
||||
//# sourceMappingURL=index.js.map`);
|
||||
});
|
||||
|
||||
test('keeps supporting legacy named exports', () => {
|
||||
const jsFile = `class SocialSharingOriginal {}
|
||||
export { SocialSharingOriginal };`;
|
||||
|
||||
expect(
|
||||
rewriteInjectableExports(jsFile, [
|
||||
{ className: 'SocialSharing', dirName: 'social-sharing', file: '/tmp/social-sharing/index.ts' },
|
||||
])
|
||||
).toBe(`class SocialSharingOriginal {}
|
||||
const SocialSharing = new SocialSharingOriginal();
|
||||
export { SocialSharing };`);
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,45 @@
|
||||
import { InjectableClassEntry } from './transformers/extract-injectables';
|
||||
|
||||
const SOURCE_MAP_COMMENT = '\n//# sourceMappingURL=';
|
||||
|
||||
function insertBeforeSourceMapComment(contents: string, addition: string): string {
|
||||
const sourceMapIndex = contents.lastIndexOf(SOURCE_MAP_COMMENT);
|
||||
if (sourceMapIndex === -1) {
|
||||
return `${contents}\n${addition}`;
|
||||
}
|
||||
|
||||
return `${contents.slice(0, sourceMapIndex)}\n${addition}${contents.slice(sourceMapIndex)}`;
|
||||
}
|
||||
|
||||
export function rewriteInjectableExports(jsFile: string, classes: InjectableClassEntry[]): string {
|
||||
let rewrittenFile = jsFile;
|
||||
const exportBlocks: string[] = [];
|
||||
|
||||
classes.forEach((entry) => {
|
||||
const originalClassName = `${entry.className}Original`;
|
||||
|
||||
rewrittenFile = rewrittenFile.replace(
|
||||
new RegExp(`([\\s\\(])${entry.className}([\\s\\.;\\(,])`, 'g'),
|
||||
`$1${originalClassName}$2`
|
||||
);
|
||||
|
||||
const legacyExportPattern = new RegExp(`\\nexport\\s*\\{\\s*${originalClassName}\\s*\\};?`);
|
||||
if (legacyExportPattern.test(rewrittenFile)) {
|
||||
rewrittenFile = rewrittenFile.replace(legacyExportPattern, '');
|
||||
} else {
|
||||
const inlineClassExportPattern = new RegExp(`export\\s+class\\s+${originalClassName}(?=\\s)`);
|
||||
if (!inlineClassExportPattern.test(rewrittenFile)) {
|
||||
throw new Error(`Could not rewrite ESM export for injectable class "${entry.className}"`);
|
||||
}
|
||||
rewrittenFile = rewrittenFile.replace(inlineClassExportPattern, `class ${originalClassName}`);
|
||||
}
|
||||
|
||||
exportBlocks.push(`const ${entry.className} = new ${originalClassName}();\nexport { ${entry.className} };`);
|
||||
});
|
||||
|
||||
if (exportBlocks.length === 0) {
|
||||
return rewrittenFile;
|
||||
}
|
||||
|
||||
return insertBeforeSourceMapComment(rewrittenFile, exportBlocks.join('\n'));
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
import { readFileSync, writeFileSync } from 'node:fs';
|
||||
import { join } from 'node:path';
|
||||
|
||||
import { rewriteInjectableExports } from '../build/esm-exports';
|
||||
import { PLUGIN_PATHS, ROOT } from '../build/helpers';
|
||||
import { InjectableClassEntry, EMIT_PATH } from '../build/transformers/extract-injectables';
|
||||
import { generateDeclarations, transpile } from '../build/transpile';
|
||||
@@ -17,17 +18,11 @@ outDirs.forEach((dir: string) => {
|
||||
let jsFile: string = readFileSync(join(dir, 'index.js'), 'utf-8'),
|
||||
dtsFile: string = readFileSync(join(dir, 'index.d.ts'), 'utf-8');
|
||||
|
||||
jsFile = rewriteInjectableExports(jsFile, classes);
|
||||
|
||||
classes.forEach((entry) => {
|
||||
dtsFile = dtsFile.replace(`class ${entry.className} `, 'class ' + entry.className + 'Original ');
|
||||
dtsFile += `\nexport declare const ${entry.className}: ${entry.className}Original;`;
|
||||
jsFile = jsFile.replace(
|
||||
new RegExp(`([\\s\\(])${entry.className}([\\s\\.;\\(,])`, 'g'),
|
||||
'$1' + entry.className + 'Original$2'
|
||||
);
|
||||
jsFile = jsFile.replace(
|
||||
`export { ${entry.className}Original }`,
|
||||
`var ${entry.className} = new ${entry.className}Original();\nexport { ${entry.className} }`
|
||||
);
|
||||
});
|
||||
|
||||
writeFileSync(join(dir, 'index.js'), jsFile, 'utf-8');
|
||||
|
||||
@@ -27,6 +27,7 @@ export class AdjustConfig {
|
||||
private sessionTrackingSucceededCallback: (session: AdjustSessionSuccess) => void = null;
|
||||
private sessionTrackingFailedCallback: (session: AdjustSessionFailure) => void = null;
|
||||
private deferredDeeplinkCallback: (deeplink: string) => void = null;
|
||||
private remoteTriggerCallback: (remoteTrigger: AdjustRemoteTrigger) => void = null;
|
||||
|
||||
// android only
|
||||
private processName: string = null;
|
||||
@@ -34,6 +35,7 @@ export class AdjustConfig {
|
||||
private preinstallFilePath: string = null;
|
||||
private isPlayStoreKidsComplianceEnabled: boolean = null;
|
||||
private fbAppId: string = null;
|
||||
private isAppSetIdReadingEnabled: boolean = null;
|
||||
|
||||
// ios only
|
||||
private isAdServicesEnabled: boolean = null;
|
||||
@@ -125,6 +127,10 @@ export class AdjustConfig {
|
||||
this.deferredDeeplinkCallback = deferredDeeplinkCallback;
|
||||
}
|
||||
|
||||
setRemoteTriggerCallback(remoteTriggerCallback: (remoteTrigger: AdjustRemoteTrigger) => void): void {
|
||||
this.remoteTriggerCallback = remoteTriggerCallback;
|
||||
}
|
||||
|
||||
private getAttributionCallback(): ((attribution: AdjustAttribution) => void) | null {
|
||||
return this.attributionCallback;
|
||||
}
|
||||
@@ -149,6 +155,10 @@ export class AdjustConfig {
|
||||
return this.deferredDeeplinkCallback;
|
||||
}
|
||||
|
||||
private getRemoteTriggerCallback(): ((remoteTrigger: AdjustRemoteTrigger) => void) | null {
|
||||
return this.remoteTriggerCallback;
|
||||
}
|
||||
|
||||
private hasAttributionCallback(): boolean {
|
||||
return this.attributionCallback !== null;
|
||||
}
|
||||
@@ -173,6 +183,10 @@ export class AdjustConfig {
|
||||
return this.deferredDeeplinkCallback !== null;
|
||||
}
|
||||
|
||||
private hasRemoteTriggerCallback(): boolean {
|
||||
return this.remoteTriggerCallback !== null;
|
||||
}
|
||||
|
||||
// android only
|
||||
setProcessName(processName: string): void {
|
||||
this.processName = processName;
|
||||
@@ -190,6 +204,10 @@ export class AdjustConfig {
|
||||
this.fbAppId = fbAppId;
|
||||
}
|
||||
|
||||
disableAppSetIdReading(): void {
|
||||
this.isAppSetIdReadingEnabled = false;
|
||||
}
|
||||
|
||||
// ios only
|
||||
disableIdfaReading(): void {
|
||||
this.isIdfaReadingEnabled = false;
|
||||
@@ -525,6 +543,11 @@ export interface AdjustSkanData {
|
||||
error: string;
|
||||
}
|
||||
|
||||
export interface AdjustRemoteTrigger {
|
||||
label: string;
|
||||
payloadJson: string;
|
||||
}
|
||||
|
||||
export interface AdjustPurchaseVerificationResult {
|
||||
verificationStatus: string;
|
||||
code: number;
|
||||
@@ -574,6 +597,7 @@ export enum AdjustLogLevel {
|
||||
* AdjustEventSuccess
|
||||
* AdjustEventFailure
|
||||
* AdjustSkanData
|
||||
* AdjustRemoteTrigger
|
||||
* AdjustPurchaseVerificationResult
|
||||
* @classes
|
||||
* AdjustConfig
|
||||
@@ -679,10 +703,22 @@ export class Adjust extends AwesomeCordovaNativePlugin {
|
||||
* This method is used to send and potentially resolve shortened deep links
|
||||
*
|
||||
* @param {AdjustDeeplink} adjustDeeplink AdjustDeeplink instance containing shortened deep link that has opened your app
|
||||
* @returns {Promise<string>} Returns a promise with either resolved (if it was resolved) or echoed deep link
|
||||
* @returns {Promise<string | null>} Returns a promise with either resolved (if it was resolved) or echoed deep link
|
||||
*/
|
||||
@Cordova()
|
||||
processAndResolveDeeplink(adjustDeeplink: AdjustDeeplink): Promise<string> {
|
||||
processAndResolveDeeplink(adjustDeeplink: AdjustDeeplink): Promise<string | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method resolves the underlying Adjust link from other links that wrap Adjust links.
|
||||
*
|
||||
* @param {string} url URL to resolve
|
||||
* @param {string[]} resolveUrlSuffixArray Array of URL suffixes to resolve
|
||||
* @returns {Promise<string | null>} Returns a promise with resolved link or null
|
||||
*/
|
||||
@Cordova()
|
||||
resolveLinkWithUrl(url: string, resolveUrlSuffixArray: string[]): Promise<string | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -727,40 +763,40 @@ export class Adjust extends AwesomeCordovaNativePlugin {
|
||||
/**
|
||||
* Function used to get Google AdId
|
||||
*
|
||||
* @returns {Promise<string>} Returns a promise with Google advertising ID value
|
||||
* @returns {Promise<string | null>} Returns a promise with Google advertising ID value
|
||||
*/
|
||||
@Cordova()
|
||||
getGoogleAdId(): Promise<string> {
|
||||
getGoogleAdId(): Promise<string | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* If you need to obtain the Amazon Fire Advertising ID, you can make a call to this function.
|
||||
*
|
||||
* @returns {Promise<string>} Returns a promise with Amazon Fire advertising ID
|
||||
* @returns {Promise<string | null>} Returns a promise with Amazon Fire advertising ID
|
||||
*/
|
||||
@Cordova()
|
||||
getAmazonAdId(): Promise<string> {
|
||||
getAmazonAdId(): Promise<string | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* To obtain the IDFA, call this function
|
||||
*
|
||||
* @returns {Promise<string>} Returns a promise with IDFA string value
|
||||
* @returns {Promise<string | null>} Returns a promise with IDFA string value
|
||||
*/
|
||||
@Cordova()
|
||||
getIdfa(): Promise<string> {
|
||||
getIdfa(): Promise<string | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* To obtain the IDFV, call this function
|
||||
*
|
||||
* @returns {Promise<string>} Returns a promise with IDFV string value
|
||||
* @returns {Promise<string | null>} Returns a promise with IDFV string value
|
||||
*/
|
||||
@Cordova()
|
||||
getIdfv(): Promise<string> {
|
||||
getIdfv(): Promise<string | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -768,30 +804,52 @@ export class Adjust extends AwesomeCordovaNativePlugin {
|
||||
* For every device with your app installed on it, the Adjust backend generates a unique Adjust device identifier (adid).
|
||||
* In order to obtain this identifier, call this function
|
||||
*
|
||||
* @returns {Promise<string>} Returns a promise with adid value
|
||||
* @returns {Promise<string | null>} Returns a promise with adid value
|
||||
*/
|
||||
@Cordova()
|
||||
getAdid(): Promise<string> {
|
||||
getAdid(): Promise<string | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method allows retrieving the ADID with a specified timeout. If the value is not obtained in time, null is returned.
|
||||
*
|
||||
* @param {number} timeoutInMilliseconds Timeout in milliseconds
|
||||
* @returns {Promise<string | null>} Returns a promise with adid value or null if timeout
|
||||
*/
|
||||
@Cordova()
|
||||
getAdidWithTimeout(timeoutInMilliseconds: number): Promise<string | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* If you want to access information about a user's current attribution whenever you need it, you can make a call to this function
|
||||
*
|
||||
* @returns {Promise<AdjustAttribution>} Returns a promise with AdjustAttribution object
|
||||
* @returns {Promise<AdjustAttribution | null>} Returns a promise with AdjustAttribution object
|
||||
*/
|
||||
@Cordova()
|
||||
getAttribution(): Promise<AdjustAttribution> {
|
||||
getAttribution(): Promise<AdjustAttribution | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method allows retrieving the current attribution information with a specified timeout. If the value is not obtained in time, null is returned.
|
||||
*
|
||||
* @param {number} timeoutInMilliseconds Timeout in milliseconds
|
||||
* @returns {Promise<AdjustAttribution | null>} Returns a promise with AdjustAttribution object or null if timeout
|
||||
*/
|
||||
@Cordova()
|
||||
getAttributionWithTimeout(timeoutInMilliseconds: number): Promise<AdjustAttribution | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the information about version of the SDK used
|
||||
*
|
||||
* @returns {Promise<string>} Returns a promise with SDK version information
|
||||
* @returns {Promise<string | null>} Returns a promise with SDK version information
|
||||
*/
|
||||
@Cordova()
|
||||
getSdkVersion(): Promise<string> {
|
||||
getSdkVersion(): Promise<string | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -875,10 +933,10 @@ export class Adjust extends AwesomeCordovaNativePlugin {
|
||||
/**
|
||||
* To obtain the last deep link which has opened your app, call this function
|
||||
*
|
||||
* @returns {Promise<string>} Returns a promise with last opened deep link string value
|
||||
* @returns {Promise<string | null>} Returns a promise with last opened deep link string value
|
||||
*/
|
||||
@Cordova()
|
||||
getLastDeeplink(): Promise<string> {
|
||||
getLastDeeplink(): Promise<string | null> {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user