Big merge. Watch out!
Merge branch 'feature/more-copilot-formulas' of ssh://codeberg.org/alvarogonzalezsotillo/d4rt_formulas into feature/more-copilot-formulas
This commit is contained in:
commit
9f2c569279
25 changed files with 444 additions and 317 deletions
13
Makefile
13
Makefile
|
|
@ -1,15 +1,18 @@
|
||||||
|
|
||||||
all: clean-container build-builders build-linux-debug-container
|
all: clean-container build-builders build-linux-debug-container
|
||||||
|
|
||||||
|
DB=~/.local/share/com.example.d4rt_formulas/d4rt_formulas/formulas.sqlite
|
||||||
|
|
||||||
build-container:
|
build-container:
|
||||||
./flutterw --build-container
|
./flutterw --build-container
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
flutter clean
|
flutter clean
|
||||||
rm ~/.local/share/com.example.d4rt_formulas/d4rt_formulas/formulas.sqlite
|
[ -f $(DB) ] && rm $(DB)
|
||||||
|
|
||||||
clean-container: build-container
|
clean-container: build-container
|
||||||
./flutterw clean
|
./flutterw clean
|
||||||
|
rm .build-container-cache
|
||||||
|
|
||||||
pub-get-container: build-container
|
pub-get-container: build-container
|
||||||
./flutterw pub get
|
./flutterw pub get
|
||||||
|
|
@ -35,11 +38,11 @@ run-linux-debug-container: pub-get-container
|
||||||
run-web-debug-container: pub-get-container
|
run-web-debug-container: pub-get-container
|
||||||
./flutterw run --web-port $${WEB_PORT:-8081} -d web-server
|
./flutterw run --web-port $${WEB_PORT:-8081} -d web-server
|
||||||
|
|
||||||
run-linux-debug-native: build-linux-debug-container
|
run-linux-debug-native:
|
||||||
./build/linux/x64/debug/bundle/d4rt_formulas
|
flutter run -d linux
|
||||||
|
|
||||||
run-web-debug-native: build-web-debug-container
|
run-web-debug-native:
|
||||||
cd build/web && python3 -m http.server $${WEB_PORT:-8081}
|
flutter run --web-port $${WEB_PORT:-8081} -d web-server
|
||||||
|
|
||||||
ai:
|
ai:
|
||||||
qwen --prompt-interactive --yolo "Read CLAUDE.md. Implement first task not already done in TODO.md"
|
qwen --prompt-interactive --yolo "Read CLAUDE.md. Implement first task not already done in TODO.md"
|
||||||
|
|
|
||||||
|
|
@ -1,49 +1,4 @@
|
||||||
[
|
[
|
||||||
// Free fall distance (vertical)
|
|
||||||
{
|
|
||||||
"name": "Free Fall Distance",
|
|
||||||
"description": r"""
|
|
||||||
Calculates vertical displacement under constant gravity
|
|
||||||
|
|
||||||
$$h = \frac{1}{2}gt^2$$
|
|
||||||
|
|
||||||
Where:
|
|
||||||
- $g$: Gravitational acceleration $9.81\ \mathrm{m/s^2}$ on Earth
|
|
||||||
- $t$: Time in free fall (seconds)
|
|
||||||
|
|
||||||
""",
|
|
||||||
"input": [
|
|
||||||
{"name": "t", "unit": "second"},
|
|
||||||
{"name": "g", "unit": "meters per second"}
|
|
||||||
],
|
|
||||||
"output": {"name": "h", "unit": "meter"},
|
|
||||||
"d4rtCode": "h = 0.5 * g * pow(t, 2);",
|
|
||||||
"tags": ["physics", "kinematics"]
|
|
||||||
},
|
|
||||||
|
|
||||||
// Newton's Law of Universal Gravitation
|
|
||||||
{
|
|
||||||
"name": "Gravitational Force",
|
|
||||||
"description": r"""
|
|
||||||
Newton's law of universal gravitation
|
|
||||||
|
|
||||||
$$F = G\frac{m_1m_2}{r^2}$$
|
|
||||||
|
|
||||||
Where:
|
|
||||||
- $G$: Gravitational constant $6.674\times 10^{-11}\ \mathrm{N\cdot m^2/kg^2}$
|
|
||||||
- $m_1, m_2$: Masses of two objects
|
|
||||||
- $r$: Distance between centers of masses
|
|
||||||
|
|
||||||
""",
|
|
||||||
"input": [
|
|
||||||
{"name": "m1", "unit": "kilogram"},
|
|
||||||
{"name": "m2", "unit": "kilogram"},
|
|
||||||
{"name": "r", "unit": "meter"}
|
|
||||||
],
|
|
||||||
"output": {"name": "F", "unit": "newton"},
|
|
||||||
"d4rtCode": "F = (6.67430e-11 * m1 * m2) / pow(r, 2);",
|
|
||||||
"tags": ["physics", "astronomy", "gravity"]
|
|
||||||
},
|
|
||||||
|
|
||||||
// Projectile Motion Range
|
// Projectile Motion Range
|
||||||
{
|
{
|
||||||
|
|
|
||||||
48
assets/formulas/gravity.d4rt
Normal file
48
assets/formulas/gravity.d4rt
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
[
|
||||||
|
// Free fall distance (vertical)
|
||||||
|
{
|
||||||
|
"name": "Free Fall Distance",
|
||||||
|
"description": r"""
|
||||||
|
Calculates vertical displacement under constant gravity
|
||||||
|
|
||||||
|
$$h = \frac{1}{2}gt^2$$
|
||||||
|
|
||||||
|
Where:
|
||||||
|
- $g$: Gravitational acceleration $9.81\ \mathrm{m/s^2}$ on Earth
|
||||||
|
- $t$: Time in free fall (seconds)
|
||||||
|
|
||||||
|
""",
|
||||||
|
"input": [
|
||||||
|
{"name": "t", "unit": "second"}, // Time in seconds
|
||||||
|
{"name": "g", "unit": "meters per second"} // Gravitational acceleration
|
||||||
|
],
|
||||||
|
"output": {"name": "h", "unit": "meter"}, // Height in meters
|
||||||
|
"d4rtCode": "h = 0.5 * g * pow(t, 2);",
|
||||||
|
"tags": ["physics", "kinematics"]
|
||||||
|
},
|
||||||
|
|
||||||
|
// Newton's Law of Universal Gravitation
|
||||||
|
{
|
||||||
|
"name": "Gravitational Force",
|
||||||
|
"description": r'''
|
||||||
|
Newton's law of universal gravitation
|
||||||
|
|
||||||
|
\(F = G\frac{m_1m_2}{r^2}\)
|
||||||
|
|
||||||
|
Where:
|
||||||
|
- $G$: Gravitational constant $6.674\times 10^{-11}\ \mathrm{N\cdot m^2/kg^2}$
|
||||||
|
- $m_1, m_2$: Masses of two objects
|
||||||
|
- $r$: Distance between centers of masses
|
||||||
|
|
||||||
|
''',
|
||||||
|
"input": [
|
||||||
|
{"name": "m1", "unit": "kilogram"}, // Mass 1
|
||||||
|
{"name": "m2", "unit": "kilogram"}, // Mass 2
|
||||||
|
{"name": "r", "unit": "meter"} // Distance between masses
|
||||||
|
],
|
||||||
|
"output": {"name": "F", "unit": "newton"}, // Force in newtons
|
||||||
|
"d4rtCode": "F = (6.67430e-11 * m1 * m2) / pow(r, 2);",
|
||||||
|
"tags": ["physics", "astronomy", "gravity"]
|
||||||
|
},
|
||||||
|
|
||||||
|
]
|
||||||
37
assets/formulas/it-networking.d4rt
Normal file
37
assets/formulas/it-networking.d4rt
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "Network Address from Host IP",
|
||||||
|
"description": r"""Calculates the network address from a host IP/MASK notation.
|
||||||
|
|
||||||
|
Given a host IP address and subnet mask in CIDR notation (e.g., 192.168.1.100/24),
|
||||||
|
this formula extracts the network address (e.g., 192.168.1.0/24).
|
||||||
|
|
||||||
|
Where:
|
||||||
|
- Host IP/MASK: IP address with CIDR subnet mask (e.g., 192.168.1.100/24)
|
||||||
|
- Network: The resulting network address in IP/MASK format (e.g., 192.168.1.0/24)
|
||||||
|
|
||||||
|
The network address is calculated by applying the subnet mask to zero out the host bits.""",
|
||||||
|
"input": [
|
||||||
|
{"name": "hostIP", "unit": "string"}
|
||||||
|
],
|
||||||
|
"output": {"name": "network", "unit": "string"},
|
||||||
|
"d4rtCode": r"""var parts = hostIP.split('/');
|
||||||
|
var ip = parts[0];
|
||||||
|
var mask = int.parse(parts[1]);
|
||||||
|
var octets = ip.split('.').map((e) => int.parse(e)).toList();
|
||||||
|
var hostBits = 32 - mask;
|
||||||
|
var shiftAmount = hostBits;
|
||||||
|
var networkValue = 0;
|
||||||
|
for (var i = 0; i < 4; i++) {
|
||||||
|
networkValue = (networkValue << 8) | octets[i];
|
||||||
|
}
|
||||||
|
networkValue = (networkValue >> shiftAmount) << shiftAmount;
|
||||||
|
var networkOctets = [];
|
||||||
|
for (var i = 0; i < 4; i++) {
|
||||||
|
networkOctets.insert(0, networkValue & 0xFF);
|
||||||
|
networkValue = networkValue >> 8;
|
||||||
|
}
|
||||||
|
network = networkOctets.join('.') + '/' + mask.toString();""",
|
||||||
|
"tags": ["networking", "ip", "subnetting", "cidr", "network"]
|
||||||
|
}
|
||||||
|
]
|
||||||
2
assets/formulas/kinematics_and_dynamics.d4rt
Normal file
2
assets/formulas/kinematics_and_dynamics.d4rt
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
[
|
||||||
|
]
|
||||||
|
|
@ -22,3 +22,4 @@ The negative sign indicates the force opposes the displacement.""",
|
||||||
"tags": ["physics", "elasticity", "oscillations"]
|
"tags": ["physics", "elasticity", "oscillations"]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,5 @@
|
||||||
[
|
[
|
||||||
// Apgar Score
|
{"name":"Apgar Score","description":r"""
|
||||||
{
|
|
||||||
"name": "Apgar Score",
|
|
||||||
"description": r"""
|
|
||||||
Newborn health assessment scoring system performed at 1 and 5 minutes after birth.
|
Newborn health assessment scoring system performed at 1 and 5 minutes after birth.
|
||||||
|
|
||||||
The Apgar score sums five categories (0–2 points each):
|
The Apgar score sums five categories (0–2 points each):
|
||||||
|
|
@ -14,29 +11,6 @@ The Apgar score sums five categories (0–2 points each):
|
||||||
|
|
||||||
Total score ranges from 0 to 10. Higher scores indicate better newborn condition.
|
Total score ranges from 0 to 10. Higher scores indicate better newborn condition.
|
||||||
|
|
||||||
""",
|

|
||||||
"input": [
|
""","input":[{"name":"HeartRate","values":["Absent","< 100 bpm>","> 100 bpm"]},{"name":"Breathing","values":["Absent","Weak, irregular","Strong, robust cry"]},{"name":"MuscleTone","values":["None","Some","Flexed arms/leg, resists extension"]},{"name":"Reflexes","values":["No response","Grimace on aggressive stimulation","Cry on stimulation"]},{"name":"SkinColor","values":["Blue or pale","Blue extremities, pink body","Pink"]}],"output":{"name":"Result","unit":"string"},"d4rtCode":"var total = indexOf(\"HeartRate\") + indexOf(\"Breathing\") + indexOf(\"MuscleTone\") + indexOf(\"Reflexes\") + indexOf(\"SkinColor\"); late var interpretation; if( total < 4 ) { interpretation = 'Critical condition'; } else if( total < 7 ){ interpretation = 'Needs assistance'; } else { interpretation = 'Normal'; } Result = 'Score: \$total - \$interpretation';","tags":["medical","pediatrics","assessment"]}
|
||||||
{"name": "HeartRate", "values": ["Absent", "< 100 bpm>", "> 100 bpm"]},
|
|
||||||
{"name": "Breathing", "values": ["Absent", "Weak, irregular", "Strong, robust cry"]},
|
|
||||||
{"name": "MuscleTone", "values": ["None", "Some", "Flexed arms/leg, resists extension"]},
|
|
||||||
{"name": "Reflexes", "values": ["No response", "Grimace on aggressive stimulation", "Cry on stimulation"]},
|
|
||||||
{"name": "SkinColor", "values": ["Blue or pale", "Blue extremities, pink body", "Pink"]}
|
|
||||||
],
|
|
||||||
"output": {"name": "Result", "unit": "string"},
|
|
||||||
"d4rtCode": """
|
|
||||||
var total = indexOf("HeartRate") + indexOf("Breathing") + indexOf("MuscleTone") + indexOf("Reflexes") + indexOf("SkinColor");
|
|
||||||
late var interpretation;
|
|
||||||
if( total < 4 ) {
|
|
||||||
interpretation = 'Critical condition';
|
|
||||||
}
|
|
||||||
else if( total < 7 ){
|
|
||||||
interpretation = 'Needs assistance';
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
interpretation = 'Normal';
|
|
||||||
}
|
|
||||||
Result = 'Score: \$total - \$interpretation';
|
|
||||||
""",
|
|
||||||
"tags": ["medical", "pediatrics", "assessment"]
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -27,3 +27,4 @@ This law explains how light bends when passing between materials.""",
|
||||||
"tags": ["physics", "optics", "light"]
|
"tags": ["physics", "optics", "light"]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ Where:
|
||||||
|
|
||||||
This law combines Boyle's, Charles's and Avogadro's laws.
|
This law combines Boyle's, Charles's and Avogadro's laws.
|
||||||
|
|
||||||
""",
|
""",
|
||||||
"input": [
|
"input": [
|
||||||
{"name": "n", "unit": "mole"},
|
{"name": "n", "unit": "mole"},
|
||||||
{"name": "T", "unit": "kelvin"},
|
{"name": "T", "unit": "kelvin"},
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
[
|
||||||
|
]
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
FROM ghcr.io/cirruslabs/flutter:3.32.3
|
FROM ghcr.io/cirruslabs/flutter:3.38.9
|
||||||
|
|
||||||
# Install cmake, ninja, clang, pkg-config, and other tools for flutter linux
|
# Install cmake, ninja, clang, pkg-config, and other tools for flutter linux
|
||||||
RUN apt-get update && apt-get install -y \
|
RUN apt-get update && apt-get install -y \
|
||||||
|
|
@ -32,14 +32,14 @@ RUN chown -R $USER_ID:$GROUP_ID /sdks/flutter
|
||||||
USER $USER_ID:$GROUP_ID
|
USER $USER_ID:$GROUP_ID
|
||||||
|
|
||||||
# Pre-cache Flutter artifacts for Linux, Android, and Web to speed up subsequent builds
|
# Pre-cache Flutter artifacts for Linux, Android, and Web to speed up subsequent builds
|
||||||
WORKDIR /dummy_app_only_for_cache
|
#WORKDIR /dummy_app_only_for_cache
|
||||||
RUN flutter create . && flutter pub get
|
#RUN flutter create . && flutter pub get
|
||||||
RUN flutter precache --linux
|
#RUN flutter precache --linux
|
||||||
RUN flutter build linux
|
#RUN flutter build linux
|
||||||
RUN flutter precache --web
|
#RUN flutter precache --web
|
||||||
RUN flutter build web
|
#RUN flutter build web
|
||||||
RUN flutter precache --android
|
#RUN flutter precache --android
|
||||||
RUN flutter build apk
|
#RUN flutter build apk
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -165,7 +165,7 @@ class Corpus{
|
||||||
static Number _evaluate(String code, [D4rt? interpreter]) {
|
static Number _evaluate(String code, [D4rt? interpreter]) {
|
||||||
final d4rtInterpreter = interpreter ?? FormulaEvaluator.createDefaultInterpreter();
|
final d4rtInterpreter = interpreter ?? FormulaEvaluator.createDefaultInterpreter();
|
||||||
FormulaEvaluator.prepareInterpreter(d4rtInterpreter);
|
FormulaEvaluator.prepareInterpreter(d4rtInterpreter);
|
||||||
final completeCode = "${FormulaEvaluator.d4rtImports}\n$code";
|
final completeCode = "${FormulaEvaluator.preamble}\n$code";
|
||||||
final result = d4rtInterpreter.execute(source: completeCode);
|
final result = d4rtInterpreter.execute(source: completeCode);
|
||||||
return result.toDouble();
|
return result.toDouble();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
19
lib/d4rt_bridge.dart
Normal file
19
lib/d4rt_bridge.dart
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
import 'package:d4rt/d4rt.dart';
|
||||||
|
import 'package:get_it/get_it.dart';
|
||||||
|
import 'corpus.dart';
|
||||||
|
import 'formula_evaluator.dart';
|
||||||
|
|
||||||
|
part 'd4rt_bridge.g.dart';
|
||||||
|
|
||||||
|
@D4rtBridge(libraryUri: 'package:formulas/runtime_bridge.dart')
|
||||||
|
class D4rtBridgeImpl {
|
||||||
|
static dynamic fn(String formulaName, Map<String, dynamic> inputValues) {
|
||||||
|
var corpus = GetIt.instance.get<Corpus>();
|
||||||
|
var evaluator = FormulaEvaluator();
|
||||||
|
var formula = corpus.getFormula(formulaName);
|
||||||
|
if (formula == null) {
|
||||||
|
throw ArgumentError("Formula not found in corpus: $formulaName");
|
||||||
|
}
|
||||||
|
return evaluator.evaluate(formula, inputValues);
|
||||||
|
}
|
||||||
|
}
|
||||||
37
lib/d4rt_bridge.g.dart
Normal file
37
lib/d4rt_bridge.g.dart
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
|
||||||
|
part of 'd4rt_bridge.dart';
|
||||||
|
|
||||||
|
// **************************************************************************
|
||||||
|
// D4rtBridgeGenerator
|
||||||
|
// **************************************************************************
|
||||||
|
|
||||||
|
/// Generated bridge for D4rtBridgeImpl.
|
||||||
|
///
|
||||||
|
/// Do not modify by hand.
|
||||||
|
|
||||||
|
/// Bridge definition for [D4rtBridgeImpl].
|
||||||
|
final d4rtBridgeImplBridge = BridgedClass(
|
||||||
|
name: 'D4rtBridgeImpl',
|
||||||
|
nativeType: D4rtBridgeImpl,
|
||||||
|
staticMethods: {
|
||||||
|
'fn': (visitor, positionalArgs, namedArgs) {
|
||||||
|
positionalArgs.requireExactCount(2, 'D4rtBridgeImpl.fn');
|
||||||
|
return D4rtBridgeImpl.fn(
|
||||||
|
positionalArgs.required<String>(0, 'formulaName'),
|
||||||
|
positionalArgs.extractMap<String, dynamic>(1, 'inputValues'),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
/// Register all d4rt_bridge bridges from this file with the interpreter.
|
||||||
|
void registerD4rtBridgeBridges(D4rt interpreter) {
|
||||||
|
// ignore: unused_local_variable
|
||||||
|
const defaultUri = 'd4rt_bridge.dart';
|
||||||
|
|
||||||
|
interpreter.registerBridgedClass(
|
||||||
|
d4rtBridgeImplBridge,
|
||||||
|
'package:formulas/runtime_bridge.dart',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
@ -12,18 +12,27 @@ class $FormulaElementsTable extends FormulaElements
|
||||||
static const VerificationMeta _idMeta = const VerificationMeta('id');
|
static const VerificationMeta _idMeta = const VerificationMeta('id');
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumn<int> id = GeneratedColumn<int>(
|
late final GeneratedColumn<int> id = GeneratedColumn<int>(
|
||||||
'id', aliasedName, false,
|
'id',
|
||||||
hasAutoIncrement: true,
|
aliasedName,
|
||||||
type: DriftSqlType.int,
|
false,
|
||||||
requiredDuringInsert: false,
|
hasAutoIncrement: true,
|
||||||
defaultConstraints:
|
type: DriftSqlType.int,
|
||||||
GeneratedColumn.constraintIsAlways('PRIMARY KEY AUTOINCREMENT'));
|
requiredDuringInsert: false,
|
||||||
static const VerificationMeta _elementTextMeta =
|
defaultConstraints: GeneratedColumn.constraintIsAlways(
|
||||||
const VerificationMeta('elementText');
|
'PRIMARY KEY AUTOINCREMENT',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
static const VerificationMeta _elementTextMeta = const VerificationMeta(
|
||||||
|
'elementText',
|
||||||
|
);
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumn<String> elementText = GeneratedColumn<String>(
|
late final GeneratedColumn<String> elementText = GeneratedColumn<String>(
|
||||||
'element_text', aliasedName, false,
|
'element_text',
|
||||||
type: DriftSqlType.string, requiredDuringInsert: true);
|
aliasedName,
|
||||||
|
false,
|
||||||
|
type: DriftSqlType.string,
|
||||||
|
requiredDuringInsert: true,
|
||||||
|
);
|
||||||
@override
|
@override
|
||||||
List<GeneratedColumn> get $columns => [id, elementText];
|
List<GeneratedColumn> get $columns => [id, elementText];
|
||||||
@override
|
@override
|
||||||
|
|
@ -32,8 +41,10 @@ class $FormulaElementsTable extends FormulaElements
|
||||||
String get actualTableName => $name;
|
String get actualTableName => $name;
|
||||||
static const String $name = 'formula_elements';
|
static const String $name = 'formula_elements';
|
||||||
@override
|
@override
|
||||||
VerificationContext validateIntegrity(Insertable<FormulaElement> instance,
|
VerificationContext validateIntegrity(
|
||||||
{bool isInserting = false}) {
|
Insertable<FormulaElement> instance, {
|
||||||
|
bool isInserting = false,
|
||||||
|
}) {
|
||||||
final context = VerificationContext();
|
final context = VerificationContext();
|
||||||
final data = instance.toColumns(true);
|
final data = instance.toColumns(true);
|
||||||
if (data.containsKey('id')) {
|
if (data.containsKey('id')) {
|
||||||
|
|
@ -41,9 +52,12 @@ class $FormulaElementsTable extends FormulaElements
|
||||||
}
|
}
|
||||||
if (data.containsKey('element_text')) {
|
if (data.containsKey('element_text')) {
|
||||||
context.handle(
|
context.handle(
|
||||||
|
_elementTextMeta,
|
||||||
|
elementText.isAcceptableOrUnknown(
|
||||||
|
data['element_text']!,
|
||||||
_elementTextMeta,
|
_elementTextMeta,
|
||||||
elementText.isAcceptableOrUnknown(
|
),
|
||||||
data['element_text']!, _elementTextMeta));
|
);
|
||||||
} else if (isInserting) {
|
} else if (isInserting) {
|
||||||
context.missing(_elementTextMeta);
|
context.missing(_elementTextMeta);
|
||||||
}
|
}
|
||||||
|
|
@ -56,10 +70,14 @@ class $FormulaElementsTable extends FormulaElements
|
||||||
FormulaElement map(Map<String, dynamic> data, {String? tablePrefix}) {
|
FormulaElement map(Map<String, dynamic> data, {String? tablePrefix}) {
|
||||||
final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
|
final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
|
||||||
return FormulaElement(
|
return FormulaElement(
|
||||||
id: attachedDatabase.typeMapping
|
id: attachedDatabase.typeMapping.read(
|
||||||
.read(DriftSqlType.int, data['${effectivePrefix}id'])!,
|
DriftSqlType.int,
|
||||||
elementText: attachedDatabase.typeMapping
|
data['${effectivePrefix}id'],
|
||||||
.read(DriftSqlType.string, data['${effectivePrefix}element_text'])!,
|
)!,
|
||||||
|
elementText: attachedDatabase.typeMapping.read(
|
||||||
|
DriftSqlType.string,
|
||||||
|
data['${effectivePrefix}element_text'],
|
||||||
|
)!,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -88,8 +106,10 @@ class FormulaElement extends DataClass implements Insertable<FormulaElement> {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
factory FormulaElement.fromJson(Map<String, dynamic> json,
|
factory FormulaElement.fromJson(
|
||||||
{ValueSerializer? serializer}) {
|
Map<String, dynamic> json, {
|
||||||
|
ValueSerializer? serializer,
|
||||||
|
}) {
|
||||||
serializer ??= driftRuntimeOptions.defaultSerializer;
|
serializer ??= driftRuntimeOptions.defaultSerializer;
|
||||||
return FormulaElement(
|
return FormulaElement(
|
||||||
id: serializer.fromJson<int>(json['id']),
|
id: serializer.fromJson<int>(json['id']),
|
||||||
|
|
@ -106,14 +126,15 @@ class FormulaElement extends DataClass implements Insertable<FormulaElement> {
|
||||||
}
|
}
|
||||||
|
|
||||||
FormulaElement copyWith({int? id, String? elementText}) => FormulaElement(
|
FormulaElement copyWith({int? id, String? elementText}) => FormulaElement(
|
||||||
id: id ?? this.id,
|
id: id ?? this.id,
|
||||||
elementText: elementText ?? this.elementText,
|
elementText: elementText ?? this.elementText,
|
||||||
);
|
);
|
||||||
FormulaElement copyWithCompanion(FormulaElementsCompanion data) {
|
FormulaElement copyWithCompanion(FormulaElementsCompanion data) {
|
||||||
return FormulaElement(
|
return FormulaElement(
|
||||||
id: data.id.present ? data.id.value : this.id,
|
id: data.id.present ? data.id.value : this.id,
|
||||||
elementText:
|
elementText: data.elementText.present
|
||||||
data.elementText.present ? data.elementText.value : this.elementText,
|
? data.elementText.value
|
||||||
|
: this.elementText,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -157,8 +178,10 @@ class FormulaElementsCompanion extends UpdateCompanion<FormulaElement> {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
FormulaElementsCompanion copyWith(
|
FormulaElementsCompanion copyWith({
|
||||||
{Value<int>? id, Value<String>? elementText}) {
|
Value<int>? id,
|
||||||
|
Value<String>? elementText,
|
||||||
|
}) {
|
||||||
return FormulaElementsCompanion(
|
return FormulaElementsCompanion(
|
||||||
id: id ?? this.id,
|
id: id ?? this.id,
|
||||||
elementText: elementText ?? this.elementText,
|
elementText: elementText ?? this.elementText,
|
||||||
|
|
@ -190,8 +213,9 @@ class FormulaElementsCompanion extends UpdateCompanion<FormulaElement> {
|
||||||
abstract class _$FormulasDatabase extends GeneratedDatabase {
|
abstract class _$FormulasDatabase extends GeneratedDatabase {
|
||||||
_$FormulasDatabase(QueryExecutor e) : super(e);
|
_$FormulasDatabase(QueryExecutor e) : super(e);
|
||||||
$FormulasDatabaseManager get managers => $FormulasDatabaseManager(this);
|
$FormulasDatabaseManager get managers => $FormulasDatabaseManager(this);
|
||||||
late final $FormulaElementsTable formulaElements =
|
late final $FormulaElementsTable formulaElements = $FormulaElementsTable(
|
||||||
$FormulaElementsTable(this);
|
this,
|
||||||
|
);
|
||||||
@override
|
@override
|
||||||
Iterable<TableInfo<Table, Object?>> get allTables =>
|
Iterable<TableInfo<Table, Object?>> get allTables =>
|
||||||
allSchemaEntities.whereType<TableInfo<Table, Object?>>();
|
allSchemaEntities.whereType<TableInfo<Table, Object?>>();
|
||||||
|
|
@ -199,16 +223,16 @@ abstract class _$FormulasDatabase extends GeneratedDatabase {
|
||||||
List<DatabaseSchemaEntity> get allSchemaEntities => [formulaElements];
|
List<DatabaseSchemaEntity> get allSchemaEntities => [formulaElements];
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef $$FormulaElementsTableCreateCompanionBuilder = FormulaElementsCompanion
|
typedef $$FormulaElementsTableCreateCompanionBuilder =
|
||||||
Function({
|
FormulaElementsCompanion Function({
|
||||||
Value<int> id,
|
Value<int> id,
|
||||||
required String elementText,
|
required String elementText,
|
||||||
});
|
});
|
||||||
typedef $$FormulaElementsTableUpdateCompanionBuilder = FormulaElementsCompanion
|
typedef $$FormulaElementsTableUpdateCompanionBuilder =
|
||||||
Function({
|
FormulaElementsCompanion Function({
|
||||||
Value<int> id,
|
Value<int> id,
|
||||||
Value<String> elementText,
|
Value<String> elementText,
|
||||||
});
|
});
|
||||||
|
|
||||||
class $$FormulaElementsTableFilterComposer
|
class $$FormulaElementsTableFilterComposer
|
||||||
extends Composer<_$FormulasDatabase, $FormulaElementsTable> {
|
extends Composer<_$FormulasDatabase, $FormulaElementsTable> {
|
||||||
|
|
@ -220,10 +244,14 @@ class $$FormulaElementsTableFilterComposer
|
||||||
super.$removeJoinBuilderFromRootComposer,
|
super.$removeJoinBuilderFromRootComposer,
|
||||||
});
|
});
|
||||||
ColumnFilters<int> get id => $composableBuilder(
|
ColumnFilters<int> get id => $composableBuilder(
|
||||||
column: $table.id, builder: (column) => ColumnFilters(column));
|
column: $table.id,
|
||||||
|
builder: (column) => ColumnFilters(column),
|
||||||
|
);
|
||||||
|
|
||||||
ColumnFilters<String> get elementText => $composableBuilder(
|
ColumnFilters<String> get elementText => $composableBuilder(
|
||||||
column: $table.elementText, builder: (column) => ColumnFilters(column));
|
column: $table.elementText,
|
||||||
|
builder: (column) => ColumnFilters(column),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
class $$FormulaElementsTableOrderingComposer
|
class $$FormulaElementsTableOrderingComposer
|
||||||
|
|
@ -236,10 +264,14 @@ class $$FormulaElementsTableOrderingComposer
|
||||||
super.$removeJoinBuilderFromRootComposer,
|
super.$removeJoinBuilderFromRootComposer,
|
||||||
});
|
});
|
||||||
ColumnOrderings<int> get id => $composableBuilder(
|
ColumnOrderings<int> get id => $composableBuilder(
|
||||||
column: $table.id, builder: (column) => ColumnOrderings(column));
|
column: $table.id,
|
||||||
|
builder: (column) => ColumnOrderings(column),
|
||||||
|
);
|
||||||
|
|
||||||
ColumnOrderings<String> get elementText => $composableBuilder(
|
ColumnOrderings<String> get elementText => $composableBuilder(
|
||||||
column: $table.elementText, builder: (column) => ColumnOrderings(column));
|
column: $table.elementText,
|
||||||
|
builder: (column) => ColumnOrderings(column),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
class $$FormulaElementsTableAnnotationComposer
|
class $$FormulaElementsTableAnnotationComposer
|
||||||
|
|
@ -255,27 +287,38 @@ class $$FormulaElementsTableAnnotationComposer
|
||||||
$composableBuilder(column: $table.id, builder: (column) => column);
|
$composableBuilder(column: $table.id, builder: (column) => column);
|
||||||
|
|
||||||
GeneratedColumn<String> get elementText => $composableBuilder(
|
GeneratedColumn<String> get elementText => $composableBuilder(
|
||||||
column: $table.elementText, builder: (column) => column);
|
column: $table.elementText,
|
||||||
|
builder: (column) => column,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
class $$FormulaElementsTableTableManager extends RootTableManager<
|
class $$FormulaElementsTableTableManager
|
||||||
_$FormulasDatabase,
|
extends
|
||||||
$FormulaElementsTable,
|
RootTableManager<
|
||||||
FormulaElement,
|
_$FormulasDatabase,
|
||||||
$$FormulaElementsTableFilterComposer,
|
$FormulaElementsTable,
|
||||||
$$FormulaElementsTableOrderingComposer,
|
FormulaElement,
|
||||||
$$FormulaElementsTableAnnotationComposer,
|
$$FormulaElementsTableFilterComposer,
|
||||||
$$FormulaElementsTableCreateCompanionBuilder,
|
$$FormulaElementsTableOrderingComposer,
|
||||||
$$FormulaElementsTableUpdateCompanionBuilder,
|
$$FormulaElementsTableAnnotationComposer,
|
||||||
(
|
$$FormulaElementsTableCreateCompanionBuilder,
|
||||||
FormulaElement,
|
$$FormulaElementsTableUpdateCompanionBuilder,
|
||||||
BaseReferences<_$FormulasDatabase, $FormulaElementsTable, FormulaElement>
|
(
|
||||||
),
|
FormulaElement,
|
||||||
FormulaElement,
|
BaseReferences<
|
||||||
PrefetchHooks Function()> {
|
_$FormulasDatabase,
|
||||||
|
$FormulaElementsTable,
|
||||||
|
FormulaElement
|
||||||
|
>,
|
||||||
|
),
|
||||||
|
FormulaElement,
|
||||||
|
PrefetchHooks Function()
|
||||||
|
> {
|
||||||
$$FormulaElementsTableTableManager(
|
$$FormulaElementsTableTableManager(
|
||||||
_$FormulasDatabase db, $FormulaElementsTable table)
|
_$FormulasDatabase db,
|
||||||
: super(TableManagerState(
|
$FormulaElementsTable table,
|
||||||
|
) : super(
|
||||||
|
TableManagerState(
|
||||||
db: db,
|
db: db,
|
||||||
table: table,
|
table: table,
|
||||||
createFilteringComposer: () =>
|
createFilteringComposer: () =>
|
||||||
|
|
@ -284,44 +327,48 @@ class $$FormulaElementsTableTableManager extends RootTableManager<
|
||||||
$$FormulaElementsTableOrderingComposer($db: db, $table: table),
|
$$FormulaElementsTableOrderingComposer($db: db, $table: table),
|
||||||
createComputedFieldComposer: () =>
|
createComputedFieldComposer: () =>
|
||||||
$$FormulaElementsTableAnnotationComposer($db: db, $table: table),
|
$$FormulaElementsTableAnnotationComposer($db: db, $table: table),
|
||||||
updateCompanionCallback: ({
|
updateCompanionCallback:
|
||||||
Value<int> id = const Value.absent(),
|
({
|
||||||
Value<String> elementText = const Value.absent(),
|
Value<int> id = const Value.absent(),
|
||||||
}) =>
|
Value<String> elementText = const Value.absent(),
|
||||||
FormulaElementsCompanion(
|
}) => FormulaElementsCompanion(id: id, elementText: elementText),
|
||||||
id: id,
|
createCompanionCallback:
|
||||||
elementText: elementText,
|
({
|
||||||
),
|
Value<int> id = const Value.absent(),
|
||||||
createCompanionCallback: ({
|
required String elementText,
|
||||||
Value<int> id = const Value.absent(),
|
}) => FormulaElementsCompanion.insert(
|
||||||
required String elementText,
|
id: id,
|
||||||
}) =>
|
elementText: elementText,
|
||||||
FormulaElementsCompanion.insert(
|
),
|
||||||
id: id,
|
|
||||||
elementText: elementText,
|
|
||||||
),
|
|
||||||
withReferenceMapper: (p0) => p0
|
withReferenceMapper: (p0) => p0
|
||||||
.map((e) => (e.readTable(table), BaseReferences(db, table, e)))
|
.map((e) => (e.readTable(table), BaseReferences(db, table, e)))
|
||||||
.toList(),
|
.toList(),
|
||||||
prefetchHooksCallback: null,
|
prefetchHooksCallback: null,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef $$FormulaElementsTableProcessedTableManager = ProcessedTableManager<
|
typedef $$FormulaElementsTableProcessedTableManager =
|
||||||
_$FormulasDatabase,
|
ProcessedTableManager<
|
||||||
$FormulaElementsTable,
|
_$FormulasDatabase,
|
||||||
FormulaElement,
|
$FormulaElementsTable,
|
||||||
$$FormulaElementsTableFilterComposer,
|
|
||||||
$$FormulaElementsTableOrderingComposer,
|
|
||||||
$$FormulaElementsTableAnnotationComposer,
|
|
||||||
$$FormulaElementsTableCreateCompanionBuilder,
|
|
||||||
$$FormulaElementsTableUpdateCompanionBuilder,
|
|
||||||
(
|
|
||||||
FormulaElement,
|
FormulaElement,
|
||||||
BaseReferences<_$FormulasDatabase, $FormulaElementsTable, FormulaElement>
|
$$FormulaElementsTableFilterComposer,
|
||||||
),
|
$$FormulaElementsTableOrderingComposer,
|
||||||
FormulaElement,
|
$$FormulaElementsTableAnnotationComposer,
|
||||||
PrefetchHooks Function()>;
|
$$FormulaElementsTableCreateCompanionBuilder,
|
||||||
|
$$FormulaElementsTableUpdateCompanionBuilder,
|
||||||
|
(
|
||||||
|
FormulaElement,
|
||||||
|
BaseReferences<
|
||||||
|
_$FormulasDatabase,
|
||||||
|
$FormulaElementsTable,
|
||||||
|
FormulaElement
|
||||||
|
>,
|
||||||
|
),
|
||||||
|
FormulaElement,
|
||||||
|
PrefetchHooks Function()
|
||||||
|
>;
|
||||||
|
|
||||||
class $FormulasDatabaseManager {
|
class $FormulasDatabaseManager {
|
||||||
final _$FormulasDatabase _db;
|
final _$FormulasDatabase _db;
|
||||||
|
|
|
||||||
|
|
@ -51,18 +51,23 @@ Future<Corpus> createDefaultCorpus() async{
|
||||||
|
|
||||||
Future<void> loadFormulas() async {
|
Future<void> loadFormulas() async {
|
||||||
final formulaResources = [
|
final formulaResources = [
|
||||||
|
"assets/formulas/conversions_and_constants.d4rt",
|
||||||
|
"assets/formulas/electromagnetism.d4rt",
|
||||||
|
"assets/formulas/energy_and_power.d4rt",
|
||||||
|
"assets/formulas/fluids_and_pressure.d4rt",
|
||||||
"assets/formulas/formulas.d4rt",
|
"assets/formulas/formulas.d4rt",
|
||||||
"assets/formulas/geometry.d4rt",
|
"assets/formulas/geometry.d4rt",
|
||||||
"assets/formulas/energy_and_power.d4rt",
|
"assets/formulas/gravity.d4rt",
|
||||||
"assets/formulas/electromagnetism.d4rt",
|
"assets/formulas/it-networking.d4rt",
|
||||||
"assets/formulas/thermodynamics.d4rt",
|
"assets/formulas/kinematics_and_dynamics.d4rt",
|
||||||
"assets/formulas/fluids_and_pressure.d4rt",
|
|
||||||
"assets/formulas/optics.d4rt",
|
|
||||||
"assets/formulas/materials_elasticity.d4rt",
|
"assets/formulas/materials_elasticity.d4rt",
|
||||||
"assets/formulas/medical_and_bio.d4rt",
|
"assets/formulas/medical_and_bio.d4rt",
|
||||||
"assets/formulas/conversions_and_constants.d4rt",
|
|
||||||
"assets/formulas/misc_math.d4rt",
|
"assets/formulas/misc_math.d4rt",
|
||||||
"assets/formulas/networking.d4rt",
|
"assets/formulas/networking.d4rt",
|
||||||
|
"assets/formulas/optics.d4rt",
|
||||||
|
"assets/formulas/thermodynamics.d4rt",
|
||||||
|
"assets/formulas/trigonometry.d4rt",
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
for (final formRes in formulaResources) {
|
for (final formRes in formulaResources) {
|
||||||
|
|
@ -70,6 +75,7 @@ Future<Corpus> createDefaultCorpus() async{
|
||||||
final literal = await loadResourceAsString(formRes);
|
final literal = await loadResourceAsString(formRes);
|
||||||
print( "Loaded $formRes");
|
print( "Loaded $formRes");
|
||||||
final formulas = Formula.fromArrayStringLiteral(literal);
|
final formulas = Formula.fromArrayStringLiteral(literal);
|
||||||
|
print( "Parsed $formRes");
|
||||||
final formulaElements = formulas.cast<FormulaElement>();
|
final formulaElements = formulas.cast<FormulaElement>();
|
||||||
corpus.loadFormulaElements(formulaElements);
|
corpus.loadFormulaElements(formulaElements);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,11 @@
|
||||||
import 'dart:math' as Math;
|
import 'dart:math' as Math;
|
||||||
|
|
||||||
import 'package:d4rt/d4rt.dart';
|
import 'package:d4rt/d4rt.dart';
|
||||||
|
import 'package:get_it/get_it.dart';
|
||||||
|
import 'corpus.dart';
|
||||||
import 'formula_models.dart';
|
import 'formula_models.dart';
|
||||||
import 'error_handler.dart';
|
import 'error_handler.dart';
|
||||||
|
import 'd4rt_bridge.dart';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -71,13 +74,14 @@ class FormulaEvaluator {
|
||||||
);
|
);
|
||||||
|
|
||||||
interpreter.registerBridgedClass(myMathDefinition, "package:d4rt_formulas.dart");
|
interpreter.registerBridgedClass(myMathDefinition, "package:d4rt_formulas.dart");
|
||||||
|
registerD4rtBridgeBridges(interpreter);
|
||||||
}
|
}
|
||||||
|
|
||||||
static FormulaResult evaluateExpression(String code, [D4rt? interpreter]) {
|
static FormulaResult evaluateExpression(String code, [D4rt? interpreter]) {
|
||||||
final d4rtInterpreter = interpreter ?? createDefaultInterpreter();
|
final d4rtInterpreter = interpreter ?? createDefaultInterpreter();
|
||||||
prepareInterpreter(d4rtInterpreter);
|
prepareInterpreter(d4rtInterpreter);
|
||||||
final d4rtCode = """
|
final d4rtCode = """
|
||||||
$d4rtImports
|
$preamble
|
||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
late var result;
|
late var result;
|
||||||
|
|
@ -166,15 +170,15 @@ class FormulaEvaluator {
|
||||||
return formula.inputVarNames()..sort();
|
return formula.inputVarNames()..sort();
|
||||||
}
|
}
|
||||||
|
|
||||||
static final String d4rtImports = """
|
|
||||||
import 'dart:math';
|
|
||||||
import "package:d4rt_formulas.dart";
|
|
||||||
""";
|
|
||||||
|
|
||||||
static final String signalMagicString = "###";
|
static final String signalMagicString = "###";
|
||||||
|
|
||||||
static final String signal = """
|
static final String preamble = """
|
||||||
|
import 'dart:math';
|
||||||
|
import "package:d4rt_formulas.dart";
|
||||||
|
import "package:formulas/runtime_bridge.dart";
|
||||||
void signal( String msg ) => throw Exception("$signalMagicString\$msg");
|
void signal( String msg ) => throw Exception("$signalMagicString\$msg");
|
||||||
|
dynamic fn(String formulaName, Map<String, dynamic> inputValues) => D4rtBridgeImpl.fn(formulaName, inputValues);
|
||||||
|
|
||||||
""";
|
""";
|
||||||
|
|
||||||
static const reservedVariableNames = { "variableValues", "indexOf", "variableAllowedValues"} ;
|
static const reservedVariableNames = { "variableValues", "indexOf", "variableAllowedValues"} ;
|
||||||
|
|
@ -183,8 +187,7 @@ class FormulaEvaluator {
|
||||||
final buffer = StringBuffer();
|
final buffer = StringBuffer();
|
||||||
|
|
||||||
buffer.writeln("""
|
buffer.writeln("""
|
||||||
$d4rtImports
|
$preamble
|
||||||
$signal
|
|
||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
|
import 'package:d4rt_formulas/d4rt_formulas.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:get_it/get_it.dart';
|
||||||
import 'database/database_service.dart';
|
import 'database/database_service.dart';
|
||||||
import 'package:drift/drift.dart' as drift;
|
import 'package:drift/drift.dart' as drift;
|
||||||
import 'service_locator.dart';
|
import 'service_locator.dart';
|
||||||
|
|
@ -52,12 +54,15 @@ class _CorpusLoaderState extends State<CorpusLoader> {
|
||||||
return Center(child: Text('Error loading corpus: ${snapshot.error}'));
|
return Center(child: Text('Error loading corpus: ${snapshot.error}'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var corpus = snapshot.data!;
|
||||||
|
GetIt.instance.registerSingleton<Corpus>(corpus);
|
||||||
|
|
||||||
// If the corpus is empty (user chose not to load default), we could handle that here
|
// If the corpus is empty (user chose not to load default), we could handle that here
|
||||||
// For now, just display the formula list
|
// For now, just display the formula list
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: AppBar(title: const Text('Formulas')),
|
appBar: AppBar(title: const Text('Formulas')),
|
||||||
body: FormulaList(
|
body: FormulaList(
|
||||||
corpus: snapshot.data!,
|
corpus: corpus,
|
||||||
formulas: snapshot.data!.getFormulas(),
|
formulas: snapshot.data!.getFormulas(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
@ -92,9 +97,9 @@ Future<Corpus> loadCorpusFromDatabaseOrAssets() async {
|
||||||
// Load corpus from database elements
|
// Load corpus from database elements
|
||||||
return await Corpus.fromDatabaseElements(dbElements);
|
return await Corpus.fromDatabaseElements(dbElements);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e, st) {
|
||||||
// If there's an error loading from database, fall back to default corpus
|
// If there's an error loading from database, fall back to default corpus
|
||||||
print('Error loading corpus from database: $e');
|
errorHandler.notify(e,st);
|
||||||
return await createDefaultCorpus();
|
return await createDefaultCorpus();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,13 +6,9 @@
|
||||||
|
|
||||||
#include "generated_plugin_registrant.h"
|
#include "generated_plugin_registrant.h"
|
||||||
|
|
||||||
#include <sqlite3_flutter_libs/sqlite3_flutter_libs_plugin.h>
|
|
||||||
#include <url_launcher_linux/url_launcher_plugin.h>
|
#include <url_launcher_linux/url_launcher_plugin.h>
|
||||||
|
|
||||||
void fl_register_plugins(FlPluginRegistry* registry) {
|
void fl_register_plugins(FlPluginRegistry* registry) {
|
||||||
g_autoptr(FlPluginRegistrar) sqlite3_flutter_libs_registrar =
|
|
||||||
fl_plugin_registry_get_registrar_for_plugin(registry, "Sqlite3FlutterLibsPlugin");
|
|
||||||
sqlite3_flutter_libs_plugin_register_with_registrar(sqlite3_flutter_libs_registrar);
|
|
||||||
g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
|
g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
|
||||||
fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
|
fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
|
||||||
url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
|
url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
list(APPEND FLUTTER_PLUGIN_LIST
|
list(APPEND FLUTTER_PLUGIN_LIST
|
||||||
sqlite3_flutter_libs
|
|
||||||
url_launcher_linux
|
url_launcher_linux
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,14 +5,10 @@
|
||||||
import FlutterMacOS
|
import FlutterMacOS
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
import path_provider_foundation
|
|
||||||
import share_plus
|
import share_plus
|
||||||
import sqlite3_flutter_libs
|
|
||||||
import url_launcher_macos
|
import url_launcher_macos
|
||||||
|
|
||||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||||
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
|
|
||||||
SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin"))
|
SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin"))
|
||||||
Sqlite3FlutterLibsPlugin.register(with: registry.registrar(forPlugin: "Sqlite3FlutterLibsPlugin"))
|
|
||||||
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
|
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
198
pubspec.lock
198
pubspec.lock
|
|
@ -5,18 +5,18 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: _fe_analyzer_shared
|
name: _fe_analyzer_shared
|
||||||
sha256: da0d9209ca76bde579f2da330aeb9df62b6319c834fa7baae052021b0462401f
|
sha256: c209688d9f5a5f26b2fb47a188131a6fb9e876ae9e47af3737c0b4f58a93470d
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "85.0.0"
|
version: "91.0.0"
|
||||||
analyzer:
|
analyzer:
|
||||||
dependency: transitive
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: analyzer
|
name: analyzer
|
||||||
sha256: "974859dc0ff5f37bc4313244b3218c791810d03ab3470a579580279ba971a48d"
|
sha256: f51c8499b35f9b26820cfe914828a6a98a94efd5cc78b37bb7d03debae3a1d08
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "7.7.1"
|
version: "8.4.1"
|
||||||
args:
|
args:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -53,10 +53,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: build
|
name: build
|
||||||
sha256: ce76b1d48875e3233fde17717c23d1f60a91cc631597e49a400c89b475395b1d
|
sha256: "275bf6bb2a00a9852c28d4e0b410da1d833a734d57d39d44f94bfc895a484ec3"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.0"
|
version: "4.0.4"
|
||||||
build_config:
|
build_config:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -73,30 +73,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.1.1"
|
version: "4.1.1"
|
||||||
build_resolvers:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: build_resolvers
|
|
||||||
sha256: d1d57f7807debd7349b4726a19fd32ec8bc177c71ad0febf91a20f84cd2d4b46
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "3.0.3"
|
|
||||||
build_runner:
|
build_runner:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
name: build_runner
|
name: build_runner
|
||||||
sha256: b24597fceb695969d47025c958f3837f9f0122e237c6a22cb082a5ac66c3ca30
|
sha256: "39ad4ca8a2876779737c60e4228b4bcd35d4352ef7e14e47514093edc012c734"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.7.1"
|
version: "2.11.1"
|
||||||
build_runner_core:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: build_runner_core
|
|
||||||
sha256: "066dda7f73d8eb48ba630a55acb50c4a84a2e6b453b1cb4567f581729e794f7b"
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "9.3.1"
|
|
||||||
built_collection:
|
built_collection:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -109,10 +93,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: built_value
|
name: built_value
|
||||||
sha256: "7931c90b84bc573fef103548e354258ae4c9d28d140e41961df6843c5d60d4d8"
|
sha256: "6ae8a6435a8c6520c7077b107e77f1fb4ba7009633259a4d49a8afd8e7efc5e9"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "8.12.3"
|
version: "8.12.4"
|
||||||
characters:
|
characters:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -161,6 +145,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.2"
|
version: "1.1.2"
|
||||||
|
code_assets:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: code_assets
|
||||||
|
sha256: "83ccdaa064c980b5596c35dd64a8d3ecc68620174ab9b90b6343b753aa721687"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.0.0"
|
||||||
code_builder:
|
code_builder:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -221,34 +213,34 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: d4rt
|
name: d4rt
|
||||||
sha256: eff6a10f31e9e5b60b99146a33204c5f2d74e20ac3eeb14132d8a8ed0921c6e1
|
sha256: "4c178f741141592d60e4037c3205f9c081a3b32edc1061029a43667dff409a36"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.1.9"
|
version: "0.2.2"
|
||||||
dart_style:
|
dart_style:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: dart_style
|
name: dart_style
|
||||||
sha256: "8a0e5fba27e8ee025d2ffb4ee820b4e6e2cf5e4246a6b1a477eb66866947e0bb"
|
sha256: a9c30492da18ff84efe2422ba2d319a89942d93e58eb0b73d32abe822ef54b7b
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.1"
|
version: "3.1.3"
|
||||||
drift:
|
drift:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: drift
|
name: drift
|
||||||
sha256: "83290a32ae006a7535c5ecf300722cb77177250d9df4ee2becc5fa8a36095114"
|
sha256: "970cd188fddb111b26ea6a9b07a62bf5c2432d74147b8122c67044ae3b97e99e"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.29.0"
|
version: "2.31.0"
|
||||||
drift_dev:
|
drift_dev:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
name: drift_dev
|
name: drift_dev
|
||||||
sha256: "6019f827544e77524ffd5134ae0cb75dfd92ef5ef3e269872af92840c929cd43"
|
sha256: "917184b2fb867b70a548a83bf0d36268423b38d39968c06cce4905683da49587"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.29.0"
|
version: "2.31.0"
|
||||||
equatable:
|
equatable:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -302,14 +294,6 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.3.5"
|
version: "0.3.5"
|
||||||
flutter_d4rt:
|
|
||||||
dependency: "direct main"
|
|
||||||
description:
|
|
||||||
name: flutter_d4rt
|
|
||||||
sha256: "7ab9d3f91de5c10db115ccab1d9b1588946f744850f5bacc243cfc9041dd0a4c"
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "0.0.5"
|
|
||||||
flutter_highlight:
|
flutter_highlight:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -380,10 +364,10 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: get_it
|
name: get_it
|
||||||
sha256: "1d648d2dd2047d7f7450d5727ca24ee435f240385753d90b49650e3cdff32e56"
|
sha256: "568d62f0e68666fb5d95519743b3c24a34c7f19d834b0658c46e26d778461f66"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "9.2.0"
|
version: "9.2.1"
|
||||||
glob:
|
glob:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -416,6 +400,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.2.3"
|
version: "2.2.3"
|
||||||
|
hooks:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: hooks
|
||||||
|
sha256: "7a08a0d684cb3b8fb604b78455d5d352f502b68079f7b80b831c62220ab0a4f6"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.0.1"
|
||||||
http:
|
http:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -460,34 +452,34 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: json_annotation
|
name: json_annotation
|
||||||
sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1"
|
sha256: cb09e7dac6210041fad964ed7fbee004f14258b4eca4040f72d1234062ace4c8
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.9.0"
|
version: "4.11.0"
|
||||||
leak_tracker:
|
leak_tracker:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker
|
name: leak_tracker
|
||||||
sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0"
|
sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "10.0.9"
|
version: "11.0.2"
|
||||||
leak_tracker_flutter_testing:
|
leak_tracker_flutter_testing:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker_flutter_testing
|
name: leak_tracker_flutter_testing
|
||||||
sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
|
sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.9"
|
version: "3.0.10"
|
||||||
leak_tracker_testing:
|
leak_tracker_testing:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker_testing
|
name: leak_tracker_testing
|
||||||
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
|
sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.1"
|
version: "3.0.2"
|
||||||
linked_scroll_controller:
|
linked_scroll_controller:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -540,10 +532,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: meta
|
name: meta
|
||||||
sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
|
sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.16.0"
|
version: "1.17.0"
|
||||||
mime:
|
mime:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -560,6 +552,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.4"
|
version: "1.0.4"
|
||||||
|
native_toolchain_c:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: native_toolchain_c
|
||||||
|
sha256: "89e83885ba09da5fdf2cdacc8002a712ca238c28b7f717910b34bcd27b0d03ac"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.17.4"
|
||||||
nested:
|
nested:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -576,6 +576,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.2"
|
version: "2.0.2"
|
||||||
|
objective_c:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: objective_c
|
||||||
|
sha256: "100a1c87616ab6ed41ec263b083c0ef3261ee6cd1dc3b0f35f8ddfa4f996fe52"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "9.3.0"
|
||||||
package_config:
|
package_config:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -612,18 +620,18 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: path_provider_android
|
name: path_provider_android
|
||||||
sha256: "3b4c1fc3aa55ddc9cd4aa6759984330d5c8e66aa7702a6223c61540dc6380c37"
|
sha256: f2c65e21139ce2c3dad46922be8272bb5963516045659e71bb16e151c93b580e
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.2.19"
|
version: "2.2.22"
|
||||||
path_provider_foundation:
|
path_provider_foundation:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: path_provider_foundation
|
name: path_provider_foundation
|
||||||
sha256: "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd"
|
sha256: "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.4.2"
|
version: "2.6.0"
|
||||||
path_provider_linux:
|
path_provider_linux:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -785,10 +793,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: source_gen
|
name: source_gen
|
||||||
sha256: "800f12fb87434defa13432ab37e33051b43b290a174e15259563b043cda40c46"
|
sha256: "1d562a3c1f713904ebbed50d2760217fd8a51ca170ac4b05b0db490699dbac17"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.0.0"
|
version: "4.2.0"
|
||||||
source_map_stack_trace:
|
source_map_stack_trace:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -809,10 +817,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: source_span
|
name: source_span
|
||||||
sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c"
|
sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.10.1"
|
version: "1.10.2"
|
||||||
sqlite3:
|
sqlite3:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -825,18 +833,18 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: sqlite3_flutter_libs
|
name: sqlite3_flutter_libs
|
||||||
sha256: "1e800ebe7f85a80a66adacaa6febe4d5f4d8b75f244e9838a27cb2ffc7aec08d"
|
sha256: "3ed7553eee7bb368f8950f58ba29f634e06e813c029aff6a0d60862b96de8454"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.5.41"
|
version: "0.6.0+eol"
|
||||||
sqlparser:
|
sqlparser:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: sqlparser
|
name: sqlparser
|
||||||
sha256: "162435ede92bcc793ea939fdc0452eef0a73d11f8ed053b58a89792fba749da5"
|
sha256: "337e9997f7141ffdd054259128553c348635fa318f7ca492f07a4ab76f850d19"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.42.1"
|
version: "0.43.1"
|
||||||
stack_trace:
|
stack_trace:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -881,34 +889,26 @@ packages:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
name: test
|
name: test
|
||||||
sha256: "301b213cd241ca982e9ba50266bd3f5bd1ea33f1455554c5abb85d1be0e2d87e"
|
sha256: "75906bf273541b676716d1ca7627a17e4c4070a3a16272b7a3dc7da3b9f3f6b7"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.25.15"
|
version: "1.26.3"
|
||||||
test_api:
|
test_api:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: test_api
|
name: test_api
|
||||||
sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
|
sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.7.4"
|
version: "0.7.7"
|
||||||
test_core:
|
test_core:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: test_core
|
name: test_core
|
||||||
sha256: "84d17c3486c8dfdbe5e12a50c8ae176d15e2a771b96909a9442b40173649ccaa"
|
sha256: "0cc24b5ff94b38d2ae73e1eb43cc302b77964fbf67abad1e296025b78deb53d0"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.6.8"
|
version: "0.6.12"
|
||||||
timing:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: timing
|
|
||||||
sha256: "62ee18aca144e4a9f29d212f5a4c6a053be252b895ab14b5821996cff4ed90fe"
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "1.0.2"
|
|
||||||
tuple:
|
tuple:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -937,18 +937,18 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: url_launcher_android
|
name: url_launcher_android
|
||||||
sha256: "81777b08c498a292d93ff2feead633174c386291e35612f8da438d6e92c4447e"
|
sha256: "767344bf3063897b5cf0db830e94f904528e6dd50a6dfaf839f0abf509009611"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.3.20"
|
version: "6.3.28"
|
||||||
url_launcher_ios:
|
url_launcher_ios:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: url_launcher_ios
|
name: url_launcher_ios
|
||||||
sha256: d80b3f567a617cb923546034cc94bfe44eb15f989fe670b37f26abdb9d939cb7
|
sha256: "580fe5dfb51671ae38191d316e027f6b76272b026370708c2d898799750a02b0"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.3.4"
|
version: "6.4.1"
|
||||||
url_launcher_linux:
|
url_launcher_linux:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -961,10 +961,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: url_launcher_macos
|
name: url_launcher_macos
|
||||||
sha256: c043a77d6600ac9c38300567f33ef12b0ef4f4783a2c1f00231d2b1941fea13f
|
sha256: "368adf46f71ad3c21b8f06614adb38346f193f3a59ba8fe9a2fd74133070ba18"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.2.3"
|
version: "3.2.5"
|
||||||
url_launcher_platform_interface:
|
url_launcher_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -977,10 +977,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: url_launcher_web
|
name: url_launcher_web
|
||||||
sha256: "4bd2b7b4dc4d4d0b94e5babfffbca8eac1a126c7f3d6ecbc1a11013faa3abba2"
|
sha256: d0412fcf4c6b31ecfdb7762359b7206ffba3bbffd396c6d9f9c4616ece476c1f
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.4.1"
|
version: "2.4.2"
|
||||||
url_launcher_windows:
|
url_launcher_windows:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -993,10 +993,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: uuid
|
name: uuid
|
||||||
sha256: a11b666489b1954e01d992f3d601b1804a33937b5a8fe677bd26b8a9f96f96e8
|
sha256: "1fef9e8e11e2991bb773070d4656b7bd5d850967a2456cfc83cf47925ba79489"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.5.2"
|
version: "4.5.3"
|
||||||
vector_graphics:
|
vector_graphics:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1017,26 +1017,26 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: vector_graphics_compiler
|
name: vector_graphics_compiler
|
||||||
sha256: d354a7ec6931e6047785f4db12a1f61ec3d43b207fc0790f863818543f8ff0dc
|
sha256: "5a88dd14c0954a5398af544651c7fb51b457a2a556949bfb25369b210ef73a74"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.19"
|
version: "1.2.0"
|
||||||
vector_math:
|
vector_math:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: vector_math
|
name: vector_math
|
||||||
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
|
sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.4"
|
version: "2.2.0"
|
||||||
vm_service:
|
vm_service:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: vm_service
|
name: vm_service
|
||||||
sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02
|
sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "15.0.0"
|
version: "15.0.2"
|
||||||
watcher:
|
watcher:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1110,5 +1110,5 @@ packages:
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.3"
|
version: "3.1.3"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=3.8.1 <4.0.0"
|
dart: ">=3.10.3 <4.0.0"
|
||||||
flutter: ">=3.32.0"
|
flutter: ">=3.38.4"
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||||
version: 1.0.0+1
|
version: 1.0.0+1
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ^3.0.0
|
sdk: ^3.10.0
|
||||||
|
|
||||||
# Dependencies specify other packages that your package needs in order to work.
|
# Dependencies specify other packages that your package needs in order to work.
|
||||||
# To automatically upgrade your package dependencies to the latest versions
|
# To automatically upgrade your package dependencies to the latest versions
|
||||||
|
|
@ -35,8 +35,8 @@ dependencies:
|
||||||
# Use with the CupertinoIcons class for iOS style icons.
|
# Use with the CupertinoIcons class for iOS style icons.
|
||||||
cupertino_icons:
|
cupertino_icons:
|
||||||
resource_portable:
|
resource_portable:
|
||||||
d4rt:
|
d4rt: ^0.2.0
|
||||||
flutter_d4rt:
|
analyzer: ^8.4.1
|
||||||
flutter_markdown_plus:
|
flutter_markdown_plus:
|
||||||
flutter_markdown_plus_latex:
|
flutter_markdown_plus_latex:
|
||||||
flutter_code_editor:
|
flutter_code_editor:
|
||||||
|
|
|
||||||
|
|
@ -7,14 +7,11 @@
|
||||||
#include "generated_plugin_registrant.h"
|
#include "generated_plugin_registrant.h"
|
||||||
|
|
||||||
#include <share_plus/share_plus_windows_plugin_c_api.h>
|
#include <share_plus/share_plus_windows_plugin_c_api.h>
|
||||||
#include <sqlite3_flutter_libs/sqlite3_flutter_libs_plugin.h>
|
|
||||||
#include <url_launcher_windows/url_launcher_windows.h>
|
#include <url_launcher_windows/url_launcher_windows.h>
|
||||||
|
|
||||||
void RegisterPlugins(flutter::PluginRegistry* registry) {
|
void RegisterPlugins(flutter::PluginRegistry* registry) {
|
||||||
SharePlusWindowsPluginCApiRegisterWithRegistrar(
|
SharePlusWindowsPluginCApiRegisterWithRegistrar(
|
||||||
registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi"));
|
registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi"));
|
||||||
Sqlite3FlutterLibsPluginRegisterWithRegistrar(
|
|
||||||
registry->GetRegistrarForPlugin("Sqlite3FlutterLibsPlugin"));
|
|
||||||
UrlLauncherWindowsRegisterWithRegistrar(
|
UrlLauncherWindowsRegisterWithRegistrar(
|
||||||
registry->GetRegistrarForPlugin("UrlLauncherWindows"));
|
registry->GetRegistrarForPlugin("UrlLauncherWindows"));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@
|
||||||
|
|
||||||
list(APPEND FLUTTER_PLUGIN_LIST
|
list(APPEND FLUTTER_PLUGIN_LIST
|
||||||
share_plus
|
share_plus
|
||||||
sqlite3_flutter_libs
|
|
||||||
url_launcher_windows
|
url_launcher_windows
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue