open-index/open-npm huggingface dataset:
npm package: @makemore/scaffold
Description: Bootstrap any software stack with sensible defaults
Author: MakeMore
Latest version: 0.1.0

# create-scaffold

Bootstrap any software stack with sensible defaults.

## Quick Start

```bash
# Create a new Django project
npx create-scaffold myapp --base django

# Create a new Next.js project
npx create-scaffold myapp --base nextjs

# Interactive mode
npx create-scaffold myapp
```

## Available Templates

| Template | Description |
|----------|-------------|
| `django` | Django REST API with authentication, Cloud Tasks, S3 storage |
| `nextjs` | Next.js 15 with TypeScript, Tailwind CSS, shadcn/ui |

## Usage

```bash
# Using npx (recommended)
npx create-scaffold <project-name> [options]

# Or install globally
npm install -g create-scaffold
scaffold init <project-name> [options]
```

## Options

```
-b, --base <template>   Base template (django, nextjs, or URL)
-a, --add <module>      Additional modules to layer
-v, --var <key=value>   Template variables
-o, --output <dir>      Output directory
    --no-prompt         Disable interactive prompts
```

## Custom Templates

Use any git repository as a template:

```bash
# GitHub
npx create-scaffold myapp --base github:org/repo

# GitLab
npx create-scaffold myapp --base gitlab:org/repo

# Any git URL
npx create-scaffold myapp --base git:https://git.example.com/repo

# Local path
npx create-scaffold myapp --base file:~/templates/my-template
```

## Documentation

For full documentation, visit: https://github.com/makemore/scaffold

## License

MIT
npm package: @makennamartin97/mypackage
Description: Removes all spaces from a string
Latest version: 2.0.0

