open-index/open-npm huggingface dataset:
npm package: @plastichub/content
Description: Liquid based markup language
Latest version: 0.2.9

# Content & Expression Engine based on Liquid (JS Implementation)

## Installation

```sh
# local
npm install @plastichub/content

#global 
npm -g @plastichub/content

# CLI help
oscript compile --help

```

### References

- [LiquidJS Docs](https://liquidjs.com/api/classes/liquid_.liquid.html)
- [Liquid Docs - Shopify](https://shopify.github.io/liquid/)

### Usage

Please find examples in ['./examples](./examples)

## Todos

- [ ] Filter/Tags
  - [x] Datasources
    - [x] Google Sheet
    - [x] Local Sheet
      - see [exceljs](https://github.com/exceljs/exceljs)
    - [x] CSV
    - [x] selectors
	- [ ] PDF tables, see [site:tabula](https://github.com/tabulapdf/tabula)
- [ ] JS
  - [ ] Bind Datasources in local scope
  - [x] Default bootstrap
    - [x] Plastichub
    - [-] OSR
    - [x] Default functions: unit conv, string manipulation
- [x] User Plugins
- [x] Refine Engine for scoping
- [ ] RT Security
  - Options
    - [Secure VM (native)](https://github.com/laverdet/isolated-vm)
    - [VM2](https://github.com/patriksimek/vm2#debugging-a-sandboxed-code)
- [-] Multi Env
  - [x] support multi env in profiles
- [x] Settings / Profile
  - [-] should read local profil per consumed directory within ```include``` calls
- [-] Instrumentation
  - add support for clinic.js | clinic.doctor
- [ ] Platform / Services
  - [x] Discourse - API (related, category feed, custom search, topic acc)
  - [x] Magento - API (related, components, configurations, options)
  - [x] Media Wiki
- [ ] Documentation
  - [ ] Auto - JS Bootstrap docs
  - [ ] Generate documented tests
- [x] OSRL commons (plugins)
- [ ] Partials cache
- [ ] VFS & RQL
- [ ] OSR-Search
  - [ ] consume/provide elastic-search queries
  - [ ] PDF mining : https://pypi.org/project/pdfminer/

- [ ] new include tag 'emerge' based on the original 'include'
  - [ ] context/implicit: evaluate conditional statement as variable
  - [ ] implicit: forward output format (New: AST/partials), gives format agnostic results
  - [ ] explicit: cache expiration
  - [ ] track i/o access in context meta db
  - [ ] i/o: re-impl. old vfs/service API
- [ ] fix fucking globals
  - [ ] run plugins in cached vm.Script contexts
- [ ] output masking via profile json(-get) paths
- [ ] support pandoc for input/output pre/post processing
npm package: @plastichub/fs
Description: Simplified file system API in Typescript
Latest version: 0.13.41

# Advanced filesystem implementation in Typescript

- [ ] Correct totals
- [ ] support streams
- [ ] Switch to fast glob
- [x] Remap nodes for cp and mv
- [x] zero conf
- [ ] update unit tests
- [-] common CLI commands for global: each, concat, cat (with plugins)
- [-] rimraf rename plugin, part of `each <glob>`
- [ ] node type incorrect for invalid file/folder names
- [-] update to latest fs-jetpack
- [ ] WSAENAMETOOLONG
- [ ] diff
  - [ ] images
- [ ] defaults : path limit, ARS, busy

## References

- [https://github.com/alessioalex/get-folder-size](https://github.com/alessioalex/get-folder-size)
npm package: @plastichub/lib-content
Description: Liquid based markup language
Latest version: 0.3.6

# Content & Expression Engine based on Liquid (JS Implementation)

## Installation

```sh
# local
npm install @plastichub/content

#global 
npm -g @plastichub/content

# CLI help
oscript compile --help

```

### References

- [LiquidJS Docs](https://liquidjs.com/api/classes/liquid_.liquid.html)
- [Liquid Docs - Shopify](https://shopify.github.io/liquid/)

### Usage

Please find examples in ['./examples](./examples)

## Todos

- [ ] Filter/Tags
  - [x] Datasources
    - [x] Google Sheet
    - [x] Local Sheet
      - see [exceljs](https://github.com/exceljs/exceljs)
    - [x] CSV
    - [x] selectors
	- [ ] PDF tables, see [site:tabula](https://github.com/tabulapdf/tabula)
- [ ] JS
  - [ ] Bind Datasources in local scope
  - [x] Default bootstrap
    - [x] Plastichub
    - [-] OSR
    - [x] Default functions: unit conv, string manipulation
- [x] User Plugins
- [x] Refine Engine for scoping
- [ ] RT Security
  - Options
    - [Secure VM (native)](https://github.com/laverdet/isolated-vm)
    - [VM2](https://github.com/patriksimek/vm2#debugging-a-sandboxed-code)
- [-] Multi Env
  - [x] support multi env in profiles
- [x] Settings / Profile
  - [-] should read local profil per consumed directory within ```include``` calls
- [-] Instrumentation
  - add support for clinic.js | clinic.doctor
- [ ] Platform / Services
  - [x] Discourse - API (related, category feed, custom search, topic acc)
  - [x] Magento - API (related, components, configurations, options)
  - [x] Media Wiki
- [ ] Documentation
  - [ ] Auto - JS Bootstrap docs
  - [ ] Generate documented tests
- [x] OSRL commons (plugins)
- [ ] Partials cache
- [ ] VFS & RQL
- [ ] OSR-Search
  - [ ] consume/provide elastic-search queries
  - [ ] PDF mining : https://pypi.org/project/pdfminer/

- [ ] new include tag 'emerge' based on the original 'include'
  - [ ] context/implicit: evaluate conditional statement as variable
  - [ ] implicit: forward output format (New: AST/partials), gives format agnostic results
  - [ ] explicit: cache expiration
  - [ ] track i/o access in context meta db
  - [ ] i/o: re-impl. old vfs/service API
- [ ] fix fucking globals
  - [ ] run plugins in cached vm.Script contexts
- [ ] output masking via profile json(-get) paths
- [ ] support pandoc for input/output pre/post processing
npm package: @plastichub/osr-cache
Description: - [-] Cross - OS - Storage - [x] Namespaces
Latest version: 0.4.8

# OSR - Cache

- [-] Cross - OS - Storage
- [x] Namespaces

- [ ] API
  - [ ] list
  - [ ] purge
  - [ ] pack / unpack (encrypted)
  - [ ] move / cp - ns

## References

- [cacache - API](https://github.com/npm/cacache)
- [https://github.com/npm/ssri#integrity-stream](https://github.com/npm/ssri#integrity-stream)
npm package: @plastichub/osr-cli
Description: - [ ] module introspection/API wrapper - [ ] module pipes / intercept ? - [ ] module updates
Latest version: 0.1.2

# OSR-CLI

- [ ] module introspection/API wrapper
- [ ] module pipes / intercept ?
- [ ] module updates

## Commands

### `info`

### `git`

### `osr-package`

### `osr-module`



### `product`

**usage**

```sh
osr-cli create --name="product title" --slug="unique slug"
```

### `instance`

```sh
osr-cli instance <create|update|info|ls|rm|eject>
```

### `module`

```sh
osr-cli 'module' command <verb> args
```
npm package: @plastichub/osr-cli-commons
Description: ## Package verbs (todos)
Latest version: 0.5.7

# OSR CLI Commons

## Package verbs (todos)

Each package should expose information about itself, eg:

- info (package introspection)
- register context menu
- help
- help-json
- commands
- commands-json

For conversion related utility:

- provides (list of available conversions)
- provides-json

## Configuration example

```json

{
    "deepl": {
        "auth_key": "",
        "free_api": false
    },
    "cscart": {
        "apiKey": "",
        "apiUrl": "https://shop.osr-plastic.org/api/",
        "username": "",
        "userToken": "none"
    },
    "discourse": {
        "host": "https://forum.osr-plastic.org",
        "key": "",
        "username": "jerom",
        "rateLimitConcurrency": 1
    },
    "instagram": {
        "user": "cgoflyn@gmail.com",
        "token": ""
    },
    "urls":{
        "shop":"https://shop.osr-plastic.org/",
        "forum":"https://forum.osr-plastic.org/",
        "library":"https://kb.osr-plastic.org/",
        "git":"https://git.osr-plastic.org/",
        "assets":"https://assets.osr-plastic.org/"
    }
}
```

### References

- [Marked Terminal - Renderer](https://github.com/mikaelbr/marked-terminal)


### Todos

- [ ] CLI:Each
  - [ ] --list=Glob | String | Datasource
- [ ] Migrate FS Extras : npm | Opts | Validate
npm package: @plastichub/osr-commons
Description: ## System Taxonomy
Latest version: 0.5.3

# OSR - Commons

## System Taxonomy

- [ ] tags
- [ ] categories
- [ ] user groups
- [-] ACL

- [ ] VFS / DB URIs
- [ ] Profiles API
- [ ] Registry

## Commands

### `info`

### `get`

### `set`
npm package: @plastichub/osr-cscart
Description: ## Commands
Latest version: 0.1.4

# i18n related library and CLI for OSR content

## Commands

### `list`


### `user`

### `category`

### `product`


## Todos

- Item Types
  - Hardware / Physical
  - Machines
  - Moulds
  - Materials
  - Others / Components
  - 3D - Print?
  - Services
  - Requests / Bounties
  - Offers ( that’s OSR-Directory overlay - https://osr-plastic.org/users/Europe.html)
- User types
  - Low-tech, eg: Precious - Plastic
  - SMEs
  - Private schools
  - Public sector (Universities)
  - NGOs
- Deployment / Display
  - OSR - Marketplace itself :-)
  - OSR-Portal (as a module, eg:  New/Most Popular ‘XXX’)
  - Ebay (curated | opt-in )
  - Etsy (curated | opt-in)
  -  Social Media: IG/FB (curated | opt-in). Video platforms might be possible too - still thinking about automatic content creation
  -In OSR - Library (eg: ‘buy’) - if OSR compatible
  - In OSR - Forum (dedicated category, enables discussion)
  - PDF / Catalogs (opt-in | individual)
  - Google YT/Search Campaign ( opt-in )
  - Generic Website widget
  - RSS (it’s kinda dead)
  - Push notification
  - OSR - Howtos
  - OSR - Map
  - Google Merchant Center - items are displayed in search results, in the ‘shopping’ tab)


## References

### Image uploads

related image meta generation is in app\functions\fn.images.php::fn_update_image || fn_attach_absolute_image_paths

root table :
http://localhost/phpmyadmin/index.php?route=/sql&db=osrbazar&table=cscart_images&pos=0

side table :
http://localhost/phpmyadmin/index.php?route=/sql&db=osrbazar&table=cscart_images_links&pos=0

object rel:

http://localhost/phpmyadmin/index.php?route=/sql&db=osrbazar&table=cscart_common_descriptions


### Language Helpers

  app\Tygh\Languages\

### Cron entry point

 php /var/www/vhosts/osr-plastic.org/shop.osr-plastic.org/admin.php --dispatch=ab__advanced_sitemap.cron --storefront_id=1

## Smarty

- [4.x docs](https://smarty-php.github.io/smarty/4.x/)
npm package: @plastichub/osr-discourse
Description: ## Commands
Latest version: 0.1.9

# Discourse library and CLI for OSR content

## Commands

### `info`

#### Print configuration and commands

```
osr-discourse info
```

### `deploy`

Create/Update post from directory, using OSR-Specs

**usage**

```sh

osr-discourse deploy --src="./*" 

```

### `sync <file>`

Sync file

**usage**

```sh

osr-discourse sync <file> 

    --src="<filepath.HTML|MD|OSR / glob / pipe>" 
    --cat=<category id> 
    --owner="user_name|user_id" 
    --config=<OSR Config Hash> 
    --timestamp=<default=now>
    --download-assets=true|false
    --tags=<tag ids | tag names>
    
```

### `sync-kb`

Create/Update/Sync kb from directory

**usage**

```sh

osr-discourse sync --src="./*" 

```

### `list`

List posts per category or search query

**usage**

```sh

osr-discourse list --query="discourse-query"  --dst="output.[json|xls|csv]" --fields="[post-fields]"

```

### `oa-user-import`

Imports oa-users from dump file

**usage**

```sh

osr-discourse oa-user --src="raw.json"

```

### `ig-user-sync`

Imports IG users from dump file

**usage**

```sh

osr-discourse ig-user sync --src="raw.json"

```

### `osr-commons-sync`

Sync all osr-commons ( taxonomy )

**usage**

```sh

osr-discourse osr-sync --src="path to commons (JSON)"

```

### `pm`

Notify all users, using Discourse private message

**usage**

```sh

osr-discourse pm --src="path to message (MD|HTML)" --groups="osr groups"

```

### `invite`

Send invite to a list of users, common MC/OSR CSV format

**usage**

```sh

osr-discourse invite --src="path to message (MD|HTML)" --src="path to CSV"

```

## Library / API

## References

- [ts-json-schema-generator - issue - functions](https://github.com/loopingz/webda.io/blob/main/packages/shell/src/code/compiler.ts#L154-243)

### Todos

////////////////////////
        //
        //  1. Fetch Tags
        //  2. Populate Tags
        //  3. Download (oa-bot)
        //  4. Sync - Assets (osr-machines)
        //  5. Ensure/Find user
        //
        //  Content
        //  
        //  Body (descr full)
        //  each step
        //  footer (refs)
        //  set tags
        //  set ts
        //
        //  Post
        //      -> sync lib
        //      -> translate -> lib
        //      -> digest
        //      -> notifications
        //      -> index
        //      -> update ext refs
        //          -> market place
        //      -> sync externals (git, ...)
npm package: @plastichub/osr-fs-utils
Description: ## Todos
Latest version: 0.1.4

# osr-fs-utils

## Todos

## CLI / Lib

## Lib

- [ ] Search
- [ ] Filter
  - [ ] fs::onContent->(resize,conv)
- [ ] each
  - [ ] exe
  - [ ] shell script
  - [ ] osrl script
- [ ] stats (mask / profile)
- [ ] Inspect / Tree/Node walker
npm package: @plastichub/osr-mail
Description: This is a CLI(CommandLineInterface) toolset to convert media files
Latest version: 0.1.6

# OSR CAD Tools

This is a CLI(CommandLineInterface) toolset to convert media files

## Requirements

1. [Node-JS](https://nodejs.org/en/download/)
2. Optional: install [Git](https://git-scm.com/downloads) (Make sure you enable Linux tools on Windows console)

## Installation

```sh
git clone https://gitlab.com/plastichub/osr/osr-media.git
cd osr-media
npm i
```

or globally (recommended)

```
npm i @plastichub/osr-media -g
```

## Usage

Open a terminal and run this:

```sh
osr-media --help
```

See more in [./docs/Examples.md](./docs/Examples.md)

### Commands - Todos - 2D/Pictures

- [ ] web formats (https://sharp.pixelplumbing.com/api-constructor)
- [ ] vector formats: pdf|svg
- [ ] meta exchange (from JSON, to Exif)

### Commands - Todos - Pixels

- [ ] RAW formats

### Commands - Video

- [ ] sub titles ?
- [ ] ffmpg
  - [ ] split
  - [ ] merge
  - [ ] server/transcode ?

## References

- [pixelmatch](https://github.com/mapbox/pixelmatch)
- [lib content](https://git.osr-plastic.org/osr-plastic/osr-lib-content)
- [image diff](https://www.npmjs.com/package/img-diff-js)
- [ARW spec](https://github.com/WeTransfer/format_parser/blob/master/lib/parsers/arw_parser.rb)
- [ARW format notes - wiki](http://fileformats.archiveteam.org/wiki/Sony_ARW)
- [RAW View - NodeJS](https://github.com/catdad/raw-viewer/releases)
- [DCRaw - Github](https://github.com/zfedoran/dcraw.js)
- [DCRaw Vendored - NPM](https://www.npmjs.com/package/dcraw-vendored-win32)
- [Exif Data Reader](https://github.com/mattiasw/ExifReader)
- 

## AI Tools

- [Object Replace](https://novita.ai/product/replace-object)

## Video

- [https://github.com/fluent-ffmpeg/node-fluent-ffmpeg.git](https://github.com/fluent-ffmpeg/node-fluent-ffmpeg.git)
npm package: @plastichub/osr-media
Description: This is a CLI(CommandLineInterface) toolset to convert media files
Latest version: 0.2.7

# OSR CAD Tools

This is a CLI(CommandLineInterface) toolset to convert media files

## Requirements

1. [Node-JS](https://nodejs.org/en/download/)
2. Optional: install [Git](https://git-scm.com/downloads) (Make sure you enable Linux tools on Windows console)

## Installation

```sh
git clone https://gitlab.com/plastichub/osr/osr-media.git
cd osr-media
npm i
```

or globally (recommended)

```
npm i @plastichub/osr-media -g
```

## Usage

Open a terminal and run this:

```sh
osr-media --help
```

See more in [./docs/Examples.md](./docs/Examples.md)

### Commands - Todos - 2D/Pictures

- [ ] web formats (https://sharp.pixelplumbing.com/api-constructor)
- [ ] vector formats: pdf|svg
- [ ] meta exchange (from JSON, to Exif)

### Commands - Todos - Pixels

- [ ] RAW formats

### Commands - Video

- [ ] sub titles ?
- [ ] ffmpg
  - [ ] split
  - [ ] merge
  - [ ] server/transcode ?

## References

- [pixelmatch](https://github.com/mapbox/pixelmatch)
- [lib content](https://git.osr-plastic.org/osr-plastic/osr-lib-content)
- [image diff](https://www.npmjs.com/package/img-diff-js)
- [ARW spec](https://github.com/WeTransfer/format_parser/blob/master/lib/parsers/arw_parser.rb)
- [ARW format notes - wiki](http://fileformats.archiveteam.org/wiki/Sony_ARW)
- [RAW View - NodeJS](https://github.com/catdad/raw-viewer/releases)
- [DCRaw - Github](https://github.com/zfedoran/dcraw.js)
- [DCRaw Vendored - NPM](https://www.npmjs.com/package/dcraw-vendored-win32)
- [Exif Data Reader](https://github.com/mattiasw/ExifReader)
- 

## AI Tools

- [Object Replace](https://novita.ai/product/replace-object)

## Video

- [https://github.com/fluent-ffmpeg/node-fluent-ffmpeg.git](https://github.com/fluent-ffmpeg/node-fluent-ffmpeg.git)
npm package: @plastichub/osr-tasks
Description: OSR Grunt Tasks
Latest version: 0.5.3

# Build

Build chain using Grunt

## Provided Grunt Task Plugins

### OSR-Language Tasks (see [source](./tasks/compile.ts))

**brief** : Task to compile files with [`osr - language`](https://git.osr-plastic.org/osr-plastic/osrl)

Example config for Grunt

```js

grunt.initConfig({
        pkg: grunt.file.readJSON("package.json"),
        compile: {
            documentation: {
                src: [
                    "src/documentation/**/*.md",
                ],
                options: {
                    output: 'content/en/',
                    debug: false,
                    watch: true,
                    root: path.resolve("./src/documentation/")
                }
            }
        }
});

grunt.registerTask('default', [
    'compile:documentation'
]);
require("@plastichub/osr-tasks").initConfig(grunt, {})

```


### Todos

- [x] osr-i18n
- [-] osr-templates (newsletter, ...)
- [x] osr-content
- [-] osr-vendor
  - [x] osr-vendor-laser
- [-] osr-kb
- [-] osr-oa
- [-] OSRL - Template/Wrapper
- [x] osr-media
- [x] osr-cad
- [x] osr-sync
- [ ] house keeping
  - [-] npm
  - [-] packages
  - [x] git
  - [x] ssh
- [ ] validate
- [ ] osr-hugo
- [x] osr-discourse
- [ ] osr-discord
- [ ] osr-ig-bot
- [ ] meta
  - [ ] lib hash (log/cache)
  - [ ] query | options
npm package: @plastichub/osr-templates
Description: ## Discourse
Latest version: 0.1.2

# OSR - Templates

## Discourse

### Component

#### Resources

- [ ] Git-Link
- [ ] Issues (List & New)
- [ ] Specs - PDF
- [ ] PDF
- [ ] Replaced by / ...
- [ ] Howtos
- [ ] Social media

#### Meta

- [ ] Changelog
- [ ] Versions

#### Display

- [ ] Gallery
- [ ] Products (:)
- [ ] Options
- [ ] Components
- [ ] Drawings (overview/parts) +source

---

#### Directory Item

- [ ] Gallery / Portfolio
- [ ] Products (:)
- [ ] Links
- [ ] Feed
- [ ] Activity (intern ;)

## Item Raw (-)

- [ ] history
- [ ] i18n branches
- [ ] versions
- [ ] compat/specs
- [ ] tests
- [ ] meta / refs


## OSRL

- [ ] Media filter (square)
- [ ] osr-discourse / osr-csart API
- [ ] osr-cad API


## Tests

- [ ] bundle (format?)
    - [ ] config(s)
    - [ ] footage
    - [ ] reports
    - [ ] setup


## Commands

### `list` (registry)

### `info` (short)

### `bundle` (create)

### `get/set` (registry)

### `merge` (registry)
npm package: @plastichub/osrl
Description: Liquid based markup language
Latest version: 0.5.5

# Content & Expression Engine based on Liquid (JS Implementation)

## Installation

```sh
# local
npm install @plastichub/osrl

#global 
npm -g @plastichub/osrl

# CLI help
osrl compile --help

```

### References

- [LiquidJS Docs](https://liquidjs.com/api/classes/liquid_.liquid.html)
- [Liquid Docs - Shopify](https://shopify.github.io/liquid/)

### Usage

Please find examples in ['./examples](./examples)

## Todos

- [ ] Filter/Tags
  - [x] Datasources
    - [x] Google Sheet
    - [x] Local Sheet
      - see [exceljs](https://github.com/exceljs/exceljs)
    - [x] CSV
    - [x] selectors
  - [ ] Iterators (scopes)
  - [ ] Enums
  - [ ] CSS Parser
- [ ] Files / Refs / Variables
- [ ] PDF tables, see [site:tabula](https://github.com/tabulapdf/tabula)
- [ ] JS
  - [x] Bind Datasources in local scope
  - [x] Default bootstrap
    - [x] Plastichub
    - [-] OSR
    - [x] Default functions: unit conv, string manipulation
- [x] User Plugins
- [x] Refine Engine for scoping
- [ ] RT Security
  - Options
    - [Secure VM (native)](https://github.com/laverdet/isolated-vm)
    - [VM2](https://github.com/patriksimek/vm2#debugging-a-sandboxed-code)
    - [ ] fix fucking globals
    - [ ] run plugins in cached vm.Script contexts
- [-] Multi Env
  - [x] support multi env in profiles
- [x] Settings / Profile
  - [-] should read local profil per consumed directory within ```include``` calls
- [-] Instrumentation
  - add support for clinic.js | clinic.doctor
- [ ] Platform / Services
  - [x] Discourse - API (related, category feed, custom search, topic acc)
  - [-] Magento - API (related, components, configurations, options)
  - [-] Media Wiki
  - [-] CSCart API
- [ ] Documentation
  - [ ] Auto - JS Bootstrap docs
  - [ ] Generate documented tests
  - [ ] Watcher
- [x] OSRL commons (plugins)
- [x] Partials cache
  - [x] osr-cache
- [-] VFS & RQL
- [-] OSR-Search
  - [-] consume/provide elastic-search queries
  - [ ] PDF mining : https://pypi.org/project/pdfminer/
  - [x] basics
- [x] new include tag 'emerge' based on the original 'include'
  - [x] context/implicit: evaluate conditional statement as variable
  - [-] implicit: forward output format (New: AST/partials), gives format agnostic results
  - [-] explicit: cache expiration (=>osr-tasks)
  - [ ] track i/o access in context meta db
  - [ ] i/o: re-impl. old vfs/service API
- [-] output masking via profile json(-get) paths
- [-] support pandoc for input/output pre/post processing
- [x] OSR-i18n
  - [x] tags
  - [ ] typings
    - [ ] partials => store
- [ ] OSR-AI
  - [x] prompt tags
- [ ] Doxygen
- [ ] Binaries
- [ ] Pipes
- [ ] Watcher
  - [ ] watch glob
- [ ] Targets
- [ ] Logging
- [ ] Typescript

## References

- https://docs.asciidoctor.org/
- https://github.com/asciidoctor/asciidoctor.js
- [MDAST & Co](https://github.com/syntax-tree/mdast-util-to-markdown)
- https://www.npmjs.com/package/link-preview-js
- https://github.com/microlinkhq/metascraper
- https://github.com/arcetros/scrape-recipe-schema/blob/main/src/index.ts
- https://github.com/digitalbazaar/jsonld.js