open-index/open-npm huggingface dataset:
npm package: @postxl/admin
Description: > `admin` package contains the base view of the admin view (i.e. the "legacy" PostXL system written in Elm).
Latest version: 0.0.3

# admin

> `admin` package contains the base view of the admin view (i.e. the "legacy" PostXL system written in Elm).

Admin lets you quickly get up and running on your project by giving you an Excel-like view into your data.
npm package: @postxl/lock
Description: > A simple lock file implementation for PostXL projects.
Latest version: 1.5.0

# lock

> A simple lock file implementation for PostXL projects.

## Definitions

We divide files into `static` and `dynamic` files.

- `static` files are files that are not bound to data schema (e.g. `atoms/Button/Button.tsx`),
- `dynamic` files are files that are bound to data schema and change as the data model changes (e.g. `models/User/Form.tsx`).

We further divide `static` files into `project` files and `template` files.

- `project` files change in each project (e.g. `web/package.json`), while
- `template` files mostly stay unchanged (e.g. `atoms/Button/Button.tsx` - we only change them when we fix a bug or add a new feature).

We further divide `dynamic` files into `managed` and `detached` files.

- `managed` files are files which have the same content as generator would've generated, while
- `detached` files are files that user has modified manually.

## LockFile

To figure whether user has modified a file, we track checksums of all files in the project.

> By convention we store checksums in `postxl-lock.yaml`.

We determine whether the file has been modified by comparing the checksum of the actual file on the disk with the checksum in the lockfile. If the file has been modified, the checksum will be different.
npm package: @postxl/manager
Description: > PostXL manager that helps you scaffold a project and keep static parts of your project up to date.
Latest version: 0.74.2

# manager

> PostXL manager that helps you scaffold a project and keep static parts of your project up to date.

## Installation

```sh
npm install -g @postxl/manager
```

## Overview

```sh
# Get info about commands.
pxl help
```

## Details

> This section outlines the design decisions and common patterns that you should use when working with the PostXL manager.

`pxl diff` and `pxl update` accept an optional path argument that lets you filter which parts of the codebase should be checked for updates.

When you manually change a file generated by PostXL (either through scaffolding or generation), PostXL marks that file as _detached_. That means that it will no longer receive updates and won't be regenerated.

If you want to re-track a file (i.e. so that it matches the file that PostXL would've generated) you can add a `--force` option to `pxl diff` and `pxl update` or revert the file using `pxl revert path`.

## Useful Links

- https://github.com/google/zx a tool for writing better scripts - includes common utility function for js scripts
npm package: @postxl/runtime
Description: > `runtime` is the core package that every PostXL project uses internally.
Latest version: 0.1.5

# runtime

> `runtime` is the core package that every PostXL project uses internally.

### Project Roadmap

> PXL is a set of tools that help you ship consulting apps faster.

#### Schema

PXL uses a special entity configuration schema as the centerpiece of all of its functionality. Schema should be the starting point of all your changes.

#### Project Structure

```
/template: check project template
/packages
	/runtime
	/admin
	/cli
		/generators -> templates
			/
/generic ios app

```

```
/
/backend:
	/apps
	  /api
		/cli
	/libs:
		gql -> repos ("dataService") -> runtime (import  from @pxl/runtime/...)
		admin -> @postxl/admin-backend (depends on @pxl/runtime -> expose search route etc.)
		custom logic
/web
/e2e
/ios
/migrations
manage.ts
schema.ts
/docker -> Dockerfiles for server, admin, and web
/types
.pxlignore -> contains files/folder that should not be regenerated

```

```ts
import { pxl } from '@pxl/cli'

import schema from './schema.ts'
import migrations from './migrations/index.ts'

pxl({
  schema,
  migrations,
})
```

```bash
node manage.ts migrate
node manager.ts generate
node manager.ts doctor
```
npm package: @postxl/sync
Description: PostXL Sync is a utility script that helps you sync changes you make inside a project to the PostXL template in this monorepository. It manages a tracking branch in this monorepo for each active PostXL project and syncs changes to the tracked files from a
Latest version: 2.6.5

# PostXL Sync

PostXL Sync is a utility script that helps you sync changes you make inside a project to the PostXL template in this monorepository. It manages a tracking branch in this monorepo for each active PostXL project and syncs changes to the tracked files from a particular project with the tracking branch.

> NOTE: It syncs changes **with the tracking branch**. The merging of the tracking branch with the main branch of the template is left to the manager of PXLTemplate tool.

> NOTE: Because the tool syncs with the tracking branch, we don't have to handle the actual versioning of the template. Tools don't update projects automatically. The person responsible for the project triggers the update and checks its validity when PXLTemplate gets update. Other tools in our stack can help verify that everything works correctly. _There is no concept of versioning of the template._

### The Flow

Sync takes care of two things:

- managing the tracking branch and the PR associated with that tracking branch in the main repo,
- syncing the changes in a project with the monorepo

It does both of these things whenever it runs, usually on every commit to the main branch of a project.

## Usage

You should use this package inside a GitHub Action that runs on every commit to the main branch of your project.

### Example

```yaml
name: Sync changes to PostXL template

on:
	push:
		branches:
			- main

jobs:
	sync:
		- name: Checkout Main
			uses: actions/checkout@v3
			with:
          fetch-depth: 0

		- name: Setup Node Environment
			uses: actions/setup-node@v3
			with:
				node-version-file: '.nvmrc'
				cache: 'pnpm'

		- name: Sync
			run: pnpx @postxl/sync
			env:
				# NOTE: This token needs to have permission to access `postxl` repository!
				GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
				GITHUB_REPOSITORY: ${{ github.repository }}
				COMMIT_SHA: ${{ github.sha }}
```