UNPKG

@amplitude/ampli

Version:

Amplitude CLI

362 lines (359 loc) 18.2 kB
"use strict"; 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: `//`, }, };