open-index/open-npm huggingface dataset:
npm package: @ricardosohn/capacitor-device-time-settings
Description: Capacitor Android plugin to check, observe, and open automatic Date & Time settings.
Author: Ricardo Sohn
Latest version: 1.0.2

[![Publish npm package](https://github.com/ricardosohn/capacitor-device-time-settings/actions/workflows/publish.yml/badge.svg)](https://github.com/ricardosohn/capacitor-device-time-settings/actions/workflows/publish.yml)

# @ricardosohn/capacitor-device-time-settings

Native Capacitor plugin to read and monitor automatic date/time settings on Android, with a helper to open the device Date & Time settings screen.

On Android, users can disable **Automatic date/time** and **Automatic time zone**, which may break some app flows.

This plugin provides a simple way to:

1. check current automatic time settings,
2. observe changes in real time,
3. open Date & Time settings directly.

## Features

- ✅ Read Android automatic time flags (`autoTime`, `autoTimeZone`)
- ✅ Observe runtime changes (`timeSettingsChanged` event)
- ✅ Open Date & Time settings screen (`openDateSettings`)
- ✅ Fallback to general Settings when date settings are unavailable
- ✅ Capacitor-friendly API (TypeScript + Android native implementation)

## Installation

```bash
npm install @ricardosohn/capacitor-device-time-settings
npx cap sync
```

## Platform support

| Platform | Status |
| --- | --- |
| Android | ✅ Supported |
| iOS | ⚠️ Not implemented |
| Web | ⚠️ Stub/no-op behavior expected |

## API

```ts
interface AutomaticTimeStatus {
  autoTime: boolean;
  autoTimeZone: boolean;
}

interface DeviceTimeSettingsPlugin {
  getAutomaticTimeStatus(): Promise<AutomaticTimeStatus>;
  openDateSettings(): Promise<void>;
  startObserving(): Promise<void>;
  stopObserving(): Promise<void>;
  addListener(
    eventName: 'timeSettingsChanged',
    listenerFunc: (status: AutomaticTimeStatus) => void,
  ): Promise<PluginListenerHandle>;
}
```

## Example usage

```ts
import { DeviceTimeSettings } from '@ricardosohn/capacitor-device-time-settings';

const status = await DeviceTimeSettings.getAutomaticTimeStatus();

if (!status.autoTime || !status.autoTimeZone) {
  await DeviceTimeSettings.openDateSettings();
}

await DeviceTimeSettings.startObserving();

const listener = await DeviceTimeSettings.addListener(
  'timeSettingsChanged',
  (nextStatus) => {
    console.log('Time settings changed', nextStatus);
  },
);

// later
await DeviceTimeSettings.stopObserving();
await listener.remove();
```

## Error handling notes

- `openDateSettings()` may open general Settings on some Android vendors/ROMs.
- Always re-check with `getAutomaticTimeStatus()` after returning to app.
- Consider backend-side timestamp validation for high-integrity flows.

## Keywords (npm)

`capacitor`, `plugin`, `android`, `time`, `timezone`, `date`, `settings`, `offline`, `geolocation`

## Repository description (short)

Capacitor Android plugin to check, observe, and open automatic Date & Time settings.

## License

MIT
npm package: @ricardovaldovinosorg/eslint-config-strict
Description: A strict TypeScript ESM based ESLint config aimed at consistency
Author: Ricardo Valdovinos
Latest version: 1.0.0

# eslint-config-strict - WIP
A strict TypeScript ESM based ESLint config aimed at avoiding potential bugs, removing redundancy, improving code clarity, and of course, enforcing consistency. In addition to the aforementioned traits this config also aims to enforce the use of newer, more recommended functions and language features.

## Included Rules
The eslint config extends the following configs:

```
eslint:recommended
eslint-config-prettier
```

and the following plugins:
```
@typescript-eslint/recommended
@typescript-eslint/recommended-requiring-type-checking
unicorn/recommended
```

The following, additional rules are also enabled:
#### [ESLint](https://eslint.org/docs/latest/rules/)
```
"constructor-super": "error",
"for-direction": "error",
"no-await-in-loop": "error",
"no-constant-binary-expression": "error",
"no-duplicate-imports": "error",
"no-new-native-nonconstructor": "error",
"no-promise-executor-return": "error",
"no-self-compare": "error",
"no-template-curly-in-string": "error",
"no-unmodified-loop-condition": "error",
"no-unreachable-loop": "error",
"no-unused-private-class-members": "error",
"require-atomic-updates": "error",
"no-use-before-define": "error",
"camelcase": "error",
```

#### [TypeScript ESLint](https://typescript-eslint.io/rules/)
```
"@typescript-eslint/adjacent-overload-signatures": "error",
"@typescript-eslint/array-type": ["error", { "default": "generic" }],
"@typescript-eslint/consistent-type-exports": "error",
"@typescript-eslint/consistent-type-imports": "error",
"@typescript-eslint/explicit-function-return-type": "error",
"@typescript-eslint/explicit-module-boundary-types": "error",
"@typescript-eslint/no-duplicate-type-constituents": "error",
"@typescript-eslint/no-confusing-void-expression": "error",
"@typescript-eslint/no-import-type-side-effects": "error",
"@typescript-eslint/no-require-imports": "error",
"@typescript-eslint/no-unused-vars": "error",
"@typescript-eslint/no-useless-empty-export": "error",
"@typescript-eslint/prefer-enum-initializers": "error",
"@typescript-eslint/prefer-readonly": "error",
"no-return-await": "off",
"@typescript-eslint/return-await": "error",
```

#### [Unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn#rules)
```
"unicorn/custom-error-definition": "error",
"unicorn/no-array-reduce": "off",
"unicorn/no-null": "off"
```

## Install
Run the following command inside of a node project:
`npm install @ricardovaldovinos1996/eslint-config-strict`

## Usage
After installing the npm package create the following .eslintrc file in your project
```
{ "extends": ["strict"] }
```
npm package: @ricardowdl/number-input
Description: 一个支持千分位货币格式的 React 数字输入框组件
Author: ricardo 610745778@qq.com
Latest version: 1.0.0

# NumberInput

一个支持千分位货币格式的 React 数字输入框组件。

## 特性

- ✅ 支持千分位货币格式格式化
- ✅ 可选的格式化功能（通过 props 控制）
- ✅ 支持小数点和负数
- ✅ 支持最小值和最大值限制
- ✅ TypeScript 支持
- ✅ 完全可自定义样式

## 安装

```bash
npm install @your-username/number-input
```

或使用 yarn:

```bash
yarn add @your-username/number-input
```

## 使用方法

### 基础用法

```tsx
import NumberInput from '@your-username/number-input';

function App() {
  const [value, setValue] = useState<number | null>(null);

  return (
    <NumberInput
      value={value}
      onChange={setValue}
      placeholder="请输入数字"
    />
  );
}
```

### 启用千分位格式

```tsx
import NumberInput from '@your-username/number-input';

function App() {
  const [value, setValue] = useState<number | null>(null);

  return (
    <NumberInput
      value={value}
      onChange={setValue}
      formatCurrency={true}
      placeholder="请输入金额"
    />
  );
}
```

## API

### Props

| 属性 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| `value` | `number \| string \| null` | - | 输入框的值 |
| `onChange` | `(value: number \| null) => void` | - | 值变化时的回调函数 |
| `formatCurrency` | `boolean` | `false` | 是否开启千分位货币格式 |
| `placeholder` | `string` | `'请输入数字'` | 输入框占位符 |
| `className` | `string` | `''` | 自定义 CSS 类名 |
| `disabled` | `boolean` | `false` | 是否禁用 |
| `min` | `number` | - | 最小值限制 |
| `max` | `number` | - | 最大值限制 |
| `onBlur` | `(e: FocusEvent<HTMLInputElement>) => void` | - | 失去焦点时的回调 |

## 示例

### 带范围限制的输入框

```tsx
<NumberInput
  value={value}
  onChange={setValue}
  min={0}
  max={1000000}
  formatCurrency={true}
/>
```

### 自定义样式

```tsx
<NumberInput
  value={value}
  onChange={setValue}
  className="custom-input-class"
  formatCurrency={true}
/>
```

## 工作原理

- **普通模式** (`formatCurrency={false}`): 输入数字后直接显示，不进行格式化
- **千分位模式** (`formatCurrency={true}`): 
  - 输入时显示纯数字以便编辑
  - 失去焦点时自动格式化为千分位格式（如：1,234.56）
  - 获得焦点时自动转换为纯数字以便编辑

## 开发

```bash
# 构建包
npm run build:package

# 开发 Next.js 应用
npm run dev
```

## License

MIT
npm package: @ricardowgomes/lotide
Description: This project was created and published by me as part of my learnings at Lighthouse Labs.
Author: ricardowgomes
Latest version: 1.0.0

# Lotide

A mini clone of the [Lodash](https://lodash.com) library.

## Purpose

**_BEWARE:_ This library was published for learning purposes. It is _not_ intended for use in production-grade software.**

This project was created and published by me as part of my learnings at Lighthouse Labs.

## Usage

**Install it:**

`npm install @ricardowgomes/lotide`

**Require it:**

`const lotide = require('@ricardowgomes/lotide');`

**Call it:**

`const results = lotide.tail([1, 2, 3]) // => [2, 3]`

## Documentation

The following functions are currently implemented:

- `countLetters(str)`: Receives a `string` as an argument and return an `object` with the letter[**key**] and number of times counted as **value**, that can be easily accessed with dot notation.

- `countOnly(arr)`: Receives an array of `strings` and returns an `object` with the `string`[**key**] and the number of times counted as **value**, that can be easily accessed with dot notation.

- `findKey(obj, callback)`: Receives an `object` and a `callback-function` define a criteria to return the first **key** based on the **value** of the `object`.

- `findKeyByValue(obj, str)`: Receives an `object` and a `string` that returns the first **key** based on the **value** of the argument `string`. If the value is not in the object, it returns `undefined`.

- `flatten(arr)`: Receives an `array` and if this `array` is nested (2D array), it returns a flatten `array`, in other words, an 1D `array`.

- `head(arr)`: Receives an `array` and returns the head element of that `array`.

- `map(arr, callback)`: Receives an `array` and a `callback-function`, the `function` returns the `array` with each element transformed based on `function` logic provided.

- `middle(arr)`: Receives an `array`, if the `array.length` is even, it returns an `array` with the two middle elements, if is odd, it returns the single middle element.

- `letterPositions(str)`: Receives a `string` as an argument and return an `object` with each letter as **key** and the index of each letter as **value**, that can be easily accessed with dot notation. If there is more than one of the same letter, the **value** of that letter is an `array` with all indexes.

- `takeUntil(arr, callback)`: Receives an `array` and a `callback-function`, that returns the `array` with the elements until specific logic of the `function`.

- `tail(arr)`: Receives an `array` as argument and returns the tail element of that `array`.
npm package: @ricardweii/claw-market
Description: CLI tool for OpenClaw Market - report AI agent activity to the global heatmap
Author: OpenClaw
Latest version: 0.1.2

# @ricardweii/claw-market

OpenClaw Market 命令行工具 - 向全球热力图报告 AI agent 活动。

## 安装

```bash
npm install -g @ricardweii/claw-market
# 或
pnpm add -g @ricardweii/claw-market
```

## 快速开始

```bash
# 注册你的 claw
claw-market register 我的龙虾

# 发送心跳
claw-market heartbeat

# 报告已完成的任务
claw-market task "修复了一个 bug" --duration 45000
```

## 命令

### `register`

在热力图上注册一个新的 claw。

```bash
claw-market register <name> [options]
```

**参数:**
- `name` - Claw 显示名称 (1-100 字符)

**选项:**
- `-p, --platform <string>` - 平台标识 (默认: 自动检测)
- `-m, --model <string>` - 模型标识 (默认: 从环境变量或 'unknown')
- `-f, --force` - 强制重新注册 (即使已注册)

**示例:**
```bash
claw-market register 酷龙虾
claw-market register "暗夜龙虾" --model claude-opus-4
```

### `heartbeat`

发送心跳以更新在线状态。

```bash
claw-market heartbeat [options]
```

**选项:**
- `-n, --name <string>` - 更新 claw 名称
- `-m, --model <string>` - 更新模型标识
- `-p, --platform <string>` - 更新平台标识

**示例:**
```bash
claw-market heartbeat
claw-market heartbeat --model claude-sonnet-4
```

### `task`

报告已完成的任务。

```bash
claw-market task <summary> --duration <ms> [options]
```

**参数:**
- `summary` - 任务摘要 (最多 500 字符)

**选项:**
- `-d, --duration <ms>` - 任务时长 (毫秒，必填)
- `-m, --model <string>` - 任务使用的模型
- `-t, --tools <tools...>` - 使用的工具 (空格分隔)

**示例:**
```bash
claw-market task "修复 bug" --duration 45000
claw-market task "重构 API" --duration 120000 --tools Bash Read Write
```

### `config`

管理 CLI 配置。

```bash
claw-market config <action>
```

**操作:**
- `show` - 显示当前配置
- `set <key> <value>` - 设置配置值
- `path` - 显示配置文件路径
- `clear` - 清除配置 (注销)

**示例:**
```bash
claw-market config show
claw-market config set endpoint https://custom.server/api/v1
claw-market config set lang zh
claw-market config clear
```

## 全局选项

```bash
claw-market [command] [options]

Options:
  -e, --endpoint <url>    API 端点 (默认: https://kymr.top/api/v1)
  -l, --lang <locale>     输出语言 (en/zh)
  --json                  以 JSON 格式输出
  --version               显示版本
  --help                  显示帮助
```

## 配置

配置存储在 `~/.openclaw/config.json`，文件权限为 `600` (仅所有者可读写)。

**配置结构:**
```json
{
  "clawId": "abc123...",
  "apiKey": "a1b2c3...",
  "name": "我的龙虾",
  "endpoint": "https://kymr.top/api/v1",
  "lang": "zh"
}
```

## 环境变量

| 变量 | 描述 |
|------|------|
| `CLAUDE_MODEL` | 默认模型标识 |
| `OPENCLAW_LANG` | 默认输出语言 (en/zh) |

## 数据披露

此 CLI 向 OpenClaw Market 服务器发送以下数据：

| 数据字段 | 示例 | 用途 |
|---|---|---|
| Claw 名称 | `酷龙虾` | 热力图上的显示名称 |
| 平台 | `darwin`, `linux` | 热力图统计的操作系统类型 |
| 模型 | `claude-sonnet-4-6` | 模型使用统计 |
| 任务摘要 | `"完成了一个任务"` | 通用活动指标 |

**永不发送:** 系统用户名、文件路径、代码片段、项目名称或密钥。

## 许可证

MIT
npm package: @ricb/csv
Description: Reads and writes data to and from flat files
Author: Richard B
Latest version: 1.4.0

# csv

## Installation

Using npm

```bash
npm install @ricb/csv
```

## Usage

This project provides functionality to write and read CSV files, as well as parse and serialize CSV data.

* By default it will use `","` as separator and `"|"` as array separator when writing.
* By default it will try to detect data type for values when parsing.
* It will try to detect value separator if not explicitly specified.

See [CsvOptions](#csvoptions) for more info

### Writing and Reading CSV

```typescript
import { writeCsv, readCsv } from '@ricb/csv';

const data = [
    { id: 1, name: 'John Doe', born: new Date(), nicks: ['man', 'dude'] },
    { id: 2, name: 'Jane Doe', born: new Date('2000-01-01'), nicks: ['girl', 'woman'] }
];

const filePath = await writeCsv(data, 'test.csv'); 

const loadedData = await readCsv(filePath)
console.log(loadedData);
```

### Parsing and Serializing CSV

```typescript
import { fromCsv, toCsv } from '@ricb/csv'

const text = `Id,Name,Born,Colors,Joined,KidsAge
1,"Doe, John",2000,red|blue,2021-01-01,5|7
2,"Doe, Jane",2001,green|yellow,2021-01-02,3|4
3,"Mouse,Mickey",2002,black|white,2021-01-03,1|2
4,"Mick "The man" Jagger",1943,purple|orange,2021-01-04,8|9`;

const data = await fromCsv(text, { separator: ',' });
const csvText = toCsv(data, { separator: '\t' });
const data2 = await fromCsv(csvText, { separator: '\t' });

console.log(data2);
```

### CsvOptions

`CsvOptions` is a type that allows you to customize how CSV data is processed. Here are the properties it can have:

* `fields`: An array of strings specifying the order of the fields when writing CSV data. If not provided, the fields will be written in the order they appear in the data object.

* `separator`: A string that specifies the character used to separate fields in the CSV data. If not provided, a comma (",") is used by default.

* `arraySeparator`: A string that specifies the character used to separate array elements in the CSV data. If not provided, a pipe ("|") is used by default.

* `mapping`: An object that maps field names to their types. This is used when reading CSV data to convert string values to their appropriate types. If not provided, all values are treated as strings.

* `detectTypes`: A boolean that specifies whether to automatically detect and convert types when reading CSV data. If not provided, this is `true` by default.

```typescript
const options: CsvOptions = {
    fields: ['id', 'name', 'born', 'nicks'],
    separator: ',',
    arraySeparator: '|',
    mapping: { id: { type: 'number' }, born: { type: 'date' } },
    detectTypes: true
};

const loadedData = await readCsv(filePath, options);