@amplitude/ampli
Version:
Amplitude CLI
362 lines (359 loc) • 18.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PULL_INFO = void 0;
const chalk_1 = require("chalk");
const types_1 = require("./types");
const { bold } = chalk_1.default;
const defaultJavaKotlinAmpliPackage = 'com.amplitude.ampli';
const npmDependencyResolver = modules => `$ ${bold(`\
npm install ${modules.join(' ')}`)}`;
const gradleDependencyResolver = modules => `\
// Add the following to your build.gradle dependencies:
${bold(modules.map(m => m.split(/\s+/).map(lib => `implementation "${lib}"`).join('\n')).join('\n'))}`;
const mavenDependencyResolver = modules => `\
<!--Add the following to your pom.xml <dependencies> -->
${bold(modules.map(m => m.split(/\s+/).map(lib => {
const nameParts = lib.split(':');
return `\
<dependency>
<groupId>${nameParts[0]}</groupId>
<artifactId>${nameParts[1]}</artifactId>
<version>${nameParts[2]}</version>
</dependency>`;
}).join('\n')).join('\n'))}`;
const goDependencyResolver = modules => `$ ${bold(`\
go get ${modules.join(' ')}`)}`;
const pipDependencyResolver = modules => `$ ${bold(`\
pip install ${modules.map(m => (m.includes(' ') ? `"${m}"` : m)).join(' ')}`)}`;
const podDependencyResolver = modules => `\
// Add the following to your Podfile:
${bold(`${modules.map(m => {
const index = m.indexOf('~>');
return `pod ${index < 0 ? m : `'${m.substring(0, index).trim()}', '${m.substring(index)}'`}`;
}).join('\n')}`)}`;
const swiftV2DependencyResolver = modules => {
const versionDelimiter = '~>';
let version = '?';
if (modules.length > 0) {
const index = modules[0].indexOf('~>');
if (index >= 0) {
version = modules[0].substring(index + versionDelimiter.length).trim();
}
}
return `\
CocoaPods:
1. Add to your 'Podfile': ${bold(`pod 'AmplitudeSwift', '~> ${version}'`)}
2. ${bold('pod install')}
Swift Package Manager:
1. Navigate to 'File' > 'Swift Package Manager' > 'Add Package Dependency'
2. Enter the URL: ${bold('https://github.com/amplitude/Amplitude-Swift')}
3. Select the '${bold('Up to Next Major')}' item and enter the version '${bold(version)}'
Carthage:
1. Add to your 'Cartfile': ${bold(`github "amplitude/Amplitude-Swift" ~> ${version}`)}
2. ${bold('carthage update --use-xcframeworks')}`;
};
const PULL_INFO_JS_TS_BROWSER = {
import: () => `import itly from './itly'`,
init: 'itly.init({})',
track: 'itly.trackYourEvent()',
trackExample: 'itly.trackUserSignedIn()',
commentCharacter: `//`,
documentationUrl: 'https://www.docs.developers.amplitude.com/data/deprecated-sdks/browser/',
};
const PULL_INFO_JS_TS_BROWSER_V2 = {
documentationUrl: 'https://www.docs.developers.amplitude.com/data/deprecated-sdks/browser/',
import: () => `import itly from './itly'`,
init: 'itly.load({})',
track: 'itly.yourEvent()',
trackExample: 'itly.userSignedIn()',
commentCharacter: `//`,
};
const PULL_INFO_JS_TS_NODE = Object.assign(Object.assign({}, PULL_INFO_JS_TS_BROWSER_V2), { documentationUrl: 'https://www.docs.developers.amplitude.com/data/deprecated-sdks/nodejs/' });
const PULL_INFO_JS_TS_BROWSER_AMPLI = {
import: () => `import { ampli } from './ampli'`,
init: 'ampli.load()',
track: 'ampli.yourEvent()',
trackExample: 'ampli.userSignedIn()',
commentCharacter: `//`,
installDependencies: npmDependencyResolver,
documentationUrl: 'https://www.docs.developers.amplitude.com/data/sdks/javascript/ampli/',
};
const PULL_INFO_JS_TS_BROWSER_AMPLI_V2 = Object.assign(Object.assign({}, PULL_INFO_JS_TS_BROWSER_AMPLI), { documentationUrl: 'https://www.docs.developers.amplitude.com/data/sdks/typescript-browser/ampli/' });
const PULL_INFO_JS_TS_NODE_AMPLI = Object.assign(Object.assign({}, PULL_INFO_JS_TS_BROWSER_AMPLI), { import: () => `const { ampli } = require('./ampli')`, documentationUrl: 'https://www.docs.developers.amplitude.com/data/sdks/node/ampli/' });
const PULL_INFO_JS_TS_NODE_AMPLI_V2 = Object.assign(Object.assign({}, PULL_INFO_JS_TS_NODE_AMPLI), { documentationUrl: 'https://www.docs.developers.amplitude.com/data/sdks/typescript-node/ampli/' });
const PULL_INFO_JS_TS_REACT_NATIVE = Object.assign(Object.assign({}, PULL_INFO_JS_TS_BROWSER_V2), { documentationUrl: 'https://www.docs.developers.amplitude.com/data/deprecated-sdks/browser/' });
const PULL_INFO_JS_TS_REACT_NATIVE_AMPLI = {
import: () => `import { ampli } from './ampli'`,
init: 'ampli.load()',
track: 'ampli.yourEvent()',
trackExample: 'ampli.userSignedIn()',
commentCharacter: `//`,
installDependencies: npmDependencyResolver,
documentationUrl: 'https://www.docs.developers.amplitude.com/data/sdks/react-native/ampli/',
};
const PULL_INFO_JS_TS_REACT_NATIVE_AMPLI_V2 = Object.assign(Object.assign({}, PULL_INFO_JS_TS_REACT_NATIVE_AMPLI), { documentationUrl: 'https://www.docs.developers.amplitude.com/data/sdks/typescript-react-native/ampli/' });
const PULL_INFO_JRE_JAVA_V3 = {
documentationUrl: 'https://www.docs.developers.amplitude.com/data/deprecated-sdks/jre-v3/',
import: () => 'import ly.iterative.itly.*;',
init: 'Itly.instance().load(options)',
track: 'Itly.instance().yourEvent()',
trackExample: 'Itly.instance().userSignedIn()',
commentCharacter: `//`,
};
const PULL_INFO_JRE_JAVA_V4 = PULL_INFO_JRE_JAVA_V3;
const javaKotlinAmpliImport = (packageName = defaultJavaKotlinAmpliPackage) => `import ${packageName}.*;`;
const PULL_INFO_JRE_JAVA_AMPLI = {
import: javaKotlinAmpliImport,
init: 'Ampli.getInstance().load(options)',
track: 'Ampli.getInstance().yourEvent()',
trackExample: 'Ampli.getInstance().userSignedIn()',
commentCharacter: `//`,
installDependencies: mavenDependencyResolver,
documentationUrl: 'https://www.docs.developers.amplitude.com/data/sdks/java/ampli/',
};
const PULL_INFO_JRE_KOTLIN_V3 = {
documentationUrl: 'https://www.docs.developers.amplitude.com/data/deprecated-sdks/jre-v3/',
import: () => 'import ly.iterative.itly.*',
init: 'Itly.load(...)',
track: 'Itly.yourEvent(userId)',
trackExample: 'Itly.userSignedIn(userId)',
commentCharacter: `//`,
};
const PULL_INFO_JRE_KOTLIN_V4 = PULL_INFO_JRE_KOTLIN_V3;
const PULL_INFO_JRE_KOTLIN_AMPLI = {
import: javaKotlinAmpliImport,
init: 'ampli.load(options)',
track: 'ampli.yourEvent()',
trackExample: 'ampli.userSignedIn()',
commentCharacter: `//`,
installDependencies: gradleDependencyResolver,
documentationUrl: 'https://www.docs.developers.amplitude.com/data/sdks/java/ampli/',
};
const PULL_INFO_ANDROID_JAVA_V3 = {
documentationUrl: 'https://www.docs.developers.amplitude.com/data/deprecated-sdks/android/',
import: () => 'import ly.iterative.itly.*;',
init: 'Itly.instance().load(options)',
track: 'Itly.instance().yourEvent()',
trackExample: 'Itly.instance().userSignedIn()',
commentCharacter: `//`,
};
const PULL_INFO_ANDROID_JAVA_V4 = PULL_INFO_ANDROID_JAVA_V3;
const PULL_INFO_ANDROID_KOTLIN_V3 = {
documentationUrl: 'https://www.docs.developers.amplitude.com/data/deprecated-sdks/android/',
import: () => 'import ly.iterative.itly.*',
init: 'Itly.load(options)',
track: 'Itly.yourEvent()',
trackExample: 'Itly.userSignedIn()',
commentCharacter: `//`,
};
const PULL_INFO_ANDROID_KOTLIN_V4 = PULL_INFO_ANDROID_KOTLIN_V3;
const PULL_INFO_IOS_SWIFT_AMPLI = {
import: () => ``,
init: 'Ampli.instance.load(options)',
track: 'Ampli.instance.yourEvent()',
trackExample: 'Ampli.instance.userSignedIn()',
commentCharacter: `//`,
installDependencies: podDependencyResolver,
documentationUrl: 'https://www.docs.developers.amplitude.com/data/sdks/ios/ampli/',
};
const PULL_INFO_IOS_SWIFT_AMPLI_V2 = Object.assign(Object.assign({}, PULL_INFO_IOS_SWIFT_AMPLI), { installDependencies: swiftV2DependencyResolver, documentationUrl: 'https://www.docs.developers.amplitude.com/data/sdks/ios-swift/ampli/' });
const PULL_INFO_IOS_OBJC_AMPLI = {
import: () => `#import "Ampli.h"`,
init: '[[Ampli instance] load]',
track: '[[Ampli instance] yourEvent]',
trackExample: '[[Ampli instance] userSignedIn]',
commentCharacter: `//`,
installDependencies: podDependencyResolver,
documentationUrl: 'https://www.docs.developers.amplitude.com/data/sdks/ios/ampli/',
};
const PULL_INFO_IOS_OBJC_AMPLI_V2 = Object.assign(Object.assign({}, PULL_INFO_IOS_OBJC_AMPLI), { installDependencies: swiftV2DependencyResolver, documentationUrl: 'https://www.docs.developers.amplitude.com/data/sdks/ios-swift/ampli/' });
const PULL_INFO_ANDROID_JAVA_AMPLI = {
import: javaKotlinAmpliImport,
init: 'Ampli.getInstance().load(appContext, options);',
track: 'Ampli.getInstance().yourEvent();',
trackExample: 'Ampli.getInstance().userSignedIn()',
commentCharacter: `//`,
installDependencies: gradleDependencyResolver,
documentationUrl: 'https://www.docs.developers.amplitude.com/data/sdks/android/ampli/',
};
const PULL_INFO_ANDROID_JAVA_AMPLI_V2 = Object.assign(Object.assign({}, PULL_INFO_ANDROID_JAVA_AMPLI), { documentationUrl: 'https://www.docs.developers.amplitude.com/data/sdks/android-kotlin/ampli/' });
const PULL_INFO_ANDROID_KOTLIN_AMPLI = {
import: javaKotlinAmpliImport,
init: 'ampli.load(appContext, options)',
track: 'ampli.yourEvent()',
trackExample: 'ampli.userSignedIn()',
commentCharacter: `//`,
installDependencies: gradleDependencyResolver,
documentationUrl: 'https://www.docs.developers.amplitude.com/data/sdks/android/ampli/',
};
const PULL_INFO_ANDROID_KOTLIN_AMPLI_V2 = Object.assign(Object.assign({}, PULL_INFO_ANDROID_KOTLIN_AMPLI), { documentationUrl: 'https://www.docs.developers.amplitude.com/data/sdks/android-kotlin/ampli/' });
const PULL_INFO_PYTHON_AMPLI = {
installDependencies: pipDependencyResolver,
import: () => 'import ampli',
init: 'ampli.load(options)',
track: 'ampli.your_event()',
trackExample: 'ampli.user_signed_in()',
commentCharacter: `#`,
documentationUrl: 'https://www.docs.developers.amplitude.com/data/sdks/python/ampli/',
};
const PULL_INFO_GO_AMPLI = {
import: () => `import "YourPackage/ampli"`,
init: 'ampli.Instance.Load()',
track: 'ampli.Instance.YourEvent()',
trackExample: 'ampli.Instance.UserSignedIn()',
commentCharacter: `//`,
installDependencies: goDependencyResolver,
documentationUrl: 'https://www.docs.developers.amplitude.com/data/sdks/go/ampli/',
};
exports.PULL_INFO = {
[types_1.RuntimeId.BrowserJavaScript]: PULL_INFO_JS_TS_BROWSER,
[types_1.RuntimeId.BrowserJavaScriptV2]: PULL_INFO_JS_TS_BROWSER_V2,
[types_1.RuntimeId.BrowserJavaScriptV3]: PULL_INFO_JS_TS_BROWSER_V2,
[types_1.RuntimeId.BrowserJavaScriptAmpli]: PULL_INFO_JS_TS_BROWSER_AMPLI,
[types_1.RuntimeId.BrowserJavaScriptAmpliV2]: PULL_INFO_JS_TS_BROWSER_AMPLI_V2,
[types_1.RuntimeId.BrowserTypeScript]: PULL_INFO_JS_TS_BROWSER,
[types_1.RuntimeId.BrowserTypeScriptV2]: PULL_INFO_JS_TS_BROWSER_V2,
[types_1.RuntimeId.BrowserTypeScriptV3]: PULL_INFO_JS_TS_BROWSER_V2,
[types_1.RuntimeId.BrowserTypeScriptAmpli]: PULL_INFO_JS_TS_BROWSER_AMPLI,
[types_1.RuntimeId.BrowserTypeScriptAmpliV2]: PULL_INFO_JS_TS_BROWSER_AMPLI_V2,
[types_1.RuntimeId.NodeJsJavaScript]: PULL_INFO_JS_TS_BROWSER,
[types_1.RuntimeId.NodeJsJavaScriptV2]: PULL_INFO_JS_TS_NODE,
[types_1.RuntimeId.NodeJsJavaScriptV3]: PULL_INFO_JS_TS_NODE,
[types_1.RuntimeId.NodeJsJavaScriptAmpli]: PULL_INFO_JS_TS_NODE_AMPLI,
[types_1.RuntimeId.NodeJsJavaScriptAmpliV2]: PULL_INFO_JS_TS_NODE_AMPLI_V2,
[types_1.RuntimeId.NodeJsTypeScript]: PULL_INFO_JS_TS_BROWSER,
[types_1.RuntimeId.NodeJsTypeScriptV2]: PULL_INFO_JS_TS_NODE,
[types_1.RuntimeId.NodeJsTypeScriptV3]: PULL_INFO_JS_TS_NODE,
[types_1.RuntimeId.NodeJsTypeScriptAmpli]: PULL_INFO_JS_TS_NODE_AMPLI,
[types_1.RuntimeId.NodeJsTypeScriptAmpliV2]: PULL_INFO_JS_TS_NODE_AMPLI_V2,
[types_1.RuntimeId.ReactNativeJavaScriptV3]: PULL_INFO_JS_TS_REACT_NATIVE,
[types_1.RuntimeId.ReactNativeTypeScriptV3]: PULL_INFO_JS_TS_REACT_NATIVE,
[types_1.RuntimeId.ReactNativeJavaScriptAmpli]: PULL_INFO_JS_TS_REACT_NATIVE_AMPLI,
[types_1.RuntimeId.ReactNativeTypeScriptAmpli]: PULL_INFO_JS_TS_REACT_NATIVE_AMPLI,
[types_1.RuntimeId.ReactNativeJavaScriptAmpliV2]: PULL_INFO_JS_TS_REACT_NATIVE_AMPLI_V2,
[types_1.RuntimeId.ReactNativeTypeScriptAmpliV2]: PULL_INFO_JS_TS_REACT_NATIVE_AMPLI_V2,
[types_1.RuntimeId.StarGoAmpli]: PULL_INFO_GO_AMPLI,
[types_1.RuntimeId.IOSObjC]: {
documentationUrl: 'https://developers.data.amplitude.com/ios-legacy',
import: () => '#import "Itly/Itly.h"',
init: '[Itly init]',
track: '[[Itly instance] trackYourEvent]',
trackExample: '[[Itly instance] trackUserSignedIn]',
commentCharacter: `//`,
},
[types_1.RuntimeId.IOSObjCV2]: {
documentationUrl: 'https://developers.data.amplitude.com/ios',
import: () => '#import "Itly/Itly.h"',
init: '[Itly.instance load]',
track: '[Itly.instance yourEvent]',
trackExample: '[Itly.instance userSignedIn]',
commentCharacter: `//`,
},
[types_1.RuntimeId.IOSObjCAmpli]: PULL_INFO_IOS_OBJC_AMPLI,
[types_1.RuntimeId.IOSObjCAmpliV2]: PULL_INFO_IOS_OBJC_AMPLI_V2,
[types_1.RuntimeId.IOSSwift]: {
documentationUrl: 'https://developers.data.amplitude.com/ios-legacy',
import: undefined,
init: 'Itly.setup(options)',
track: 'Itly.instance.trackYourEvent()',
trackExample: 'Itly.instance.trackUserSignedIn()',
commentCharacter: `//`,
},
[types_1.RuntimeId.IOSSwiftV2]: {
documentationUrl: 'https://developers.data.amplitude.com/ios',
import: undefined,
init: 'Itly.instance.load(options)',
track: 'Itly.instance.yourEvent()',
trackExample: 'Itly.instance.userSignedIn()',
commentCharacter: `//`,
},
[types_1.RuntimeId.IOSSwiftAmpli]: PULL_INFO_IOS_SWIFT_AMPLI,
[types_1.RuntimeId.IOSSwiftAmpliV2]: PULL_INFO_IOS_SWIFT_AMPLI_V2,
[types_1.RuntimeId.AndroidJava]: {
documentationUrl: 'https://developers.data.amplitude.com/android-legacy',
import: () => 'import io.itly.*;',
init: 'Itly.instance().init(options)',
track: 'Itly.instance().trackYourEvent()',
trackExample: 'Itly.instance().trackUserSignedIn()',
commentCharacter: `//`,
},
[types_1.RuntimeId.AndroidJavaV3]: PULL_INFO_ANDROID_JAVA_V3,
[types_1.RuntimeId.AndroidJavaV4]: PULL_INFO_ANDROID_JAVA_V4,
[types_1.RuntimeId.AndroidJavaAmpli]: PULL_INFO_ANDROID_JAVA_AMPLI,
[types_1.RuntimeId.AndroidJavaAmpliV2]: PULL_INFO_ANDROID_JAVA_AMPLI_V2,
[types_1.RuntimeId.AndroidKotlin]: {
documentationUrl: 'https://developers.data.amplitude.com/android-legacy',
import: () => 'import io.itly.*',
init: 'Itly.instance.init(options)',
track: 'Itly.instance().trackYourEvent()',
trackExample: 'Itly.instance().trackUserSignedIn()',
commentCharacter: `//`,
},
[types_1.RuntimeId.AndroidKotlinV2]: {
documentationUrl: 'https://developers.data.amplitude.com/android-legacy',
import: () => 'import io.itly.*',
init: 'Itly.load(options)',
track: 'Itly.yourEvent()',
trackExample: 'Itly.userSignedIn()',
commentCharacter: `//`,
},
[types_1.RuntimeId.AndroidKotlinV3]: PULL_INFO_ANDROID_KOTLIN_V3,
[types_1.RuntimeId.AndroidKotlinV4]: PULL_INFO_ANDROID_KOTLIN_V4,
[types_1.RuntimeId.AndroidKotlinAmpli]: PULL_INFO_ANDROID_KOTLIN_AMPLI,
[types_1.RuntimeId.AndroidKotlinAmpliV2]: PULL_INFO_ANDROID_KOTLIN_AMPLI_V2,
[types_1.RuntimeId.JreJava]: {
documentationUrl: 'https://developers.data.amplitude.com/jre',
import: () => 'import io.itly.*;',
init: 'Itly.instance().init(options)',
track: 'Itly.instance().trackYourEvent()',
trackExample: 'Itly.instance().trackUserSignedIn()',
commentCharacter: `//`,
},
[types_1.RuntimeId.JreJavaV3]: PULL_INFO_JRE_JAVA_V3,
[types_1.RuntimeId.JreJavaV4]: PULL_INFO_JRE_JAVA_V4,
[types_1.RuntimeId.JreJavaAmpli]: PULL_INFO_JRE_JAVA_AMPLI,
[types_1.RuntimeId.JreKotlinV3]: PULL_INFO_JRE_KOTLIN_V3,
[types_1.RuntimeId.JreKotlinV4]: PULL_INFO_JRE_KOTLIN_V4,
[types_1.RuntimeId.JreKotlinAmpli]: PULL_INFO_JRE_KOTLIN_AMPLI,
[types_1.RuntimeId.StarPython]: {
documentationUrl: 'https://developers.data.amplitude.com/python-legacy',
import: () => 'import itly',
init: 'itly.load(options)',
track: 'itly.your_event("user-id")',
trackExample: 'itly.user_signed_in("user-id")',
commentCharacter: `#`,
},
[types_1.RuntimeId.StarPythonV2]: {
documentationUrl: 'https://developers.data.amplitude.com/python',
import: () => 'import itly',
init: 'itly.load()',
track: 'itly.your_event("user-id")',
trackExample: 'itly.user_signed_in("user-id")',
commentCharacter: `#`,
},
[types_1.RuntimeId.StarPythonAmpli]: PULL_INFO_PYTHON_AMPLI,
[types_1.RuntimeId.StarRuby]: {
documentationUrl: 'https://developers.data.amplitude.com/ruby',
import: () => 'require "itly"',
init: 'Itly.load()',
track: 'Itly.your_event("user-id")',
trackExample: 'Itly.user_signed_in("user-id")',
commentCharacter: `#`,
},
[types_1.RuntimeId.StarRubyV2]: {
documentationUrl: 'https://developers.data.amplitude.com/ruby',
import: () => `require_relative 'itly/itly'`,
init: 'Itly.load()',
track: `Itly.your_event('user-id')`,
trackExample: `Itly.user_signed_in('user-id')`,
commentCharacter: `#`,
},
[types_1.RuntimeId.DotNetCSharp]: {
documentationUrl: 'https://developers.data.amplitude.com/dotnet',
import: () => 'using Iteratively;',
init: 'Itly.Load(new Options())',
track: 'Itly.YourEvent("user-id")',
trackExample: 'Itly.UserSignedIn("user-id")',
commentCharacter: `//`,
},
};