open-index/open-npm huggingface dataset:
npm package: @moddota/dota-lua-types
Description: TypeScript definitions for Dota 2 Lua API
Author: ark120202
Latest version: 4.38.1

# Dota Lua Types

TypeScript definitions for Dota 2 Lua API, designed to be used with
[TypeScriptToLua](https://github.com/TypeScriptToLua/TypeScriptToLua).

## Installation

> Check out our [addon template](https://github.com/ModDota/TypeScriptAddonTemplate) for usage
> examples.

1. Get package from npm

```shell
yarn add -D @moddota/dota-lua-types
# or
npm install -D @moddota/dota-lua-types
```

2. Modify your `tsconfig.json`

```json
{
  "compilerOptions": {
    "types": ["@moddota/dota-lua-types"],
    "plugins": [{ "transform": "@moddota/dota-lua-types/transformer" }]
  }
}
```

## Enums

This package includes 2 versions of enum types - raw and normalized. Raw types are included with
`"types": ["@moddota/dota-lua-types"]`. They are defined using original engine names and have no structural
changes. This makes the code using some enums compatible with Panorama, however it leads to
repetition and requires you to use inconsistent standard names.

Normalized enum types can be included with `"types": ["@moddota/dota-lua-types/normalized"]`. With these
types, enums have consistent names and have no repeated parts. For example, instead of
`EDOTA_ModifyGold_Reason.DOTA_ModifyGold_Unspecified` you have to write
`ModifyGoldReason.UNSPECIFIED`.

Both type versions define aliases for alternative names, so libraries created with one version would
be compatible with a different one.

## Notes

- You can explore the same data in readable form on
  [Moddota API](https://moddota.com/api/) page.

- To extend standard classes you can use declaration merging:

  ```ts
  interface CDOTA_BaseNPC {
    log(message: string): void;
  }

  CDOTA_BaseNPC.log = function (message) {
    print(`${this.GetUnitName()} says: ${message}`);
  };

  HeroList.GetHero(0)!.log('Hello world');
  ```

- All Dota classes there are declared as interfaces. To extend them you can use
  [utilities](https://gist.github.com/ark120202/f9ccd1076887664e8e8cb7e7d78fd7d1)

  ```ts
  import { BaseAbility, BaseModifier, registerAbility, registerModifier } from './utils';

  @registerAbility('ability_test')
  export class Test extends BaseAbility {
    GetIntrinsicModifierName = () => TestModifier.name;
  }

  @registerModifier('ability_test_modifier')
  export class TestModifier extends BaseModifier {
    OnCreated() {
      print('Test modifier created');
    }
  }
  ```
npm package: @moddota/find-steam-app
Description: Find location of an installed Steam app
Author: ark120202
Latest version: 1.1.0

# find-steam-app

> Find location of an installed Steam app

## Usage

```js
const {
  findSteam,
  findSteamAppById,
  findSteamAppByName,
  findSteamAppManifest,
  findSteamLibraries,
} = require('find-steam-app');

await findSteamAppById(570);
// => '/path/to/steam/steamapps/common/dota 2 beta'

await findSteamAppByName('dota 2 beta');
// => '/path/to/steam/steamapps/common/dota 2 beta'

await findSteam();
// => '/path/to/steam'

await findSteamLibraries();
// => ['/path/to/steam/steamapps', '/path/to/library/steamapps']

await findSteamAppManifest(570);
// => { appid: 570, Universe: 1, name: 'Dota 2', ... }
```

For more information about manifest, see [manifest.ts](src/manifest.ts)
npm package: @moddota/panorama-types
Description: TypeScript definitions for Dota 2 Panorama API
Author: ark120202
Latest version: 1.39.1

# Panorama Types

TypeScript definitions for Dota 2 Panorama API

## Installation

> Check out our [addon template](https://github.com/ModDota/TypeScriptAddonTemplate) for usage
> examples.

1. Get package from npm

```shell
yarn add -D @moddota/panorama-types
# or
npm install -D @moddota/panorama-types
```

2. Modify your `tsconfig.json`

```json
{
  "compilerOptions": {
    "types": ["@moddota/panorama-types"]
  }
}
```

## Enums

This package includes 2 versions of enum types - raw and normalized. Raw types are included by
default, with `"types": ["@moddota/panorama-types"]`. They match actual values available at runtime, however
lead to repetition and require you to use inconsistent standard names.

Normalized enum types can be included with `"types": ["@moddota/panorama-types/normalized"]` and require you
to use `@moddota/panorama-types/transformer` (for example using [ttypescript]). With these types, enums have
consistent names and have no repeated parts. For example, instead of
`EDOTA_ModifyGold_Reason.DOTA_ModifyGold_Unspecified` you have to write
`ModifyGoldReason.UNSPECIFIED`.

Both type versions define aliases for alternative names, so libraries created with one version would
be compatible with a different one.

[ttypescript]: https://github.com/cevek/ttypescript
npm package: @modea/capacitor-app-launcher
Description: Launch native apps via bundle id (android) or url scheme (iOS)
Author: Jacob Heuman
Latest version: 0.0.6

# Capacitor App Launcher

[TOC]

## Install

npm i @modea/capacitor-app-launcher

## Usage

### In your src directory

```
import { Component, OnInit } from '@angular/core';
import { Platform } from '@ionic/angular';
import { Plugins } from '@capacitor/core';

const { Browser, AppLauncher } = Plugins;

@Component({
  selector: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss'],
})
export class HomePage implements OnInit {
  consumerAppIdentifier: string;
  consumerAppStoreUrl: string;

  constructor(private platform: Platform) {}

  ngOnInit(): void {
    this.setBundleIdAndStoreUrl(this.platformIsAndroid());
  }

  setBundleIdAndStoreUrl(isAndroid: boolean) {
    if (isAndroid) {
      this.consumerAppIdentifier = Constants.CONSUMER_APP.android.bundleId;
      this.consumerAppStoreUrl = Constants.CONSUMER_APP.android.storeUrl;
    } else {
      this.consumerAppIdentifier = Constants.CONSUMER_APP.iOS.appUrl;
      this.consumerAppStoreUrl = Constants.CONSUMER_APP.iOS.storeUrl;
    }
  }
  platformIsAndroid() {
    return this.platform.is('android');
  }

  openConsumerApp() {
    AppLauncher.launchForeignApp({ identifier: this.consumerAppIdentifier })
      .then((pluginResponse) => {
        console.log('Response', pluginResponse);
        if (pluginResponse.didLaunch) {
          console.log('Opened app');
        } else {
          console.log('Did not open app');
        }
      })
      .catch((reason) => {
        console.log('Call rejected', reason);
      });
  }
}
```

### Android

Make sure to add the plugin class in the MainActivity.java file

```
import com.modea.plugins.capacitor.app.launcher.AppLauncher;
.
.
.

    // Initializes the Bridge
    this.init(savedInstanceState, new ArrayList<Class<? extends Plugin>>() {{
      // Additional plugins you've installed go here
      // Ex: add(TotallyAwesomePlugin.class);
      add(AppLauncher.class);
    }});
```

### iOS

Make sure to add urls you want to open to your whitelist

```
    <key>LSApplicationQueriesSchemes</key>
    <array>
		<string>urlscheme-you-want-to-open</string>
		<string>another-one</string>
	</array>
```
npm package: @modea/core
Description: Forked version of Angular Google Maps that Includes Clusterer Events
Author: Modea Engineering
Latest version: 2.0.4

# Notice
This is a fork of [SebastianM's angular-google-maps library](https://github.com/SebastianM/angular-google-maps). It includes [clusterer click events](https://github.com/SebastianM/angular-google-maps/pull/1278) that have not been merged into the latest stable version of the library.
License: https://github.com/SebastianM/angular-google-maps/blob/master/LICENSE

[![AGM - Angular Google Maps](assets/images/angular-google-maps-logo.png)](https://angular-maps.com/)
npm package: @modea/js-marker-clusterer
Description: Forked version of Angular Google Maps that Includes Clusterer Events
Author: Modea Engineering
Latest version: 2.0.4

# Notice
This is a fork of [SebastianM's angular-google-maps library](https://github.com/SebastianM/angular-google-maps). It includes [clusterer click events](https://github.com/SebastianM/angular-google-maps/pull/1278) that have not been merged into the latest stable version of the library.
License: https://github.com/SebastianM/angular-google-maps/blob/master/LICENSE

[![AGM - Angular Google Maps](assets/images/angular-google-maps-logo.png)](https://angular-maps.com/)
npm package: @modea/snazzy-info-window
Description: Forked version of Angular Google Maps that Includes Clusterer Events
Author: Modea Engineering
Latest version: 2.0.4

# Notice
This is a fork of [SebastianM's angular-google-maps library](https://github.com/SebastianM/angular-google-maps). It includes [clusterer click events](https://github.com/SebastianM/angular-google-maps/pull/1278) that have not been merged into the latest stable version of the library.
License: https://github.com/SebastianM/angular-google-maps/blob/master/LICENSE

[![AGM - Angular Google Maps](assets/images/angular-google-maps-logo.png)](https://angular-maps.com/)