open-index/open-npm huggingface dataset:
npm package: @sap-ux/inquirer-common
Description: Commonly used shared functionality and types to support inquirer modules.
Latest version: 0.11.34

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/inquirer-common/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/inquirer-common)

# [`@sap-ux/inquirer-common`](https://github.com/SAP/open-ux-tools/tree/main/packages/inquirer-common)

Commonly used shared functionality that supports prompting. Currently used by inquirer modules for example `@sap-ux/ui5-application-inquirer`, `@sap-ux/ui5-library-inquirer`. For example, choice searching and UI5 choice grouping. Add functionality that may be used by multiple prompting modules to prompte re-use.

## Extending ABAP Service Offerings

The default list of ABAP service name types can be extended to allow customised ABAP service plans to be shown during the Cloud Foundry ABAP environment flow.

Supported list of technical service name types;

```TypeScript
[
    AbapEnvType.ABAP,
    AbapEnvType.ABAP_TRIAL,
    AbapEnvType.ABAP_CANARY,
    AbapEnvType.ABAP_OEM,
    AbapEnvType.ABAP_OEM_CANARY,
    AbapEnvType.ABAP_HAAS,
    AbapEnvType.ABAP_STAGING,
    AbapEnvType.ABAP_INTERNAL_STAGING
]
```

Configure the `ABAPEnvServiceTypes` environment variable with either a single or comma separated list, to update the existing list;

```bash
# Single
export ABAPEnvServiceTypes=abap-staging
# Multiple
export ABAPEnvServiceTypes=abap-staging,abap-internal
```



## License

Read [License](./LICENSE).

## Keywords
inquirer
SAP
UI5
prompt
npm package: @sap-ux/jest-runner-puppeteer
Description: Jest runner for puppeteer
Latest version: 0.2.9

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/jest-runner-puppeteer/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/jest-runner-puppeteer)

# [`@sap-ux/jest-runner-puppeteer`](https://github.com/SAP/open-ux-tools/tree/main/packages/jest-runner-puppeteer)

Library providing utility functions working with Puppeteer on Chrome and Edge browsers.

## Installation
Npm
`npm install --save @sap-ux/jest-runner-puppeteer`

Yarn
`yarn add @sap-ux/jest-runner-puppeteer`

Pnpm
`pnpm add @sap-ux/jest-runner-puppeteer`

## Usage

- jest-puppeteer-setup
- jest-puppeteer-teardown
- jest-puppeteer-environment
- jest-circus.setup

For use in jest config
```javscrupt
 
 const config = {
    globalSetup: '@sap-ux/jest-runner-puppeteer/dist/jest-puppeteer-setup.js',
    globalTeardown: '@sap-ux/jest-runner-puppeteer/dist/jest-puppeteer-teardown.js',
    testEnvironment: '@sap-ux/jest-runner-puppeteer/dist/jest-puppeteer-environment.js',
    setupFilesAfterEnv: ['expect-puppeteer', '@sap-ux/jest-runner-puppeteer/dist/jest-circus.setup.js'],
 }
 ```
npm package: @sap-ux/launch-config
Description: SAP Fiori tools launch config administration
Latest version: 0.10.83

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/launch-config/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/launch-config)

# [`@sap-ux/launch-config`](https://github.com/SAP/open-ux-tools/tree/main/packages/launch-config)

Library that offers functions to read and modify launch configurations for applications.


## Installation
Npm   
`npm install --save @sap-ux/launch-config`

Yarn   
`yarn add @sap-ux/launch-config`

Pnpm   
`pnpm add @sap-ux/launch-config`

## Usage
See usage in `test/` folder.

## Keywords
* SAP Fiori tools
* SAP Fiori elements
* SAP Fiori freestyle
npm package: @sap-ux/mockserver-config-writer
Description: Add or update configuration for SAP Fiori tools mockserver
Latest version: 0.9.70

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/mockserver-config-writer/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/mockserver-config-writer)

# [`@sap-ux/mockserver-config-writer`](https://github.com/SAP/open-ux-tools/tree/main/packages/mockserver-config-writer)

Adds or removes configuration for mockserver module `@sap-ux/ui5-middleware-fe-mockserver` to an SAP UX project.

## Installation
Npm
`npm install --save @sap-ux/mockserver-config-writer`

Yarn
`yarn add @sap-ux/mockserver-config-writer`

Pnpm
`pnpm add @sap-ux/mockserver-config-writer`

## Usage
```Typescript
import { generateMockserverConfig } from '@sap-ux/mockserver-config-writer';
import { join } from 'path';

const basePath = join(__dirname, 'test/fixtures/bare-minimum');
const fs = await generateMockserverConfig(
    basePath,
    {
        webappPath: join(basePath, 'webapp'),
});

fs.commit();
```

See more complex example in [`/test/unit`](./test/unit)

## Keywords
SAP Fiori elements
SAP Fiori - UI5 middleware for the Fiori elements mock server
npm package: @sap-ux/nodejs-utils
Description: Nodejs utility wrappers
Latest version: 0.2.19

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/nodejs-utils/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/nodejs-utils)

# [`@sap-ux/nodejs-utils`](https://github.com/SAP/open-ux-tools/tree/main/packages/nodejs-utils)

