open-index/open-npm huggingface dataset:
npm package: @siclik-birlos/security-service
Description: Servicio para la validación de accesos de siclik.
Author: CompuSoluciones
Latest version: 1.0.0

# Módulo de Seguridad
Este módulo está encargado de solicitar los accesos de un usuario y validar si tiene los permisos necesarios para acceder a los distintos modulos solicitados mediante su token de acceso generado desde el servicio de login de **siclik**.

## Instalación
Para poder hacer uso del módulo en el api que se desea implementar, es necesario agregarlo al proyecto con los siguientes comandos:

``` bash
// usando NPM
$ npm install @compusoluciones/security-service

// usando YARN
$ yarn add @compusoluciones/security-service
```

### Notas
Para usar la última versión del módulo (en caso de actualizaciones) es necesario dirigirse a la raíz del proyecto y encontrar el archivo `package.json`, ahí se encuentran las dependencias usadas en el api. Localizamos el módulo de seguridad:

``` json
"@compusoluciones/security-service": "0.0.7",
```

Y procedemos a cambiar la versión por la mas reciente marcada. Por último actualizamos con el comando:

``` bash
// usando NPM
$ npm install

// usando YARN
$ yarn install
```

## Conectividad
El módulo de seguridad realiza conexiones directamente con la base de datos de **siclik**, esto es para solicitar en tiempo real los accesos con los que cuentan los usuarios para acceder a alguna función de un micro-servicio.

Es necesario que antes de hacer uso del servicio, se le proporcione los accesos a la base de datos de `SiclikUsers` como se muestra a continuación:

``` json
{
  "connectionLimit": "xx",
  "host": "xx.xx.xx.xx",
  "user": "xxxxx",
  "password": "xxxXXxxXX",
  "database": "xxxXXxXxx",
  "dateStrings": "date",
  "debug": false,
  "showQueries": false,
}
```

## Modo de uso

Para comenzar a usar el módulo de seguridad es necesario considerar los datos principales que se necesitan proporcionar:

| Parámetro | Cardinalidad | Tipo de dato |
|:---------:|:------------:|:------------:|
|   accessToken   | Obligatorio  |    String   |
| requiredAccess  | Obligatorio  |    Array    |
| options  | Opcional |    Object    |
| options.oneAccess  | Opcional  |    Boolean    |

### Importar módulo con acceso a base de datos
A continuación se mostrara un ejemplo de como se debe de importar el servicio de seguridad pasando como parámetros los accesos a la base de datos de usuarios.

``` javascript
const securityService = require('@compusoluciones/security-service');
const bdconfig = require('./config/bdconfig');

const security = securityService(bdconfig);
```

### Validar accesos de usuario
Para validar si un usuario tiene accesos a los modulos que nosotros fijamos como validos, debe de hacer de la siguiente manera:

``` javascript
const accessType = security.getAccess;

const requiredAccess = [
  { accessType: accessType.cotizarEscritura },
  { accessType: accessType.cotizarLectura }
];

async function seguridad() {
  const hasAccess = await security.validateSecurity(token, requiredAccess);
  return hasAccess;
}
```
La respuesta que nos da el módulo es un booleano en forma de promesa que nos indica si se tiene los permisos necesarios o no.
npm package: @siclik-clima_stock/security-service
Description: Servicio para la validación de accesos de siclik.
Author: CompuSoluciones
Latest version: 1.0.0

# Módulo de Seguridad
Este módulo está encargado de solicitar los accesos de un usuario y validar si tiene los permisos necesarios para acceder a los distintos modulos solicitados mediante su token de acceso generado desde el servicio de login de **siclik**.

## Instalación
Para poder hacer uso del módulo en el api que se desea implementar, es necesario agregarlo al proyecto con los siguientes comandos:

``` bash
// usando NPM
$ npm install @compusoluciones/security-service

// usando YARN
$ yarn add @compusoluciones/security-service
```

### Notas
Para usar la última versión del módulo (en caso de actualizaciones) es necesario dirigirse a la raíz del proyecto y encontrar el archivo `package.json`, ahí se encuentran las dependencias usadas en el api. Localizamos el módulo de seguridad:

``` json
"@compusoluciones/security-service": "0.0.7",
```

Y procedemos a cambiar la versión por la mas reciente marcada. Por último actualizamos con el comando:

``` bash
// usando NPM
$ npm install

// usando YARN
$ yarn install
```

## Conectividad
El módulo de seguridad realiza conexiones directamente con la base de datos de **siclik**, esto es para solicitar en tiempo real los accesos con los que cuentan los usuarios para acceder a alguna función de un micro-servicio.

Es necesario que antes de hacer uso del servicio, se le proporcione los accesos a la base de datos de `SiclikUsers` como se muestra a continuación:

``` json
{
  "connectionLimit": "xx",
  "host": "xx.xx.xx.xx",
  "user": "xxxxx",
  "password": "xxxXXxxXX",
  "database": "xxxXXxXxx",
  "dateStrings": "date",
  "debug": false,
  "showQueries": false,
}
```

