open-index/open-npm huggingface dataset:
npm package: @notarise-gov-sg/gpay-covid-cards
Description: A helper library for Google Pay COVID Cards
Latest version: 1.0.7

# Google Pay COVID Cards

A helper library for Google Pay COVID Cards.

## Getting Started

```bash
npm i @notarise-gov-sg/gpay-covid-cards
```

### 1. Import

```javascript
import GPay from "@notarise-gov-sg/gpay-covid-cards";
const gpay = GPay(private_key);
```

### 2. Prepare records

```javascript
// Patient Details
const patientDetails: PatientDetails = {
  dateOfBirth: "1990-01-15",
  identityAssuranceLevel: "IAL1.4",
  patientId: "E7831177G",
  patientIdLabel: "Passport Number",
  patientName: "Tan Chen Chen",
};

// Basic Details
const basicDetails: BasicDetails = {
  iss: "account@project-id.iam.gserviceaccount.com",
  uuid: "some_uuid",
  issuerId: "issuer_id",
  title: "COVID-19 Test Result",
  qr: "https://www.verify.gov.sg/",
  expiration: "2021-10-01",
  patientDetails: gpay.genPatientDetails(patientDetails),
};

// Notarise PDT (Testing Record)
const testingRecord = gpay.genTestingRecord({
  administrationDateTime: "27 September 2020, 2:15 pm SGT",
  contactInfo: "MacRitchie Hospital, Thomson Road, Singapore 123000",
  provider: "MacRitchie Medical Clinic",
  reportDateTime: "28 September 2020, 2:15 pm SGT",
  testCode: "94531-1",
  testDescription: "SARS-CoV-2 (COVID-19) RNA panel - Respiratory specimen by NAA with probe detection",
  testResultCode: "260385009",
  testResultDescription: "Negative",
  specimen: "Nasopharyngeal swab",
});

// Notarise Vaccination (Vaccination Record)
const vaccinationRecord = gpay.genVaccinationRecord({
  code: "1234",
  contactInfo: "123 Forever Rd. 12345 Infinity, CA",
  description: "Q4NTL6",
  doseDateTime: "2014-01-12",
  doseLabel: "1st Dose",
  lotNumber: "92681",
  manufacturer: "Moderna",
  provider: "Healthgenics",
});
```

### 3. Generate and sign the JWT payload

```javascript
const payload = gpay.genGPayCovidCard(basicDetails, [testingRecord]);
const signedPayload = gpay.signPayload(payload);
```

### 4. Get the full URL

```javascript
const fullUrl = gpay.generateFullUrl(signedPayload);
```
npm package: @notarise-gov-sg/sns-notify-recipients
Description: Send SNS notifications with templates
Latest version: 1.6.0

# sns-notify-recipients

Send SNS notifications with templates.

## Installation

To install with npm, run this in your service directory:

```bash
npm install @notarise-gov-sg/sns-notify-recipients
```

## Usage

Import package where required:

```javascript
import { notifyPdt, notifyVaccine } from "@notarise-gov-sg/sns-notify-recipients";

try {
  /* Notify recipient of PDT */
  interface NotifyPdtProps {
    url: string;
    nric?: string;
    passportNumber: string;
    testData: TestData[];
    validFrom: string; // ISO String
  }
  await notifyPdt(notifyPdtProps);

  /* Notify recipient of Vaccination */
  interface NotifyVaccineProps {
    name: string;
    url: string;
    nric?: string;
    passportNumber: string;
    vaccinations: Vaccination[];
    validFrom: string; // ISO String
    vaccinationEffectiveDate: string; // ISO String
  }
  await notifyVaccine(notifyVaccineProps);

  /* Notify recipient of Health cert for new SPM wallet */
  interface NotifyHealthCertProps {
    version: string; // should be "1.0", "2.0"
    type: string; // should be "VAC", "ART", "PCR"
    url: string;
    expiry: number;// Epoch time
    uin: string;
    relationship?: string;// (Optional) should be "self", "child"
  }
  await notifyHealthCert(notifyHealthCertProps);

} catch (e) {
  errorWithRef(`Notification error: ${e.message}`);
}
```

## Environment Variables

Remember to set the following environment variables:

```text
NOTIFICATION_TOPIC_ARN=arn:aws:sns:ap-southeast-1:000000000000:PLACEHOLDER_SNS_TOPIC
NOTIFICATION_SENDER_NAME=MOH
NOTIFICATION_SENDER_LOGO=""
NOTIFICATION_TEMPLATE_ID=000
HEALTH_CERT_NOTIFICATION_TOPIC_ARN=arn:aws:sns:ap-southeast-1:000000000000:PLACEHOLDER_SNS_TOPIC
```

## Developers/Contributors

1. Develop on a separate branch.

2. Raise a PR.

3. Upon approval, "squash and merge" PR into `master` branch.

4. A new release will be automatically published by the workflow in GitHub Actions.
npm package: @notarize/eslint-plugin-react-intl-ensure
Description: Rules for managing react intl translations
Author: Notarize Inc.
Latest version: 1.6.0

<h1 align="center">ESLint Plugin React Intl Ensure</h1>
<p align="center">ESLint plugin that ensures your intl is up to spec.</p>

## Installation

```sh
npm i @notarize/eslint-plugin-react-intl-ensure --save-dev
# or
yarn add --dev @notarize/eslint-plugin-react-intl-ensure
```

