@betterportal/hello-view 10.1.32 → 10.1.34

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.
@@ -0,0 +1,928 @@
1
+ {
2
+ "manifest": {
3
+ "protocolVersion": 1,
4
+ "pluginId": "org.betterportal.hello-view",
5
+ "title": "BetterPortal Hello View Example",
6
+ "description": "Example business service showing API-first view negotiation.",
7
+ "version": "10.1.34",
8
+ "category": "service",
9
+ "deploymentModes": [
10
+ "self-hosted"
11
+ ],
12
+ "capabilities": [
13
+ "view.json",
14
+ "view.metadata",
15
+ "theme.bootstrap1",
16
+ "view.html",
17
+ "stream.ndjson",
18
+ "view.sse-render",
19
+ "theme.embedded"
20
+ ],
21
+ "supportedThemes": [
22
+ "bootstrap1",
23
+ "embedded"
24
+ ],
25
+ "supportedRenderModes": [
26
+ "page",
27
+ "fragment"
28
+ ],
29
+ "views": [
30
+ {
31
+ "viewId": "about.index",
32
+ "title": "About BetterPortal",
33
+ "description": "Overview of BetterPortal architecture and design principles.",
34
+ "path": "/about",
35
+ "methods": [
36
+ "GET"
37
+ ],
38
+ "paramsSchema": {},
39
+ "querySchema": {
40
+ "anyvaliVersion": "1.0",
41
+ "schemaVersion": "1.1",
42
+ "root": {
43
+ "kind": "object",
44
+ "properties": {},
45
+ "required": [],
46
+ "unknownKeys": "strip"
47
+ },
48
+ "definitions": {},
49
+ "extensions": {}
50
+ },
51
+ "headersSchema": {
52
+ "anyvaliVersion": "1.0",
53
+ "schemaVersion": "1.1",
54
+ "root": {
55
+ "kind": "object",
56
+ "properties": {},
57
+ "required": [],
58
+ "unknownKeys": "strip"
59
+ },
60
+ "definitions": {},
61
+ "extensions": {}
62
+ },
63
+ "bodySchema": {
64
+ "anyvaliVersion": "1.0",
65
+ "schemaVersion": "1.1",
66
+ "root": {
67
+ "kind": "object",
68
+ "properties": {},
69
+ "required": [],
70
+ "unknownKeys": "strip"
71
+ },
72
+ "definitions": {},
73
+ "extensions": {}
74
+ },
75
+ "jsonResponseSchema": {
76
+ "anyvaliVersion": "1.0",
77
+ "schemaVersion": "1.1",
78
+ "root": {
79
+ "kind": "object",
80
+ "properties": {
81
+ "title": {
82
+ "kind": "string",
83
+ "minLength": 1
84
+ },
85
+ "intro": {
86
+ "kind": "string",
87
+ "minLength": 1
88
+ },
89
+ "sections": {
90
+ "kind": "array",
91
+ "items": {
92
+ "kind": "object",
93
+ "properties": {
94
+ "title": {
95
+ "kind": "string",
96
+ "minLength": 1
97
+ },
98
+ "text": {
99
+ "kind": "string",
100
+ "minLength": 1
101
+ }
102
+ },
103
+ "required": [
104
+ "title",
105
+ "text"
106
+ ],
107
+ "unknownKeys": "strip"
108
+ }
109
+ },
110
+ "principles": {
111
+ "kind": "array",
112
+ "items": {
113
+ "kind": "object",
114
+ "properties": {
115
+ "title": {
116
+ "kind": "string",
117
+ "minLength": 1
118
+ },
119
+ "text": {
120
+ "kind": "string",
121
+ "minLength": 1
122
+ }
123
+ },
124
+ "required": [
125
+ "title",
126
+ "text"
127
+ ],
128
+ "unknownKeys": "strip"
129
+ }
130
+ },
131
+ "landingHref": {
132
+ "kind": "string",
133
+ "minLength": 1
134
+ }
135
+ },
136
+ "required": [
137
+ "title",
138
+ "intro",
139
+ "sections",
140
+ "principles",
141
+ "landingHref"
142
+ ],
143
+ "unknownKeys": "strip"
144
+ },
145
+ "definitions": {},
146
+ "extensions": {}
147
+ },
148
+ "metadataResponseSchema": {},
149
+ "renderable": true,
150
+ "html": {
151
+ "themeRenderers": {
152
+ "bootstrap1": {
153
+ "defaultRenderer": "default",
154
+ "renderModes": [
155
+ "page"
156
+ ],
157
+ "slots": [
158
+ "main"
159
+ ],
160
+ "renderers": [
161
+ {
162
+ "id": "default",
163
+ "title": "Default Content",
164
+ "slotId": "main",
165
+ "renderModes": [
166
+ "page",
167
+ "fragment"
168
+ ]
169
+ }
170
+ ]
171
+ }
172
+ }
173
+ },
174
+ "auth": {
175
+ "required": false,
176
+ "permissions": []
177
+ },
178
+ "dependencies": [],
179
+ "apiContracts": [],
180
+ "demoScenarios": [],
181
+ "cacheHints": {
182
+ "ttlSeconds": 300,
183
+ "varyBy": [
184
+ "accept",
185
+ "origin",
186
+ "referer",
187
+ ":origin",
188
+ ":referer"
189
+ ]
190
+ }
191
+ },
192
+ {
193
+ "viewId": "delayed.index",
194
+ "title": "Delayed Stream",
195
+ "description": "Example streaming view: items arrive one by one as a slow data source produces them. JSON buffers, NDJSON streams frames, HTML streams rendered rows over SSE.",
196
+ "path": "/delayed",
197
+ "methods": [
198
+ "GET"
199
+ ],
200
+ "paramsSchema": {},
201
+ "querySchema": {
202
+ "anyvaliVersion": "1.0",
203
+ "schemaVersion": "1.1",
204
+ "root": {
205
+ "kind": "object",
206
+ "properties": {
207
+ "count": {
208
+ "kind": "string",
209
+ "default": "5"
210
+ },
211
+ "delayMs": {
212
+ "kind": "string",
213
+ "default": "400"
214
+ }
215
+ },
216
+ "required": [
217
+ "count",
218
+ "delayMs"
219
+ ],
220
+ "unknownKeys": "strip"
221
+ },
222
+ "definitions": {},
223
+ "extensions": {}
224
+ },
225
+ "headersSchema": {},
226
+ "bodySchema": {},
227
+ "jsonResponseSchema": {
228
+ "anyvaliVersion": "1.0",
229
+ "schemaVersion": "1.1",
230
+ "root": {
231
+ "kind": "object",
232
+ "properties": {
233
+ "items": {
234
+ "kind": "array",
235
+ "items": {
236
+ "kind": "object",
237
+ "properties": {
238
+ "id": {
239
+ "kind": "string",
240
+ "minLength": 1
241
+ },
242
+ "label": {
243
+ "kind": "string",
244
+ "minLength": 1
245
+ },
246
+ "elapsedMs": {
247
+ "kind": "int",
248
+ "min": 0
249
+ }
250
+ },
251
+ "required": [
252
+ "id",
253
+ "label",
254
+ "elapsedMs"
255
+ ],
256
+ "unknownKeys": "strip"
257
+ },
258
+ "default": []
259
+ },
260
+ "summary": {
261
+ "kind": "optional",
262
+ "inner": {
263
+ "kind": "object",
264
+ "properties": {
265
+ "total": {
266
+ "kind": "int",
267
+ "min": 0
268
+ },
269
+ "totalMs": {
270
+ "kind": "int",
271
+ "min": 0
272
+ }
273
+ },
274
+ "required": [
275
+ "total",
276
+ "totalMs"
277
+ ],
278
+ "unknownKeys": "strip"
279
+ }
280
+ }
281
+ },
282
+ "required": [
283
+ "items"
284
+ ],
285
+ "unknownKeys": "strip"
286
+ },
287
+ "definitions": {},
288
+ "extensions": {}
289
+ },
290
+ "metadataResponseSchema": {},
291
+ "renderable": true,
292
+ "streaming": {
293
+ "itemSchema": {
294
+ "anyvaliVersion": "1.0",
295
+ "schemaVersion": "1.1",
296
+ "root": {
297
+ "kind": "object",
298
+ "properties": {
299
+ "id": {
300
+ "kind": "string",
301
+ "minLength": 1
302
+ },
303
+ "label": {
304
+ "kind": "string",
305
+ "minLength": 1
306
+ },
307
+ "elapsedMs": {
308
+ "kind": "int",
309
+ "min": 0
310
+ }
311
+ },
312
+ "required": [
313
+ "id",
314
+ "label",
315
+ "elapsedMs"
316
+ ],
317
+ "unknownKeys": "strip"
318
+ },
319
+ "definitions": {},
320
+ "extensions": {}
321
+ },
322
+ "summarySchema": {
323
+ "anyvaliVersion": "1.0",
324
+ "schemaVersion": "1.1",
325
+ "root": {
326
+ "kind": "object",
327
+ "properties": {
328
+ "total": {
329
+ "kind": "int",
330
+ "min": 0
331
+ },
332
+ "totalMs": {
333
+ "kind": "int",
334
+ "min": 0
335
+ }
336
+ },
337
+ "required": [
338
+ "total",
339
+ "totalMs"
340
+ ],
341
+ "unknownKeys": "strip"
342
+ },
343
+ "definitions": {},
344
+ "extensions": {}
345
+ }
346
+ },
347
+ "html": {
348
+ "themeRenderers": {
349
+ "bootstrap1": {
350
+ "defaultRenderer": "default",
351
+ "renderModes": [
352
+ "page",
353
+ "fragment"
354
+ ],
355
+ "slots": [
356
+ "main"
357
+ ],
358
+ "renderers": [
359
+ {
360
+ "id": "default",
361
+ "title": "Default Content",
362
+ "slotId": "main",
363
+ "renderModes": [
364
+ "page",
365
+ "fragment"
366
+ ]
367
+ }
368
+ ]
369
+ }
370
+ }
371
+ },
372
+ "auth": {
373
+ "required": false,
374
+ "permissions": []
375
+ },
376
+ "dependencies": [],
377
+ "apiContracts": [],
378
+ "demoScenarios": [],
379
+ "cacheHints": {
380
+ "ttlSeconds": 0,
381
+ "varyBy": [
382
+ "accept",
383
+ "origin"
384
+ ]
385
+ }
386
+ },
387
+ {
388
+ "viewId": "hello.index",
389
+ "title": "Hello View",
390
+ "description": "Example BetterPortal view with JSON, HTML, and metadata representations.",
391
+ "path": "/hello",
392
+ "methods": [
393
+ "GET"
394
+ ],
395
+ "paramsSchema": {},
396
+ "querySchema": {
397
+ "anyvaliVersion": "1.0",
398
+ "schemaVersion": "1.1",
399
+ "root": {
400
+ "kind": "object",
401
+ "properties": {
402
+ "name": {
403
+ "kind": "string",
404
+ "minLength": 1,
405
+ "default": "World"
406
+ }
407
+ },
408
+ "required": [
409
+ "name"
410
+ ],
411
+ "unknownKeys": "strip"
412
+ },
413
+ "definitions": {},
414
+ "extensions": {}
415
+ },
416
+ "headersSchema": {
417
+ "anyvaliVersion": "1.0",
418
+ "schemaVersion": "1.1",
419
+ "root": {
420
+ "kind": "object",
421
+ "properties": {},
422
+ "required": [],
423
+ "unknownKeys": "strip"
424
+ },
425
+ "definitions": {},
426
+ "extensions": {}
427
+ },
428
+ "bodySchema": {
429
+ "anyvaliVersion": "1.0",
430
+ "schemaVersion": "1.1",
431
+ "root": {
432
+ "kind": "object",
433
+ "properties": {},
434
+ "required": [],
435
+ "unknownKeys": "strip"
436
+ },
437
+ "definitions": {},
438
+ "extensions": {}
439
+ },
440
+ "jsonResponseSchema": {
441
+ "anyvaliVersion": "1.0",
442
+ "schemaVersion": "1.1",
443
+ "root": {
444
+ "kind": "object",
445
+ "properties": {
446
+ "greeting": {
447
+ "kind": "string",
448
+ "minLength": 1
449
+ }
450
+ },
451
+ "required": [
452
+ "greeting"
453
+ ],
454
+ "unknownKeys": "strip"
455
+ },
456
+ "definitions": {},
457
+ "extensions": {}
458
+ },
459
+ "metadataResponseSchema": {},
460
+ "renderable": true,
461
+ "html": {
462
+ "themeRenderers": {
463
+ "bootstrap1": {
464
+ "defaultRenderer": "default",
465
+ "renderModes": [
466
+ "page",
467
+ "fragment"
468
+ ],
469
+ "slots": [
470
+ "main",
471
+ "nav.clock",
472
+ "nav.profile"
473
+ ],
474
+ "renderers": [
475
+ {
476
+ "id": "default",
477
+ "title": "Default Content",
478
+ "slotId": "main",
479
+ "renderModes": [
480
+ "page",
481
+ "fragment"
482
+ ]
483
+ },
484
+ {
485
+ "id": "nav.clock",
486
+ "title": "nav.clock",
487
+ "slotId": "nav.clock",
488
+ "renderModes": [
489
+ "fragment"
490
+ ]
491
+ },
492
+ {
493
+ "id": "nav.profile",
494
+ "title": "nav.profile",
495
+ "slotId": "nav.profile",
496
+ "renderModes": [
497
+ "fragment"
498
+ ]
499
+ }
500
+ ]
501
+ },
502
+ "embedded": {
503
+ "defaultRenderer": "default",
504
+ "renderModes": [
505
+ "page"
506
+ ],
507
+ "slots": [
508
+ "main"
509
+ ],
510
+ "renderers": [
511
+ {
512
+ "id": "default",
513
+ "title": "Default Content",
514
+ "slotId": "main",
515
+ "renderModes": [
516
+ "page",
517
+ "fragment"
518
+ ]
519
+ }
520
+ ]
521
+ }
522
+ }
523
+ },
524
+ "auth": {
525
+ "required": false,
526
+ "permissions": []
527
+ },
528
+ "dependencies": [],
529
+ "apiContracts": [],
530
+ "demoScenarios": [
531
+ {
532
+ "id": "default",
533
+ "title": "Default Greeting",
534
+ "match": {
535
+ "query": {
536
+ "name": "World"
537
+ }
538
+ },
539
+ "response": {
540
+ "greeting": "Hello, Demo User"
541
+ }
542
+ }
543
+ ],
544
+ "cacheHints": {
545
+ "ttlSeconds": 60,
546
+ "varyBy": [
547
+ "accept",
548
+ "origin",
549
+ "referer",
550
+ ":origin",
551
+ ":referer"
552
+ ]
553
+ }
554
+ },
555
+ {
556
+ "viewId": "landing.index",
557
+ "title": "BetterPortal",
558
+ "description": "Landing page for BetterPortal, the service-oriented portal framework.",
559
+ "path": "/landing",
560
+ "methods": [
561
+ "GET"
562
+ ],
563
+ "paramsSchema": {},
564
+ "querySchema": {
565
+ "anyvaliVersion": "1.0",
566
+ "schemaVersion": "1.1",
567
+ "root": {
568
+ "kind": "object",
569
+ "properties": {},
570
+ "required": [],
571
+ "unknownKeys": "strip"
572
+ },
573
+ "definitions": {},
574
+ "extensions": {}
575
+ },
576
+ "headersSchema": {
577
+ "anyvaliVersion": "1.0",
578
+ "schemaVersion": "1.1",
579
+ "root": {
580
+ "kind": "object",
581
+ "properties": {},
582
+ "required": [],
583
+ "unknownKeys": "strip"
584
+ },
585
+ "definitions": {},
586
+ "extensions": {}
587
+ },
588
+ "bodySchema": {
589
+ "anyvaliVersion": "1.0",
590
+ "schemaVersion": "1.1",
591
+ "root": {
592
+ "kind": "object",
593
+ "properties": {},
594
+ "required": [],
595
+ "unknownKeys": "strip"
596
+ },
597
+ "definitions": {},
598
+ "extensions": {}
599
+ },
600
+ "jsonResponseSchema": {
601
+ "anyvaliVersion": "1.0",
602
+ "schemaVersion": "1.1",
603
+ "root": {
604
+ "kind": "object",
605
+ "properties": {
606
+ "headline": {
607
+ "kind": "string",
608
+ "minLength": 1
609
+ },
610
+ "subheading": {
611
+ "kind": "string",
612
+ "minLength": 1
613
+ },
614
+ "summary": {
615
+ "kind": "string",
616
+ "minLength": 1
617
+ },
618
+ "highlights": {
619
+ "kind": "array",
620
+ "items": {
621
+ "kind": "object",
622
+ "properties": {
623
+ "title": {
624
+ "kind": "string",
625
+ "minLength": 1
626
+ },
627
+ "text": {
628
+ "kind": "string",
629
+ "minLength": 1
630
+ }
631
+ },
632
+ "required": [
633
+ "title",
634
+ "text"
635
+ ],
636
+ "unknownKeys": "strip"
637
+ }
638
+ },
639
+ "capabilities": {
640
+ "kind": "array",
641
+ "items": {
642
+ "kind": "object",
643
+ "properties": {
644
+ "title": {
645
+ "kind": "string",
646
+ "minLength": 1
647
+ },
648
+ "text": {
649
+ "kind": "string",
650
+ "minLength": 1
651
+ }
652
+ },
653
+ "required": [
654
+ "title",
655
+ "text"
656
+ ],
657
+ "unknownKeys": "strip"
658
+ }
659
+ },
660
+ "audiences": {
661
+ "kind": "array",
662
+ "items": {
663
+ "kind": "object",
664
+ "properties": {
665
+ "title": {
666
+ "kind": "string",
667
+ "minLength": 1
668
+ },
669
+ "text": {
670
+ "kind": "string",
671
+ "minLength": 1
672
+ }
673
+ },
674
+ "required": [
675
+ "title",
676
+ "text"
677
+ ],
678
+ "unknownKeys": "strip"
679
+ }
680
+ },
681
+ "aboutHref": {
682
+ "kind": "string",
683
+ "minLength": 1
684
+ }
685
+ },
686
+ "required": [
687
+ "headline",
688
+ "subheading",
689
+ "summary",
690
+ "highlights",
691
+ "capabilities",
692
+ "audiences",
693
+ "aboutHref"
694
+ ],
695
+ "unknownKeys": "strip"
696
+ },
697
+ "definitions": {},
698
+ "extensions": {}
699
+ },
700
+ "metadataResponseSchema": {},
701
+ "renderable": true,
702
+ "html": {
703
+ "themeRenderers": {
704
+ "bootstrap1": {
705
+ "defaultRenderer": "default",
706
+ "renderModes": [
707
+ "page"
708
+ ],
709
+ "slots": [
710
+ "main"
711
+ ],
712
+ "renderers": [
713
+ {
714
+ "id": "default",
715
+ "title": "Default Content",
716
+ "slotId": "main",
717
+ "renderModes": [
718
+ "page",
719
+ "fragment"
720
+ ]
721
+ }
722
+ ]
723
+ }
724
+ }
725
+ },
726
+ "auth": {
727
+ "required": false,
728
+ "permissions": []
729
+ },
730
+ "dependencies": [],
731
+ "chrome": {
732
+ "fullScreen": true
733
+ },
734
+ "apiContracts": [],
735
+ "demoScenarios": [],
736
+ "cacheHints": {
737
+ "ttlSeconds": 300,
738
+ "varyBy": [
739
+ "accept",
740
+ "origin",
741
+ "referer",
742
+ ":origin",
743
+ ":referer"
744
+ ]
745
+ }
746
+ }
747
+ ],
748
+ "configSchemas": [
749
+ {
750
+ "id": "hello.tenant",
751
+ "title": "Hello Tenant Config",
752
+ "description": "Tenant-scoped config for the hello example service.",
753
+ "scope": "tenant",
754
+ "jsonSchema": {
755
+ "greetingPrefix": "string",
756
+ "supportEmail": "string",
757
+ "apiKey": "string"
758
+ },
759
+ "fields": [
760
+ {
761
+ "key": "greetingPrefix",
762
+ "title": "Greeting Prefix",
763
+ "description": "Prefix shown before the hello response.",
764
+ "scope": "tenant",
765
+ "visibility": "protected",
766
+ "ownership": "plugin",
767
+ "sourceOfTruth": "plugin",
768
+ "required": false
769
+ },
770
+ {
771
+ "key": "supportEmail",
772
+ "title": "Support Email",
773
+ "description": "Support contact shown in admin tooling.",
774
+ "scope": "tenant",
775
+ "visibility": "protected",
776
+ "ownership": "mixed",
777
+ "sourceOfTruth": "bp",
778
+ "required": false
779
+ },
780
+ {
781
+ "key": "apiKey",
782
+ "title": "API Key",
783
+ "description": "Example secret field for managed service credentials.",
784
+ "scope": "tenant",
785
+ "visibility": "secret",
786
+ "ownership": "plugin",
787
+ "sourceOfTruth": "plugin",
788
+ "required": false
789
+ }
790
+ ]
791
+ },
792
+ {
793
+ "id": "hello.app",
794
+ "title": "Hello App Override",
795
+ "description": "App-specific overrides for the hello example service.",
796
+ "scope": "app",
797
+ "jsonSchema": {
798
+ "displayName": "string"
799
+ },
800
+ "fields": [
801
+ {
802
+ "key": "displayName",
803
+ "title": "Display Name",
804
+ "description": "Overrides the display name for the app context.",
805
+ "scope": "app",
806
+ "visibility": "protected",
807
+ "ownership": "mixed",
808
+ "sourceOfTruth": "bp",
809
+ "required": false
810
+ }
811
+ ]
812
+ }
813
+ ],
814
+ "permissions": [],
815
+ "adminApis": [
816
+ {
817
+ "id": "config.schema",
818
+ "title": "Config Schema",
819
+ "description": "BetterPortal-managed config schemas for this service.",
820
+ "path": "/.well-known/bp/config/schema",
821
+ "methods": [
822
+ "GET"
823
+ ],
824
+ "supportsCustomUi": false
825
+ },
826
+ {
827
+ "id": "config.values",
828
+ "title": "Config Values",
829
+ "description": "Read and write BetterPortal-managed config values.",
830
+ "path": "/.well-known/bp/config",
831
+ "methods": [
832
+ "GET",
833
+ "POST"
834
+ ],
835
+ "supportsCustomUi": false
836
+ }
837
+ ],
838
+ "webhooks": [],
839
+ "apiContracts": [],
840
+ "m2mRequests": [],
841
+ "developerResources": [],
842
+ "cacheHints": {
843
+ "metadataTtlSeconds": 1800
844
+ }
845
+ },
846
+ "routes": [
847
+ {
848
+ "viewId": "about.index",
849
+ "path": "/about",
850
+ "methods": [
851
+ "GET"
852
+ ],
853
+ "paramNames": [],
854
+ "themes": [
855
+ "bootstrap1"
856
+ ],
857
+ "hasFragments": false,
858
+ "fragments": [],
859
+ "components": []
860
+ },
861
+ {
862
+ "viewId": "delayed.index",
863
+ "path": "/delayed",
864
+ "methods": [
865
+ "GET"
866
+ ],
867
+ "paramNames": [],
868
+ "themes": [
869
+ "bootstrap1"
870
+ ],
871
+ "hasFragments": false,
872
+ "fragments": [],
873
+ "components": []
874
+ },
875
+ {
876
+ "viewId": "hello.index",
877
+ "path": "/hello",
878
+ "methods": [
879
+ "GET"
880
+ ],
881
+ "paramNames": [],
882
+ "themes": [
883
+ "bootstrap1",
884
+ "embedded"
885
+ ],
886
+ "hasFragments": true,
887
+ "fragments": [
888
+ {
889
+ "fragmentLocation": "nav",
890
+ "fragmentId": "clock",
891
+ "themes": [
892
+ "bootstrap1"
893
+ ]
894
+ },
895
+ {
896
+ "fragmentLocation": "nav",
897
+ "fragmentId": "profile",
898
+ "themes": [
899
+ "bootstrap1"
900
+ ]
901
+ }
902
+ ],
903
+ "components": [
904
+ "showcase-cards",
905
+ "showcase-data",
906
+ "showcase-elements",
907
+ "showcase-forms",
908
+ "showcase-interactive",
909
+ "showcase-overlays",
910
+ "showcase-patterns"
911
+ ]
912
+ },
913
+ {
914
+ "viewId": "landing.index",
915
+ "path": "/landing",
916
+ "methods": [
917
+ "GET"
918
+ ],
919
+ "paramNames": [],
920
+ "themes": [
921
+ "bootstrap1"
922
+ ],
923
+ "hasFragments": false,
924
+ "fragments": [],
925
+ "components": []
926
+ }
927
+ ]
928
+ }
@@ -31,7 +31,7 @@ export class Plugin extends BPService {
31
31
  definition() {
32
32
  return {
33
33
  manifest: {
34
- pluginId: "service.betterportal.hello-view",
34
+ pluginId: "org.betterportal.hello-view",
35
35
  title: "BetterPortal Hello View Example",
36
36
  description: "Example business service showing API-first view negotiation.",
37
37
  configSchemas: [
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/service-betterportal-hello-view/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/service-betterportal-hello-view/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "pluginName": "service-betterportal-hello-view",
3
3
  "events": {},
4
- "version": "10.1.32",
4
+ "version": "10.1.34",
5
5
  "configSchema": {
6
6
  "anyvaliVersion": "1.0",
7
7
  "schemaVersion": "1.1",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "service-betterportal-hello-view",
3
3
  "name": "service-betterportal-hello-view",
4
- "version": "10.1.32",
4
+ "version": "10.1.34",
5
5
  "description": "Hello view example service for BetterPortal v10",
6
6
  "category": "service",
7
7
  "tags": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@betterportal/hello-view",
3
- "version": "10.1.32",
3
+ "version": "10.1.34",
4
4
  "description": "BetterPortal v10 example service plugin for Node.js",
5
5
  "main": "lib/index.js",
6
6
  "types": "src/index.ts",
@@ -12,7 +12,11 @@
12
12
  "dev": "bsb-plugin-cli dev",
13
13
  "test": "bsb-plugin-cli test",
14
14
  "prepublishOnly": "npm run build",
15
- "publish:client": "bsb-client-cli publish"
15
+ "publish:client": "bsb-client-cli publish",
16
+ "bp:gen": "bp run gen",
17
+ "bp:types": "bp run types",
18
+ "bp:contract": "bp run contract",
19
+ "publish:bp": "bp publish"
16
20
  },
17
21
  "keywords": [
18
22
  "betterportal",
@@ -30,8 +34,8 @@
30
34
  "typescript": "^6.0.3"
31
35
  },
32
36
  "dependencies": {
33
- "@betterportal/framework": "10.1.32",
34
- "@betterportal/plugin-bsb": "10.1.32",
37
+ "@betterportal/framework": "10.1.34",
38
+ "@betterportal/plugin-bsb": "10.1.34",
35
39
  "@bsb/base": "^9.6.41",
36
40
  "anyvali": "^1.0.6",
37
41
  "jsx-htmx": "4.0.0-beta4"
@@ -45,7 +49,13 @@
45
49
  "bsb": {
46
50
  "orgId": "betterportal",
47
51
  "hooks": {
48
- "afterSchemas": "bp-codegen"
52
+ "afterSchemas": [
53
+ "bp:gen",
54
+ "bp:types"
55
+ ],
56
+ "afterBuild": [
57
+ "bp:contract"
58
+ ]
49
59
  }
50
60
  },
51
61
  "betterportal": {