Nodejs utility wrappers

## Installation
Npm
`npm install --save @sap-ux/nodejs-utils`

Yarn
`yarn add @sap-ux/nodejs-utils`

Pnpm
`pnpm add @sap-ux/nodejs-utils`

## Usage

see ./tests/unit/

## Keywords
SAP Fiori tools library
npm package: @sap-ux/odata-annotation-core
Description: Annotation Core
Author: SAP SE
Latest version: 0.2.17

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/odata-annotation-core/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/odata-annotation-core)

# [OData Annotation Core](https://github.com/SAP/open-ux-tools/tree/main/packages/odata-annotation-core)

Package containing low level building blocks and utility functions for working with OData annotations.

## Installation
Npm
`npm install --save @sap-ux/odata-annotation-core`

Yarn
`yarn add @sap-ux/sap-ux/odata-annotation-core`

Pnpm
`pnpm add @sap-ux/sap-ux/odata-annotation-core`

## Usage

### Parse identifier
#### Term name:
```Typescript
import { parseIdentifier } from '@sap-ux/odata-annotations-core';

const { type, name, namespaceOrAlias } = parseIdentifier('com.sap.vocabularies.UI.v1.LineItem');
// Expected 
// type: 'identifier',
// namespaceOrAlias: 'com.sap.vocabularies.UI.v1',
// name: 'LineItem'

```
#### Function name:
```Typescript
import { parseIdentifier } from '@sap-ux/odata-annotations-core';

const identifier = 'MySchema.MyAction(Collection(MySchema.MyBindingType),Collection(MySchema.MyType))';
const { type, name, namespaceOrAlias, parameters } = parseIdentifier(identifier);
// Expected 
// type: 'action-function',
// namespaceOrAlias: 'MySchema',
// name: 'MyAction'
// parameters: 
//    [
//        {
//            type: 'collection',
//            name: 'MyBindingType',
//            namespaceOrAlias: 'MySchema'
//        },
//        {
//            type: 'collection',
//            name: 'MyType',
//            namespaceOrAlias: 'MySchema'
//        }
//    ]
```

### Conversion to fully qualified name

```Typescript
import type { ParsedName } from '@sap-ux/odata-annotations-core';
import { toFullyQualifiedName } from '@sap-ux/odata-annotations-core';

const aliasMap: { [aliasOrNamespace: string]: string } = {
    UI: 'com.sap.vocabularies.UI.v1',
    'com.sap.vocabularies.UI.v1': 'com.sap.vocabularies.UI.v1'
};
                    
const identifier1: ParsedName = {
    type: 'identifier',
    name: 'LineItem',
    namespaceOrAlias: 'UI'
}

const identifier2: ParsedName = {
    type: 'identifier',
    name: 'FieldGroup',
    namespaceOrAlias: 'com.sap.vocabularies.UI.v1'
}

const identifier3: ParsedName = {
    type: 'identifier',
    name: 'MyEntityType',
}

const currentWorkspace = 'MyNamespace';

const fqName1 = toFullyQualifiedName(aliasMap, currentWorkspace, identifier1);
const fqName2 = toFullyQualifiedName(aliasMap, currentWorkspace, identifier2);
const fqName3 = toFullyQualifiedName(aliasMap, currentWorkspace, identifier3);
// Expected
// fqName1: 'com.sap.vocabularies.UI.v1.LineItem'
// fqName2: 'com.sap.vocabularies.UI.v1.FieldGroup'
// fqName3: 'MyNamespace.MyEntityType

```

For other usage examples see unit tests in `odata-annotation-core/test`.

## Keywords
SAP ODATA annotations
npm package: @sap-ux/odata-annotation-core-types
Description: Annotation Core types
Author: SAP SE
Latest version: 0.5.7

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/odata-annotation-core-types/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/odata-annotation-core-types)

# [OData Annotation Core Types](https://github.com/SAP/open-ux-tools/tree/main/packages/odata-annotation-core-types)

Package containing common types for working with OData annotations.

## Installation
Npm
`npm install --save @sap-ux/odata-annotation-core-types`

Yarn
`yarn add @sap-ux/odata-annotation-core-types`

Pnpm
`pnpm add @sap-ux/odata-annotation-core-types`

## Usage

### Annotation file creation
```Typescript
import {
    createElementNode,
    createTarget,
    createReference,
    createNamespace,
    AnnotationFile,
    Target,
    Reference,
    Element
} from '@sap-ux/odata-annotations-core-types';

const file: AnnotationFile = {
    uri: 'annotations.xml',
    type: 'annotation-file',
    namespace: createNamespace('MyNameSpace'),
    references: [],
    targets: []
};

const reference: Reference = createReference(
    'com.sap.vocabularies.UI.v1',
    'UI',
    'https://sap.github.io/odata-vocabularies/vocabularies/UI.xml'
);
file.references.push(reference);

const target: Target = createTarget('MyNamespace.MyEntityType');

const term: Element = createElementNode({
    name: 'UI.LineItem',
    attributes: {
        Qualifier: {
            name: 'Qualifier',
            type: 'attribute',
            value: 'mainList'
        }
    },
    content: [{ type: 'element', name: 'Collection', attributes: {}, content: [] }]
});
target.terms.push(term);
file.targets.push(target);

```