## Usage

Configure in your eslint config file:

```json
{
  "plugins": ["@notarize/react-intl-ensure"],
  "rules": {
    "@notarize/react-intl-ensure/id-is-valid-uuid": "error"
  }
}
```

## Rules

<!-- prettier-ignore -->
| Name                                                         | Description                                                                                                                        |
| ---                                                          | ---                                                                                                                                |
| `@notarize/react-intl-ensure/id-is-valid-uuid` | Require that calls to `defineMessages` and `FormattedMessage` have UUID IDs. The `--fix` option will overwrite the ID with a UUID. |
npm package: @notarize/qlc-cli
Description: A module for using QLC in a Node project
Author: Notarize Inc.
Latest version: 4.2.0

# @notarize/qlc-cli

This is an npm module for using [qlc](https://github.com/notarize/qlc) (a rust binary) in a Node project.

### How it works

- QLC is built in CI and binaries are posted with a GitHub release.
- In this module's postinstall task, it determines which platform it is being installed on and downloads the correct binary.
npm package: @notary402/x402
Description: Audit & compliance wrapper for x402 payments. Budget enforcement, audit logging, and spike detection for AI agent micropayments.
Author: x402notary
Latest version: 0.1.0

# @notary402/x402

Audit & compliance wrapper for x402 payments. Budget enforcement, audit logging, and spike detection for AI agent micropayments.

## Install

```bash
npm install @notary402/x402
```

## Quick Start

```ts
import { wrapWithNotary, standardPolicy } from "@notary402/x402";

const fetch = wrapWithNotary(x402Fetch, {
  agentId: "researcher-01",
  budget: standardPolicy(),
});

// Every payment is now tracked, budget-enforced, and audit-logged
const res = await fetch("https://api.example.com/data");
```

## Budget Policies

```ts
import { standardPolicy, conservativePolicy, permissivePolicy } from "@notary402/x402";

// Standard: $1/call, $25/hr, $100/day, $1000 total
standardPolicy()

// Conservative: $0.10/call, $5/hr, $20/day, $200 total
conservativePolicy()

// Permissive: $10/call, $100/hr, $500/day, $10000 total
permissivePolicy()

// Custom
standardPolicy({
  perCall: 0.5,
  hourly: 10,
  allowlist: ["https://api.example.com/*"],
})
```

## Stateful Client

```ts
import { NotaryClient, standardPolicy } from "@notary402/x402";

const notary = new NotaryClient({
  agentId: "researcher-01",
  budget: standardPolicy(),
  onAuditEvent: (event) => console.log(event),
});

const fetch = notary.wrap(x402Fetch);
await fetch("https://api.example.com/data");

// Check stats
console.log(notary.stats());
// { totalPayments: 1, totalSpent: 0.002, ... }

// Export audit log
const csv = notary.exportCSV();
```

## Webhook Integration

```ts
const fetch = wrapWithNotary(x402Fetch, {
  agentId: "researcher-01",
  budget: standardPolicy(),
  webhookUrl: "https://hooks.slack.com/services/...",
});
```

## Error Handling

```ts
import { BudgetExceededError, EndpointBlockedError } from "@notary402/x402";

try {
  await fetch("https://api.example.com/data");
} catch (err) {
  if (err instanceof BudgetExceededError) {
    console.log(`Budget exceeded: ${err.policy} limit $${err.limit}`);
  }
  if (err instanceof EndpointBlockedError) {
    console.log(`Endpoint blocked: ${err.url}`);
  }
}
```

## License

MIT
npm package: @notastudio/commitlint-config
Description: Not a Studio's Commitlint shared config
Latest version: 0.0.9

# commitlint-config

Not a Studio's Commitlint shared config.

## Usage

Install the package by running:

```sh
yarn add -D @notastudio/commitlint-config
```

Then add the extends to your `commitlint.config.js`:

```js
module.exports = {
  extends: ['@notastudio'],
  rules: {
    // your overrides
  }
};
```

Finally, add the following git hook at your `package.json`:

```json
{
  "husky": {
    "hooks": {
      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
    }
  }
}
```

You can test the hook by simply committing.

## License

MIT
npm package: @notastudio/eslint-config
Description: Not a Studio's ESLint shared config
Latest version: 0.1.3

# eslint-config

Not a Studio's ESLint shared config.

## Usage

Install the package by running:

```sh
yarn add -D eslint @notastudio/eslint-config
```

Then add the extends to your `.eslintrc`:

```
{
  "extends": ["@notastudio"],
  "rules": {
    // your overrides
  }
}
```

Finally, for Prettier's rules to work with your editor / git hook add at `prettier.config.js`:

```js
module.exports = require('@notastudio/eslint-config/.prettierrc')
```

## Other configs

This config exposes a few other configs that you can use standalone or in combination with the base config:

```
{
  "extends": ["@notastudio", "@notastudio/eslint-config/<config-name>"]
}
```

- `react`: [React](https://www.npmjs.com/package/react) JS library (_eslint-plugin-react_)
- `jest`: [jest](http://facebook.github.io/jest/) testing framework (_eslint-plugin-jest_)
- `flow`: [flow](https://flow.org/) static type checker for JavaScript (_eslint-plugin-flowtype_)

## License

MIT