protobuf-platform 1.2.628 → 1.2.629
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/AGENTS.md +7 -4
- package/game/game.proto +71 -0
- package/game/game_grpc_pb.js +154 -0
- package/game/game_pb.js +2974 -0
- package/package.json +1 -1
package/AGENTS.md
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
# protobuf-platform: contract repository
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Read [Project Rules](../../platform-rules/PROJECT_RULES.md) for the canonical shared execution policy; this file specializes the protobuf commands.
|
|
4
|
+
|
|
5
|
+
- Repository directory: `protobuf`; npm package: `protobuf-platform`. Work locally on `main`, never switch to local `staging`. The Project Rules' final push command targets `origin HEAD:staging` without changing this local branch; do not execute it without explicit push authorization. This is a contract package, not a running service; it owns no database, queues or migrations.
|
|
4
6
|
- Inspect this repository first for every business master task. Reuse existing contracts when sufficient and record `PROTOBUF_CHANGE_NOT_REQUIRED` when no change is needed.
|
|
5
|
-
- A new/material contract decision needs
|
|
7
|
+
- A new/material contract decision or breaking change needs explicit approval of that exact change; additive approval never authorizes breaking compatibility. If approval is missing, report `PROTOBUF_CHANGE_APPROVAL_REQUIRED` with the exact contract, insufficiency, compatibility and affected repositories. Contract work precedes dependent implementation.
|
|
6
8
|
- Sources are domain `*.proto` files; `update_protobuf.sh` writes colocated `*_pb.js` and `*_grpc_pb.js`; `index.js` exports domain bindings.
|
|
7
9
|
- npm with `package-lock.json`; generated output is CommonJS. Run `npm run proto:build`, inspect generated diff, and review old/new producer-consumer compatibility (field tags/types, optional/default behavior, enum values, RPC methods and exports). Fix Critical/Medium findings before committing.
|
|
8
10
|
- The build script uses `~/node-x64/bin/npm`; `proto:build:x64` uses `~/node-v22.21.1-darwin-x64/bin/npm`. Verify the selected local runtime and grpc-tools binary. `proto:install:x64` deletes node_modules AND the lockfile: it is a recovery script, not ordinary dependency installation.
|
|
9
11
|
- For a contract release, prepare one version bump with `npm version patch --no-git-tag-version` (or the already-approved version), verify package.json and package-lock.json agree, review generated/package contents, and create a local atomic commit including version files. Avoid a second bump if already prepared.
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
+
- For an explicitly approved additive change, run `npm publish` after validation and the release commit, using existing authorized registry credentials. Do not run `npm run publish-update` after preparing the version: it would bump again. On an ambiguous result, inspect the registry before retrying; never blindly republish or bump.
|
|
13
|
+
- Local npm machine authentication was verified from this repository against `https://registry.npmjs.org/` on 2026-09-15; identity and package metadata resolved. Use the existing setup without requesting OTP or a manual publication handoff. This read-only check did not exercise publication permissions. If auth actually fails, diagnose the exact error and request only the minimum action needed to restore machine authentication; never expose a token.
|
|
14
|
+
- Verify the exact release with `npm view protobuf-platform@<release-version> version`, then run only `sh sync_internal_libs.sh` directly in each affected service repository under the Project Rules. Verify installed/dependency/lockfile state and the expected contract, then continue the same master task automatically without a publication acknowledgement or manual sync handoff. Request human action only for genuinely unavailable authentication or permissions; never expose credentials.
|
|
12
15
|
- package.json has no lint command; its test script is a failing placeholder. For documentation-only edits use diff/link review; generation is required when contracts change, not for editing these instructions.
|
package/game/game.proto
CHANGED
|
@@ -3,6 +3,13 @@ syntax = "proto3";
|
|
|
3
3
|
package game;
|
|
4
4
|
|
|
5
5
|
service Game {
|
|
6
|
+
rpc createSingleMultiScope(stream MultiScopeRequest) returns (MultiScopeResponse);
|
|
7
|
+
rpc readSingleMultiScope(GetMultiScopeRequest) returns (MultiScopeResponse);
|
|
8
|
+
rpc updateSingleMultiScope(stream MultiScopeRequest) returns (MultiScopeResponse);
|
|
9
|
+
rpc deleteSingleMultiScope(GetMultiScopeRequest) returns (MultiScopeStatusResponse);
|
|
10
|
+
rpc readListMultiScopes(MultiScopeListRequest) returns (MultiScopeItemsResponse);
|
|
11
|
+
rpc addMultiScopeMembers(MultiScopeMembersRequest) returns (MultiScopeStatusResponse);
|
|
12
|
+
rpc removeMultiScopeMembers(MultiScopeMembersRequest) returns (MultiScopeStatusResponse);
|
|
6
13
|
//Tech
|
|
7
14
|
rpc checkConnection(PingRequest) returns (PongResponse);
|
|
8
15
|
//Common
|
|
@@ -969,6 +976,70 @@ message GamesIds {
|
|
|
969
976
|
message GamePoorItemsResponse {
|
|
970
977
|
repeated GameItem items = 1;
|
|
971
978
|
}
|
|
979
|
+
/** Global structural composition. Visibility belongs to explicit CMS GEO placements. */
|
|
980
|
+
message MultiScopeMember {
|
|
981
|
+
int32 id = 1;
|
|
982
|
+
string title = 2;
|
|
983
|
+
string slug = 3;
|
|
984
|
+
bool is_active = 4;
|
|
985
|
+
optional string image = 5;
|
|
986
|
+
optional string image_cdn = 6;
|
|
987
|
+
optional string icon = 7;
|
|
988
|
+
optional string icon_cdn = 8;
|
|
989
|
+
}
|
|
990
|
+
message MultiScopeItem {
|
|
991
|
+
int32 id = 1;
|
|
992
|
+
string title = 2;
|
|
993
|
+
string slug = 3;
|
|
994
|
+
bool is_active = 4;
|
|
995
|
+
optional string image = 5;
|
|
996
|
+
optional string image_cdn = 6;
|
|
997
|
+
optional string icon = 7;
|
|
998
|
+
optional string icon_cdn = 8;
|
|
999
|
+
string created_at = 9;
|
|
1000
|
+
string updated_at = 10;
|
|
1001
|
+
repeated MultiScopeMember collections = 11;
|
|
1002
|
+
repeated MultiScopeMember tags = 12;
|
|
1003
|
+
}
|
|
1004
|
+
message MultiScopeItemRequest {
|
|
1005
|
+
optional int32 id = 1;
|
|
1006
|
+
optional string title = 2;
|
|
1007
|
+
optional string slug = 3;
|
|
1008
|
+
optional bool is_active = 4;
|
|
1009
|
+
}
|
|
1010
|
+
message MultiScopeRequest {
|
|
1011
|
+
oneof request {
|
|
1012
|
+
MultiScopeItemRequest multi_scope_data = 1;
|
|
1013
|
+
File file = 2;
|
|
1014
|
+
EntityFileMetadata file_metadata = 3;
|
|
1015
|
+
}
|
|
1016
|
+
}
|
|
1017
|
+
message GetMultiScopeRequest {
|
|
1018
|
+
int32 id = 1;
|
|
1019
|
+
}
|
|
1020
|
+
message MultiScopeListRequest {
|
|
1021
|
+
int32 limit = 1;
|
|
1022
|
+
int32 offset = 2;
|
|
1023
|
+
optional string title = 3;
|
|
1024
|
+
optional bool is_active = 4;
|
|
1025
|
+
repeated int32 ids = 5;
|
|
1026
|
+
}
|
|
1027
|
+
message MultiScopeMembersRequest {
|
|
1028
|
+
int32 id = 1;
|
|
1029
|
+
repeated int32 collection_ids = 2;
|
|
1030
|
+
repeated int32 tag_ids = 3;
|
|
1031
|
+
}
|
|
1032
|
+
message MultiScopeResponse {
|
|
1033
|
+
MultiScopeItem data = 1;
|
|
1034
|
+
}
|
|
1035
|
+
message MultiScopeItemsResponse {
|
|
1036
|
+
repeated MultiScopeItem items = 1;
|
|
1037
|
+
int32 total_pages = 2;
|
|
1038
|
+
int32 total_items = 3;
|
|
1039
|
+
}
|
|
1040
|
+
message MultiScopeStatusResponse {
|
|
1041
|
+
string status = 1;
|
|
1042
|
+
}
|
|
972
1043
|
message ScopeRequest {
|
|
973
1044
|
string data = 1;
|
|
974
1045
|
optional string locale = 2;
|
package/game/game_grpc_pb.js
CHANGED
|
@@ -697,6 +697,17 @@ function deserialize_game_GetGameSnapshotsByIdsRequest(buffer_arg) {
|
|
|
697
697
|
return game_pb.GetGameSnapshotsByIdsRequest.deserializeBinary(new Uint8Array(buffer_arg));
|
|
698
698
|
}
|
|
699
699
|
|
|
700
|
+
function serialize_game_GetMultiScopeRequest(arg) {
|
|
701
|
+
if (!(arg instanceof game_pb.GetMultiScopeRequest)) {
|
|
702
|
+
throw new Error('Expected argument of type game.GetMultiScopeRequest');
|
|
703
|
+
}
|
|
704
|
+
return Buffer.from(arg.serializeBinary());
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
function deserialize_game_GetMultiScopeRequest(buffer_arg) {
|
|
708
|
+
return game_pb.GetMultiScopeRequest.deserializeBinary(new Uint8Array(buffer_arg));
|
|
709
|
+
}
|
|
710
|
+
|
|
700
711
|
function serialize_game_GetProviderRequest(arg) {
|
|
701
712
|
if (!(arg instanceof game_pb.GetProviderRequest)) {
|
|
702
713
|
throw new Error('Expected argument of type game.GetProviderRequest');
|
|
@@ -862,6 +873,72 @@ function deserialize_game_MerchantFreeSpinLimitsResponse(buffer_arg) {
|
|
|
862
873
|
return game_pb.MerchantFreeSpinLimitsResponse.deserializeBinary(new Uint8Array(buffer_arg));
|
|
863
874
|
}
|
|
864
875
|
|
|
876
|
+
function serialize_game_MultiScopeItemsResponse(arg) {
|
|
877
|
+
if (!(arg instanceof game_pb.MultiScopeItemsResponse)) {
|
|
878
|
+
throw new Error('Expected argument of type game.MultiScopeItemsResponse');
|
|
879
|
+
}
|
|
880
|
+
return Buffer.from(arg.serializeBinary());
|
|
881
|
+
}
|
|
882
|
+
|
|
883
|
+
function deserialize_game_MultiScopeItemsResponse(buffer_arg) {
|
|
884
|
+
return game_pb.MultiScopeItemsResponse.deserializeBinary(new Uint8Array(buffer_arg));
|
|
885
|
+
}
|
|
886
|
+
|
|
887
|
+
function serialize_game_MultiScopeListRequest(arg) {
|
|
888
|
+
if (!(arg instanceof game_pb.MultiScopeListRequest)) {
|
|
889
|
+
throw new Error('Expected argument of type game.MultiScopeListRequest');
|
|
890
|
+
}
|
|
891
|
+
return Buffer.from(arg.serializeBinary());
|
|
892
|
+
}
|
|
893
|
+
|
|
894
|
+
function deserialize_game_MultiScopeListRequest(buffer_arg) {
|
|
895
|
+
return game_pb.MultiScopeListRequest.deserializeBinary(new Uint8Array(buffer_arg));
|
|
896
|
+
}
|
|
897
|
+
|
|
898
|
+
function serialize_game_MultiScopeMembersRequest(arg) {
|
|
899
|
+
if (!(arg instanceof game_pb.MultiScopeMembersRequest)) {
|
|
900
|
+
throw new Error('Expected argument of type game.MultiScopeMembersRequest');
|
|
901
|
+
}
|
|
902
|
+
return Buffer.from(arg.serializeBinary());
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
function deserialize_game_MultiScopeMembersRequest(buffer_arg) {
|
|
906
|
+
return game_pb.MultiScopeMembersRequest.deserializeBinary(new Uint8Array(buffer_arg));
|
|
907
|
+
}
|
|
908
|
+
|
|
909
|
+
function serialize_game_MultiScopeRequest(arg) {
|
|
910
|
+
if (!(arg instanceof game_pb.MultiScopeRequest)) {
|
|
911
|
+
throw new Error('Expected argument of type game.MultiScopeRequest');
|
|
912
|
+
}
|
|
913
|
+
return Buffer.from(arg.serializeBinary());
|
|
914
|
+
}
|
|
915
|
+
|
|
916
|
+
function deserialize_game_MultiScopeRequest(buffer_arg) {
|
|
917
|
+
return game_pb.MultiScopeRequest.deserializeBinary(new Uint8Array(buffer_arg));
|
|
918
|
+
}
|
|
919
|
+
|
|
920
|
+
function serialize_game_MultiScopeResponse(arg) {
|
|
921
|
+
if (!(arg instanceof game_pb.MultiScopeResponse)) {
|
|
922
|
+
throw new Error('Expected argument of type game.MultiScopeResponse');
|
|
923
|
+
}
|
|
924
|
+
return Buffer.from(arg.serializeBinary());
|
|
925
|
+
}
|
|
926
|
+
|
|
927
|
+
function deserialize_game_MultiScopeResponse(buffer_arg) {
|
|
928
|
+
return game_pb.MultiScopeResponse.deserializeBinary(new Uint8Array(buffer_arg));
|
|
929
|
+
}
|
|
930
|
+
|
|
931
|
+
function serialize_game_MultiScopeStatusResponse(arg) {
|
|
932
|
+
if (!(arg instanceof game_pb.MultiScopeStatusResponse)) {
|
|
933
|
+
throw new Error('Expected argument of type game.MultiScopeStatusResponse');
|
|
934
|
+
}
|
|
935
|
+
return Buffer.from(arg.serializeBinary());
|
|
936
|
+
}
|
|
937
|
+
|
|
938
|
+
function deserialize_game_MultiScopeStatusResponse(buffer_arg) {
|
|
939
|
+
return game_pb.MultiScopeStatusResponse.deserializeBinary(new Uint8Array(buffer_arg));
|
|
940
|
+
}
|
|
941
|
+
|
|
865
942
|
function serialize_game_NormalizeDuplicateProvidersRequest(arg) {
|
|
866
943
|
if (!(arg instanceof game_pb.NormalizeDuplicateProvidersRequest)) {
|
|
867
944
|
throw new Error('Expected argument of type game.NormalizeDuplicateProvidersRequest');
|
|
@@ -1480,6 +1557,83 @@ function deserialize_game_WagerSearchRequest(buffer_arg) {
|
|
|
1480
1557
|
|
|
1481
1558
|
|
|
1482
1559
|
var GameService = exports.GameService = {
|
|
1560
|
+
createSingleMultiScope: {
|
|
1561
|
+
path: '/game.Game/createSingleMultiScope',
|
|
1562
|
+
requestStream: true,
|
|
1563
|
+
responseStream: false,
|
|
1564
|
+
requestType: game_pb.MultiScopeRequest,
|
|
1565
|
+
responseType: game_pb.MultiScopeResponse,
|
|
1566
|
+
requestSerialize: serialize_game_MultiScopeRequest,
|
|
1567
|
+
requestDeserialize: deserialize_game_MultiScopeRequest,
|
|
1568
|
+
responseSerialize: serialize_game_MultiScopeResponse,
|
|
1569
|
+
responseDeserialize: deserialize_game_MultiScopeResponse,
|
|
1570
|
+
},
|
|
1571
|
+
readSingleMultiScope: {
|
|
1572
|
+
path: '/game.Game/readSingleMultiScope',
|
|
1573
|
+
requestStream: false,
|
|
1574
|
+
responseStream: false,
|
|
1575
|
+
requestType: game_pb.GetMultiScopeRequest,
|
|
1576
|
+
responseType: game_pb.MultiScopeResponse,
|
|
1577
|
+
requestSerialize: serialize_game_GetMultiScopeRequest,
|
|
1578
|
+
requestDeserialize: deserialize_game_GetMultiScopeRequest,
|
|
1579
|
+
responseSerialize: serialize_game_MultiScopeResponse,
|
|
1580
|
+
responseDeserialize: deserialize_game_MultiScopeResponse,
|
|
1581
|
+
},
|
|
1582
|
+
updateSingleMultiScope: {
|
|
1583
|
+
path: '/game.Game/updateSingleMultiScope',
|
|
1584
|
+
requestStream: true,
|
|
1585
|
+
responseStream: false,
|
|
1586
|
+
requestType: game_pb.MultiScopeRequest,
|
|
1587
|
+
responseType: game_pb.MultiScopeResponse,
|
|
1588
|
+
requestSerialize: serialize_game_MultiScopeRequest,
|
|
1589
|
+
requestDeserialize: deserialize_game_MultiScopeRequest,
|
|
1590
|
+
responseSerialize: serialize_game_MultiScopeResponse,
|
|
1591
|
+
responseDeserialize: deserialize_game_MultiScopeResponse,
|
|
1592
|
+
},
|
|
1593
|
+
deleteSingleMultiScope: {
|
|
1594
|
+
path: '/game.Game/deleteSingleMultiScope',
|
|
1595
|
+
requestStream: false,
|
|
1596
|
+
responseStream: false,
|
|
1597
|
+
requestType: game_pb.GetMultiScopeRequest,
|
|
1598
|
+
responseType: game_pb.MultiScopeStatusResponse,
|
|
1599
|
+
requestSerialize: serialize_game_GetMultiScopeRequest,
|
|
1600
|
+
requestDeserialize: deserialize_game_GetMultiScopeRequest,
|
|
1601
|
+
responseSerialize: serialize_game_MultiScopeStatusResponse,
|
|
1602
|
+
responseDeserialize: deserialize_game_MultiScopeStatusResponse,
|
|
1603
|
+
},
|
|
1604
|
+
readListMultiScopes: {
|
|
1605
|
+
path: '/game.Game/readListMultiScopes',
|
|
1606
|
+
requestStream: false,
|
|
1607
|
+
responseStream: false,
|
|
1608
|
+
requestType: game_pb.MultiScopeListRequest,
|
|
1609
|
+
responseType: game_pb.MultiScopeItemsResponse,
|
|
1610
|
+
requestSerialize: serialize_game_MultiScopeListRequest,
|
|
1611
|
+
requestDeserialize: deserialize_game_MultiScopeListRequest,
|
|
1612
|
+
responseSerialize: serialize_game_MultiScopeItemsResponse,
|
|
1613
|
+
responseDeserialize: deserialize_game_MultiScopeItemsResponse,
|
|
1614
|
+
},
|
|
1615
|
+
addMultiScopeMembers: {
|
|
1616
|
+
path: '/game.Game/addMultiScopeMembers',
|
|
1617
|
+
requestStream: false,
|
|
1618
|
+
responseStream: false,
|
|
1619
|
+
requestType: game_pb.MultiScopeMembersRequest,
|
|
1620
|
+
responseType: game_pb.MultiScopeStatusResponse,
|
|
1621
|
+
requestSerialize: serialize_game_MultiScopeMembersRequest,
|
|
1622
|
+
requestDeserialize: deserialize_game_MultiScopeMembersRequest,
|
|
1623
|
+
responseSerialize: serialize_game_MultiScopeStatusResponse,
|
|
1624
|
+
responseDeserialize: deserialize_game_MultiScopeStatusResponse,
|
|
1625
|
+
},
|
|
1626
|
+
removeMultiScopeMembers: {
|
|
1627
|
+
path: '/game.Game/removeMultiScopeMembers',
|
|
1628
|
+
requestStream: false,
|
|
1629
|
+
responseStream: false,
|
|
1630
|
+
requestType: game_pb.MultiScopeMembersRequest,
|
|
1631
|
+
responseType: game_pb.MultiScopeStatusResponse,
|
|
1632
|
+
requestSerialize: serialize_game_MultiScopeMembersRequest,
|
|
1633
|
+
requestDeserialize: deserialize_game_MultiScopeMembersRequest,
|
|
1634
|
+
responseSerialize: serialize_game_MultiScopeStatusResponse,
|
|
1635
|
+
responseDeserialize: deserialize_game_MultiScopeStatusResponse,
|
|
1636
|
+
},
|
|
1483
1637
|
// Tech
|
|
1484
1638
|
checkConnection: {
|
|
1485
1639
|
path: '/game.Game/checkConnection',
|