For other usage examples see unit tests in `odata-annotation-core-types/test`.

## Keywords
SAP ODATA annotations
npm package: @sap-ux/odata-entity-model
Description: OData model representation without annotations
Author: SAP SE
Latest version: 0.3.7

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/odata-entity-model/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/odata-entity-model)

# [OData Entity Model](https://github.com/SAP/open-ux-tools/tree/main/packages/odata-entity-model)

Package containing metadata service, which allows to look up elements from entity data model of an OData service.

## Installation
Npm
`npm install --save @sap-ux/odata-entity-model`

Yarn
`yarn add @sap-ux/odata-entity-model`

Pnpm
`pnpm add @sap-ux/odata-entity-model`

## Usage

1. Import the needed functions in your modules

    ```typescript
    import { MetadataService  } from '@sap-ux/odata-entity-model';
    const metadataFileUri = 'testFileUri';
    const metadataElements: MetadataElement[] = [
        {
            isAnnotatable: true,
            kind: 'EntityType',
            name: 'com.sap.gateway.default.iwbep.tea_busi.v0001.Department',
            path: 'com.sap.gateway.default.iwbep.tea_busi.v0001.Department',
            isCollectionValued: false,
            isComplexType: false,
            isEntityType: true,
            content: [
                {
                    content: [],
                    isAnnotatable: true,
                    kind: 'Property',
                    name: 'Sector',
                    path: 'com.sap.gateway.default.iwbep.tea_busi.v0001.Department/Sector',
                    isCollectionValued: false,
                    isComplexType: false,
                    isEntityType: false,
                    edmPrimitiveType: 'Edm.String'
                }
            ]
        }];
    const metadata = new MetadataService({ ODataVersion: '4.0' });
    metadata.import(metadataElements, metadataFileUri);
    const pathBase = metadata.getMetadataElement('com.sap.gateway.default.iwbep.tea_busi.v0001.Department');
```

For usage examples see unit tests in `odata-entity-model/test`.
npm package: @sap-ux/odata-service-writer
Description: Writer module allowing to add an OData service to a UI5 project.
Latest version: 0.31.6

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/odata-service-writer/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/odata-service-writer)

# [`@sap-ux/odata-service-writer`](https://github.com/SAP/open-ux-tools/tree/main/packages/odata-service-writer)

Writes the odata service related file updates to an existing UI5 project specified by the base path.


## Installation
Npm
`npm install --save @sap-ux/odata-service-writer`

Yarn
`yarn add @sap-ux/odata-service-writer`

Pnpm
`pnpm add @sap-ux/odata-service-writer`

## Usage

```Typescript
import { OdataVersion, OdataService, generate } from '@sap-ux/odata-service-writer';
import { create, Editor } from 'mem-fs-editor';
import { create as createStorage } from 'mem-fs';

...

fs = create(createStorage()); // Or use fs from Yeoman

 const config:  OdataService = {
            url: 'http://localhost',
            path: '/sap/odata/testme',
            version: OdataVersion.v4,
            destination: {
                name: 'test'
            }
        };
const testDir = '/tmp';

await generate(testDir, config, fs);
        
```

## Keywords
SAP Fiori Freestyle
npm package: @sap-ux/odata-vocabularies
Description: Supported OASIS and SAP vocabularies
Author: @SAP/ux-tools-team
Latest version: 0.4.30

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/odata-vocabularies/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/odata-vocabularies)

# [`@sap-ux/odata-vocabularies`](https://github.com/SAP/open-ux-tools/tree/main/packages/odata-vocabularies)

Library that contains the most recent copies of the OData vocabularies authored by OASIS and SAP

## Supported Vocabularies
[OASIS Vocabularies](https://oasis-tcs.github.io/odata-vocabularies)
* Aggregation
* Authorization
* Core
* Capabilities
* Measures
* Temporal
* Repeatability
* Validation
* JSON

[SAP Vocabularies](https://sap.github.io/odata-vocabularies) 
* Analytics
* CodeList
* Common
* Communication
* DataIntegration
* DirectEdit
* Graph
* Hierarchy
* HTML5
* ODM
* PDF
* PersonalData
* Session
* UI

## Installation
Npm
`npm install --save @sap-ux/odata-vocabularies`

Yarn
`yarn add @sap-ux/odata-vocabularies`

Pnpm
`pnpm add @sap-ux/odata-vocabularies`


## Usage

1. Import the needed functions in your modules

    ```typescript
    import { VocabularyService } from '@sap/ux-odata-vocabularies';
    ```

## Vocabulary API
The vocabulary API is implemented via class VocabularyService and currently exposes the following functions:

* checkTermApplicability

* getComplexType
* getComplexTypeProperty
* getDerivedTypeNames
* getDocumentation
* getTerm
* getTermsForTargetKinds
* getType
* getVocabularies
* getVocabulary
* getVocabularyNamespace
npm package: @sap-ux/project-access
Description: Library to access SAP Fiori tools projects
Latest version: 1.35.19

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/project-access/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/project-access)

# [`@sap-ux/project-access`](https://github.com/SAP/open-ux-tools/tree/main/packages/project-access)

Library that offers functions to find, read, and retrieve project information and artifacts.


## Installation
Npm   
`npm install --save @sap-ux/project-access`

Yarn   
`yarn add @sap-ux/project-access`

Pnpm   
`pnpm add @sap-ux/project-access`

## Usage
See usage in `test/` folder.

## Keywords
* SAP Fiori tools
* SAP Fiori elements
* SAP Fiori freestyle
npm package: @sap-ux/project-input-validator
Description: Library to validate Fiori project input formats
Latest version: 0.6.75

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/project-input-validator/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/project-input-validator)

