@fishawack/lab-env 5.3.0-beta.2 → 5.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.prettierignore +4 -1
- package/CHANGELOG.md +31 -0
- package/_Ai/laravel-12.md +3 -47
- package/commands/test.js +16 -0
- package/eslint.config.js +2 -0
- package/package.json +2 -2
- package/stylelint.config.js +2 -0
package/.prettierignore
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
## Changelog
|
|
2
2
|
|
|
3
|
+
### 5.3.0 (2026-02-23)
|
|
4
|
+
|
|
5
|
+
#### Features
|
|
6
|
+
|
|
7
|
+
* can now customize headers for static provisions ([a3bc776](https://bitbucket.org/fishawackdigital/lab-env/commits/a3bc776c6acca3555de4ef5667ffdf9f8b37a518))
|
|
8
|
+
* can now specify redirects for use in cloudfront functions ([67706d7](https://bitbucket.org/fishawackdigital/lab-env/commits/67706d76300fc6743f7a5ceb9bf31748cf8acb31))
|
|
9
|
+
* snyk scans now run on all builds but only fail builds with snyk flag ([03975eb](https://bitbucket.org/fishawackdigital/lab-env/commits/03975eb8c9f0a19535f026f65b547ea76f3743e2))
|
|
10
|
+
|
|
11
|
+
#### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* deprov now correctly removes the response function for static sites ([69fbc2b](https://bitbucket.org/fishawackdigital/lab-env/commits/69fbc2b8f60898d3d33416328752897dff6f752b))
|
|
14
|
+
* ignore submodules found in packages in linting reports ([14b9064](https://bitbucket.org/fishawackdigital/lab-env/commits/14b9064db699a7bd57c33fcb851c7c651c9cead6))
|
|
15
|
+
* issue with lab-env calling lab-env and concatanating repo env variable ([03313c3](https://bitbucket.org/fishawackdigital/lab-env/commits/03313c3c43c793222620170c381af05ec4b1c348))
|
|
16
|
+
* prompt if redirects are needed first ([e087bf0](https://bitbucket.org/fishawackdigital/lab-env/commits/e087bf0f6d86c543f31d9f0c401793222f8f0d9a))
|
|
17
|
+
* set aws client on key command ([3b15512](https://bitbucket.org/fishawackdigital/lab-env/commits/3b15512b168d4ba35871047fd0ea9230cf394804))
|
|
18
|
+
* use correct prod base image on python images ([db0ace4](https://bitbucket.org/fishawackdigital/lab-env/commits/db0ace419e8c635c727aa33330a3156c0956af0b))
|
|
19
|
+
|
|
20
|
+
#### Build Updates
|
|
21
|
+
|
|
22
|
+
* **core/1:** Bumped lab-env-core-1 ([e3e151a](https://bitbucket.org/fishawackdigital/lab-env/commits/e3e151aacb75c360f36f7b8303966a99f1c202d0))
|
|
23
|
+
|
|
24
|
+
### 5.3.0-beta.3 (2026-02-21)
|
|
25
|
+
|
|
26
|
+
#### Features
|
|
27
|
+
|
|
28
|
+
* snyk scans now run on all builds but only fail builds with snyk flag ([03975eb](https://bitbucket.org/fishawackdigital/lab-env/commits/03975eb8c9f0a19535f026f65b547ea76f3743e2))
|
|
29
|
+
|
|
30
|
+
#### Bug Fixes
|
|
31
|
+
|
|
32
|
+
* ignore submodules found in packages in linting reports ([14b9064](https://bitbucket.org/fishawackdigital/lab-env/commits/14b9064db699a7bd57c33fcb851c7c651c9cead6))
|
|
33
|
+
|
|
3
34
|
### 5.3.0-beta.2 (2026-02-20)
|
|
4
35
|
|
|
5
36
|
#### Build Updates
|
package/_Ai/laravel-12.md
CHANGED
|
@@ -80,12 +80,10 @@ class Post extends Model {
|
|
|
80
80
|
|
|
81
81
|
**Key conventions:**
|
|
82
82
|
|
|
83
|
-
- Use `#[ObservedBy([ModelObserver::class])]` attribute for observer registration
|
|
84
83
|
- Always include `QueryBuilderBindable` trait
|
|
85
84
|
- Include `SoftDeletes` for most models
|
|
86
85
|
- Set `public static $queryClass` property
|
|
87
86
|
- Use enum casting where applicable
|
|
88
|
-
- Include author tracking fields (`created_by`, `updated_by`, `deleted_by`)
|
|
89
87
|
|
|
90
88
|
The QueryBuilderBindable trait should resolve route model binding for controller endpoints and contain the following code
|
|
91
89
|
|
|
@@ -296,50 +294,18 @@ class PostQuery extends QueryBuilder {
|
|
|
296
294
|
namespace App\Observers;
|
|
297
295
|
|
|
298
296
|
use App\Models\Post;
|
|
299
|
-
use App\Traits\ObservesAuthorChanges;
|
|
300
|
-
use App\Enums\AuthorChangeEventTypeEnum;
|
|
301
297
|
|
|
302
298
|
class PostObserver {
|
|
303
299
|
use ObservesAuthorChanges;
|
|
304
300
|
|
|
305
|
-
public function created(Post $post): void {
|
|
306
|
-
if (auth()->user()) {
|
|
307
|
-
$this->observeChanges(
|
|
308
|
-
$post,
|
|
309
|
-
auth()->user(),
|
|
310
|
-
AuthorChangeEventTypeEnum::CREATED
|
|
311
|
-
);
|
|
312
|
-
}
|
|
313
|
-
}
|
|
301
|
+
public function created(Post $post): void {}
|
|
314
302
|
|
|
315
|
-
public function updated(Post $post): void {
|
|
316
|
-
if (auth()->user()) {
|
|
317
|
-
$this->observeChanges(
|
|
318
|
-
$post,
|
|
319
|
-
auth()->user(),
|
|
320
|
-
AuthorChangeEventTypeEnum::UPDATED
|
|
321
|
-
);
|
|
322
|
-
}
|
|
323
|
-
}
|
|
303
|
+
public function updated(Post $post): void {}
|
|
324
304
|
|
|
325
|
-
public function deleted(Post $post): void {
|
|
326
|
-
if (auth()->user()) {
|
|
327
|
-
$this->observeChanges(
|
|
328
|
-
$post,
|
|
329
|
-
auth()->user(),
|
|
330
|
-
AuthorChangeEventTypeEnum::DELETED
|
|
331
|
-
);
|
|
332
|
-
}
|
|
333
|
-
}
|
|
305
|
+
public function deleted(Post $post): void {}
|
|
334
306
|
}
|
|
335
307
|
```
|
|
336
308
|
|
|
337
|
-
**Key conventions:**
|
|
338
|
-
|
|
339
|
-
- Use `ObservesAuthorChanges` trait
|
|
340
|
-
- Check for `auth()->user()` before observing
|
|
341
|
-
- Use `AuthorChangeEventTypeEnum` for event types
|
|
342
|
-
|
|
343
309
|
### 7. Policy Structure
|
|
344
310
|
|
|
345
311
|
```php
|
|
@@ -349,11 +315,8 @@ namespace App\Policies;
|
|
|
349
315
|
|
|
350
316
|
use App\Models\Post;
|
|
351
317
|
use App\Models\User;
|
|
352
|
-
use App\Traits\PerformsSubscriptionChecks;
|
|
353
318
|
|
|
354
319
|
class PostPolicy {
|
|
355
|
-
use PerformsSubscriptionChecks;
|
|
356
|
-
|
|
357
320
|
public function viewAny(User $user): bool {
|
|
358
321
|
return $user->can(PermissionEnum::VIEW_CONTENT->value);
|
|
359
322
|
}
|
|
@@ -378,7 +341,6 @@ class PostPolicy {
|
|
|
378
341
|
|
|
379
342
|
**Key conventions:**
|
|
380
343
|
|
|
381
|
-
- Use `PerformsSubscriptionChecks` trait where applicable
|
|
382
344
|
- Use permission enums for authorization checks
|
|
383
345
|
- Follow standard policy method names
|
|
384
346
|
|
|
@@ -525,9 +487,6 @@ fw artisan make:model ModelName
|
|
|
525
487
|
# Run PHPUnit tests
|
|
526
488
|
fw artisan test
|
|
527
489
|
|
|
528
|
-
# Or run PHPUnit directly
|
|
529
|
-
fw ./vendor/bin/phpunit
|
|
530
|
-
|
|
531
490
|
# Run specific test file
|
|
532
491
|
fw artisan test --filter TestClassName
|
|
533
492
|
```
|
|
@@ -535,9 +494,6 @@ fw artisan test --filter TestClassName
|
|
|
535
494
|
### Database Operations
|
|
536
495
|
|
|
537
496
|
```bash
|
|
538
|
-
# Access MySQL console
|
|
539
|
-
fw mysql
|
|
540
|
-
|
|
541
497
|
# Run database commands
|
|
542
498
|
fw artisan db:seed
|
|
543
499
|
fw artisan migrate:status
|
package/commands/test.js
CHANGED
|
@@ -22,6 +22,22 @@ module.exports = [
|
|
|
22
22
|
if (_.platform === "adonis") {
|
|
23
23
|
_.command("node", `node ace test`);
|
|
24
24
|
}
|
|
25
|
+
|
|
26
|
+
try {
|
|
27
|
+
_.command(
|
|
28
|
+
"core",
|
|
29
|
+
"if [ \"$SNYK_TOKEN\" ]; then snyk auth $SNYK_TOKEN && snyk test --severity-threshold=high; else echo 'SNYK_TOKEN is missing. Skipping Snyk scan.'; fi",
|
|
30
|
+
);
|
|
31
|
+
} catch (e) {
|
|
32
|
+
// Only stop execution if sync set to true in coreConfig; otherwise, log the error and continue
|
|
33
|
+
if (_.coreConfig.attributes.snyk) {
|
|
34
|
+
throw e;
|
|
35
|
+
} else {
|
|
36
|
+
console.log(
|
|
37
|
+
"Snyk found issues, but Snyk is not set to fail the build. Continuing with execution.",
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
25
41
|
});
|
|
26
42
|
},
|
|
27
43
|
];
|
package/eslint.config.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fishawack/lab-env",
|
|
3
|
-
"version": "5.3.0
|
|
3
|
+
"version": "5.3.0",
|
|
4
4
|
"description": "Docker manager for FW",
|
|
5
5
|
"main": "cli.js",
|
|
6
6
|
"scripts": {
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"generate-password": "^1.7.0",
|
|
36
36
|
"get-port": "5.1.1",
|
|
37
37
|
"git-branch": "^2.0.1",
|
|
38
|
-
"glob": "
|
|
38
|
+
"glob": "^13.0.6",
|
|
39
39
|
"inquirer": "8.1.2",
|
|
40
40
|
"lodash": "^4.17.21",
|
|
41
41
|
"nodemailer": "^6.9.15",
|