# @makennamartin97/mypackage
[![npm (scoped)](https://img.shields.io/npm/v/@makennamartin97/mypackage.svg)](https://www.npmjs.com/package/@makennamartin97/mypackage)
[![npm bundle size (minified)](https://img.shields.io/bundlephobia/min/@makennamartin97/mypackage.svg)](https://github.com/makennamartin97/mypackage)

Removes all spaces from a string.

## Install
```
$ npm install @makennamartin97/mypackage
```
## Usage
```js
const mypackage = require("@makennamartin97/mypackage");

mypackage("All this space");
//=> "Allthisspace!"
npm package: @makenova/panda
Description: format seconds as a digital clock string
Author: makenvoa
Latest version: 1.1.5

# panda

[![Build Status](https://travis-ci.org/makenova/panda.svg?branch=master)](https://travis-ci.org/makenova/panda)

🐼 format seconds as a digital clock string 🐼

[Panda, 🐼, Panda, 🐼, Panda](http://genius.com/Desiigner-panda-lyrics)

## Install

```sh
npm install --save @makenova/panda

# OR install it globally for cli use

npm install -g @makenova/panda
```

## Use

```js
var convert = require('@makenova/panda')
convert(7250) // => '120 : 50'
convert(45012, { hours: true }) // => '12 : 30 : 12'
```

or in with `import`

```js
import convert from '@makenova/panda')
convert(7250) // => '120 : 50'
convert(45012, { hours: true }) // => '12 : 30 : 12'
```

or if you installed it globally,

```sh
panda 45012 # => 750 : 12
panda 45012 true # => 12 : 30 : 12

# no args will print usage
panda

Usage
$ panda <seconds> [show_hours_boolean]

Examples
$ panda 45012
750 : 12

$ panda 45012 true
12 : 30 : 12
```

## API

### `convert(seconds, [options])`

Convert seconds to a string formatted as a digital clock string. The default is
`Minutes : seconds`.

###### options.hours

A boolean that indicates if hours should be displayed.

## Bugs

Please report any bugs to: https://github.com/makenova/panda/issues

## License

Licensed under the MIT License: https://opensource.org/licenses/MIT
npm package: @makenova/seconds
Description: Tiny second conversion utility forked from zeit/ms
Latest version: 0.0.1

# seconds

[![Build Status](https://travis-ci.org/makenova/seconds.svg?branch=master)](https://travis-ci.org/makenova/seconds)

Use this package to easily convert various time formats to seconds.
This package was forked from [zeit/ms](https://github.com/zeit/ms)

## Examples

```js
seconds('2 days')  // 172800
seconds('1d')      // 86400
seconds('10h')     // 36000
seconds('2.5 hrs') // 9000
seconds('2h')      // 7200
seconds('1m')      // 60
seconds('5s')      // 5
seconds('1y')      // 31557600
seconds('100')     // 100
```

### Convert from milliseconds

```js
seconds(60)                   // "1m"
seconds(2 * 60)               // "2m"
seconds(seconds('10 hours'))  // "10h"
```

### Time format written-out

```js
seconds(60, { long: true })                   // "1 minute"
seconds(2 * 60, { long: true })               // "2 minutes"
seconds(seconds('10 hours'), { long: true })  // "10 hours"
```

## Features

- Works both in [node](https://nodejs.org) and in the browser.
- If a number is supplied to `seconds`, a string with a unit is returned.
- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`).
- If you pass a string with a number and a valid unit, the number of equivalent seconds is returned.

## Caught a bug?

1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device
2. Link the package to the global module directory: `npm link`
3. Within the module you want to test your local development instance of seconds, just link it to the dependencies: `npm link @makenova/seconds`. Instead of the default one from npm, node will now use your clone of seconds!

As always, you can run the tests using: `npm test`
npm package: @makeomatic/combine-source-map
Description: Add source maps of multiple files, offset them and then combine them into one source map
Author: Thorsten Lorenz
Latest version: 0.9.0

# combine-source-map [![build status](https://secure.travis-ci.org/thlorenz/combine-source-map.png)](http://travis-ci.org/thlorenz/combine-source-map)

Add source maps of multiple files, offset them and then combine them into one source map.

```js
const convert = require('convert-source-map');
const combine = require('combine-source-map');

const fooComment = '//# sourceMappingURL=data:application/json;base64,eyJ2Z [..] pzJylcbiJdfQ==';
const barComment = '//# sourceMappingURL=data:application/json;base64,eyJ2Z [..] VjaycpXG4iXX0=';

const fooFile = {
    source: '(function() {\n\n  console.log(require(\'./bar.js\'));\n\n}).call(this);\n' + '\n' + fooComment
  , sourceFile: 'foo.js'
};
const barFile = {
    source: '(function() {\n\n  console.log(alert(\'alerts suck\'));\n\n}).call(this);\n' + '\n' + barComment
  , sourceFile: 'bar.js'
};

const offset = { line: 2 };
const map = combine.create('bundle.js');
await map.addFile(fooFile, offset)
await map.addFile(barFile, { line: offset.line + 8 })
const base64 = map.base64();

const sm = convert.fromBase64(base64).toObject();
console.log(sm);
```

```
{ version: 3,
  file: 'bundle.js',
  sources: [ 'foo.coffee', 'bar.coffee' ],
  names: [],
  mappings: ';;;AAAA;CAAA;CAAA,CAAA,CAAA,IAAO,GAAK;CAAZ;;;;;ACAA;CAAA;CAAA,CAAA,CAAA,IAAO,GAAK;CAAZ',
  sourcesContent:
   [ 'console.log(require \'./bar.js\')\n',
     'console.log(alert \'alerts suck\')\n' ] }
```

## Installation

    npm install combine-source-map

## API

### create()

```
/**
 * @name create
 * @function
 * @param file {String} optional name of the generated file
 * @param sourceRoot { String} optional sourceRoot of the map to be generated
 * @return {Object} Combiner instance to which source maps can be added and later combined
 */
```

### Combiner.prototype.addFile(opts, offset)

```
/**
 * Adds map to underlying source map.
 * If source contains a source map comment that has the source of the original file inlined it will offset these
 * mappings and include them.
 * If no source map comment is found or it has no source inlined, mappings for the file will be generated and included
 *
 * @name addMap
 * @function
 * @param opts {Object} { sourceFile: {String}, source: {String} }
 * @param offset {Object} { line: {Number}, column: {Number} }
 */
```

### Combiner.prototype.base64()

```
/**
* @name base64
* @function
* @return {String} base64 encoded combined source map
*/
```

### Combiner.prototype.comment()

```
/**
 * @name comment
 * @function
 * @return {String} base64 encoded sourceMappingUrl comment of the combined source map
 */
```

### removeComments(src)

```
/**
 * @name removeComments
 * @function
 * @param src
 * @return {String} src with all sourceMappingUrl comments removed
 */
```

## Example

Read and run the [more elaborate example](https://github.com/thlorenz/combine-source-map/blob/master/example/two-files.js)
in order to get a better idea how things work.
npm package: @makeomatic/condition-semaphore
Description: make sure only the right builds on semaphore get to publish
Author: Vitaly Aminev
Latest version: 2.0.0

# semantic-release condition-semaphore

[![npm version](https://badge.fury.io/js/%40makeomatic%2Fcondition-semaphore.svg)](http://badge.fury.io/js/%40makeomatic%2Fcondition-semaphore)
[![Build Status](https://semaphoreci.com/api/v1/makeomatic/condition-semaphore/branches/master/shields_badge.svg)](https://semaphoreci.com/makeomatic/condition-semaphore)
[![Coverage Status](https://coveralls.io/repos/makeomatic/condition-semaphore/badge.svg?branch=master&service=github)](https://coveralls.io/github/makeomatic/condition-semaphore?branch=master)

[![Dependency Status](https://david-dm.org/makeomatic/condition-semaphore/master.svg)](https://david-dm.org/makeomatic/condition-semaphore/master)
[![devDependency Status](https://david-dm.org/makeomatic/condition-semaphore/master/dev-status.svg)](https://david-dm.org/makeomatic/condition-semaphore/master#info=devDependencies)

[![makeomatic](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](https://github.com/feross/standard)
npm package: @makeomatic/eth-block-tracker
Description: A block tracker for the Ethereum blockchain. Keeps track of the latest block.
Author: kumavis
Latest version: 4.4.1


# eth-block-tracker

This module walks the Ethereum blockchain, keeping track of the latest block.
It uses a web3 provider as a data source and will continuously poll for the next block.

```js
const HttpProvider = require('ethjs-provider-http')
const PollingBlockTracker = require('eth-block-tracker')

const provider = new HttpProvider('https://mainnet.infura.io')
const blockTracker = new PollingBlockTracker({ provider })
blockTracker.on('latest', console.log)
```

### methods

##### new PollingBlockTracker({ provider, pollingInterval, retryTimeout, keepEventLoopActive })

creates a new block tracker with `provider` as a data source and
`pollingInterval` (ms) timeout between polling for the latest block.
If an Error is encountered when fetching blocks, it will wait `retryTimeout` (ms) before attempting again.
If `keepEventLoopActive` is false, in Node.js it will [unref the polling timeout](https://nodejs.org/api/timers.html#timers_timeout_unref), allowing the process to exit during the polling interval. defaults to `true`, meaning the process will be kept alive.

##### getCurrentBlock()

synchronous returns the current block. may be `null`.

```js
console.log(blockTracker.getCurrentBlock())
```

##### async getLatestBlock()

Asynchronously returns the latest block.
if not immediately available, it will fetch one.

##### async checkForLatestBlock()

Tells the block tracker to ask for a new block immediately, in addition to its normal polling interval.
Useful if you received a hint of a new block (e.g. via `tx.blockNumber` from `getTransactionByHash`).
Will resolve to the new latest block when its done polling.

### EVENTS

##### latest

The `latest` event is emitted for whenever a new latest block is detected.
This may mean skipping blocks if there were two created since the last polling period.

```js
blockTracker.on('latest', (newBlock) => console.log(newBlock))
```

##### sync

The `sync` event is emitted the same as "latest" but includes the previous block.

```js
blockTracker.on('sync', ({ newBlock, oldBlock }) => console.log(newBlock, oldBlock))
```

##### error

The `error` event means an error occurred while polling for the latest block.

```js
blockTracker.on('error', (err) => console.error(err))
```

### NOTES

Version 4.x.x differs significantly from version 3.x.x

Please see the [CHANGELOG](./CHANGELOG.md).
npm package: @makeomatic/gcrypt
Description: Encrypted git repositories for privacy made easy
Author: Lucas Barrena <lucasbarrena98@gmail.com>
Latest version: 2.0.0

# gcrypt

Encrypted git repositories for privacy made easy

![](https://img.shields.io/github/license/LuKks/gcrypt.svg)

```sh
# Create a new remote encrypted repository 
gcrypt init git@github.com:user/repo.git

# Encrypt repository already on GitHub
gcrypt encrypt git@github.com:user/repo.git

# Clone encrypted repository
gcrypt clone git@github.com:user/repo.git
```

## Requirements
```sh
apt install git-remote-gcrypt
```

## Install
```sh
npm i -g LuKks/gcrypt
```

## Description
Makes easy to work with fully encrypted git repositories.\
It uses [spwhitton/git-remote-gcrypt](https://github.com/spwhitton/git-remote-gcrypt), so check it out.\
The unique disadvantage that I noticed pushing is a bit slow but not big deal.\
Using your GPG key for encryption.

## Examples
#### Create a new encrypted repository
Create an empty repository on GitHub then:
```sh
gcrypt init git@github.com:user/repo.git
# or
gcrypt init git@github.com:user/repo.git ~/Desktop/my-encrypted-repo
```

#### Encrypt repository already on GitHub
```sh
gcrypt encrypt git@github.com:user/repo.git
```
Take caution, it will erase the entire repository (branches, tags, etc),\
just keeping a single commit/branch where would be all encrypted togheter.

#### Clone encrypted repository
```sh
gcrypt clone git@github.com:user/repo.git
# or
gcrypt clone git@github.com:user/repo.git ~/Desktop/my-encrypted-repo
```

## Notes
#### Multiple GPG keys
If you have multiple GPG keys, set which would be used for encryption.

Check your GPG keys list:
```sh
gpg --list-secret-keys --keyid-format LONG
```

And set it:
```sh
git config --global --add gcrypt.participants "A1234B1234C1234D"
```

## Useful links
https://github.com/spwhitton/git-remote-gcrypt/ \
https://www.alwaysrightinstitute.com/gcrypt/ \
https://caolan.uk/articles/encrypted-git-repositories/

## License
Code released under the [MIT License](https://github.com/LuKks/gcrypt/blob/master/LICENSE).
npm package: @makeomatic/gulp-wrap-js
Description: Gulp plugin for templating JavaScript code with source maps support.
Author: Ingvar Stepanyan
Latest version: 1.0.2

# gulp-wrap-js
[![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url]  [![Dependency Status][depstat-image]][depstat-url]

When using classic templating solutions (like Lo-Dash / Underscore templates / own regexps / etc.) for wrapping JavaScript code, you're manipulating code as strings under the hood, and so losing any inner structure and location information. Such approach is used in [gulp-wrap](https://github.com/adamayres/gulp-wrap), [gulp-wrap-amd](https://github.com/phated/gulp-wrap-amd), [gulp-wrap-umd](https://github.com/phated/gulp-wrap-umd) and that's why source maps are not currently supported in any of them.

In opposite, this plugin is based on AST templating [estemplate](https://github.com/RReverser/estemplate) library, and allows to wrap your JavaScript code into given template (UMD / AMD / whatever) with preserved locations for source maps generation.

Check out [gulp-sourcemaps](https://github.com/floridoo/gulp-sourcemaps) for detailed instructions on working with source maps enabled plugins in Gulp.

## Usage

First, install `gulp-wrap-js` as a development dependency:

```shell
npm install --save-dev gulp-wrap-js
```

Then, add it to your `gulpfile.js`:

```javascript
var sourcemaps = require('gulp-sourcemaps');
var wrapJS = require("gulp-wrap-js");

gulp.src("./src/*.js")
    .pipe(sourcemaps.init())
        .pipe(wrapJS('define(function () {%= body %})'))
    .pipe(sourcemaps.write())
    .pipe(gulp.dest("./dist"));
```

## API

### wrapJS(template, format)

#### template
Type: `String`  
**Required**

Template you wish to wrap your code with. Check out [estemplate docs](https://github.com/RReverser/estemplate#estemplatetmplstring-options-data) for all the possible substitution markers.

Note that in `gulp-wrap-js` you have only `body` array of statements passed to template as data.

#### format
Type: `Object`
Default: `escodegen.FORMAT_DEFAULTS`

[escodegen](https://github.com/Constellation/escodegen/wiki/API) output `format` options.

## License

[MIT License](http://en.wikipedia.org/wiki/MIT_License)

[npm-url]: https://npmjs.org/package/gulp-wrap-js
[npm-image]: https://badge.fury.io/js/gulp-wrap-js.png

[travis-url]: http://travis-ci.org/RReverser/gulp-wrap-js
[travis-image]: https://secure.travis-ci.org/RReverser/gulp-wrap-js.png?branch=master

[depstat-url]: https://david-dm.org/RReverser/gulp-wrap-js
[depstat-image]: https://david-dm.org/RReverser/gulp-wrap-js.png
npm package: @makeomatic/last-release-npm
Description: determine the version of the last release via the npm registry
Author: Stephan Bönnemann
Latest version: 1.0.1

# semantic-release last-release-npm

[![npm version](https://badge.fury.io/js/%40makeomatic%2Flast-release-npm.svg)](http://badge.fury.io/js/%40makeomatic%2Flast-release-npm)

[![Dependency Status](https://david-dm.org/makeomatic/last-release-npm/next.svg)](https://david-dm.org/makeomatic/last-release-npm/next)
[![devDependency Status](https://david-dm.org/makeomatic/last-release-npm/next/dev-status.svg)](https://david-dm.org/makeomatic/last-release-npm/next#info=devDependencies)

[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/last-release-npm)
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](https://github.com/feross/standard)