skir-cc-gen 0.0.1
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/README.md +335 -0
- package/client/BUILD.bazel +33 -0
- package/client/MODULE.bazel +11 -0
- package/client/MODULE.bazel.lock +225 -0
- package/client/skir.cc +2687 -0
- package/client/skir.h +2946 -0
- package/client/skir.testing.h +282 -0
- package/dist/enum_field.d.ts +33 -0
- package/dist/enum_field.d.ts.map +1 -0
- package/dist/enum_field.js +85 -0
- package/dist/enum_field.js.map +1 -0
- package/dist/enum_variant.d.ts +31 -0
- package/dist/enum_variant.d.ts.map +1 -0
- package/dist/enum_variant.js +85 -0
- package/dist/enum_variant.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1627 -0
- package/dist/index.js.map +1 -0
- package/dist/keywords.d.ts +2 -0
- package/dist/keywords.d.ts.map +1 -0
- package/dist/keywords.js +101 -0
- package/dist/keywords.js.map +1 -0
- package/dist/recursivity_resolver.d.ts +58 -0
- package/dist/recursivity_resolver.d.ts.map +1 -0
- package/dist/recursivity_resolver.js +142 -0
- package/dist/recursivity_resolver.js.map +1 -0
- package/dist/type_speller.d.ts +17 -0
- package/dist/type_speller.d.ts.map +1 -0
- package/dist/type_speller.js +87 -0
- package/dist/type_speller.js.map +1 -0
- package/package.json +55 -0
- package/src/enum_variant.ts +126 -0
- package/src/index.ts +2089 -0
- package/src/keywords.ts +100 -0
- package/src/recursivity_resolver.ts +161 -0
- package/src/type_speller.ts +100 -0
package/README.md
ADDED
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
[](https://www.npmjs.com/package/skir-cc-gen)
|
|
2
|
+
[](https://github.com/gepheum/skir-cc-gen/actions)
|
|
3
|
+
|
|
4
|
+
# Skir's C++ Code Generator
|
|
5
|
+
|
|
6
|
+
Official plugin for generating C++ code from [.skir](https://github.com/gepheum/skir) files.
|
|
7
|
+
|
|
8
|
+
Targets C++17 and higher.
|
|
9
|
+
|
|
10
|
+
## Installation
|
|
11
|
+
|
|
12
|
+
From your project's root directory, run `npm i --save-dev skir-cc-gen`.
|
|
13
|
+
|
|
14
|
+
In your `skir.yml` file, add the following snippet under `generators`:
|
|
15
|
+
```yaml
|
|
16
|
+
- mod: skir-cc-gen
|
|
17
|
+
config:
|
|
18
|
+
writeGoogleTestHeaders: true
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
The `npm run skir` command will now generate C++ code within the `skirout` directory.
|
|
22
|
+
|
|
23
|
+
For more information, see this C++ project [example](https://github.com/gepheum/skir-cc-example).
|
|
24
|
+
|
|
25
|
+
## C++ generated code guide
|
|
26
|
+
|
|
27
|
+
The examples below are for the code generated from [this](https://github.com/gepheum/skir-cc-example/blob/main/skir_src/user.skir) .skir file.
|
|
28
|
+
|
|
29
|
+
### Referring to generated symbols
|
|
30
|
+
|
|
31
|
+
Every generated symbol lives in a namespace called `skirout_${path}`,
|
|
32
|
+
where `${path}` is the path to the .skir file relative from the root of the
|
|
33
|
+
skir source directory, with the ".skir" extension removed, and slashes
|
|
34
|
+
replaced with underscores.
|
|
35
|
+
|
|
36
|
+
```c++
|
|
37
|
+
#include "skirout/user.h"
|
|
38
|
+
|
|
39
|
+
using ::skirout_user::User;
|
|
40
|
+
using ::skirout_user::UserRegistry;
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Constructing structs
|
|
44
|
+
|
|
45
|
+
```c++
|
|
46
|
+
// You can construct a struct like this:
|
|
47
|
+
User john;
|
|
48
|
+
john.user_id = 42;
|
|
49
|
+
john.name = "John Doe";
|
|
50
|
+
|
|
51
|
+
// Or you can use the designated initialized syntax:
|
|
52
|
+
User jane = {
|
|
53
|
+
// Keep fields in alphabetical order
|
|
54
|
+
.name = "Jane Doe",
|
|
55
|
+
.pets = {{
|
|
56
|
+
.name = "Fluffy",
|
|
57
|
+
.picture = "cat",
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
.name = "Rex",
|
|
61
|
+
.picture = "dog",
|
|
62
|
+
}},
|
|
63
|
+
.subscription_status = skirout::kPremium,
|
|
64
|
+
.user_id = 43,
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
// ${StructName}::whole forces you to initialize all the fields of the struct.
|
|
68
|
+
// You will get a compile-time error if you miss one.
|
|
69
|
+
User lyla = User::whole{
|
|
70
|
+
.name = "Lyla Doe",
|
|
71
|
+
.pets =
|
|
72
|
+
{
|
|
73
|
+
User::Pet::whole{
|
|
74
|
+
.height_in_meters = 0.05f,
|
|
75
|
+
.name = "Tiny",
|
|
76
|
+
.picture = "🐁",
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
.quote = "This is Lyla's world, you just live in it",
|
|
80
|
+
.subscription_status = skirout::kFree,
|
|
81
|
+
.user_id = 44,
|
|
82
|
+
};
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Constructing enums
|
|
86
|
+
|
|
87
|
+
```c++
|
|
88
|
+
|
|
89
|
+
// Use skirout::${kFieldName} for constant variants.
|
|
90
|
+
User::SubscriptionStatus john_status = skirout::kFree;
|
|
91
|
+
User::SubscriptionStatus jane_status = skirout::kPremium;
|
|
92
|
+
|
|
93
|
+
// Compilation error: MONDAY is not a field of the SubscriptionStatus enum.
|
|
94
|
+
// User::SubscriptionStatus sara_status = skirout::kMonday;
|
|
95
|
+
|
|
96
|
+
// Use skirout::wrap_${field_name} for data variants.
|
|
97
|
+
User::SubscriptionStatus jade_status =
|
|
98
|
+
skirout::wrap_trial_start_time(absl::FromUnixMillis(1743682787000));
|
|
99
|
+
|
|
100
|
+
// The ${kFieldName} and wrap_${field_name} symbols are also defined in the
|
|
101
|
+
// generated class.
|
|
102
|
+
User::SubscriptionStatus lara_status = User::SubscriptionStatus::kFree;
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Conditions on enums
|
|
106
|
+
|
|
107
|
+
```c++
|
|
108
|
+
if (john_status == skirout::kFree) {
|
|
109
|
+
std::cout << "John, would you like to upgrade to premium?\n";
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// Call is_${field_name}() to check if the enum holds a data variant.
|
|
113
|
+
if (jade_status.is_trial_start_time()) {
|
|
114
|
+
// as_${field_name}() returns the value held by the enum
|
|
115
|
+
const absl::Time trial_start_time = jade_status.as_trial_start_time();
|
|
116
|
+
std::cout << "Jade's trial started on " << trial_start_time << "\n";
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// One way to do an exhaustive switch on an enum.
|
|
120
|
+
switch (lara_status.kind()) {
|
|
121
|
+
case User::SubscriptionStatus::kind_type::kUnknown:
|
|
122
|
+
// UNKNOWN is the default value for an uninitialized SubscriptionStatus.
|
|
123
|
+
// ...
|
|
124
|
+
break;
|
|
125
|
+
case User::SubscriptionStatus::kind_type::kFreeConst:
|
|
126
|
+
// ...
|
|
127
|
+
break;
|
|
128
|
+
case User::SubscriptionStatus::kind_type::kPremiumConst:
|
|
129
|
+
// ...
|
|
130
|
+
break;
|
|
131
|
+
case User::SubscriptionStatus::kind_type::kTrialStartTimeWrapper: {
|
|
132
|
+
const absl::Time& trial_start_time = lara_status.as_trial_start_time();
|
|
133
|
+
std::cout << "Lara's trial started on " << trial_start_time << "\n";
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// Another way to do an exhaustive switch using the visitor pattern.
|
|
138
|
+
struct Visitor {
|
|
139
|
+
void operator()(skirout::k_unknown) const {
|
|
140
|
+
std::cout << "Lara's subscription status is UNKNOWN\n";
|
|
141
|
+
}
|
|
142
|
+
void operator()(skirout::k_free) const {
|
|
143
|
+
std::cout << "Lara's subscription status is FREE\n";
|
|
144
|
+
}
|
|
145
|
+
void operator()(skirout::k_premium) const {
|
|
146
|
+
std::cout << "Lara's subscription status is PREMIUM\n";
|
|
147
|
+
}
|
|
148
|
+
void operator()(
|
|
149
|
+
User::SubscriptionStatus::wrap_trial_start_time_type& w) const {
|
|
150
|
+
const absl::Time& trial_start_time = w.value;
|
|
151
|
+
std::cout << "Lara's trial started on " << trial_start_time << "\n";
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
lara_status.visit(Visitor());
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Serialization
|
|
158
|
+
|
|
159
|
+
Use `ToDenseJson`, `ToReadableJson` or `ToBytes` to serialize a skir value.
|
|
160
|
+
|
|
161
|
+
```c++
|
|
162
|
+
// Serialize a skir value to JSON with ToDenseJson or ToReadableJson.
|
|
163
|
+
std::cout << skir::ToDenseJson(john) << "\n";
|
|
164
|
+
// [42,"John Doe"]
|
|
165
|
+
|
|
166
|
+
std::cout << skir::ToReadableJson(john) << "\n";
|
|
167
|
+
// {
|
|
168
|
+
// "user_id": 42,
|
|
169
|
+
// "name": "John Doe"
|
|
170
|
+
// }
|
|
171
|
+
|
|
172
|
+
// The dense flavor is the flavor you should pick if you intend to
|
|
173
|
+
// deserialize the value in the future. Skir allows fields to be renamed, and
|
|
174
|
+
// because fields names are not part of the dense JSON, renaming a field does
|
|
175
|
+
// not prevent you from deserializing the value.
|
|
176
|
+
// You should pick the readable flavor mostly for debugging purposes.
|
|
177
|
+
|
|
178
|
+
// The binary format is not human readable, but it is a bit more compact than
|
|
179
|
+
// JSON, and serialization/deserialization can be a bit faster.
|
|
180
|
+
// Only use it when this small performance gain is likely to matter, which
|
|
181
|
+
// should be rare.
|
|
182
|
+
std::cout << skir::ToBytes(john).as_string() << "\n";
|
|
183
|
+
// skir�+Jane Doe����Fluffy�cat��Rex�dog
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Deserialization
|
|
187
|
+
|
|
188
|
+
Use `Parse` to deserialize a skir value from JSON or binary format.
|
|
189
|
+
|
|
190
|
+
```c++
|
|
191
|
+
absl::StatusOr<User> maybe_john = skir::Parse<User>(skir::ToDenseJson(john));
|
|
192
|
+
assert(maybe_john.ok() && *maybe_john == john);
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Keyed arrays
|
|
196
|
+
|
|
197
|
+
A `keyed_items<T, get_key>` is a container that stores items of type T
|
|
198
|
+
and allows for fast lookups by key using a hash table.
|
|
199
|
+
|
|
200
|
+
```c++
|
|
201
|
+
UserRegistry user_registry;
|
|
202
|
+
skir::keyed_items<User, skirout::get_user_id<>>& users = user_registry.users;
|
|
203
|
+
users.push_back(john);
|
|
204
|
+
users.push_back(jane);
|
|
205
|
+
users.push_back(lyla);
|
|
206
|
+
|
|
207
|
+
assert(users.size() == 3);
|
|
208
|
+
assert(users[0] == john);
|
|
209
|
+
|
|
210
|
+
const User* maybe_jane = users.find_or_null(43);
|
|
211
|
+
assert(maybe_jane != nullptr && *maybe_jane == jane);
|
|
212
|
+
|
|
213
|
+
assert(users.find_or_default(44).name == "Lyla Doe");
|
|
214
|
+
assert(users.find_or_default(45).name == "");
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### Equality and hashing
|
|
218
|
+
|
|
219
|
+
Skir structs and enums are equality comparable and hashable.
|
|
220
|
+
|
|
221
|
+
```c++
|
|
222
|
+
absl::flat_hash_set<User> user_set;
|
|
223
|
+
user_set.insert(john);
|
|
224
|
+
user_set.insert(jane);
|
|
225
|
+
user_set.insert(jane);
|
|
226
|
+
user_set.insert(lyla);
|
|
227
|
+
|
|
228
|
+
assert(user_set.size() == 3);
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### Constants
|
|
232
|
+
|
|
233
|
+
```c++
|
|
234
|
+
const User& tarzan = skirout_user::k_tarzan();
|
|
235
|
+
assert(tarzan.name == "Tarzan");
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### Skir services
|
|
239
|
+
|
|
240
|
+
#### Starting a skir service on an HTTP server
|
|
241
|
+
|
|
242
|
+
Full example [here](https://github.com/gepheum/skir-cc-example/blob/main/service_start.cc).
|
|
243
|
+
|
|
244
|
+
#### Sending RPCs to a skir service
|
|
245
|
+
|
|
246
|
+
Full example [here](https://github.com/gepheum/skir-cc-example/blob/main/service_client.cc).
|
|
247
|
+
|
|
248
|
+
### Dynamic reflection
|
|
249
|
+
|
|
250
|
+
```c++
|
|
251
|
+
using ::skir::reflection::GetTypeDescriptor;
|
|
252
|
+
using ::skir::reflection::TypeDescriptor;
|
|
253
|
+
|
|
254
|
+
// A TypeDescriptor describes a skir type. It contains the definition of all
|
|
255
|
+
// the structs and enums referenced from the type.
|
|
256
|
+
const TypeDescriptor& user_descriptor = GetTypeDescriptor<User>();
|
|
257
|
+
|
|
258
|
+
// TypeDescriptor can be serialized/deserialized to/from JSON.
|
|
259
|
+
|
|
260
|
+
absl::StatusOr<TypeDescriptor> reserialized_type_descriptor =
|
|
261
|
+
TypeDescriptor::FromJson(user_descriptor.AsJson());
|
|
262
|
+
assert(reserialized_type_descriptor.ok());
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Static reflection
|
|
266
|
+
|
|
267
|
+
Static reflection allows you to inspect and modify values of generated
|
|
268
|
+
skir types in a typesafe maneer.
|
|
269
|
+
|
|
270
|
+
See [string_capitalizer.h](https://github.com/gepheum/skir-cc-example/blob/main/string_capitalizer.h).
|
|
271
|
+
|
|
272
|
+
```c++
|
|
273
|
+
User tarzan_copy = skirout_user::k_tarzan();
|
|
274
|
+
// CapitalizeStrings recursively capitalizes all the strings found within a
|
|
275
|
+
// skir value.
|
|
276
|
+
CapitalizeStrings(tarzan_copy);
|
|
277
|
+
|
|
278
|
+
std::cout << tarzan_copy << "\n";
|
|
279
|
+
// {
|
|
280
|
+
// .user_id: 123,
|
|
281
|
+
// .name: "TARZAN",
|
|
282
|
+
// .quote: "AAAAAAAAAAYAAAAAAAAAAYAAAAAAAAAA",
|
|
283
|
+
// .pets: {
|
|
284
|
+
// {
|
|
285
|
+
// .name: "CHEETA",
|
|
286
|
+
// .height_in_meters: 1.67,
|
|
287
|
+
// .picture: "🐒",
|
|
288
|
+
// },
|
|
289
|
+
// },
|
|
290
|
+
// .subscription_status: ::skirout::wrap_trial_start_time(absl::FromUnixMillis(1743592409000 /* 2025-04-02T11:13:29+00:00 */)),
|
|
291
|
+
// }
|
|
292
|
+
|
|
293
|
+
// ...
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
### Writing unit tests with GoogleTest
|
|
297
|
+
|
|
298
|
+
Full example [here](https://github.com/gepheum/skir-cc-example/blob/main/example.test.cc).
|
|
299
|
+
|
|
300
|
+
#### Struct matchers
|
|
301
|
+
|
|
302
|
+
```c++
|
|
303
|
+
const User john = {
|
|
304
|
+
.name = "John Doe",
|
|
305
|
+
.pets =
|
|
306
|
+
{
|
|
307
|
+
{.height_in_meters = 1.67, .name = "Cheeta", .picture = "🐒"},
|
|
308
|
+
},
|
|
309
|
+
.quote = "Life is like a box of chocolates.",
|
|
310
|
+
.user_id = 42,
|
|
311
|
+
};
|
|
312
|
+
|
|
313
|
+
EXPECT_THAT(john, (StructIs<User>{
|
|
314
|
+
// Only the specified fields are tested
|
|
315
|
+
.pets = testing::ElementsAre(StructIs<User::Pet>{
|
|
316
|
+
.height_in_meters = testing::FloatNear(1.7, 0.1),
|
|
317
|
+
}),
|
|
318
|
+
.quote = testing::StartsWith("Life is"),
|
|
319
|
+
.user_id = 42,
|
|
320
|
+
}));
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
#### Enum matchers
|
|
324
|
+
|
|
325
|
+
```c++
|
|
326
|
+
User::SubscriptionStatus john_status = skirout::kFree;
|
|
327
|
+
|
|
328
|
+
EXPECT_THAT(john_status, testing::Eq(skirout::kFree));
|
|
329
|
+
|
|
330
|
+
User::SubscriptionStatus jade_status =
|
|
331
|
+
skirout::wrap_trial_start_time(absl::FromUnixMillis(1743682787000));
|
|
332
|
+
|
|
333
|
+
EXPECT_THAT(jade_status, IsTrialStartTime());
|
|
334
|
+
EXPECT_THAT(jade_status, IsTrialStartTime(testing::Gt(absl::UnixEpoch())));
|
|
335
|
+
```
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
cc_library(
|
|
2
|
+
name = "skir",
|
|
3
|
+
srcs = ["skir.cc"],
|
|
4
|
+
hdrs = ["skir.h"],
|
|
5
|
+
deps = [
|
|
6
|
+
"@abseil-cpp//absl/base",
|
|
7
|
+
"@abseil-cpp//absl/container:flat_hash_map",
|
|
8
|
+
"@abseil-cpp//absl/hash",
|
|
9
|
+
"@abseil-cpp//absl/log:absl_check",
|
|
10
|
+
"@abseil-cpp//absl/log:die_if_null",
|
|
11
|
+
"@abseil-cpp//absl/status",
|
|
12
|
+
"@abseil-cpp//absl/status:statusor",
|
|
13
|
+
"@abseil-cpp//absl/strings",
|
|
14
|
+
"@abseil-cpp//absl/time",
|
|
15
|
+
"@abseil-cpp//absl/types:optional",
|
|
16
|
+
"@abseil-cpp//absl/types:variant",
|
|
17
|
+
],
|
|
18
|
+
visibility = ["//visibility:public"],
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
cc_library(
|
|
22
|
+
name = "skir.testing",
|
|
23
|
+
testonly = True,
|
|
24
|
+
srcs = [],
|
|
25
|
+
hdrs = ["skir.testing.h"],
|
|
26
|
+
deps = [
|
|
27
|
+
":skir",
|
|
28
|
+
"@abseil-cpp//absl/base",
|
|
29
|
+
"@abseil-cpp//absl/log:die_if_null",
|
|
30
|
+
"@googletest//:gtest",
|
|
31
|
+
],
|
|
32
|
+
visibility = ["//visibility:public"],
|
|
33
|
+
)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"""MODULE.bazel"""
|
|
2
|
+
|
|
3
|
+
module(name = "skir-client")
|
|
4
|
+
|
|
5
|
+
# Choose the most recent version available at
|
|
6
|
+
# https://registry.bazel.build/modules/abseil-cpp
|
|
7
|
+
bazel_dep(name = "abseil-cpp", version = "20250814.0")
|
|
8
|
+
|
|
9
|
+
# Choose the most recent version available at
|
|
10
|
+
# https://registry.bazel.build/modules/googletest
|
|
11
|
+
bazel_dep(name = "googletest", version = "1.17.0")
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
{
|
|
2
|
+
"lockFileVersion": 24,
|
|
3
|
+
"registryFileHashes": {
|
|
4
|
+
"https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497",
|
|
5
|
+
"https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2",
|
|
6
|
+
"https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589",
|
|
7
|
+
"https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0",
|
|
8
|
+
"https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb",
|
|
9
|
+
"https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16",
|
|
10
|
+
"https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915",
|
|
11
|
+
"https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed",
|
|
12
|
+
"https://bcr.bazel.build/modules/abseil-cpp/20240116.2/MODULE.bazel": "73939767a4686cd9a520d16af5ab440071ed75cec1a876bf2fcfaf1f71987a16",
|
|
13
|
+
"https://bcr.bazel.build/modules/abseil-cpp/20250127.1/MODULE.bazel": "c4a89e7ceb9bf1e25cf84a9f830ff6b817b72874088bf5141b314726e46a57c1",
|
|
14
|
+
"https://bcr.bazel.build/modules/abseil-cpp/20250814.0/MODULE.bazel": "c43c16ca2c432566cdb78913964497259903ebe8fb7d9b57b38e9f1425b427b8",
|
|
15
|
+
"https://bcr.bazel.build/modules/abseil-cpp/20250814.0/source.json": "b88bff599ceaf0f56c264c749b1606f8485cec3b8c38ba30f88a4df9af142861",
|
|
16
|
+
"https://bcr.bazel.build/modules/apple_support/1.15.1/MODULE.bazel": "a0556fefca0b1bb2de8567b8827518f94db6a6e7e7d632b4c48dc5f865bc7c85",
|
|
17
|
+
"https://bcr.bazel.build/modules/apple_support/1.23.1/MODULE.bazel": "53763fed456a968cf919b3240427cf3a9d5481ec5466abc9d5dc51bc70087442",
|
|
18
|
+
"https://bcr.bazel.build/modules/apple_support/1.23.1/source.json": "d888b44312eb0ad2c21a91d026753f330caa48a25c9b2102fae75eb2b0dcfdd2",
|
|
19
|
+
"https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd",
|
|
20
|
+
"https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8",
|
|
21
|
+
"https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d",
|
|
22
|
+
"https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d",
|
|
23
|
+
"https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a",
|
|
24
|
+
"https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58",
|
|
25
|
+
"https://bcr.bazel.build/modules/bazel_features/1.27.0/MODULE.bazel": "621eeee06c4458a9121d1f104efb80f39d34deff4984e778359c60eaf1a8cb65",
|
|
26
|
+
"https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d",
|
|
27
|
+
"https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87",
|
|
28
|
+
"https://bcr.bazel.build/modules/bazel_features/1.30.0/source.json": "b07e17f067fe4f69f90b03b36ef1e08fe0d1f3cac254c1241a1818773e3423bc",
|
|
29
|
+
"https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7",
|
|
30
|
+
"https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a",
|
|
31
|
+
"https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8",
|
|
32
|
+
"https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e",
|
|
33
|
+
"https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686",
|
|
34
|
+
"https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a",
|
|
35
|
+
"https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5",
|
|
36
|
+
"https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d",
|
|
37
|
+
"https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651",
|
|
38
|
+
"https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138",
|
|
39
|
+
"https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917",
|
|
40
|
+
"https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d",
|
|
41
|
+
"https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b",
|
|
42
|
+
"https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6",
|
|
43
|
+
"https://bcr.bazel.build/modules/bazel_skylib/1.8.1/source.json": "7ebaefba0b03efe59cac88ed5bbc67bcf59a3eff33af937345ede2a38b2d368a",
|
|
44
|
+
"https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84",
|
|
45
|
+
"https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8",
|
|
46
|
+
"https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb",
|
|
47
|
+
"https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4",
|
|
48
|
+
"https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6",
|
|
49
|
+
"https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f",
|
|
50
|
+
"https://bcr.bazel.build/modules/googletest/1.15.2/MODULE.bazel": "6de1edc1d26cafb0ea1a6ab3f4d4192d91a312fd2d360b63adaa213cd00b2108",
|
|
51
|
+
"https://bcr.bazel.build/modules/googletest/1.17.0/MODULE.bazel": "dbec758171594a705933a29fcf69293d2468c49ec1f2ebca65c36f504d72df46",
|
|
52
|
+
"https://bcr.bazel.build/modules/googletest/1.17.0/source.json": "38e4454b25fc30f15439c0378e57909ab1fd0a443158aa35aec685da727cd713",
|
|
53
|
+
"https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075",
|
|
54
|
+
"https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d",
|
|
55
|
+
"https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902",
|
|
56
|
+
"https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5",
|
|
57
|
+
"https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f",
|
|
58
|
+
"https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee",
|
|
59
|
+
"https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37",
|
|
60
|
+
"https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615",
|
|
61
|
+
"https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814",
|
|
62
|
+
"https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d",
|
|
63
|
+
"https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc",
|
|
64
|
+
"https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580",
|
|
65
|
+
"https://bcr.bazel.build/modules/platforms/1.0.0/source.json": "f4ff1fd412e0246fd38c82328eb209130ead81d62dcd5a9e40910f867f733d96",
|
|
66
|
+
"https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7",
|
|
67
|
+
"https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c",
|
|
68
|
+
"https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d",
|
|
69
|
+
"https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df",
|
|
70
|
+
"https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e",
|
|
71
|
+
"https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981",
|
|
72
|
+
"https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0",
|
|
73
|
+
"https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e",
|
|
74
|
+
"https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/MODULE.bazel": "e6f4c20442eaa7c90d7190d8dc539d0ab422f95c65a57cc59562170c58ae3d34",
|
|
75
|
+
"https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/source.json": "6900fdc8a9e95866b8c0d4ad4aba4d4236317b5c1cd04c502df3f0d33afed680",
|
|
76
|
+
"https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206",
|
|
77
|
+
"https://bcr.bazel.build/modules/re2/2024-07-02.bcr.1/MODULE.bazel": "b4963dda9b31080be1905ef085ecd7dd6cd47c05c79b9cdf83ade83ab2ab271a",
|
|
78
|
+
"https://bcr.bazel.build/modules/re2/2024-07-02.bcr.1/source.json": "2ff292be6ef3340325ce8a045ecc326e92cbfab47c7cbab4bd85d28971b97ac4",
|
|
79
|
+
"https://bcr.bazel.build/modules/re2/2024-07-02/MODULE.bazel": "0eadc4395959969297cbcf31a249ff457f2f1d456228c67719480205aa306daa",
|
|
80
|
+
"https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8",
|
|
81
|
+
"https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e",
|
|
82
|
+
"https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647",
|
|
83
|
+
"https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002",
|
|
84
|
+
"https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191",
|
|
85
|
+
"https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac",
|
|
86
|
+
"https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc",
|
|
87
|
+
"https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87",
|
|
88
|
+
"https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a",
|
|
89
|
+
"https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c",
|
|
90
|
+
"https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f",
|
|
91
|
+
"https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e",
|
|
92
|
+
"https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5",
|
|
93
|
+
"https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513",
|
|
94
|
+
"https://bcr.bazel.build/modules/rules_cc/0.2.0/MODULE.bazel": "b5c17f90458caae90d2ccd114c81970062946f49f355610ed89bebf954f5783c",
|
|
95
|
+
"https://bcr.bazel.build/modules/rules_cc/0.2.0/source.json": "5f7f4e578e950adbf194217d4b607237a8197fc53ba46c367b3d61a86ecf35c2",
|
|
96
|
+
"https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6",
|
|
97
|
+
"https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8",
|
|
98
|
+
"https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e",
|
|
99
|
+
"https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74",
|
|
100
|
+
"https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86",
|
|
101
|
+
"https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39",
|
|
102
|
+
"https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6",
|
|
103
|
+
"https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31",
|
|
104
|
+
"https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a",
|
|
105
|
+
"https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6",
|
|
106
|
+
"https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab",
|
|
107
|
+
"https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2",
|
|
108
|
+
"https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe",
|
|
109
|
+
"https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615",
|
|
110
|
+
"https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc",
|
|
111
|
+
"https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7",
|
|
112
|
+
"https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909",
|
|
113
|
+
"https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036",
|
|
114
|
+
"https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d",
|
|
115
|
+
"https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4",
|
|
116
|
+
"https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0",
|
|
117
|
+
"https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197",
|
|
118
|
+
"https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59",
|
|
119
|
+
"https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3",
|
|
120
|
+
"https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5",
|
|
121
|
+
"https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0",
|
|
122
|
+
"https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d",
|
|
123
|
+
"https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c",
|
|
124
|
+
"https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb",
|
|
125
|
+
"https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc",
|
|
126
|
+
"https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff",
|
|
127
|
+
"https://bcr.bazel.build/modules/rules_pkg/1.0.1/source.json": "bd82e5d7b9ce2d31e380dd9f50c111d678c3bdaca190cb76b0e1c71b05e1ba8a",
|
|
128
|
+
"https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06",
|
|
129
|
+
"https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7",
|
|
130
|
+
"https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/MODULE.bazel": "1e5b502e2e1a9e825eef74476a5a1ee524a92297085015a052510b09a1a09483",
|
|
131
|
+
"https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73",
|
|
132
|
+
"https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2",
|
|
133
|
+
"https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1",
|
|
134
|
+
"https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f",
|
|
135
|
+
"https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300",
|
|
136
|
+
"https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382",
|
|
137
|
+
"https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed",
|
|
138
|
+
"https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58",
|
|
139
|
+
"https://bcr.bazel.build/modules/rules_python/0.33.2/MODULE.bazel": "3e036c4ad8d804a4dad897d333d8dce200d943df4827cb849840055be8d2e937",
|
|
140
|
+
"https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c",
|
|
141
|
+
"https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7",
|
|
142
|
+
"https://bcr.bazel.build/modules/rules_python/0.40.0/source.json": "939d4bd2e3110f27bfb360292986bb79fd8dcefb874358ccd6cdaa7bda029320",
|
|
143
|
+
"https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c",
|
|
144
|
+
"https://bcr.bazel.build/modules/rules_shell/0.2.0/source.json": "7f27af3c28037d9701487c4744b5448d26537cc66cdef0d8df7ae85411f8de95",
|
|
145
|
+
"https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8",
|
|
146
|
+
"https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c",
|
|
147
|
+
"https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef",
|
|
148
|
+
"https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c",
|
|
149
|
+
"https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7",
|
|
150
|
+
"https://bcr.bazel.build/modules/stardoc/0.7.1/source.json": "b6500ffcd7b48cd72c29bb67bcac781e12701cc0d6d55d266a652583cfcdab01",
|
|
151
|
+
"https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43",
|
|
152
|
+
"https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0",
|
|
153
|
+
"https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca",
|
|
154
|
+
"https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806",
|
|
155
|
+
"https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198"
|
|
156
|
+
},
|
|
157
|
+
"selectedYankedVersions": {},
|
|
158
|
+
"moduleExtensions": {
|
|
159
|
+
"@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": {
|
|
160
|
+
"general": {
|
|
161
|
+
"bzlTransitiveDigest": "rL/34P1aFDq2GqVC2zCFgQ8nTuOC6ziogocpvG50Qz8=",
|
|
162
|
+
"usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=",
|
|
163
|
+
"recordedFileInputs": {},
|
|
164
|
+
"recordedDirentsInputs": {},
|
|
165
|
+
"envVariables": {},
|
|
166
|
+
"generatedRepoSpecs": {
|
|
167
|
+
"com_github_jetbrains_kotlin_git": {
|
|
168
|
+
"repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository",
|
|
169
|
+
"attributes": {
|
|
170
|
+
"urls": [
|
|
171
|
+
"https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip"
|
|
172
|
+
],
|
|
173
|
+
"sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88"
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
"com_github_jetbrains_kotlin": {
|
|
177
|
+
"repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository",
|
|
178
|
+
"attributes": {
|
|
179
|
+
"git_repository_name": "com_github_jetbrains_kotlin_git",
|
|
180
|
+
"compiler_version": "1.9.23"
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
"com_github_google_ksp": {
|
|
184
|
+
"repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository",
|
|
185
|
+
"attributes": {
|
|
186
|
+
"urls": [
|
|
187
|
+
"https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip"
|
|
188
|
+
],
|
|
189
|
+
"sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d",
|
|
190
|
+
"strip_version": "1.9.23-1.0.20"
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
"com_github_pinterest_ktlint": {
|
|
194
|
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file",
|
|
195
|
+
"attributes": {
|
|
196
|
+
"sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985",
|
|
197
|
+
"urls": [
|
|
198
|
+
"https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint"
|
|
199
|
+
],
|
|
200
|
+
"executable": true
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
"rules_android": {
|
|
204
|
+
"repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
|
|
205
|
+
"attributes": {
|
|
206
|
+
"sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806",
|
|
207
|
+
"strip_prefix": "rules_android-0.1.1",
|
|
208
|
+
"urls": [
|
|
209
|
+
"https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip"
|
|
210
|
+
]
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
"recordedRepoMappingEntries": [
|
|
215
|
+
[
|
|
216
|
+
"rules_kotlin+",
|
|
217
|
+
"bazel_tools",
|
|
218
|
+
"bazel_tools"
|
|
219
|
+
]
|
|
220
|
+
]
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
"facts": {}
|
|
225
|
+
}
|