mirror of
https://github.com/fleetbase/fleetbase.git
synced 2026-02-14 20:54:09 +00:00
Compare commits
6 Commits
cloud-qa
...
dev-v0.7.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dccd1b6883 | ||
|
|
5e69a7d443 | ||
|
|
989fa9a777 | ||
|
|
edec9d02a4 | ||
|
|
a79ebda392 | ||
|
|
3dc5b9b015 |
3
.github/workflows/cd.yml
vendored
3
.github/workflows/cd.yml
vendored
@@ -210,6 +210,9 @@ jobs:
|
||||
|
||||
- name: Set Env Variables
|
||||
run: |
|
||||
# ensure file ends with a newline
|
||||
printf '\n' >> ./environments/.env.production
|
||||
|
||||
echo "EXTENSIONS=${{ secrets.EXTENSIONS }}" >> ./environments/.env.production
|
||||
echo "LOGROCKET_APP_ID=${{ secrets.LOGROCKET_APP_ID }}" >> ./environments/.env.production
|
||||
echo "STRIPE_KEY=${{ secrets.STRIPE_KEY }}" >> ./environments/.env.production
|
||||
|
||||
14
RELEASE.md
14
RELEASE.md
@@ -1,19 +1,11 @@
|
||||
# 🚀 Fleetbase v0.7.27 — 2026-02-05
|
||||
# 🚀 Fleetbase v0.7.28 — 2026-02-05
|
||||
|
||||
> "Improvements and patches"
|
||||
> "Critical patch: eager load driver and vehicle in consumable orders query API"
|
||||
|
||||
---
|
||||
|
||||
## ✨ Highlights
|
||||
- Core now supports disabling cache in runtime for `HasApiModelCache` x `HasApiModelBehavior`
|
||||
- Added new `FileResolverService` to support file resolution from file resources, URL's, base64, and file uploads [190c03d](https://github.com/fleetbase/core-api/pull/187/commits/190c03d484648319f3d890439f74e45820f352fc)
|
||||
- `VerificationCode` model in core always throws SMS exceptions
|
||||
- FleetOps: Patched proof of delivery component in order details
|
||||
- FleetOps: Improved and patched service rate `getServicableForPlaces` which improved service quote performance
|
||||
- FleetOps: Fix location GeoJSON Point casting for `location` properties - using the new `Utils::castPoint` utility [208151f](https://github.com/fleetbase/fleetops/pull/202/commits/208151f37ece54bb23cfeeebdbb6fde1142908f7)
|
||||
- Storefront: Critical patch for QPay checkout workflow [storefront#66](https://github.com/fleetbase/storefront/pull/66)
|
||||
- Storefront: Added new phone number verification endpoints for customers (`request-phone-verification` and `verify-phone-number`)
|
||||
- Storefront: Fixed cart based service quotes
|
||||
- Critical patch which fixes eager loading relationship when querying orders via the consumable API, this is done to handle the new `whenLoaded` resource conditional methods. [fleetbase/fleetops#203](https://github.com/fleetbase/fleetops/pull/203)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -21,17 +21,9 @@
|
||||
"php": ">=8.0 <=8.2.30",
|
||||
"appstract/laravel-opcache": "^4.0",
|
||||
"fleetbase/core-api": "^1.6.35",
|
||||
"fleetbase/fleetops-api": "^0.6.34",
|
||||
"fleetbase/fleetops-api": "^0.6.35",
|
||||
"fleetbase/registry-bridge": "^0.1.5",
|
||||
"fleetbase/storefront-api": "^0.4.13",
|
||||
"fleetbase/flespi-integration": "^0.1.16",
|
||||
"fleetbase/samsara-api": "^0.0.3",
|
||||
"fleetbase/vroom-api": "^0.0.3",
|
||||
"fleetbase/valhalla-api": "^0.0.3",
|
||||
"fleetbase/billing-api": "^0.1.20",
|
||||
"fleetbase/internals-api": "^0.0.27",
|
||||
"fleetbase/aws-marketplace": "^0.0.8",
|
||||
"fleetbase/customer-portal-api": "^0.0.10",
|
||||
"guzzlehttp/guzzle": "^7.0.1",
|
||||
"laravel/framework": "^10.0",
|
||||
"laravel/octane": "^2.3",
|
||||
@@ -57,25 +49,9 @@
|
||||
"phpunit/phpunit": "^10.0"
|
||||
},
|
||||
"repositories": [
|
||||
{
|
||||
"type": "vcs",
|
||||
"url": "https://github.com/fleetbase/aws-marketplace"
|
||||
},
|
||||
{
|
||||
"type": "vcs",
|
||||
"url": "https://github.com/fleetbase/billing"
|
||||
},
|
||||
{
|
||||
"type": "vcs",
|
||||
"url": "https://github.com/fleetbase/internals"
|
||||
},
|
||||
{
|
||||
"type": "vcs",
|
||||
"url": "https://github.com/fleetbase/customer-portal"
|
||||
},
|
||||
{
|
||||
"type": "composer",
|
||||
"url": "https://registry.qa.fleetbase.io"
|
||||
"url": "https://registry.fleetbase.io"
|
||||
}
|
||||
],
|
||||
"autoload": {
|
||||
|
||||
731
api/composer.lock
generated
731
api/composer.lock
generated
@@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "e954505e73c22f58f4c560cd1a88c7cf",
|
||||
"content-hash": "240f5916db1171e37d4f4548cd9f1373",
|
||||
"packages": [
|
||||
{
|
||||
"name": "appstract/laravel-opcache",
|
||||
@@ -2154,208 +2154,6 @@
|
||||
},
|
||||
"time": "2025-04-09T20:32:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fleetbase/aws-marketplace",
|
||||
"version": "0.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "git@github.com:fleetbase/aws-marketplace.git",
|
||||
"reference": "ae041a5fa5165ca26de0c58bcc1522cd72dd28f9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/fleetbase/aws-marketplace/zipball/ae041a5fa5165ca26de0c58bcc1522cd72dd28f9",
|
||||
"reference": "ae041a5fa5165ca26de0c58bcc1522cd72dd28f9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"aws/aws-sdk-php": "^3.0",
|
||||
"fleetbase/core-api": "*",
|
||||
"php": "^8.0",
|
||||
"php-http/guzzle7-adapter": "^1.0",
|
||||
"psr/http-factory-implementation": "*"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^3.34.1",
|
||||
"nunomaduro/collision": "^5.11.0|^6.4.0",
|
||||
"pestphp/pest": "^1.22.6",
|
||||
"phpstan/phpstan": "^1.10.38",
|
||||
"symfony/var-dumper": "^5.4.29"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Fleetbase\\AwsMarketplace\\Providers\\AwsMarketplaceServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Fleetbase\\AwsMarketplace\\": "server/src/",
|
||||
"Fleetbase\\AwsMarketplace\\Seeds\\": "server/seeds/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Fleetbase\\AwsMarketplace\\Tests\\": "server/tests/"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"lint": [
|
||||
"php-cs-fixer fix -v"
|
||||
],
|
||||
"test:lint": [
|
||||
"php-cs-fixer fix -v --dry-run"
|
||||
],
|
||||
"test:types": [
|
||||
"phpstan analyse --ansi --memory-limit=0"
|
||||
],
|
||||
"test:unit": [
|
||||
"pest --colors=always"
|
||||
],
|
||||
"test": [
|
||||
"@test:lint",
|
||||
"@test:types",
|
||||
"@test:unit"
|
||||
]
|
||||
},
|
||||
"license": [
|
||||
"AGPL-3.0-or-later"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fleetbase Pte Ltd",
|
||||
"email": "hello@fleetbase.io"
|
||||
}
|
||||
],
|
||||
"description": "AWS Marketplace SaaS integration extension for Fleetbase",
|
||||
"keywords": [
|
||||
"aws",
|
||||
"billing",
|
||||
"cloudformation",
|
||||
"deployment",
|
||||
"fleetbase",
|
||||
"fleetbase-extension",
|
||||
"marketplace",
|
||||
"saas"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/fleetbase/aws-marketplace/tree/v0.0.8",
|
||||
"issues": "https://github.com/fleetbase/aws-marketplace/issues"
|
||||
},
|
||||
"time": "2025-12-06T10:25:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fleetbase/billing-api",
|
||||
"version": "0.1.20",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "git@github.com:fleetbase/billing.git",
|
||||
"reference": "c610ef3ff224fb2f141eedc46615e2be9423db24"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/fleetbase/billing/zipball/c610ef3ff224fb2f141eedc46615e2be9423db24",
|
||||
"reference": "c610ef3ff224fb2f141eedc46615e2be9423db24",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"fleetbase/core-api": "*",
|
||||
"laravel/cashier": "^16.2.0",
|
||||
"php": "^8.0",
|
||||
"php-http/guzzle7-adapter": "^1.0",
|
||||
"psr/http-factory-implementation": "*",
|
||||
"stripe/stripe-php": "^17.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^3.34.1",
|
||||
"nunomaduro/collision": "^7.0",
|
||||
"pestphp/pest": "^2.33.2",
|
||||
"phpstan/phpstan": "^1.10.38",
|
||||
"symfony/var-dumper": "^5.4.29"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Fleetbase\\Billing\\Providers\\BillingServiceProvider"
|
||||
]
|
||||
},
|
||||
"fleetbase": {
|
||||
"sandbox-migrations": false
|
||||
},
|
||||
"fleetbase/billing-api": {
|
||||
"excludes": [
|
||||
"addon",
|
||||
"app",
|
||||
"assets",
|
||||
"config",
|
||||
"tests",
|
||||
"vendor"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Fleetbase\\Billing\\": "server/src/",
|
||||
"Fleetbase\\Billing\\Seeders\\": "server/seeders/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Fleetbase\\Billing\\Tests\\": "server/tests/"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"lint": [
|
||||
"php-cs-fixer fix -v"
|
||||
],
|
||||
"test:lint": [
|
||||
"php-cs-fixer fix -v --dry-run"
|
||||
],
|
||||
"test:types": [
|
||||
"phpstan analyse --ansi --memory-limit=0"
|
||||
],
|
||||
"test:unit": [
|
||||
"pest --colors=always"
|
||||
],
|
||||
"test": [
|
||||
"@test:lint",
|
||||
"@test:types",
|
||||
"@test:unit"
|
||||
]
|
||||
},
|
||||
"license": [
|
||||
"AGPL-3.0-or-later"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fleetbase Pte Ltd.",
|
||||
"email": "hello@fleetbase.io"
|
||||
},
|
||||
{
|
||||
"name": "Ronald A. Richardson",
|
||||
"email": "ron@fleetbase.io"
|
||||
}
|
||||
],
|
||||
"description": "Multi-Tenant Billing and Subscriptions Extension for Fleetbase",
|
||||
"keywords": [
|
||||
"billing",
|
||||
"billing system",
|
||||
"fleetbase",
|
||||
"fleetbase-extension",
|
||||
"revenue engine",
|
||||
"revenue generator",
|
||||
"stripe",
|
||||
"stripe api"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/fleetbase/billing/tree/v0.1.20",
|
||||
"issues": "https://github.com/fleetbase/billing/issues"
|
||||
},
|
||||
"time": "2026-02-05T00:30:22+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fleetbase/core-api",
|
||||
"version": "1.6.35",
|
||||
@@ -2523,108 +2321,18 @@
|
||||
},
|
||||
"time": "2025-07-10T14:06:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fleetbase/customer-portal-api",
|
||||
"version": "0.0.10",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "git@github.com:fleetbase/customer-portal.git",
|
||||
"reference": "99a072129a60c71fd9f2703166b15f442b7072bb"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/fleetbase/customer-portal/zipball/99a072129a60c71fd9f2703166b15f442b7072bb",
|
||||
"reference": "99a072129a60c71fd9f2703166b15f442b7072bb",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"fleetbase/core-api": "*",
|
||||
"php": "^8.0",
|
||||
"php-http/guzzle7-adapter": "^1.0",
|
||||
"psr/http-factory-implementation": "*"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^3.34.1",
|
||||
"nunomaduro/collision": "^5.11.0|^6.4.0",
|
||||
"pestphp/pest": "^1.22.6",
|
||||
"phpstan/phpstan": "^1.10.38",
|
||||
"symfony/var-dumper": "^5.4.29"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Fleetbase\\CustomerPortal\\Providers\\CustomerPortalServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Fleetbase\\CustomerPortal\\": "server/src/",
|
||||
"Fleetbase\\CustomerPortal\\Seeds\\": "server/seeds/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Fleetbase\\CustomerPortal\\Tests\\": "server/tests/"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"lint": [
|
||||
"php-cs-fixer fix -v"
|
||||
],
|
||||
"test:lint": [
|
||||
"php-cs-fixer fix -v --dry-run"
|
||||
],
|
||||
"test:types": [
|
||||
"phpstan analyse --ansi --memory-limit=0"
|
||||
],
|
||||
"test:unit": [
|
||||
"pest --colors=always"
|
||||
],
|
||||
"test": [
|
||||
"@test:lint",
|
||||
"@test:types",
|
||||
"@test:unit"
|
||||
]
|
||||
},
|
||||
"license": [
|
||||
"AGPL-3.0-or-later"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fleetbase Pte Ltd.",
|
||||
"email": "hello@fleetbase.io"
|
||||
}
|
||||
],
|
||||
"description": "Extendable Customer Portal for Fleetbase",
|
||||
"keywords": [
|
||||
"customer",
|
||||
"customer management",
|
||||
"customer portal",
|
||||
"customer support",
|
||||
"customer tracking",
|
||||
"fleetbase",
|
||||
"fleetbase-extension"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/fleetbase/customer-portal/tree/v0.0.10",
|
||||
"issues": "https://github.com/fleetbase/customer-portal/issues"
|
||||
},
|
||||
"time": "2025-12-06T10:12:51+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fleetbase/fleetops-api",
|
||||
"version": "0.6.34",
|
||||
"version": "0.6.35",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/fleetbase/fleetops.git",
|
||||
"reference": "05503cee9f55f5e4e1bad2210615e4f67bb165ab"
|
||||
"reference": "c89d1f3e81564cb5009293001a67cd4e59051a69"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/fleetbase/fleetops/zipball/05503cee9f55f5e4e1bad2210615e4f67bb165ab",
|
||||
"reference": "05503cee9f55f5e4e1bad2210615e4f67bb165ab",
|
||||
"url": "https://api.github.com/repos/fleetbase/fleetops/zipball/c89d1f3e81564cb5009293001a67cd4e59051a69",
|
||||
"reference": "c89d1f3e81564cb5009293001a67cd4e59051a69",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2699,202 +2407,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/fleetbase/fleetops/issues",
|
||||
"source": "https://github.com/fleetbase/fleetops/tree/v0.6.34"
|
||||
"source": "https://github.com/fleetbase/fleetops/tree/v0.6.35"
|
||||
},
|
||||
"time": "2026-02-05T00:08:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fleetbase/flespi-integration",
|
||||
"version": "0.1.16",
|
||||
"dist": {
|
||||
"type": "tar",
|
||||
"url": "https://s3.ap-southeast-1.amazonaws.com/fleetbase-registry-qa/flb/%40fleetbase/flespi-engine/flespi-engine-0.1.16.tgz?AWSAccessKeyId=ASIA26E6KG6WDUGJSKAY&Expires=1770268345&Signature=5uPKDadg8%2BQkKeJ%2FcMBSqvc20FY%3D&x-amz-security-token=IQoJb3JpZ2luX2VjEF0aDmFwLXNvdXRoZWFzdC0xIkYwRAIgOJZmdTX9gP9v%2Bo0zL%2BcafWeo3dHkwNRBvYe5Yixz89cCIGt4Tkhn6Oj0SeYSQT%2BAAwZXKMIjLq2WihJ2ZwT8xR2xKoYECCYQABoMNzUxOTUxMjk2NDI4Igxm9U7jrz%2BlqDPjemIq4wMcmYb9sR85Y%2B%2F6NcN8ApLrQgy%2B7vdefCS20gmj11AQupkfGRVN2FJqnJvavgtfMEdNIWJoCnEx%2BYvVbmnb3LeyBSNfHXjUP%2BE%2B0FTKXtkKstnPt9HXetQ1EU%2Fc52hnZT7KZzqJ%2Ft4iSkYhrpfZsLFMjJsez%2Bchezu%2FrMouPr44VCJa9kHIDs%2FimbJSGoGjVLqeYaUHHr9zBgFKhUSn8L93Q5sDkHUgxYG8PTJSZ5rGjGH7oR0B404xRgveOemTq9HRPwbdBBNooCVfPElJkZXB7r6RRfvVb0REayC4aKZ1Y07IMUc7LokkCDDtorkRrXmq3bi0i9xtJzTuE2D5N5MTmYL8pS8gss%2FApMhM7EU9UTZzJGEvnY11IF9gePRgYjJ4DYFNt850fDzsdeMrgQso5Pc67KqiVUIo%2FLs5kWrslTPybBIb66nk2uCwK4GUD45qDGCwNymIPjI8hSR2MSCdGkpp9Y%2FfSkpZuvYKuCpcfEdhIkC5ryseCdnKoyyODJ7PO%2BUjqJ6JuxBC5Wafxpn6zT6pE%2B29QA1LrPGMN5qRSHyO%2FaZmrIGp8buOaHAHST5gvryDpTazz0XU8uqxLZWxXt3zt4SkZMCy%2B6cHoWYWll0ukyVgI9efy3rB6wuBUkiP9Pgw6LyQzAY6pgFHoWEqdlr1JPzXHVStehXxLGb1XW42IYCelc8eGjighayNscGg05bBjlT3h4JIsF7GPqjG2kafB9NSLB3f26kT%2F%2Fsu5FNgeo2aT7dMdh2gRe%2B62R8%2FfdvMnTAlPVuqbf898wgOQqRWBCpaPHJyNWaYjfbl0JFG0nnVs60C65qgngGJFGQr8C4oVpTGACAx%2FsKmNKse8iafy7db3BqakR41u2DgY4QO"
|
||||
},
|
||||
"require": {
|
||||
"fleetbase/core-api": "*",
|
||||
"fleetbase/fleetops-api": "*",
|
||||
"php": "^8.0",
|
||||
"php-http/guzzle7-adapter": "^1.0",
|
||||
"psr/http-factory-implementation": "*",
|
||||
"vlucas/phpdotenv": "^5.5"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^3.34.1",
|
||||
"nunomaduro/collision": "^5.11.0|^6.4.0",
|
||||
"pestphp/pest": "^1.22.6",
|
||||
"phpstan/phpstan": "^1.10.38",
|
||||
"symfony/var-dumper": "^5.4.29"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Fleetbase\\Flespi\\Providers\\FlespiIntegrationServiceProvider",
|
||||
"Fleetbase\\Flespi\\Providers\\NotificationServiceProvider"
|
||||
]
|
||||
},
|
||||
"fleetbase": {
|
||||
"sandbox-migrations": false
|
||||
},
|
||||
"fleetbase/flespi-integration": {
|
||||
"excludes": [
|
||||
"addon",
|
||||
"app",
|
||||
"assets",
|
||||
"config",
|
||||
"tests",
|
||||
"vendor"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Fleetbase\\Flespi\\": "server/src/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Fleetbase\\Flespi\\Tests\\": "server/tests/"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"lint": [
|
||||
"php-cs-fixer fix -v"
|
||||
],
|
||||
"test:lint": [
|
||||
"php-cs-fixer fix -v --dry-run"
|
||||
],
|
||||
"test:types": [
|
||||
"phpstan analyse --ansi --memory-limit=0"
|
||||
],
|
||||
"test:unit": [
|
||||
"pest --colors=always"
|
||||
],
|
||||
"test": [
|
||||
"@test:lint",
|
||||
"@test:types",
|
||||
"@test:unit"
|
||||
]
|
||||
},
|
||||
"license": [
|
||||
"AGPL-3.0-or-later"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fleetbase Pte Ltd.",
|
||||
"email": "hello@fleetbase.io"
|
||||
}
|
||||
],
|
||||
"description": "Flespi Universal Telematics Gateway, Parser & API Extension for Fleetbase",
|
||||
"keywords": [
|
||||
"fleetbase-extension",
|
||||
"flespi"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "fleetbase/internals-api",
|
||||
"version": "0.0.27",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "git@github.com:fleetbase/internals.git",
|
||||
"reference": "824ca96698eb947d1510bbe3c713ad4a8f632692"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/fleetbase/internals/zipball/824ca96698eb947d1510bbe3c713ad4a8f632692",
|
||||
"reference": "824ca96698eb947d1510bbe3c713ad4a8f632692",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"fleetbase/billing-api": "*",
|
||||
"fleetbase/core-api": "*",
|
||||
"fleetbase/registry-bridge": "*",
|
||||
"php": "^8.0",
|
||||
"php-http/guzzle7-adapter": "^1.0",
|
||||
"psr/http-factory-implementation": "*"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^3.34.1",
|
||||
"nunomaduro/collision": "^7.0",
|
||||
"pestphp/pest": "^2.33.2",
|
||||
"phpstan/phpstan": "^1.10.38",
|
||||
"symfony/var-dumper": "^5.4.29"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Fleetbase\\Internals\\Providers\\InternalServiceProvider"
|
||||
]
|
||||
},
|
||||
"fleetbase": {
|
||||
"sandbox-migrations": false
|
||||
},
|
||||
"fleetbase/internals-api": {
|
||||
"excludes": [
|
||||
"addon",
|
||||
"app",
|
||||
"assets",
|
||||
"config",
|
||||
"tests",
|
||||
"vendor"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Fleetbase\\Internals\\": "server/src/",
|
||||
"Fleetbase\\Internals\\Seeds\\": "server/seeds/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Fleetbase\\Internals\\Tests\\": "server/tests/"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"lint": [
|
||||
"php-cs-fixer fix -v"
|
||||
],
|
||||
"test:lint": [
|
||||
"php-cs-fixer fix -v --dry-run"
|
||||
],
|
||||
"test:types": [
|
||||
"phpstan analyse --ansi --memory-limit=0"
|
||||
],
|
||||
"test:unit": [
|
||||
"pest --colors=always"
|
||||
],
|
||||
"test": [
|
||||
"@test:lint",
|
||||
"@test:types",
|
||||
"@test:unit"
|
||||
]
|
||||
},
|
||||
"license": [
|
||||
"AGPL-3.0-or-later"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fleetbase Pte Ltd.",
|
||||
"email": "hello@fleetbase.io"
|
||||
},
|
||||
{
|
||||
"name": "Ronald A. Richardson",
|
||||
"email": "ron@fleetbase.io"
|
||||
}
|
||||
],
|
||||
"description": "Private internal functionality for Fleetbase SaaS",
|
||||
"keywords": [
|
||||
"fleetbase",
|
||||
"fleetbase-extension",
|
||||
"fleetbase-internals"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/fleetbase/internals/tree/v0.0.27",
|
||||
"issues": "https://github.com/fleetbase/internals/issues"
|
||||
},
|
||||
"time": "2026-02-05T00:32:03+00:00"
|
||||
"time": "2026-02-06T00:58:53+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fleetbase/laravel-mysql-spatial",
|
||||
@@ -3044,84 +2559,6 @@
|
||||
},
|
||||
"time": "2026-01-31T05:33:11+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fleetbase/samsara-api",
|
||||
"version": "0.0.3",
|
||||
"dist": {
|
||||
"type": "tar",
|
||||
"url": "https://s3.ap-southeast-1.amazonaws.com/fleetbase-registry-qa/flb/%40fleetbase/samsara-engine/samsara-engine-0.0.3.tgz?AWSAccessKeyId=ASIA26E6KG6WDUGJSKAY&Expires=1770268345&Signature=n3Rsr7uDpxjqwzWmcC2r8mUpwDM%3D&x-amz-security-token=IQoJb3JpZ2luX2VjEF0aDmFwLXNvdXRoZWFzdC0xIkYwRAIgOJZmdTX9gP9v%2Bo0zL%2BcafWeo3dHkwNRBvYe5Yixz89cCIGt4Tkhn6Oj0SeYSQT%2BAAwZXKMIjLq2WihJ2ZwT8xR2xKoYECCYQABoMNzUxOTUxMjk2NDI4Igxm9U7jrz%2BlqDPjemIq4wMcmYb9sR85Y%2B%2F6NcN8ApLrQgy%2B7vdefCS20gmj11AQupkfGRVN2FJqnJvavgtfMEdNIWJoCnEx%2BYvVbmnb3LeyBSNfHXjUP%2BE%2B0FTKXtkKstnPt9HXetQ1EU%2Fc52hnZT7KZzqJ%2Ft4iSkYhrpfZsLFMjJsez%2Bchezu%2FrMouPr44VCJa9kHIDs%2FimbJSGoGjVLqeYaUHHr9zBgFKhUSn8L93Q5sDkHUgxYG8PTJSZ5rGjGH7oR0B404xRgveOemTq9HRPwbdBBNooCVfPElJkZXB7r6RRfvVb0REayC4aKZ1Y07IMUc7LokkCDDtorkRrXmq3bi0i9xtJzTuE2D5N5MTmYL8pS8gss%2FApMhM7EU9UTZzJGEvnY11IF9gePRgYjJ4DYFNt850fDzsdeMrgQso5Pc67KqiVUIo%2FLs5kWrslTPybBIb66nk2uCwK4GUD45qDGCwNymIPjI8hSR2MSCdGkpp9Y%2FfSkpZuvYKuCpcfEdhIkC5ryseCdnKoyyODJ7PO%2BUjqJ6JuxBC5Wafxpn6zT6pE%2B29QA1LrPGMN5qRSHyO%2FaZmrIGp8buOaHAHST5gvryDpTazz0XU8uqxLZWxXt3zt4SkZMCy%2B6cHoWYWll0ukyVgI9efy3rB6wuBUkiP9Pgw6LyQzAY6pgFHoWEqdlr1JPzXHVStehXxLGb1XW42IYCelc8eGjighayNscGg05bBjlT3h4JIsF7GPqjG2kafB9NSLB3f26kT%2F%2Fsu5FNgeo2aT7dMdh2gRe%2B62R8%2FfdvMnTAlPVuqbf898wgOQqRWBCpaPHJyNWaYjfbl0JFG0nnVs60C65qgngGJFGQr8C4oVpTGACAx%2FsKmNKse8iafy7db3BqakR41u2DgY4QO"
|
||||
},
|
||||
"require": {
|
||||
"fleetbase/core-api": "*",
|
||||
"php": "^8.0",
|
||||
"php-http/guzzle7-adapter": "^1.0",
|
||||
"psr/http-factory-implementation": "*"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^3.34.1",
|
||||
"nunomaduro/collision": "^5.11.0|^6.4.0",
|
||||
"pestphp/pest": "^1.22.6",
|
||||
"phpstan/phpstan": "^1.10.38",
|
||||
"symfony/var-dumper": "^5.4.29"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Fleetbase\\Samsara\\Providers\\SamsaraServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Fleetbase\\Samsara\\": "server/src/",
|
||||
"Fleetbase\\Samsara\\Seeds\\": "server/seeds/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Fleetbase\\Samsara\\Tests\\": "server/tests/"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"lint": [
|
||||
"php-cs-fixer fix -v"
|
||||
],
|
||||
"test:lint": [
|
||||
"php-cs-fixer fix -v --dry-run"
|
||||
],
|
||||
"test:types": [
|
||||
"phpstan analyse --ansi --memory-limit=0"
|
||||
],
|
||||
"test:unit": [
|
||||
"pest --colors=always"
|
||||
],
|
||||
"test": [
|
||||
"@test:lint",
|
||||
"@test:types",
|
||||
"@test:unit"
|
||||
]
|
||||
},
|
||||
"license": [
|
||||
"AGPL-3.0-or-later"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fleetbase Developer",
|
||||
"email": "developer@fleetbase.io"
|
||||
}
|
||||
],
|
||||
"description": "Vehicle Data Import & Location Integration via Samsara API",
|
||||
"keywords": [
|
||||
"fleet",
|
||||
"fleetbase",
|
||||
"fleetbase-extension",
|
||||
"integration",
|
||||
"samsara",
|
||||
"tracking",
|
||||
"vehicle"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "fleetbase/storefront-api",
|
||||
"version": "0.4.13",
|
||||
@@ -3282,160 +2719,6 @@
|
||||
],
|
||||
"time": "2024-08-15T08:26:54+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fleetbase/valhalla-api",
|
||||
"version": "0.0.3",
|
||||
"dist": {
|
||||
"type": "tar",
|
||||
"url": "https://s3.ap-southeast-1.amazonaws.com/fleetbase-registry-qa/flb/%40fleetbase/valhalla-engine/valhalla-engine-0.0.3.tgz?AWSAccessKeyId=ASIA26E6KG6WDUGJSKAY&Expires=1770268345&Signature=n23fkLe8P9zSKVmusHQVSI8YJMQ%3D&x-amz-security-token=IQoJb3JpZ2luX2VjEF0aDmFwLXNvdXRoZWFzdC0xIkYwRAIgOJZmdTX9gP9v%2Bo0zL%2BcafWeo3dHkwNRBvYe5Yixz89cCIGt4Tkhn6Oj0SeYSQT%2BAAwZXKMIjLq2WihJ2ZwT8xR2xKoYECCYQABoMNzUxOTUxMjk2NDI4Igxm9U7jrz%2BlqDPjemIq4wMcmYb9sR85Y%2B%2F6NcN8ApLrQgy%2B7vdefCS20gmj11AQupkfGRVN2FJqnJvavgtfMEdNIWJoCnEx%2BYvVbmnb3LeyBSNfHXjUP%2BE%2B0FTKXtkKstnPt9HXetQ1EU%2Fc52hnZT7KZzqJ%2Ft4iSkYhrpfZsLFMjJsez%2Bchezu%2FrMouPr44VCJa9kHIDs%2FimbJSGoGjVLqeYaUHHr9zBgFKhUSn8L93Q5sDkHUgxYG8PTJSZ5rGjGH7oR0B404xRgveOemTq9HRPwbdBBNooCVfPElJkZXB7r6RRfvVb0REayC4aKZ1Y07IMUc7LokkCDDtorkRrXmq3bi0i9xtJzTuE2D5N5MTmYL8pS8gss%2FApMhM7EU9UTZzJGEvnY11IF9gePRgYjJ4DYFNt850fDzsdeMrgQso5Pc67KqiVUIo%2FLs5kWrslTPybBIb66nk2uCwK4GUD45qDGCwNymIPjI8hSR2MSCdGkpp9Y%2FfSkpZuvYKuCpcfEdhIkC5ryseCdnKoyyODJ7PO%2BUjqJ6JuxBC5Wafxpn6zT6pE%2B29QA1LrPGMN5qRSHyO%2FaZmrIGp8buOaHAHST5gvryDpTazz0XU8uqxLZWxXt3zt4SkZMCy%2B6cHoWYWll0ukyVgI9efy3rB6wuBUkiP9Pgw6LyQzAY6pgFHoWEqdlr1JPzXHVStehXxLGb1XW42IYCelc8eGjighayNscGg05bBjlT3h4JIsF7GPqjG2kafB9NSLB3f26kT%2F%2Fsu5FNgeo2aT7dMdh2gRe%2B62R8%2FfdvMnTAlPVuqbf898wgOQqRWBCpaPHJyNWaYjfbl0JFG0nnVs60C65qgngGJFGQr8C4oVpTGACAx%2FsKmNKse8iafy7db3BqakR41u2DgY4QO"
|
||||
},
|
||||
"require": {
|
||||
"fleetbase/core-api": "*",
|
||||
"php": "^8.0",
|
||||
"php-http/guzzle7-adapter": "^1.0",
|
||||
"psr/http-factory-implementation": "*"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^3.34.1",
|
||||
"nunomaduro/collision": "^5.11.0|^6.4.0",
|
||||
"pestphp/pest": "^1.22.6",
|
||||
"phpstan/phpstan": "^1.10.38",
|
||||
"symfony/var-dumper": "^5.4.29"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Fleetbase\\Valhalla\\Providers\\ValhallaServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Fleetbase\\Valhalla\\": "server/src/",
|
||||
"Fleetbase\\Valhalla\\Seeds\\": "server/seeds/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Fleetbase\\Valhalla\\Tests\\": "server/tests/"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"lint": [
|
||||
"php-cs-fixer fix -v"
|
||||
],
|
||||
"test:lint": [
|
||||
"php-cs-fixer fix -v --dry-run"
|
||||
],
|
||||
"test:types": [
|
||||
"phpstan analyse --ansi --memory-limit=0"
|
||||
],
|
||||
"test:unit": [
|
||||
"pest --colors=always"
|
||||
],
|
||||
"test": [
|
||||
"@test:lint",
|
||||
"@test:types",
|
||||
"@test:unit"
|
||||
]
|
||||
},
|
||||
"license": [
|
||||
"AGPL-3.0-or-later"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fleetbase Pte Ltd",
|
||||
"email": "hello@fleetbase.io"
|
||||
}
|
||||
],
|
||||
"description": "Valhalla routing engine extension for Fleetbase",
|
||||
"keywords": [
|
||||
"fleetbase",
|
||||
"fleetbase",
|
||||
"fleetbase-extension",
|
||||
"routing",
|
||||
"routing engine",
|
||||
"valhalla"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "fleetbase/vroom-api",
|
||||
"version": "0.0.3",
|
||||
"dist": {
|
||||
"type": "tar",
|
||||
"url": "https://s3.ap-southeast-1.amazonaws.com/fleetbase-registry-qa/flb/%40fleetbase/vroom-engine/vroom-engine-0.0.3.tgz?AWSAccessKeyId=ASIA26E6KG6WDUGJSKAY&Expires=1770268345&Signature=hCcXYbdUv7LrDXBToikZbYN1vFQ%3D&x-amz-security-token=IQoJb3JpZ2luX2VjEF0aDmFwLXNvdXRoZWFzdC0xIkYwRAIgOJZmdTX9gP9v%2Bo0zL%2BcafWeo3dHkwNRBvYe5Yixz89cCIGt4Tkhn6Oj0SeYSQT%2BAAwZXKMIjLq2WihJ2ZwT8xR2xKoYECCYQABoMNzUxOTUxMjk2NDI4Igxm9U7jrz%2BlqDPjemIq4wMcmYb9sR85Y%2B%2F6NcN8ApLrQgy%2B7vdefCS20gmj11AQupkfGRVN2FJqnJvavgtfMEdNIWJoCnEx%2BYvVbmnb3LeyBSNfHXjUP%2BE%2B0FTKXtkKstnPt9HXetQ1EU%2Fc52hnZT7KZzqJ%2Ft4iSkYhrpfZsLFMjJsez%2Bchezu%2FrMouPr44VCJa9kHIDs%2FimbJSGoGjVLqeYaUHHr9zBgFKhUSn8L93Q5sDkHUgxYG8PTJSZ5rGjGH7oR0B404xRgveOemTq9HRPwbdBBNooCVfPElJkZXB7r6RRfvVb0REayC4aKZ1Y07IMUc7LokkCDDtorkRrXmq3bi0i9xtJzTuE2D5N5MTmYL8pS8gss%2FApMhM7EU9UTZzJGEvnY11IF9gePRgYjJ4DYFNt850fDzsdeMrgQso5Pc67KqiVUIo%2FLs5kWrslTPybBIb66nk2uCwK4GUD45qDGCwNymIPjI8hSR2MSCdGkpp9Y%2FfSkpZuvYKuCpcfEdhIkC5ryseCdnKoyyODJ7PO%2BUjqJ6JuxBC5Wafxpn6zT6pE%2B29QA1LrPGMN5qRSHyO%2FaZmrIGp8buOaHAHST5gvryDpTazz0XU8uqxLZWxXt3zt4SkZMCy%2B6cHoWYWll0ukyVgI9efy3rB6wuBUkiP9Pgw6LyQzAY6pgFHoWEqdlr1JPzXHVStehXxLGb1XW42IYCelc8eGjighayNscGg05bBjlT3h4JIsF7GPqjG2kafB9NSLB3f26kT%2F%2Fsu5FNgeo2aT7dMdh2gRe%2B62R8%2FfdvMnTAlPVuqbf898wgOQqRWBCpaPHJyNWaYjfbl0JFG0nnVs60C65qgngGJFGQr8C4oVpTGACAx%2FsKmNKse8iafy7db3BqakR41u2DgY4QO"
|
||||
},
|
||||
"require": {
|
||||
"fleetbase/core-api": "*",
|
||||
"php": "^8.0",
|
||||
"php-http/guzzle7-adapter": "^1.0",
|
||||
"psr/http-factory-implementation": "*"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^3.34.1",
|
||||
"nunomaduro/collision": "^5.11.0|^6.4.0",
|
||||
"pestphp/pest": "^1.22.6",
|
||||
"phpstan/phpstan": "^1.10.38",
|
||||
"symfony/var-dumper": "^5.4.29"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Fleetbase\\Vroom\\Providers\\VroomServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Fleetbase\\Vroom\\": "server/src/",
|
||||
"Fleetbase\\Vroom\\Seeds\\": "server/seeds/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Fleetbase\\Vroom\\Tests\\": "server/tests/"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"lint": [
|
||||
"php-cs-fixer fix -v"
|
||||
],
|
||||
"test:lint": [
|
||||
"php-cs-fixer fix -v --dry-run"
|
||||
],
|
||||
"test:types": [
|
||||
"phpstan analyse --ansi --memory-limit=0"
|
||||
],
|
||||
"test:unit": [
|
||||
"pest --colors=always"
|
||||
],
|
||||
"test": [
|
||||
"@test:lint",
|
||||
"@test:types",
|
||||
"@test:unit"
|
||||
]
|
||||
},
|
||||
"license": [
|
||||
"AGPL-3.0-or-later"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fleetbase Pte Ltd",
|
||||
"email": "hello@fleetbase.io"
|
||||
}
|
||||
],
|
||||
"description": "VROOM route optimization machine extension for Fleetbase",
|
||||
"keywords": [
|
||||
"fleetbase",
|
||||
"fleetbase",
|
||||
"fleetbase-extension",
|
||||
"route optimization",
|
||||
"routing",
|
||||
"vroom"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "fruitcake/php-cors",
|
||||
"version": "v1.4.0",
|
||||
|
||||
@@ -2,6 +2,7 @@ import Component from '@glimmer/component';
|
||||
import { tracked } from '@glimmer/tracking';
|
||||
import { inject as service } from '@ember/service';
|
||||
import { isArray } from '@ember/array';
|
||||
import { debug } from '@ember/debug';
|
||||
import { storageFor } from 'ember-local-storage';
|
||||
import { add, isPast } from 'date-fns';
|
||||
import { task } from 'ember-concurrency';
|
||||
|
||||
@@ -6,20 +6,110 @@ const KEYS_INDEX = `${CONTEXT_PREFIX}__keys__`;
|
||||
|
||||
export default class OnboardingContextService extends Service {
|
||||
@service appCache;
|
||||
@service notifications;
|
||||
@tracked data = {};
|
||||
@tracked quotaExceeded = false;
|
||||
@tracked usingMemoryFallback = false;
|
||||
|
||||
// In-memory fallback storage for when localStorage is full
|
||||
_memoryCache = new Map();
|
||||
|
||||
/**
|
||||
* Safe wrapper for appCache.set with quota error handling
|
||||
*
|
||||
* @param {string} key - The key to set
|
||||
* @param {*} value - The value to store
|
||||
* @returns {Object} Result object with success status and storage type
|
||||
*/
|
||||
_safeSet(key, value) {
|
||||
try {
|
||||
this.appCache.set(key, value);
|
||||
return { success: true, storage: 'localStorage' };
|
||||
} catch (error) {
|
||||
if (this._isQuotaError(error)) {
|
||||
console.warn(`[OnboardingContext] localStorage quota exceeded, using memory fallback for key: ${key}`);
|
||||
|
||||
// Store in memory as fallback
|
||||
this._memoryCache.set(key, value);
|
||||
|
||||
// Mark that we're using fallback and notify user (only once)
|
||||
if (!this.quotaExceeded) {
|
||||
this.quotaExceeded = true;
|
||||
this.usingMemoryFallback = true;
|
||||
this._notifyUser();
|
||||
}
|
||||
|
||||
return { success: true, storage: 'memory', warning: 'Using memory fallback' };
|
||||
}
|
||||
|
||||
// Re-throw non-quota errors
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Safe wrapper for appCache.get with memory fallback
|
||||
*
|
||||
* @param {string} key - The key to retrieve
|
||||
* @returns {*} The stored value or undefined
|
||||
*/
|
||||
_safeGet(key) {
|
||||
try {
|
||||
const value = this.appCache.get(key);
|
||||
if (value !== undefined) {
|
||||
return value;
|
||||
}
|
||||
} catch (error) {
|
||||
console.warn(`[OnboardingContext] Error reading from appCache: ${error.message}`);
|
||||
}
|
||||
|
||||
// Fallback to memory cache
|
||||
return this._memoryCache.get(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if error is a quota exceeded error
|
||||
*
|
||||
* @param {Error} error - The error to check
|
||||
* @returns {boolean} True if it's a quota error
|
||||
*/
|
||||
_isQuotaError(error) {
|
||||
return (
|
||||
error instanceof DOMException &&
|
||||
(error.code === 22 ||
|
||||
error.code === 1014 ||
|
||||
error.name === 'QuotaExceededError' ||
|
||||
error.name === 'NS_ERROR_DOM_QUOTA_REACHED')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify user about storage issues (only called once)
|
||||
*/
|
||||
_notifyUser() {
|
||||
if (this.notifications) {
|
||||
this.notifications.warning(
|
||||
'Your browser storage is full. Your onboarding progress will be saved temporarily but may be lost if you close this tab. Please complete the onboarding process in this session.',
|
||||
{
|
||||
timeout: 10000,
|
||||
clearDuration: 300
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a value from in-memory state first, then fallback to cache
|
||||
*/
|
||||
get(key) {
|
||||
return this.data[key] ?? this.appCache.get(`${CONTEXT_PREFIX}${key}`);
|
||||
return this.data[key] ?? this._safeGet(`${CONTEXT_PREFIX}${key}`);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a value directly from cache
|
||||
*/
|
||||
getFromCache(key) {
|
||||
return this.appCache.get(`${CONTEXT_PREFIX}${key}`);
|
||||
return this._safeGet(`${CONTEXT_PREFIX}${key}`);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -28,11 +118,11 @@ export default class OnboardingContextService extends Service {
|
||||
* @returns {Object}
|
||||
*/
|
||||
restore() {
|
||||
const keys = this.appCache.get(KEYS_INDEX) ?? [];
|
||||
const keys = this._safeGet(KEYS_INDEX) ?? [];
|
||||
const persisted = {};
|
||||
|
||||
for (const key of keys) {
|
||||
const value = this.appCache.get(`${CONTEXT_PREFIX}${key}`);
|
||||
const value = this._safeGet(`${CONTEXT_PREFIX}${key}`);
|
||||
if (value !== undefined) {
|
||||
persisted[key] = value;
|
||||
}
|
||||
@@ -63,14 +153,14 @@ export default class OnboardingContextService extends Service {
|
||||
this.data = { ...this.data, ...filteredData };
|
||||
|
||||
if (options.persist === true) {
|
||||
const keys = new Set(this.appCache.get(KEYS_INDEX) ?? []);
|
||||
const keys = new Set(this._safeGet(KEYS_INDEX) ?? []);
|
||||
|
||||
for (const key of Object.keys(filteredData)) {
|
||||
keys.add(key);
|
||||
this.appCache.set(`${CONTEXT_PREFIX}${key}`, this.data[key]);
|
||||
this._safeSet(`${CONTEXT_PREFIX}${key}`, this.data[key]);
|
||||
}
|
||||
|
||||
this.appCache.set(KEYS_INDEX, [...keys]);
|
||||
this._safeSet(KEYS_INDEX, [...keys]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,11 +178,11 @@ export default class OnboardingContextService extends Service {
|
||||
this.data = { ...this.data, [key]: value };
|
||||
|
||||
if (options.persist === true) {
|
||||
const keys = new Set(this.appCache.get(KEYS_INDEX) ?? []);
|
||||
const keys = new Set(this._safeGet(KEYS_INDEX) ?? []);
|
||||
keys.add(key);
|
||||
|
||||
this.appCache.set(`${CONTEXT_PREFIX}${key}`, value);
|
||||
this.appCache.set(KEYS_INDEX, [...keys]);
|
||||
this._safeSet(`${CONTEXT_PREFIX}${key}`, value);
|
||||
this._safeSet(KEYS_INDEX, [...keys]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -110,24 +200,44 @@ export default class OnboardingContextService extends Service {
|
||||
const { [key]: _removed, ...rest } = this.data; // eslint-disable-line no-unused-vars
|
||||
this.data = rest;
|
||||
|
||||
const keys = new Set(this.appCache.get(KEYS_INDEX) ?? []);
|
||||
const keys = new Set(this._safeGet(KEYS_INDEX) ?? []);
|
||||
keys.delete(key);
|
||||
|
||||
this.appCache.set(`${CONTEXT_PREFIX}${key}`, undefined);
|
||||
this.appCache.set(KEYS_INDEX, [...keys]);
|
||||
this._safeSet(`${CONTEXT_PREFIX}${key}`, undefined);
|
||||
this._safeSet(KEYS_INDEX, [...keys]);
|
||||
|
||||
// Also remove from memory cache
|
||||
this._memoryCache.delete(`${CONTEXT_PREFIX}${key}`);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fully reset onboarding context (memory + persistence)
|
||||
*/
|
||||
reset() {
|
||||
const keys = this.appCache.get(KEYS_INDEX) ?? [];
|
||||
const keys = this._safeGet(KEYS_INDEX) ?? [];
|
||||
|
||||
for (const key of keys) {
|
||||
this.appCache.set(`${CONTEXT_PREFIX}${key}`, undefined);
|
||||
this._safeSet(`${CONTEXT_PREFIX}${key}`, undefined);
|
||||
this._memoryCache.delete(`${CONTEXT_PREFIX}${key}`);
|
||||
}
|
||||
|
||||
this.appCache.set(KEYS_INDEX, []);
|
||||
this._safeSet(KEYS_INDEX, []);
|
||||
this._memoryCache.clear();
|
||||
this.data = {};
|
||||
this.quotaExceeded = false;
|
||||
this.usingMemoryFallback = false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get storage status for debugging
|
||||
*
|
||||
* @returns {Object} Storage status information
|
||||
*/
|
||||
getStorageStatus() {
|
||||
return {
|
||||
quotaExceeded: this.quotaExceeded,
|
||||
usingMemoryFallback: this.usingMemoryFallback,
|
||||
memoryItemCount: this._memoryCache.size
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
API_HOST=https://api.fleetbase.io
|
||||
API_HOST=
|
||||
API_NAMESPACE=int/v1
|
||||
API_SECURE=true
|
||||
SOCKETCLUSTER_PATH=/socketcluster/
|
||||
SOCKETCLUSTER_HOST=socket.fleetbase.io
|
||||
SOCKETCLUSTER_HOST=
|
||||
SOCKETCLUSTER_SECURE=true
|
||||
SOCKETCLUSTER_PORT=8000
|
||||
OSRM_HOST=https://router.project-osrm.org
|
||||
DISABLE_RUNTIME_CONFIG=true
|
||||
SOCKETCLUSTER_PORT=38000
|
||||
OSRM_HOST=https://router.project-osrm.org
|
||||
@@ -1,9 +0,0 @@
|
||||
API_HOST=https://api.qa.fleetbase.io
|
||||
API_NAMESPACE=int/v1
|
||||
API_SECURE=true
|
||||
SOCKETCLUSTER_PATH=/socketcluster/
|
||||
SOCKETCLUSTER_HOST=socket.qa.fleetbase.io
|
||||
SOCKETCLUSTER_SECURE=true
|
||||
SOCKETCLUSTER_PORT=8000
|
||||
OSRM_HOST=https://router.project-osrm.org
|
||||
DISABLE_RUNTIME_CONFIG=true
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@fleetbase/console",
|
||||
"version": "0.7.27",
|
||||
"version": "0.7.28",
|
||||
"private": true,
|
||||
"description": "Modular logistics and supply chain operating system (LSOS)",
|
||||
"repository": "https://github.com/fleetbase/fleetbase",
|
||||
@@ -33,22 +33,14 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@ember/legacy-built-in-components": "^0.4.2",
|
||||
"@fleetbase/aws-marketplace": "^0.0.8",
|
||||
"@fleetbase/billing-engine": "^0.1.20",
|
||||
"@fleetbase/customer-portal-engine": "^0.0.10",
|
||||
"@fleetbase/dev-engine": "^0.2.12",
|
||||
"@fleetbase/ember-core": "^0.3.10",
|
||||
"@fleetbase/ember-ui": "^0.3.18",
|
||||
"@fleetbase/fleetops-data": "^0.1.25",
|
||||
"@fleetbase/fleetops-engine": "^0.6.34",
|
||||
"@fleetbase/flespi-engine": "^0.1.16",
|
||||
"@fleetbase/fleetops-engine": "^0.6.35",
|
||||
"@fleetbase/iam-engine": "^0.1.6",
|
||||
"@fleetbase/internals-engine": "^0.0.27",
|
||||
"@fleetbase/leaflet-routing-machine": "^3.2.17",
|
||||
"@fleetbase/registry-bridge-engine": "^0.1.5",
|
||||
"@fleetbase/samsara-engine": "^0.0.3",
|
||||
"@fleetbase/valhalla-engine": "^0.0.3",
|
||||
"@fleetbase/vroom-engine": "^0.0.3",
|
||||
"@fleetbase/storefront-engine": "^0.4.13",
|
||||
"@formatjs/intl-datetimeformat": "^6.18.2",
|
||||
"@formatjs/intl-numberformat": "^8.15.6",
|
||||
|
||||
1182
console/pnpm-lock.yaml
generated
1182
console/pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -75,7 +75,7 @@ ENV QUEUE_CONNECTION=redis
|
||||
ENV CADDYFILE_PATH=/fleetbase/Caddyfile
|
||||
ENV CONSOLE_PATH=/fleetbase/console
|
||||
ENV OCTANE_SERVER=frankenphp
|
||||
ENV FLEETBASE_VERSION=0.7.27
|
||||
ENV FLEETBASE_VERSION=0.7.28
|
||||
|
||||
# Set environment
|
||||
ARG ENVIRONMENT=production
|
||||
|
||||
Submodule packages/core-api updated: 04ae1ac455...a2e70e1eec
Submodule packages/dev-engine updated: 64a379ce12...f11d032cb8
Submodule packages/ember-core updated: 54a45bbdaa...c0c1941b98
Submodule packages/ember-ui updated: c6694206e9...379d0a7921
Submodule packages/fleetbase-extensions-indexer updated: a6f2b4cde9...db26b8add3
Submodule packages/fleetops updated: 09487c1c50...05503cee9f
Submodule packages/fleetops-data updated: 08520b3981...332dc428de
Submodule packages/iam-engine updated: 99698152e2...5b12288f5b
Submodule packages/pallet updated: 9e7592eddb...b343c621f1
Submodule packages/storefront updated: b5776acef6...aa2a2bc0bd
Reference in New Issue
Block a user