open-index/open-npm huggingface dataset:
npm package: @lemoncloud/lemon-front-lib
Description: Web Core Library for Lemoncloud
Author: Hyungtak Jin
Latest version: 1.4.3

# lemon-front-lib [![build status](https://github.com/lemoncloud-io/lemon-front-lib/workflows/build/badge.svg)](https://github.com/lemoncloud-io/lemon-front-lib/actions) [![npm package](https://img.shields.io/npm/v/@lemoncloud/lemon-front-lib.svg)](https://www.npmjs.com/package/@lemoncloud/lemon-front-lib)

Core JS library for [Lemoncloud](https://lemoncloud.io); written by Typescript

## Install

```
$ npm install @lemoncloud/lemon-front-lib
// or
$ yarn add @lemoncloud/lemon-front-lib
```

## Usage

```typescript
import { AuthService } from '@lemoncloud/lemon-front-lib';

const oAuthEndpoint = 'http://localhost:8086'; // refresh 때 필요
const project = 'LEMON';
const authService = new AuthService({ project, oAuthEndpoint });
````

### Authentication

#### buildCredentialsByToken()
`oauth api`를 통해 발급 받은 token으로 AWS Credentials 생성

```typescript
const ENDPOINT = 'https://..../oauth/kakao/token'; // lemoncloud oauth-api
const body = { code }; // get from kakao, naver, google...

const credentials = authService.requestWithSign('POST', ENDPOINT, '/', {}, body)
    .then(data => authService.buildCredentialsByToken(data));
```

#### isAuthenticated()
AWS Credentials 데이터 유무로 로그인 체크

```typescript
AuthService.isAuthenticated();
```

#### getCredentials()
AWS Credentials 리턴. 로그인하지 않았을 경우 `null` 리턴

```typescript
AuthService.getCredentials();
```

#### request()
`axios`를 이용한 HTTP 요청. AWS Credentials이 있을 경우, Signature V4 Signing 과정을 거쳐 요청

```typescript
AuthService.request('GET', 'YOUR_URL', '/');
AuthService.request('GET', 'YOUR_URL', '/', { page: 0 });
AuthService.request('POST', 'YOUR_URL', '/', {}, { mock: 'MOCK_VALUE' });
```

#### requestWithCredentials()
내부에서 `getCredentials()`을 호출 후 `request()` 진행

```typescript
AuthService.requestWithCredentials('GET', 'YOUR_URL', '/');
AuthService.requestWithCredentials('GET', 'YOUR_URL', '/', { page: 0 });
AuthService.requestWithCredentials('POST', 'YOUR_URL', '/', {}, { mock: 'MOCK_VALUE' });
```

#### logout()
AWS Credentials 데이터 삭제

```typescript
AuthService.logout();
```

## Example

```
$ node example/example.js
# open localhost:8888 on browser
```
npm package: @lemoncloud/lemon-logger-lib
Description: lemon logger library
Author: Louis
Latest version: 1.0.0

# lemon-logger-lib

[![Build Status](https://travis-ci.org/lemoncloud-io/lemon-logger-lib.svg?branch=develop)](https://travis-ci.org/lemoncloud-io/lemon-logger-lib)

TypeScript console logger for LemonCloud

## Install

```
$ npm install lemon-logger-lib
```

## Usage

### default

```typescript
import { Logger } from 'lemon-logger-lib';

const logger = new Logger('LEMON');
const logger2 = new Logger('LEMON2', { showTimestamp: false, showLogType: false });

logger.log('this is log', 'extra params: ', { type: 'debug'}); 
logger.debug('this is debug', 'extra params: ', { type: 'debug'});

logger2.info('this is info', 'extra params: ', { type: 'info'});
logger2.warn('this is warn', 'extra params: ', { type: 'warn'});
logger2.error('this is error', 'extra params: ', { type: 'error'}, 'test');
```

### http
```typescript
const logger = new Logger('LEMON', {
    shouldSend: true,
    httpHost: 'http://localhost:8333',
    httpMethod: 'POST',
    httpPath: '/mock/log',
});
```

### socket
```typescript
const logger = new Logger('LEMON', {
    useSocket: true,
    socketHost: 'http://localhost:5555',
    socketEvent: 'LOG',
});
```

## Options

### Logger([namespace], [options])

##### showTimestamp

Type: `boolean`<br>
Default: `true`

##### showLogType

Type: `boolean` <br>
Default: `true`

##### shouldSend

Type: `boolean`<br>
Default: `false`

##### httpHost

Type: `string`<br>
Default: `''`

##### httpMethod

Type: `string`<br>
Default: `''`

##### httpPath

Type: `string`<br>
Default: `''`

##### useSocket

Type: `boolean`<br>
Default: `false`

##### socketHost

Type: `string`<br>
Default: `''`

##### socketEvent

Type: `string`<br>
Default: `''`

## Methods

#### `logger.log('test message')`
#### `logger.debug('test message')`
#### `logger.info('test message')`
#### `logger.warn('test message')`
#### `logger.error('test message')`
#### `logger.setOptions({ shouldSend: false })`
#### `logger.closeSocket()`

## Sample

A quick sample is provided as [example.js](./example/example.js)
npm package: @lemoncloud/page-transition-core
Description: Framework-agnostic page transitions using View Transitions API
Author: LemonCloud
Latest version: 1.0.0

# @lemoncloud/page-transition-core

[![npm](https://img.shields.io/npm/v/@lemoncloud/page-transition-core.svg)](https://www.npmjs.com/package/@lemoncloud/page-transition-core)
[![size](https://img.shields.io/bundlephobia/minzip/@lemoncloud/page-transition-core)](https://bundlephobia.com/package/@lemoncloud/page-transition-core)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

Framework-agnostic page transition core using the View Transitions API.

## Installation

```bash
npm install @lemoncloud/page-transition-core
```

## Usage

### CSS Only (Angular, Vanilla JS)

```ts
import '@lemoncloud/page-transition-core/styles.css';
```

Angular 17+ example:

```ts
import { provideRouter, withViewTransitions } from '@angular/router';

bootstrapApplication(AppComponent, {
    providers: [provideRouter(routes, withViewTransitions())]
});
```

### Programmatic API

```ts
import {
    executePageTransition,
    isViewTransitionSupported,
    detectPlatform
} from '@lemoncloud/page-transition-core';

// Check support
if (isViewTransitionSupported()) {
    // Execute with transition
    await executePageTransition(
        () => router.navigate('/next'),
        {
            direction: 'forward',
            animation: 'slide',
            config: { platform: 'ios' }
        }
    );
}

// Detect platform
const platform = detectPlatform(); // 'ios' | 'android' | undefined
```

## API

### `executePageTransition(navigationFn, options?)`

Wraps a navigation function with View Transitions API.

```ts
interface TransitionOptions {
    direction?: 'forward' | 'back';
    animation?: 'slide' | 'lift' | 'fade' | 'zoom' | 'none';
    config?: {
        platform?: 'ios' | 'android' | 'auto';
        detectPlatform?: () => 'ios' | 'android' | undefined;
    };
}
```

### `isViewTransitionSupported()`

Returns `true` if View Transitions API is available.

### `detectPlatform()`

Detects platform from user agent. Returns `'ios'`, `'android'`, or `undefined`.

## Animation Styles

| Type | Duration | Description |
|------|----------|-------------|
| `slide` | 350ms | iOS horizontal slide |
| `lift` | 450ms | Android vertical lift (MD3 SharedAxis Y) |
| `fade` | 350ms | iOS CrossDissolve |
| `zoom` | 350ms | iOS scale with fade |

## Framework Packages

For React/Vue, use the framework-specific packages:

- [@lemoncloud/react-page-transition](https://www.npmjs.com/package/@lemoncloud/react-page-transition)
- [@lemoncloud/vue-page-transition](https://www.npmjs.com/package/@lemoncloud/vue-page-transition)

## License

MIT © [LemonCloud](https://lemoncloud.io)