## Modo de uso

Para comenzar a usar el módulo de seguridad es necesario considerar los datos principales que se necesitan proporcionar:

| Parámetro | Cardinalidad | Tipo de dato |
|:---------:|:------------:|:------------:|
|   accessToken   | Obligatorio  |    String   |
| requiredAccess  | Obligatorio  |    Array    |
| options  | Opcional |    Object    |
| options.oneAccess  | Opcional  |    Boolean    |

### Importar módulo con acceso a base de datos
A continuación se mostrara un ejemplo de como se debe de importar el servicio de seguridad pasando como parámetros los accesos a la base de datos de usuarios.

``` javascript
const securityService = require('@compusoluciones/security-service');
const bdconfig = require('./config/bdconfig');

const security = securityService(bdconfig);
```

### Validar accesos de usuario
Para validar si un usuario tiene accesos a los modulos que nosotros fijamos como validos, debe de hacer de la siguiente manera:

``` javascript
const accessType = security.getAccess;

const requiredAccess = [
  { accessType: accessType.cotizarEscritura },
  { accessType: accessType.cotizarLectura }
];

async function seguridad() {
  const hasAccess = await security.validateSecurity(token, requiredAccess);
  return hasAccess;
}
```
La respuesta que nos da el módulo es un booleano en forma de promesa que nos indica si se tiene los permisos necesarios o no.
npm package: @siclik-concha/security-service
Description: Servicio para la validación de accesos de siclik.
Author: CompuSoluciones
Latest version: 1.0.0

# Módulo de Seguridad
Este módulo está encargado de solicitar los accesos de un usuario y validar si tiene los permisos necesarios para acceder a los distintos modulos solicitados mediante su token de acceso generado desde el servicio de login de **siclik**.

## Instalación
Para poder hacer uso del módulo en el api que se desea implementar, es necesario agregarlo al proyecto con los siguientes comandos:

``` bash
// usando NPM
$ npm install @compusoluciones/security-service

// usando YARN
$ yarn add @compusoluciones/security-service
```

### Notas
Para usar la última versión del módulo (en caso de actualizaciones) es necesario dirigirse a la raíz del proyecto y encontrar el archivo `package.json`, ahí se encuentran las dependencias usadas en el api. Localizamos el módulo de seguridad:

``` json
"@compusoluciones/security-service": "0.0.7",
```

Y procedemos a cambiar la versión por la mas reciente marcada. Por último actualizamos con el comando:

``` bash
// usando NPM
$ npm install

// usando YARN
$ yarn install
```

## Conectividad
El módulo de seguridad realiza conexiones directamente con la base de datos de **siclik**, esto es para solicitar en tiempo real los accesos con los que cuentan los usuarios para acceder a alguna función de un micro-servicio.

Es necesario que antes de hacer uso del servicio, se le proporcione los accesos a la base de datos de `SiclikUsers` como se muestra a continuación:

``` json
{
  "connectionLimit": "xx",
  "host": "xx.xx.xx.xx",
  "user": "xxxxx",
  "password": "xxxXXxxXX",
  "database": "xxxXXxXxx",
  "dateStrings": "date",
  "debug": false,
  "showQueries": false,
}
```

## Modo de uso

Para comenzar a usar el módulo de seguridad es necesario considerar los datos principales que se necesitan proporcionar:

| Parámetro | Cardinalidad | Tipo de dato |
|:---------:|:------------:|:------------:|
|   accessToken   | Obligatorio  |    String   |
| requiredAccess  | Obligatorio  |    Array    |
| options  | Opcional |    Object    |
| options.oneAccess  | Opcional  |    Boolean    |

### Importar módulo con acceso a base de datos
A continuación se mostrara un ejemplo de como se debe de importar el servicio de seguridad pasando como parámetros los accesos a la base de datos de usuarios.

``` javascript
const securityService = require('@compusoluciones/security-service');
const bdconfig = require('./config/bdconfig');

const security = securityService(bdconfig);
```

### Validar accesos de usuario
Para validar si un usuario tiene accesos a los modulos que nosotros fijamos como validos, debe de hacer de la siguiente manera:

``` javascript
const accessType = security.getAccess;

const requiredAccess = [
  { accessType: accessType.cotizarEscritura },
  { accessType: accessType.cotizarLectura }
];

async function seguridad() {
  const hasAccess = await security.validateSecurity(token, requiredAccess);
  return hasAccess;
}
```
La respuesta que nos da el módulo es un booleano en forma de promesa que nos indica si se tiene los permisos necesarios o no.
npm package: @siclik-silvana/security-service
Description: Servicio para la validación de accesos de siclik.
Author: CompuSoluciones
Latest version: 1.0.0

# Módulo de Seguridad
Este módulo está encargado de solicitar los accesos de un usuario y validar si tiene los permisos necesarios para acceder a los distintos modulos solicitados mediante su token de acceso generado desde el servicio de login de **siclik**.