# [`@sap-ux/project-input-validator`](https://github.com/SAP/open-ux-tools/tree/main/packages/project-input-validator)
Library that provides utility functions to validate input constraints required by Fiori projects.
For example, validate Fiori project name text length limit, special characters that are not allowed
in the naming, SAP client format, project description text length limit, etc.

This library provides reusable validation utilities to support validations required in tools that facilitate
Fiori project generation, deployment configuration, etc. 

## Installation
Npm
`npm install --save @sap-ux/project-input-validator`

Yarn
`yarn add @sap-ux/project-input-validator`

Pnpm
`pnpm add @sap-ux/project-input-validator`

## Usage
See example usage in [test folder](./test).
npm package: @sap-ux/project-integrity
Description: Library to check the integrity of projects
Latest version: 0.2.66

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/project-integrity/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/project-integrity)

# [`@sap-ux/project-integrity`](https://github.com/SAP/open-ux-tools/tree/main/packages/project-integrity)

Library that offers functions to detect modifications to a set of files within a project. It also allows to pass addition key -> string values that are stored together with integrity data and can also be checked.
For specific Fiori project, this module contains convenience functions that take care of building up the file and additional string content list, consumer need just to pass a valid Fiori project root.

## Installation
Npm   
`npm install --save @sap-ux/project-integrity`

Yarn   
`yarn add @sap-ux/project-integrity`

Pnpm   
`pnpm add @sap-ux/project-integrity`

## Usage
See usage in `test/` folder.

## Keywords
* SAP Fiori tools
* SAP Fiori elements
* SAP Fiori freestyle
* Project integrity
npm package: @sap-ux/repo-app-import-sub-generator
Description: Generator to download LROP Fiori applications deployed from an ABAP repository.
Latest version: 0.3.305

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/repo-app-import-sub-generator/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/repo-app-import-sub-generator)

# [`@sap-ux/repo-app-import-sub-generator`](https://github.com/SAP/open-ux-tools/tree/main/packages/repo-app-import-sub-generator)

## Features

The SAP App download sub-generator enables users to download a basic LROP App from an ABAP repository. The sub-generator will download the app from the repository and add it to the workspace.

## Installation

The SAP App download sub-generator is installed as part of the [@sap/generator-fiori](https://www.npmjs.com/package/@sap/generator-fiori) generator and cannot be used stand alone.

## Launch the SAP Reuse Library sub-generator

Open the Command Palette in MS Visual Studio Code ( CMD/CTRL + Shift + P ) and execute the Fiori: Download ADT deployed app from an UI5 ABAP repository.

## Keywords
SAP Fiori Generator
npm package: @sap-ux/system-access
Description: Reusable module allowing to access systems using the store or prompts.
Author: @SAP/ux-tools-team
Latest version: 0.7.5

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/system-access/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/system-access)

# [`@sap-ux/system-access`](https://github.com/SAP/open-ux-tools/tree/main/packages/system-access)

Module offering reusable functionality to access SAP systems. This module is currently in a 0.x version and is only recommended to be used by modules within the `open-ux-tools` monorepo because the API is subject to change without notice.


## Installation
Npm   
`npm install --save @sap-ux/system-access`

Yarn   
`yarn add @sap-ux/system-access`

Pnpm   
`pnpm add @sap-ux/system-access`

## Usage
See usage in `test/` folder.

## Keywords
* SAP Fiori tools
* SAP Fiori elements
* SAP Fiori freestyle
npm package: @sap-ux/telemetry
Description: Library for sending usage telemetry data
Latest version: 0.6.96

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/telemetry/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/telemetry)

# [`@sap-ux/telemetry`](https://github.com/SAP/open-ux-tools/tree/main/packages/telemetry)

This library is used by SAP Fiori tools to collect anonymous usage data to guide Fiori tools improvement. This library is
specific for SAP Fiori tools's telemtry infrastrcture deployed on Azure cloud and it is built on Azure Application Insight node.js client. It is open sourced becaused some open sourced modules of Fiori tools need it for collecting usage data.


## Installation
Npm
`npm install --save @sap-ux/telemetry`

Yarn
`yarn add @sap-ux/telemetry`

Pnpm
`pnpm add @sap-ux/telemetry`

## Example Usage

See code in example folder for basic usage. To run example:

```shell
# At project root folder of @sap-ux/telemetry
cd package/telemetry
# Create a file with name .env
# Add this line in .env file OpenUxTools_ResourceId=<your_azure_instrument_key>
pnpm example
```
npm package: @sap-ux/text-document-utils
Description: Library for text document utility functions and types
Latest version: 0.3.3

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/text-document-utils/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/text-document-utils)

