Skip to content

Commit c31a02f

Browse files
committed
chore: Update dependencies
- Updates all Dart dependencies - Updates cedar_ffi to use latest native assets packages (and removes workaround for Windows)
1 parent 9d51f87 commit c31a02f

15 files changed

+83
-298
lines changed

packages/cedar/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,5 @@ dev_dependencies:
2424
built_value_generator: ^8.9.2
2525
cedar_tests:
2626
path: ../cedar_tests
27-
lints: ">=4.0.0 <6.0.0"
27+
lints: ^5.0.0
2828
test: ^1.25.8

packages/cedar_ffi/ffigen.loaded.yaml

Lines changed: 0 additions & 31 deletions
This file was deleted.

packages/cedar_ffi/ffigen.symbols.yaml

Lines changed: 0 additions & 27 deletions
This file was deleted.
Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,17 @@ compiler-opts:
1111
# Ignore warnings about availability macro
1212
- "-Wno-availability"
1313
output:
14-
bindings: "lib/src/ffi/cedar_bindings.bundled.ffi.dart"
14+
bindings: "lib/src/ffi/cedar_bindings.ffi.dart"
1515
comments:
1616
style: any
1717
length: full
1818
exclude-all-by-default: true
19-
import:
20-
symbol-files:
21-
- 'package:cedar_ffi/src/ffi/symbols.yaml'
19+
structs:
20+
include:
21+
- "CCedar.*"
22+
- "CedarStore"
23+
- "CInitResult"
24+
- "CAuthorizationDecision"
2225
functions:
2326
include:
2427
- "cedar_.*"
Lines changed: 14 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import 'dart:convert';
22
import 'dart:io';
33

4-
import 'package:native_assets_cli/native_assets_cli.dart';
4+
import 'package:native_assets_cli/code_assets.dart';
55

66
const packageName = 'cedar_ffi';
77