## Instalación
Para poder hacer uso del módulo en el api que se desea implementar, es necesario agregarlo al proyecto con los siguientes comandos:

``` bash
// usando NPM
$ npm install @compusoluciones/security-service

// usando YARN
$ yarn add @compusoluciones/security-service
```

### Notas
Para usar la última versión del módulo (en caso de actualizaciones) es necesario dirigirse a la raíz del proyecto y encontrar el archivo `package.json`, ahí se encuentran las dependencias usadas en el api. Localizamos el módulo de seguridad:

``` json
"@compusoluciones/security-service": "0.0.7",
```

Y procedemos a cambiar la versión por la mas reciente marcada. Por último actualizamos con el comando:

``` bash
// usando NPM
$ npm install

// usando YARN
$ yarn install
```

## Conectividad
El módulo de seguridad realiza conexiones directamente con la base de datos de **siclik**, esto es para solicitar en tiempo real los accesos con los que cuentan los usuarios para acceder a alguna función de un micro-servicio.

Es necesario que antes de hacer uso del servicio, se le proporcione los accesos a la base de datos de `SiclikUsers` como se muestra a continuación:

``` json
{
  "connectionLimit": "xx",
  "host": "xx.xx.xx.xx",
  "user": "xxxxx",
  "password": "xxxXXxxXX",
  "database": "xxxXXxXxx",
  "dateStrings": "date",
  "debug": false,
  "showQueries": false,
}
```

## Modo de uso

Para comenzar a usar el módulo de seguridad es necesario considerar los datos principales que se necesitan proporcionar:

| Parámetro | Cardinalidad | Tipo de dato |
|:---------:|:------------:|:------------:|
|   accessToken   | Obligatorio  |    String   |
| requiredAccess  | Obligatorio  |    Array    |
| options  | Opcional |    Object    |
| options.oneAccess  | Opcional  |    Boolean    |

### Importar módulo con acceso a base de datos
A continuación se mostrara un ejemplo de como se debe de importar el servicio de seguridad pasando como parámetros los accesos a la base de datos de usuarios.

``` javascript
const securityService = require('@compusoluciones/security-service');
const bdconfig = require('./config/bdconfig');

const security = securityService(bdconfig);
```

### Validar accesos de usuario
Para validar si un usuario tiene accesos a los modulos que nosotros fijamos como validos, debe de hacer de la siguiente manera:

``` javascript
const accessType = security.getAccess;

const requiredAccess = [
  { accessType: accessType.cotizarEscritura },
  { accessType: accessType.cotizarLectura }
];

async function seguridad() {
  const hasAccess = await security.validateSecurity(token, requiredAccess);
  return hasAccess;
}
```
La respuesta que nos da el módulo es un booleano en forma de promesa que nos indica si se tiene los permisos necesarios o no.
npm package: @sicmutils/glsl-parser
Description: transform streamed glsl tokens into an ast
Latest version: 2.0.1

# glsl-parser (SICMUtils fork of https://github.com/stackgl/glsl-parser)

A GLSL parser that takes tokens from
[glsl-tokenizer](http://github.com/stackgl/glsl-tokenizer) and turns them into
an AST.

May either be used synchronously or as a stream.

## API

NOTE: This fork of https://github.com/stackgl/glsl-parser removes the streaming
api (in `stream.js`) to exclude the `through` dependency, which causes problems
with Mathbox. See [this issue](https://gitgud.io/unconed/mathbox/-/issues/20)
for details.

### `ast = require('@sicmutils/glsl-parser/direct')(tokens)`

Synchronously parses an array of tokens from `glsl-tokenizer`.

``` javascript
var TokenString = require('glsl-tokenizer/string')
var ParseTokens = require('@sicmutils/glsl-parser/direct')
var fs = require('fs')

var src = fs.readFileSync('test.glsl', 'utf8')
var tokens = TokenString(src)
var ast = ParseTokens(tokens)

console.log(ast)
```

## Nodes

* `stmtlist`
* `stmt`
* `struct`
* `function`
* `functionargs`
* `decl`
* `decllist`
* `forloop`
* `whileloop`
* `if`
* `expr`
* `precision`
* `comment`
* `preprocessor`
* `keyword`
* `ident`
* `return`
* `continue`
* `break`
* `discard`
* `do-while`
* `binary`
* `ternary`
* `unary`

## Known Issues

* the parser might hit a state where it's looking at what *could be* an
expression, or it could be a declaration -- that is, the statement starts with a
previously declared `struct`. it'll opt to pretend it's a declaration, but that
might not be the case -- it might be a user-defined constructor starting a
statement!

* "unhygenic" `#if` / `#endif` macros are completely unhandled at the moment,
since they're a bit of a pain. if you've got unhygenic macros in your code, move
the #if / #endifs to statement level, and have them surround wholly parseable
code. this sucks, and i am sorry.

## License

MIT, see [LICENSE.md](LICENSE.md) for more details.