# [`@sap-ux/text-document-utils`](https://github.com/SAP/open-ux-tools/tree/main/packages/text-document-utils)

Library that offers utility functions for working with text documents and related types.

## Installation
Npm   
`npm install --save @sap-ux/text-document-utils`

Yarn   
`yarn add @sap-ux/text-document-utils`

Pnpm   
`pnpm add @sap-ux/text-document-utils`

## Usage
See usage in `test/` folder.
npm package: @sap-ux/ui-components
Description: SAP UI Components Library
Latest version: 2.1.9

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/ui-components/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/ui-components)

# [`@sap-ux/ui-components`](https://github.com/SAP/open-ux-tools/tree/main/packages/ui-components)
Library is a collection of fluent-ui and react components to build webview-based extensions in VSCode.

## Installation
Npm
`npm install --save @sap-ux/ui-components`

Yarn
`yarn add @sap-ux/ui-components`

Pnpm
`pnpm add @sap-ux/ui-components`

## Usage
See examples in `ui-components/stories`.

## Keywords
VSCode Webview
SAP Application Studio (BAS)
SAP Business Technology Platform (BTP)
npm package: @sap-ux/ui-prompting
Description: SAP UI Components Library
Latest version: 0.6.22

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/ui-prompting/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/ui-prompting)

# [`@sap-ux/ui-prompting`](https://github.com/SAP/open-ux-tools/tree/main/packages/ui-prompting)
Library is a collection of react components to build ui based on `inquirer` interface.

## Installation
Npm
`npm install --save @sap-ux/ui-prompting`

Yarn
`yarn add @sap-ux/ui-prompting`

Pnpm
`pnpm add @sap-ux/ui-prompting`

## Usage
See examples in `ui-prompting/stories`.

## Keywords
VSCode Webview
SAP Application Studio (BAS)
SAP Business Technology Platform (BTP)
npm package: @sap-ux/ui-service-sub-generator
Description: Generator for creating UI Service
Latest version: 0.1.221

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/ui-service-sub-generator/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/ui-service-sub-generator)

# [`@sap-ux/ui-service-sub-generator`](https://github.com/SAP/open-ux-tools/tree/main/packages/ui-service-sub-generator)

## Features

The SAP UI Service sub-generator enables users to create a new ui service that can be used in SAP Fiori applications

## Installation

The SAP UI Service sub-generator is installed as part of the [@sap/generator-fiori](https://www.npmjs.com/package/@sap/generator-fiori) generator and cannot be used stand alone. Furthermore, usage requires that the [SAP Fiori Tools Extension](https://marketplace.visualstudio.com/items?itemName=SAPSE.sap-ux-fiori-tools-extension-pack) pack is installed from the VSCode marketplace.

## Launch the SAP Reuse Library sub-generator

Open the Command Palette in MS Visual Studio Code ( CMD/CTRL + Shift + P ) and execute the Fiori: Generate UI Service command.

## Keywords
SAP Fiori Generator
npm package: @sap-ux/ui5-application-writer
Description: Writer module allowing to create a the base UI5 project structure.
Latest version: 1.8.4

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/ui5-application-writer/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/ui5-application-writer)

# [`@sap-ux/ui5-application-writer`](https://github.com/SAP/open-ux-tools/tree/main/packages/ui5-application-writer)

Writes a basic ui5 application


## Installation
Npm
`npm install --save @sap-ux/ui5-application-writer`

Yarn
`yarn add @sap-ux/ui5-application-writer`

Pnpm
`pnpm add @sap-ux/ui5-application-writer`

## Usage
```Typescript
import { generate } from '@sap-ux/ui5-application-writer';
import { join } from 'path';

const projectDir = join(__dirname, 'testapp1');
const fs = await generate(projectDir, {
    app: {
        id: 'testAppId',
        title: 'Test App Title',
        description: 'Test App Description'
    },
    package: {
        name: 'testPackageName'
    }
});

fs.commit();

```

## Keywords
SAP Fiori Freestyle
npm package: @sap-ux/ui5-config
Description: Library to UI5 configuration artifacts
Latest version: 0.30.2

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/ui5-config/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/ui5-config)

# [`@sap-ux/ui5-config`](https://github.com/SAP/open-ux-tools/tree/main/packages/ui5-config)
Utility module to create and update [UI5 tooling configuration](https://sap.github.io/ui5-tooling/pages/Configuration/) files (`ui5*.yaml`) with helper methods specifically for Fiori tools middlewares.

## Installation
Npm
`npm install --save @sap-ux/ui5-config`

Yarn
`yarn add @sap-ux/ui5-config`

Pnpm
`pnpm add @sap-ux/ui5-config`

## Usage

Create a new config file
```javascript
// generate an empty instance
const ui5Config = await UI5Config.newInstance('');

// set the UI5 framework with a specific version
ui5Config.addUI5Framework('SAPUI5', '1.64.0', []);

// create the file
fs.write('./ui5.yaml', ui5Config.toString());
```

Add a middleware to an existing file
```javascript
// load a config from the filesytem
const ui5Config = await UI5Config.newInstance(fs.read('./ui5.yaml'));

// add a middlewre
ui5Config.addFioriToolsAppReloadMiddleware();

// write the changes back to the filestystem
fs.write('./ui5.yaml', ui5Config.toString());
```

See more example in [`/test/index.test.ts`](./test/index.test.ts)

## Keywords
SAP Fiori freestyle
npm package: @sap-ux/ui5-info
Description: SAP Fiori UI5 info
Latest version: 0.13.18

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/ui5-info/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/ui5-info)