@@ -16,61 +16,44 @@ final IOSink buildLogs = () {
1616

1717
void main(List<String> args) async {
1818
try {
19-
await build(args, (config, output) async {
20-
buildLogs.writeln(config.toString());
19+
await build(args, (input, output) async {
20+
buildLogs.writeln(input.json);
2121

2222
output.addDependencies([
23-
config.packageRoot.resolve('build.dart'),
24-
config.packageRoot.resolve('src/'),
23+
input.packageRoot.resolve('build.dart'),
24+
input.packageRoot.resolve('src/'),
2525
]);
2626

2727
// Build the Rust code in `src/` to `target/`.
2828
//
2929
// Since we're in a workspace, this will default to the repo root which we
3030
// don't want.
31-
final cargoOutput = config.packageRoot.resolve('target/');
31+
final cargoOutput = input.packageRoot.resolve('target/');
3232
await runProcess(
3333
'cargo',
3434
['build', '--release'],
3535
environment: {
3636
'CARGO_TARGET_DIR': cargoOutput.toFilePath(),
3737
},
38-
workingDirectory: config.packageRoot.resolve('src').toFilePath(),
38+
workingDirectory: input.packageRoot.resolve('src').toFilePath(),
3939
);
4040

41-
final binaryName = config.targetOS.dylibFileName(packageName);
41+
final CodeConfig(:targetOS, :targetArchitecture) = input.config.code;
42+
final binaryName = targetOS.dylibFileName(packageName);
4243
final binaryOut = cargoOutput.resolve('release/$binaryName');
4344
if (!File.fromUri(binaryOut).existsSync()) {
4445
throw Exception('$binaryOut does not exist');
4546
}
46-
if (config.targetOS == OS.windows) {
47-
// Workaround for https://github.com/dart-lang/sdk/issues/55207
48-
//
49-
// Bundle a second asset which can resolve symbols from a previously
50-
// loaded DLL. This allows having a fallback mechanism, since you
51-
// cannot add duplicate assets.
52-
//
53-
// This only matters in release mode, but since `config.buildMode` is
54-
// always set to `release` in Dart, it's no good.
55-
final loadedAsset = NativeCodeAsset(
56-
package: packageName,
57-
name: 'src/ffi/cedar_bindings.loaded.ffi.dart',
58-
linkMode: LookupInProcess(),
59-
os: config.targetOS,
60-
architecture: config.targetArchitecture,
61-
);
62-
output.addAsset(loadedAsset);
63-
}
64-
final nativeAsset = NativeCodeAsset(
47+
final nativeAsset = CodeAsset(
6548
package: packageName,
66-
name: 'src/ffi/cedar_bindings.bundled.ffi.dart',
49+
name: 'src/ffi/cedar_bindings.ffi.dart',
6750
linkMode: DynamicLoadingBundled(),
68-
os: config.targetOS,
69-
architecture: config.targetArchitecture,
51+
os: targetOS,
52+
architecture: targetArchitecture,
7053
file: binaryOut,
7154
);
7255
buildLogs.writeln('Compiled asset: ${nativeAsset.toString()}');
73-
output.addAsset(nativeAsset);
56+
output.assets.code.add(nativeAsset);
7457
});
7558
} finally {
7659
await buildLogs.flush();

packages/cedar_ffi/lib/src/cedar_policy_set_ffi.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import 'dart:convert';
22
import 'dart:ffi';
33

44
import 'package:cedar/cedar.dart';
5-
import 'package:cedar_ffi/src/ffi/cedar_bindings.dart';
5+
import 'package:cedar_ffi/src/ffi/cedar_bindings.ffi.dart' as bindings;
66
import 'package:ffi/ffi.dart';
77

88
/// An FFI extension of [PolicySet].
@@ -20,7 +20,7 @@ Map<String, Object?> parsePolicies(String policiesIdl) {
2020
policiesIdl.toNativeUtf8(allocator: arena).cast(),
2121
);
2222
switch (cPolicies) {
23-
case CCedarPolicySetResult(:final errors, :final errors_len)
23+
case bindings.CCedarPolicySetResult(:final errors, :final errors_len)
2424
when errors_len > 0:
2525
final errorStrings = <String>[];
2626
for (var i = 0; i < errors_len; i++) {
@@ -31,7 +31,7 @@ Map<String, Object?> parsePolicies(String policiesIdl) {
3131
'${errorStrings.join(', ')}',
3232
policiesIdl,
3333
);
34-
case CCedarPolicySetResult(
34+
case bindings.CCedarPolicySetResult(
3535
:final policy_set_json,
3636
:final policy_set_json_len,
3737
):

packages/cedar_ffi/lib/src/engine/cedar_engine.dart

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import 'dart:convert';
22
import 'dart:ffi';
33

44
import 'package:cedar/cedar.dart';
5-
import 'package:cedar_ffi/src/ffi/cedar_bindings.dart';
5+
import 'package:cedar_ffi/src/ffi/cedar_bindings.ffi.dart' as bindings;
66
import 'package:ffi/ffi.dart';
77
import 'package:meta/meta.dart';
88

@@ -24,7 +24,7 @@ final class CedarEngine implements CedarAuthorizer, Finalizable {
2424
@visibleForTesting bool validate = true,
2525
}) {
2626
final storeRef = using((arena) {
27-
final config = arena<CCedarConfig>();
27+
final config = arena<bindings.CCedarConfig>();
2828
config.ref
2929
..schema_json =
3030
jsonEncode(schema.toJson()).toNativeUtf8(allocator: arena).cast()
@@ -61,16 +61,16 @@ final class CedarEngine implements CedarAuthorizer, Finalizable {
6161
}
6262

6363
CedarEngine._({
64-
required Pointer<CedarStore> ref,
64+
required Pointer<bindings.CedarStore> ref,
6565
}) : _ref = ref;
6666

67-
static final Finalizer<Pointer<CedarStore>> _finalizer = Finalizer(
67+
static final Finalizer<Pointer<bindings.CedarStore>> _finalizer = Finalizer(
6868
bindings.cedar_deinit,
6969
);
7070

7171
var _closed = false;
7272

73-
final Pointer<CedarStore> _ref;
73+
final Pointer<bindings.CedarStore> _ref;
7474

7575
@override
7676
AuthorizationResponse isAuthorized(
@@ -82,7 +82,7 @@ final class CedarEngine implements CedarAuthorizer, Finalizable {
8282
throw StateError('Cedar engine is closed');
8383
}
8484
return using((arena) {
85-
final query = arena<CCedarQuery>();
85+
final query = arena<bindings.CCedarQuery>();
8686
query.ref
8787
..principal_str = switch (request.principal) {
8888
final principal? => principal.normalized
@@ -122,7 +122,7 @@ final class CedarEngine implements CedarAuthorizer, Finalizable {
122122
};
123123
final cDecision = bindings.cedar_is_authorized(_ref, query);
124124
return switch (cDecision) {
125-
CAuthorizationDecision(
125+
bindings.CAuthorizationDecision(
126126
:final completion_error,
127127
:final completion_error_len
128128
)
@@ -131,7 +131,7 @@ final class CedarEngine implements CedarAuthorizer, Finalizable {
131131
'Error performing authorization: '
132132
'${completion_error.cast<Utf8>().toDartString(length: completion_error_len)}',
133133
),
134-
CAuthorizationDecision(
134+
bindings.CAuthorizationDecision(
135135
:final is_authorized,
136136
:final reasons_json,
137137
:final reasons_json_len,

packages/cedar_ffi/lib/src/ffi/cedar_bindings.bundled.ffi.dart

Lines changed: 0 additions & 52 deletions
This file was deleted.

packages/cedar_ffi/lib/src/ffi/cedar_bindings.dart

Lines changed: 0 additions & 47 deletions
This file was deleted.

0 commit comments

Comments
 (0)