Download the PHP package rosalana/safepoint without Composer

On this page you can find all versions of the php package rosalana/safepoint. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package safepoint

Rosalana

Rosalana Safepoint is a TypeScript type generator for Laravel + Inertia.js applications.

It generates a single TypeScript file from your Laravel application — models, routes, shared Inertia data, and helper types — all in one flat output optimized for end-to-end type safety.

This package is designed primarily for:

Installation

Why Safepoint?

Inertia.js moves data between PHP and JavaScript — but without types, that boundary is invisible.

Typing it manually means:

Rosalana Safepoint does not require you to write types manually. It reads your Laravel application using static analysis and generates them for you.

[!NOTE] Safepoint uses laravel/ranger and laravel/surveyor under the hood to inspect your models, routes, and shared data without running the application.

What it generates

Running php artisan safepoint:generate produces resources/js/safepoint.ts:

Usage

Options

Option Description
--path= Custom output path (default: resources/js/safepoint.ts)
--base-path= Comma-separated base paths (default: base_path())
--app-path= Comma-separated app paths (default: app_path())
--skip-routes Skip route and route list generation
--skip-models Skip model interface generation
--skip-enums Skip enum type generation
--skip-shared-data Skip shared data interface generation

Multiple paths (monorepo)

Only models and routes whose source files are under --app-path are included. Vendor models (e.g. DatabaseNotification from the Notifiable trait) are automatically filtered out.

How it works

Safepoint inspects your application statically — no runtime required:

PHPDoc annotations

Since Safepoint uses static analysis, it can't detect runtime behavior like $post->load('user') or manually built responses. Use PHPDoc annotations on controller methods to override or extend the generated types.

Annotation Example Effect
@safepoint-ignore @safepoint-ignore Skip this route entirely
@safepoint-include @safepoint-include user, comments Add relations to the RequiredKeys key list for props
@safepoint-prop @safepoint-prop pagination { current_page: number; total: number } Add or override a prop's TypeScript type
@safepoint-body @safepoint-body token string Add or override a body field's TypeScript type
@safepoint-param @safepoint-param slug string Add or override a URL parameter's TypeScript type

[!NOTE] @safepoint-include only adds relations that actually exist on the model — unknown relation names are silently ignored.

Working with generated types

PageProps

Use PageProps<T> to get fully typed page props in your Inertia pages:

RouteParams & RouteBody

route() helper

The generated file includes a typed route() helper that builds URLs from route names and parameters:

Extending the generated types

Since the generated file is overwritten on each run, do not edit it directly. Instead, create a separate file and use TypeScript declaration merging:

Import safepoint-extend.ts alongside safepoint.ts and TypeScript will merge the declarations automatically.

License

Rosalana Safepoint is open-source under the MIT license, allowing you to freely use, modify, and distribute it with minimal restrictions.

You may not be able to use our systems but you can use our code to build your own.

For details on how to contribute or how the Rosalana ecosystem is maintained, please refer to each repository's individual guidelines.

Questions or feedback?

Feel free to open an issue or contribute with a pull request. Happy coding with Rosalana!


All versions of safepoint with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
illuminate/support Version ^12.0
illuminate/console Version ^12.0
illuminate/filesystem Version ^12.0
illuminate/routing Version ^12.0
laravel/ranger Version ^0.1.0
laravel/surveyor Version ^0.1.0
phpstan/phpdoc-parser Version ^2.3
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package rosalana/safepoint contains the following files

Loading the files please wait ...