# [`@sap-ux/ui5-info`](https://github.com/SAP/open-ux-tools/tree/main/packages/ui5-info)

Gets UI5 version info for available UI5 versions.

## Installation
Npm
`npm install --save @sap-ux/ui5-info`

Yarn
`yarn add @sap-ux/ui5-info`

Pnpm
`pnpm add @sap-ux/ui5-info`


## Usage

```javascript
import { getUI5Versions, type UI5VersionFilterOptions } from '@sap-ux/ui5-info';

const filterOptions: UI5VersionFilterOptions = {
    minSupportedUI5Version: '1.84.0',
    includeMaintained: true
};
const ui5Versions = await getUI5Versions(filterOptions);
/**
   ui5Versions :
  [
    {
        "version": "1.119.0",
        "maintained": true,
    },
    {
        "version": "1.117.0",
         "maintained": false,
    },
    {
        "version": "1.114.0",
         "maintained": true,
    },
    {
        "version": "1.108.0",
         "maintained": false,
    },
    {
        "version": "1.96.0",
         "maintained": false,
    },
    {
        "version": "1.84.0",
         "maintained": true,
    }
]
 */
```

See TypeScript doc for a full description of possible value for [`UI5VersionFilterOptions`](./src/types.ts)

## Keywords
SAP
UI5
npm package: @sap-ux/ui5-library-reference-inquirer
Description: Prompts module that can provide prompts for UI5 library writer
Latest version: 0.4.143

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/ui5-library-reference-inquirer/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/ui5-library-reference-inquirer)

# [`@sap-ux/ui5-library-reference-inquirer`](https://github.com/SAP/open-ux-tools/tree/main/packages/ui5-library-reference-inquirer)

Provides Inquirer based prompting to allow input and validation of data required to generate a UI5 library


## Installation
Npm
`npm install --save @sap-ux/ui5-library-reference-inquirer`

Yarn
`yarn add @sap-ux/ui5-library-reference-inquirer`

Pnpm
`pnpm add @sap-ux/ui5-library-reference-inquirer`

## Usage

Example with Yeoman generator no options, e.g. cli prompting only :

```javascript
import Generator from 'yeoman-generator';
import { generate, type ReuseLibConfig } from '@sap-ux/ui5-library-reference-writer'
import { prompt, type UI5LibraryReferenceAnswers } from '@sap-ux/ui5-library-reference-inquirer';
import { ToolsLogger } from '@sap-ux/logger';

export default class UI5LibraryReferenceGenerator extends Generator {
    answers: UI5LibraryReferenceAnswers = {};
    logger: ToolsLogger;

    constructor(args: string | string[], opts: Generator.GeneratorOptions) {
        super(args, opts);
        this.logger = new ToolsLogger();
    }

    public async prompting(): Promise<void> {        
        const answers = await prompt();
        Object.assign(this.answers, answers);
    }

    public async writing(): Promise<void> {
        const reuseLibConfigs: ReuseLibConfig[] = [];
        if (this.answers.referenceLibraries) {
            for (const lib of this.answers.referenceLibraries) {
                reuseLibConfigs.push({
                    name: lib.name,
                    path: lib.path,
                    type: lib.type,
                    uri: lib.uri
                });
            }
        }

        try {
            await generate(this.answers.targetFolder, reuseLibConfigs);
        } catch (e) {
            this.logger.error('Error generating reference to library');
        }
    }
}
```

## Keywords
SAP Fiori Elements
Yeoman
Generator
npm package: @sap-ux/ui5-library-reference-sub-generator
Description: Generator for adding reference libraries to a project
Latest version: 0.1.143

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/ui5-library-reference-sub-generator/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/ui5-library-reference-sub-generator)

# [`@sap-ux/ui5-library-reference-sub-generator`](https://github.com/SAP/open-ux-tools/tree/main/packages/ui5-library-reference-sub-generator)

## Features

The SAP Reference Library sub-generator enables users to create a reference to a reusable library or component in a SAP Fiori application.

## Installation

The SAP Reference Library sub-generator is installed as part of the [@sap/generator-fiori](https://www.npmjs.com/package/@sap/generator-fiori) generator and cannot be used stand alone. Furthermore, usage requires that the [SAP Fiori Tools Extension](https://marketplace.visualstudio.com/items?itemName=SAPSE.sap-ux-fiori-tools-extension-pack) pack is installed from the VSCode marketplace.

## Launch the SAP Reference Library sub-generator

Open the Command Palette in MS Visual Studio Code ( CMD/CTRL + Shift + P ) and execute the Fiori: Add Reference to SAP Fiori Reusable Libraries command.


## Keywords
SAP Fiori Elements
Yeoman
Generator
npm package: @sap-ux/ui5-library-reference-writer
Description: Writer module to add library/component references to an existing Fiori application
Latest version: 0.2.66

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/ui5-library-reference-writer/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/ui5-library-reference-writer)

# [`@sap-ux/ui5-library-reference-writer`](https://github.com/SAP/open-ux-tools/tree/main/packages/ui5-library-reference-writer)

Easy to use Reuse Library reference writer for use within Yeoman generator and other prompting libraries. 


## Installation
Npm
`npm install --save @sap-ux/ui5-library-reference-writer`

Yarn
`yarn add @sap-ux/ui5-library-reference-writer`

Pnpm
`pnpm add @sap-ux/ui5-library-reference-writer`

## Usage


Calling the `generate` function
```javascript
import { generate, ReuseLibConfig } from '@sap-ux/ui5-library-reference-writer'
import { join } from 'path';

const exampleWriter = async () => {

  const reuseLibConfig: ReuseLibConfig[] = [{
    name: 'my.namespace.reuse';
    path: 'sample/libs/my.namespace.reuse';
    type: 'library';
    uri: '/sap/ui5/reuse';
  }];

  const projectDir = join(__dirname, 'testapp');
  const fs = await generate(projectDir, reuseLibConfig);
  return new Promise((resolve) => {
      fs.commit(resolve); // When using with Yeoman it handle the fs commit.
  });
}

// Calling the function
await exampleWriter();

```

## Keywords
SAP Reuse Library
npm package: @sap-ux/ui5-library-sub-generator
Description: Generator for creating UI5 libraries
Latest version: 0.1.154

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/ui5-library-sub-generator/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/ui5-library-sub-generator)

# [`@sap-ux/ui5-library-sub-generator`](https://github.com/SAP/open-ux-tools/tree/main/packages/ui5-library-sub-generator)

## Features

The SAP Reuse Library sub-generator enables users to create a new reusable library that can be referenced in SAP Fiori applications

## Installation

The SAP Reuse Library sub-generator is installed as part of the [@sap/generator-fiori](https://www.npmjs.com/package/@sap/generator-fiori) generator and cannot be used stand alone. Furthermore, usage requires that the [SAP Fiori Tools Extension](https://marketplace.visualstudio.com/items?itemName=SAPSE.sap-ux-fiori-tools-extension-pack) pack is installed from the VSCode marketplace.

## Launch the SAP Reuse Library sub-generator

Open the Command Palette in MS Visual Studio Code ( CMD/CTRL + Shift + P ) and execute the Fiori: Open Reusable Library Generator command.

## Keywords
SAP Fiori Generator
npm package: @sap-ux/ui5-library-writer
Description: Writer module to generate a new ui5 library
Latest version: 0.6.77

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/ui5-library-writer/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/ui5-library-writer)

# [`@sap-ux/ui5-library-writer`](https://github.com/SAP/open-ux-tools/tree/main/packages/ui5-library-writer)

Easy to use Reuse Library files writer for use within Yeoman generator and other prompting libraries. 


## Installation
Npm
`npm install --save @sap-ux/ui5-library-writer`

Yarn
`yarn add @sap-ux/ui5-library-writer`

Pnpm
`pnpm add @sap-ux/ui5-library-writer`

## Usage


Calling the `generate` function
```javascript
import { generate } from '@sap-ux/ui5-library-writer'
import { join } from 'path';

const exampleWriter = async () => {

  const reuseLibConfig = {
    libraryName: 'myUI5Library';
    namespace: 'com.myorg';
    framework: 'SAPUI5'; // SAPUI5 | OpenUI5
    frameworkVersion: '1.102.19';
    author: 'UX Tools';
    typescript: false;
  };

  const projectDir = join(__dirname, 'testLibs');
  const fs = await generate(join(projectDir), appConfig);
  return new Promise((resolve) => {
      fs.commit(resolve); // When using with Yeoman it handle the fs commit.
  });
}

// Calling the function
await exampleWriter();

```

## Keywords
SAP Reuse Library
npm package: @sap-ux/vocabularies-types
Description: SAP Fiori OData - TS types for vocabularies
Latest version: 0.15.0

# @sap-ux/vocabularies-types

Defines Typescript types based on the OData vocabularies.

The types are meant to be used in conjuction with the annotation-converter in order to get an object structure that provide those them.



## Installation
npm
`npm install --save-dev @sap-ux/vocabularies-types`

yarn
`yarn add @sap-ux/vocabularies-types --dev`

pnpm
`pnpm add @sap-ux/vocabularies-types --dev`

## Usage

Add this to your project as a dev dependency and add it to the types section of your ts-config.json

```
...
"compilerOptions": {
    "types": ["@sap-ux/vocabularies-types"]
}
...
```

## Keywords
OData Vocabularies
npm package: @sap-ux/xml-odata-annotation-converter
Description: Converter for OData annotations in XML format.
Author: SAP SE
Latest version: 0.4.12

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/xml-odata-annotation-converter/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/xml-odata-annotation-converter)

# [`@sap-ux/xml-odata-annotation-converter`](https://github.com/SAP/open-ux-tools/tree/main/packages/xml-odata-annotation-converter)

## Installation
Npm
`npm install --save @sap-ux/xml-odata-annotation-converter`

Yarn
`yarn add @sap-ux/xml-odata-annotation-converter `

Pnpm
`pnpm add @sap-ux/xml-odata-annotation-converter `

## Usage

Convert XML ast generated by `@xml-tools/ast` package to annotation document.

```Typescript
import { readFile } from 'fs/promises';
import { buildAst } from '@xml-tools/ast';
import { parse } from '@xml-tools/parser';

import { convertDocument } from '@sap-ux/xml-odata-annotation-converter';

// read annotation file
const text = await readFile('annotations.xml', 'utf8');
// parse XML
const { cst, tokenVector } = parse(text);
// build AST
const ast = buildAst(cst, tokenVector);
// convert to annotation document format
const annotationDocument = convertDocument(ast);
```


Convert metadata (data model) defined in an XML file to an array of `MetadataElement`.

```Typescript
import { readFile } from 'fs/promises';
import { buildAst } from '@xml-tools/ast';
import { parse } from '@xml-tools/parser';

import { convertMetadataDocument } from '@sap-ux/xml-odata-annotation-converter';

// read annotation file
const text = await readFile('metadata.xml', 'utf8');
// parse XML
const { cst, tokenVector } = parse(text);
// build AST
const ast = buildAst(cst, tokenVector);
// convert to annotation document format
const metadata = convertMetadataDocument(ast);
```

## Keywords
OData annotations
npm package: @sap-ux/yaml
Description: Library to manipulate YAML file contents
Latest version: 0.17.7

﻿[![Changelog](https://img.shields.io/badge/changelog-8A2BE2)](https://github.com/SAP/open-ux-tools/blob/main/packages/yaml/CHANGELOG.md) [![Github repo](https://img.shields.io/badge/github-repo-blue)](https://github.com/SAP/open-ux-tools/tree/main/packages/yaml)

# [`@sap-ux/yaml`](https://github.com/SAP/open-ux-tools/tree/main/packages/yaml)

Library to manipulate YAML file contents


## Installation
Npm
`npm install --save @sap-ux/yaml`

Yarn
`yarn add @sap-ux/yaml`

Pnpm
`pnpm add @sap-ux/yaml`

## Usage
See examples in `test/yaml-document.test.ts`  

## Keywords
SAP Fiori Freestyle
npm package: @sap-webide/webide-client-tools
Description: [![npm version](https://badge.fury.io/js/%40sap-webide%2Fwebide-client-tools.svg)](https://badge.fury.io/js/%40sap-webide%2Fwebide-client-tools) [![CircleCI](https://circleci.com/gh/SAP/webide-client-tools.svg?style=svg&circle-token=3b17f31fb0d03686ffbaba
Latest version: 4.0.0

[![npm version](https://badge.fury.io/js/%40sap-webide%2Fwebide-client-tools.svg)](https://badge.fury.io/js/%40sap-webide%2Fwebide-client-tools)
[![CircleCI](https://circleci.com/gh/SAP/webide-client-tools.svg?style=svg&circle-token=3b17f31fb0d03686ffbabab018fab13b24e1e581)](https://circleci.com/gh/SAP/webide-client-tools) [![Greenkeeper badge](https://badges.greenkeeper.io/SAP/webide-client-tools.svg)](https://greenkeeper.io/)
[![REUSE status](https://api.reuse.software/badge/github.com/SAP/webide-client-tools)](https://api.reuse.software/info/github.com/SAP/webide-client-tools)

# webide-client-tools

## Description

Tools and flows for developing client-side features and extensions for [SAP Web IDE](https://developers.sap.com/topics/sap-webide.html)
based on npm ecosystem and standard OSS packages.

## Features

- **Bundling and Minification** of SAP Web IDE features:

  - Mainly uses [require.js optimizer](http://requirejs.org/docs/optimization.html).

- **Testing**

  - Uses [Karma Test runner](https://github.com/karma-runner/karma).
  - Uses our home-brewed APIs, which allows programmatic access to SAP Web IDE Services (Service Test Framework).

- **Local development server** for static resources:
  - Provides fast feedback loops.
  - Runs the bundled version of your feature locally.
  - Uses the [Connect](https://github.com/senchalabs/connect) Node.js middleware layer.
  - Uses an "in memory" backend mock.

## Requirements and Compatibility

- A [maintained version](https://github.com/nodejs/Release) of node.js.

## Installation

Run this command:
`npm install @sap-webide/webide-client-tools --save-dev`

## Usage and Documentation

See these examples:

- [Documentation Website](https://sap.github.io/webide-client-tools/web/site/)
- [A feature demonstrating client-tool capabilities](https://github.com/SAP/webide-client-tools/tree/master/example).

## Support

To get support, you can open [**issues**](https://github.com/SAP/webide-client-tools/issues) on Github.

## Known Issues

Full usage of this library requires the webide package as an npm peerDependency.
Specifically for testing and development server flows.
This is **currently** not possible outside SAP's coporate network.
Which means that the client-tools library can (**temporarily**) only be used for bundling flows.

## Contributing

For information, see [CONTRIBUTING.md](https://github.com/SAP/webide-client-tools/tree/master/CONTRIBUTING.md).

## Licensing

Please see our [LICENSE](LICENSE) for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available [via the REUSE tool](https://api.reuse.software/info/github.com/SAP/webide-client-tools).