Flutter Android - Getting Invalid authority URL

Hello,
Thank you for the Flutter library.
iOS: Everything is working perfectly.
Android: Everything is working fine except for getting error while retrieving token silently.

Error: MSAL exception with error: Invalid authority URL.
Scenario: After logging in via an organizational account and being redirected back to the main screen, when I click on the Get Token Silent button, I receive the Invalid authority URL error in the logs.
msal_config.json
{
  "redirect_uri": "msauth://com.example.msal_auth_example/XXXXXxxxxwxxXXXXXXX", //signature hash
  "authorities" : [
    {
      "type": "AAD",
      "authority_url": "https://login.microsoftonline.com/xx-XXXX-XXXX-XXXX-xxx", // tenantId
      "audience": {
        "type": "AzureADandPersonalMicrosoftAccount",
        "tenant_id": "xxxx-XXXX-XXXX-XXXX-XXX"
      },
      "default": true
    }
  ],
  "multiple_clouds_supported": false,
  "broker_redirect_uri_registered": false,
  "authorization_user_agent": "WEBVIEW",
  "http": {
    "connect_timeout": 10000,
    "read_timeout": 30000
  },
  "logging": {
    "pii_enabled": false,
    "log_level": "WARNING",
    "logcat_enabled": false
  },
  "shared_device_mode_supported": false,
  "account_mode": "MULTIPLE"
}

AndroidManifest.xml
<activity android:name="com.microsoft.identity.client.BrowserTabActivity">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data
                    android:host="com.example.msal_auth_example"
                    android:path="/xxxxxxxxxxxxx+xxxxxxxxxY="
                    android:scheme="msauth" />
            </intent-filter>
        </activity>

Using flutter web-view for MS login.
Please review above code and let me know what changes are required.
I am getting stuck in this issue from last 2 days, tried so many ways but no success.
Please help.

@gtl-himanshu Are you using B2C?

Getting the same error even while using B2C. I am able to log in and logout but I cannot silent get. When I silent get I also get the same "Invalid authority URL error":
"redirect_uri": "msauth:///",
"authorities": [
{
"type": "B2C",
"authority_url": "https://login.microsoftonline.com/",
"audience": {
"tenant_id": ""
},
"default": true
}
],

@ranashreyas, your configuration seems wrong. your authority type is B2C but you are not following the correct URL.

Check more info here => Authority configuration in Android

Hey, guys.
Unfortunately, I have the same problem:
"redirect_uri": "msauth://<package_id>/<signature_hash>",
"authorities": [
  {
    "type": "AAD",
    "audience": {
      "type": "AzureADMyOrg",
      "tenant_id": "<tenand_id>"
    }
  }
],


Dismissing PH still keeps it in focus

Hello there,
I am having a chat with M$ for a feature of theirs, specifically https://github.com/microsoft/PowerToys/issues/7814.
I was wondering; is it a bug, or a feature, that PH still "technically" has focus after dismissing it with ESC? (returns to tray).
I haven't tried other ways (minimizing it or closing it; both with their "hide" options activated) still exhibit the same behavior

is it a bug, or a feature, that PH still "technically" has focus after dismissing it with ESC?

I tested this and the focus returns to explorer.exe when pressing ESC and the window minimizes:

PH was elevated and the test tool wasn't elevated. So it's an issue with whatever PowerToys does. Here's the code I used:
#include <Windows.h>
#include <wchar.h>

void main()
{
	while (TRUE)
	{
		HWND foreground = GetForegroundWindow();

		if (foreground)
		{
			HANDLE processHandle;
			ULONG processId;
			ULONG threadId;
			ULONG imageNameLength = MAX_PATH;
			WCHAR imageName[MAX_PATH];

			threadId = GetWindowThreadProcessId(foreground, &processId);

			processHandle = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, FALSE, processId);

			if (processHandle != INVALID_HANDLE_VALUE)
			{
				if (QueryFullProcessImageName(processHandle, 0, imageName, &imageNameLength))
				{
					wprintf(L"%s: ProcessId: %lu - ThreadId: %lu\n", imageName, processId, threadId);
				}
				else
				{
					wprintf(L"[NO IMAGE]: ProcessId: %lu - ThreadId: %lu\n", processId, threadId);
				}

				CloseHandle(processHandle);
			}
			else
			{
				wprintf(L"[NO PROCESS]: ProcessId: %lu - ThreadId: %lu\n", processId, threadId);
			}
		}
		else
		{
			wprintf(L"[NO FOREGROUND]\n");
		}

		Sleep(100);
	}
}

is it a bug, or a feature, that PH still "technically" has focus after dismissing it with ESC?

I tested this and the focus returns to explorer.exe when pressing ESC and the window minimizes:

PH was elevated and the test tool wasn't elevated. So it's an issue with whatever PowerToys does. Here's the code I used:
#include <Windows.h>
#include <wchar.h>

void main()
{
	while (TRUE)
	{
		HWND foreground = GetForegroundWindow();

		if (foreground)
		{
			HANDLE processHandle;
			ULONG processId;
			ULONG threadId;
			ULONG imageNameLength = MAX_PATH;
			WCHAR imageName[MAX_PATH];

			threadId = GetWindowThreadProcessId(foreground, &processId);

			processHandle = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, FALSE, processId);

			if (processHandle != INVALID_HANDLE_VALUE)
			{
				if (QueryFullProcessImageName(processHandle, 0, imageName, &imageNameLength))
				{
					wprintf(L"%s: ProcessId: %lu - ThreadId: %lu\n", imageName, processId, threadId);
				}
				else
				{
					wprintf(L"[NO IMAGE]: ProcessId: %lu - ThreadId: %lu\n", processId, threadId);
				}

				CloseHandle(processHandle);
			}
			else
			{
				wprintf(L"[NO PROCESS]: ProcessId: %lu - ThreadId: %lu\n", processId, threadId);
			}
		}
		else
		{
			wprintf(L"[NO FOREGROUND]\n");
		}

		Sleep(100);
	}
}

Powertoys is missing a few things which probably cause the issue:

Their manifests are missing "disableWindowFiltering" which is needed to "disables window filtering so you can enumerate immersive windows from the desktop". This is documented here:
https://docs.microsoft.com/en-us/windows/win32/sbscs/application-manifests

They also don't check the window properties for the main uwp window and instead default to hwndActive which is incorrect:
https://github.com/microsoft/PowerToys/blob/212ea2de30d69dbbfebf86c9d3604008d2272346/src/modules/keyboardmanager/common/Helpers.cpp#L216-L236

They should be calling EnumChildWindows for the current focused window and check:
GetProp(WindowHandle, L"Windows.ImmersiveShell.IdentifyAsMainCoreWindow")

Powertoys is missing a few things which probably cause the issue:

Their manifests are missing "disableWindowFiltering" which is needed to "disables window filtering so you can enumerate immersive windows from the desktop". This is documented here:
https://docs.microsoft.com/en-us/windows/win32/sbscs/application-manifests

They also don't check the window properties for the main uwp window and instead default to hwndActive which is incorrect:
https://github.com/microsoft/PowerToys/blob/212ea2de30d69dbbfebf86c9d3604008d2272346/src/modules/keyboardmanager/common/Helpers.cpp#L216-L236

They should be calling EnumChildWindows for the current focused window and check:
GetProp(WindowHandle, L"Windows.ImmersiveShell.IdentifyAsMainCoreWindow")

Thank you for your effort 😀

Thank you for your effort 😀

@stdedos
I tried.

@stdedos
I tried.

You tried tons^2 than I anticipated or expected! 😍
I was already very very happy when I saw actual code and proof that "that's not PH".
I wanted to tell you somehow that "you don't have to keep pushing it; it won't lead anywhere", but I don't have your email or anything else to reach you.

You tried tons^2 than I anticipated or expected! 😍
I was already very very happy when I saw actual code and proof that "that's not PH".
I wanted to tell you somehow that "you don't have to keep pushing it; it won't lead anywhere", but I don't have your email or anything else to reach you.

I don't have your email or anything else to reach you

My email has always been available on my github profile?

"you don't have to keep pushing it; it won't lead anywhere"

It's always worth trying to improve things regardless of the conversation.

"it won't lead anywhere"

It's not my first rodeo when it comes to Microsoft over the last 15 years... I'm used to it and in these cases someone else will suggest the exact same thing in a few years and only then will it get fixed.

I don't have your email or anything else to reach you

My email has always been available on my github profile?

"you don't have to keep pushing it; it won't lead anywhere"

It's always worth trying to improve things regardless of the conversation.

"it won't lead anywhere"

It's not my first rodeo when it comes to Microsoft over the last 15 years... I'm used to it and in these cases someone else will suggest the exact same thing in a few years and only then will it get fixed.


Move to Perl 5.10.1

Move to Perl 5.10.1 (unless we want to make an even newer Perl the baseline).
Look at what features we can use.

Defined-or: //
state
say
Will use of $& and ${^MATCH} conflict with each other?

      $MATCH
       $&      The string matched by the last successful pattern match (not
               counting any matches hidden within a BLOCK or "eval()" enclosed
               by the current BLOCK).

               The use of this variable anywhere in a program imposes a
               considerable performance penalty on all regular expression
               matches.  To avoid this penalty, you can extract the same
               substring by using "@-".  Starting with Perl 5.10, you can use
               the "/p" match flag and the "${^MATCH}" variable to do the same
               thing for particular match operations.

       ${^MATCH}
               This is similar to $& ($MATCH) except that it does not incur
               the performance penalty associated with that variable, and is
               only guaranteed to return a defined value when the pattern was
               compiled or executed with the "/p" modifier.

               This variable was added in Perl 5.10.

               This variable is read-only and dynamically-scoped.

Look through http://search.cpan.org/dist/perl-5.10.1/ and see what modules we might be able to take advantage of.


default to empty notes field

This will make double-annotation with known_failure work as expected with the notes parameter - if you tag it twice, but omit notes in the outer decorator, the notes will be an empty string.
@knifewine can you review please?

Wow I REAALLY thought empty string for notes didn't work, or I would have done this already. What a bummer.

If these cases work fine then I'm +1:
single decorator with notes
single decorator without notes
double, outside has notes, inside no notes
double, outside no notes, inside has notes
double, both have notes
double, neither have notes

Jim? Merging this would be nice.

Did a manual test as described in the new commit message. Read it, ya ingrates, it's a good lil manual test thing. It looks good, I'm merging.


Fix versions normalization

Description
Towards: https://github.com/giantswarm/giantswarm/issues/21851
Tested on ghost.
This PR basically extends version normalization we introduced here to all the version the exporter works with. The solution we introduced back then works fine for GS catalogs that host apps without the v prefix, hence ACEs, and Charts CRs are created without it, so it simply need to be removed from the entrypoint App CR .spec.version.
For the customers catalogs it may be different. When apps hosted there carry the v prefix, we create ACEs with the v prefix and also put the v prefixed versions into Chart CRs upon creation (taking them from index.yaml) which are then reflected in the .status field of corresponding App CRs. Now, trimming the prefix for .spev.version field only, makes exporter think that there is a mismatch between what's deployed and what's requested by the user. See example below.
This is still a workaround, when for example we migrate to OCR registries and start using them for Flux as a source of truth for the versions available for automatic update, then we can drop this normalization.
CRs given:
## App CR
apiVersion: application.giantswarm.io/v1alpha1
kind: App
metadata:
  name: example
  namespace: demo0
spec:
  catalog: customer
  kubeConfig:
    inCluster: false
  name: example
  namespace: example
  version: v1.0.0
status:
  release:
    status: deployed
  version: v1.0.0

# ACE
apiVersion: application.giantswarm.io/v1alpha1
kind: AppCatalogEntry
metadata:
  labels:
    app.kubernetes.io/name: example
    app.kubernetes.io/version: v1.0.0
    application.giantswarm.io/catalog: customer
    application.giantswarm.io/catalog-type: "public"
    giantswarm.io/managed-by: app-operator-unique
    latest: "true"
  name: example-customer-v1.0.0
  namespace: default
spec:
  appName: example
  appVersion: ""
  catalog:
    name: customer
    namespace: default
  version: v1.0.0

Resultant metric being exported:
app_operator_app_info{
app="example",
app_version="",
catalog="customer",
cluster_missing="false",
deployed_version="v1.0.0",  # prefix
latest_version="v1.0.0",  # prefix
name="workflow",
namespace="demo0",
status="deployed",
team="honeybadger",
upgrade_available="true",
version="1.0.0",   # no prefix
version_mismatch="true"
} 1

After normalization result should be:
app_operator_app_info{
app="example",
app_version="",
catalog="customer",
cluster_missing="false",
deployed_version="1.0.0",
latest_version="1.0.0",
name="example",
namespace="default",
status="deployed",
team="honeybadger",
upgrade_available="false",
version="1.0.0",
version_mismatch="false"
} 1

Checklist

[x] Update changelog in CHANGELOG.md.

Dunno why CircleCI does not report back the  status to Github, but the ATs seem to fail.

Dunno why CircleCI does not report back the status to Github, but the ATs seem to fail.

I've seen that, but have no idea why that fails. ATS doesn't give any feedback and when I'm running the test locally with KinD it works fine, so I would simply ignore the CircleCI

Also including results from running ATS locally. Maybe @piontec will take a look on why it fails in CircleCI
2022-05-16 09:59:26,780 step_exec_lib.utils.processes INFO: === RUN   TestMetrics
{"caller":"github.com/giantswarm/app-exporter/tests/ats/metrics_test.go:87","level":"debug","message":"waiting for `app-exporter` pod","time":"2022-05-16T09:59:25.670942+00:00"}
{"caller":"github.com/giantswarm/app-exporter/tests/ats/metrics_test.go:94","level":"debug","message":"waited for `app-exporter` pod","time":"2022-05-16T09:59:25.709555+00:00"}
{"caller":"github.com/giantswarm/app-exporter/tests/ats/metrics_test.go:99","level":"debug","message":"creating tunnel to pod `app-exporter-ffb9fbcbd-rmbpb` on port 8000","time":"2022-05-16T09:59:25.709618+00:00"}
{"caller":"github.com/giantswarm/app-exporter/tests/ats/metrics_test.go:106","level":"debug","message":"created tunnel to pod `app-exporter-ffb9fbcbd-rmbpb` on port 8000","time":"2022-05-16T09:59:25.848365+00:00"}
{"caller":"github.com/giantswarm/app-exporter/tests/ats/metrics_test.go:113","level":"debug","message":"getting metrics from `http://<IP_ADDRESS>:55485/metrics`","time":"2022-05-16T09:59:25.848523+00:00"}
{"caller":"github.com/giantswarm/app-exporter/tests/ats/metrics_test.go:124","level":"debug","message":"got metrics from `http://<IP_ADDRESS>:55485/metrics`","time":"2022-05-16T09:59:26.570465+00:00"}
{"caller":"github.com/giantswarm/app-exporter/tests/ats/metrics_test.go:155","level":"debug","message":"checking for expected app metric\napp_operator_app_info{app=\"app-exporter\",app_version=\"0.13.1-dev\",catalog=\"chartmuseum\",cluster_missing=\"false\",deployed_version=\"0.13.0-284f980e93ed7cfaf7b59c5da4ff6c0a79029647\",latest_version=\"\",name=\"app-exporter\",namespace=\"default\",status=\"deployed\",team=\"honeybadger\",upgrade_available=\"false\",version=\"0.13.0-284f980e93ed7cfaf7b59c5da4ff6c0a79029647\",version_mismatch=\"false\"} 1","time":"2022-05-16T09:59:26.576935+00:00"}
{"caller":"github.com/giantswarm/app-exporter/tests/ats/metrics_test.go:167","level":"debug","message":"found expected app metric","time":"2022-05-16T09:59:26.577296+00:00"}
{"caller":"github.com/giantswarm/app-exporter/tests/ats/metrics_test.go:171","level":"debug","message":"checking for expected app-operator metric\napp_operator_ready_total{namespace=\"giantswarm\",version=\"0.0.0\"} 1","time":"2022-05-16T09:59:26.577366+00:00"}
{"caller":"github.com/giantswarm/app-exporter/tests/ats/metrics_test.go:177","level":"debug","message":"found expected app-operator metric","time":"2022-05-16T09:59:26.577469+00:00"}
--- PASS: TestMetrics (0.95s)
PASS
ok  	github.com/giantswarm/app-exporter/tests/ats	0.972s

2022-05-16 09:59:26,799 step_exec_lib.utils.processes INFO: Command executed, exit code: 0.
2022-05-16 09:59:26,824 app_test_suite.steps.scenarios.simple INFO: Deleting App CR and its values CM
2022-05-16 09:59:28,108 app_test_suite.steps.scenarios.simple INFO: Application deleted
2022-05-16 09:59:28,117 step_exec_lib.steps INFO: Skipping build step for UpgradeTestScenario as it was not configured to run.


only partial response data when using launchCamera

I need to get the height and width or at least isVertical of the video.
It is only in the response when picking from the gallery.
When using launchCamera, I only get the video path.
Is there a way to get this information when launching the camera directly?

@mbelgrader any luck with this? I've found (at least on android where the rotation matters) that the only data I get in the response is: height, timestamp, uri, and data - none of the other attributes described in the documentation.


[Gally]: master <- dev

Automatically created by Git-Ally

:tada: This PR is included in version 1.10.143 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Allow double-click within tracks to set a new play position

This feature allows the user to move the Animation Play Position by double clicking, being more intuitive and improving workflow by keeping the mouse on the tracks, as opposed to going at the top only to change its current position.

For the record, your commit seems not to be linked to your GitHub account. See: Why are my commits linked to the wrong user? for more info.

Considering snapping the play position to frames is also applied everywhere else where you move the play position, wouldn't it make sense if this feature also snapped?

wouldn't it make sense if this feature also snapped?

Snapping works just the same with it. I assume the signal timeline_changed handles the snapping (if enabled). Here's an example


Create scooptanzu

Hi @scoop1985 I see you are trying to register for the course, however please note that first you have to register with the community by filling out the form at the link below. Once you submit the form, it will trigger github to send you an invitation to join the modernapps ninja github organization, and once you accept that invitation, you should be able to register for this course and take the tests. Thanks!

@scoop1985 you can find the form to join the github org here: https://github.com/ModernAppsNinja/modernappsninja.github.io/issues/new/choose


Updated Russian translation files

Summary
Added some missing translation strings, fixed some minor typos, fixed some translations to maintain consistency.
The actual list of changes I made is quite small; most additions and deletions seen in diff are automatically generated.

Coverage remained the same at 82.694% when pulling 399353460a4afa93ca13b775127492dc5b86bcb2 on paramono:locale_ru into c36e4d346ae5697bda59b69397c1b996c2f0c649 on divio:release/3.4.x.

Hello @paramono,
Thanks for the contribution.
Please use Transifex as per our documentation.


expose route table ids to root stack module

The route table IDs are already  exposed by the VPC module.
This way they are exposed by the root module and we can add routes to the tables.

👍  thanks for your contribution


DoxFX is unable to create documentation

Describe the bug
The documentation is not generated
To Reproduce
Steps to reproduce the behavior:

Run the build.yaml
Go to Build documentation step
Find the Warning:MetadataCommand.ExtractMetadataWorkspace failed with: [Failure] Msbuild failed when processing the file 'D:\a\KNet\KNet\src\net\KNet\KNet.csproj' with message: Method not found: 'System.ReadOnlySpan1<Char> Microsoft.IO.Path.GetFileName(System.ReadOnlySpan1)'.

Expected behavior
The documentation shall be generated
Screenshots

Desktop (please complete the following information):

OS: GitHub Virtual environment
Image Version: 20220816.1

Additional context
Same problem reported in https://github.com/masesgroup/JNet/issues/35

Found this transitory workaround https://github.com/dotnet/docfx/issues/8136#issuecomment-1219512721


Fix-65575 MarkdownIt plugins (or Rules) called multiple times for one input

@mjbvz , here is the initial PR based on my understanding to fix #65575 , I have added CachedToken and implementation to use it.
Please review this and let me know if anything is missing or not correct, I will correct it accordingly, Thanks :)

@mjbvz , Cool , this sounds good and makes sense , I am working it and update you on the progress. Thanks for the review :)

@mjbvz , I have changed it as per your review , Please review it now and let me know if this is good or something needs to be changed , Happy to correct it (Just want to make sure it is good).
Thanks :)


Improve test coverage in operator/pkg/object

Currently at 30.6%.

happy to take a shot at it. first timer so any pointers are welcomed. thanks


Resetcontrol

During reset several control signals are not cleared.  This merge fixes this, tidies up the mailbox and adds a missing include.
Signed-off-by: Peter Saunderson<EMAIL_ADDRESS>

Sorry for being away for a while...I don't feel comfortable with some of these changes. In particular, the etx_clocks is a red flag. The following statement probably won't synthesize correctlyas it's mixing async and sync reset. Not sure what the tool will do here? Might work in sim but won't work on fpga.
"if(!sys_nreset & ~(heartbeat | heartbeat_double))"
Feels like the root cause is still open,looking at it now.

I removed the reset changes from my other pull requests to avoid confusion.  Also wanted to see if the test run with the fpga had any differences without the clock changes.. no change detected...
In the simulation runs these reset changes are good because it enables the new test harness to write to the mailbox.... without them too much is left undefined to work out what is going on.  I will do something local for the time being to keep the simulation working and wait for a better fix..
I moved the mailbox tidy up into the latest pull request.. thus it seemed appropriate to close this pull request.


avldrums-lv2: alias to x42-avldrums

Motivation for this change
x42 stuff has two names, sometimes distantly related (x42-autotune is aka fat1.lv2). It seems that x42 names are better because they are more recognizable (as belonging to x42-plugins.com), they are used in URLs (https://x42-plugins.com/x42/x42-avldrums) and as the names of packages (https://x42-plugins.com/x42/linux/).
Fixes #83649
cc @magnetophon
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

LGTM!


fix(jest-runtime): make sure a module can never be its own parent

Summary
Fixes #5235.
I'm not sure if this is the correct fix. Technically the parent of the test files is something internal to jest. And the condition I've added seems to be true for lots of different files, and I don't really understand why...
Test plan
Integration test added. Would love some help adding a unit test.

Closing this, but we still need to fix it.

Agreed. Should be easier with #5618 merged. I'll try to find the time 🙂


Intuitive UI for Core Game Controls (Start, Pause, Live Life)

Issue Title
Improve UI Layout for Game Options (Start, Pause, Live Life)

Description
Currently, the options to "Start Game," "Pause," and "Live Life" are scattered across the interface, making it difficult for users to access them quickly. These key functions should be more easily accessible and visible to the user to enhance the overall gameplay experience.
Current UI Screenshot:

Proposed Solution
I suggest redesigning the layout to place all key options (Start, Pause, Live Life) within a centralized and unified portal, where users can easily access them while playing the game. Ideally, these options should be grouped together within the game's control panel or near the play area to minimize confusion and improve usability.

@YadavAkhileshh  I would love to work on this issue, please assign it to me


Add moment-duration-format dependency (for upcoming alerts UI)

Adding the moment-duration-format package as a dependency. This will be used by the manageiq-ui-classic addition of the Monitor->Alerts section. PR https://github.com/ManageIQ/manageiq-ui-classic/pull/254
@himdel
@miq-bot add_label euwe/no, enhancement

Can you keep it sorted alphabetically please? :)
Otherwise, yup, LGTM :+1:

@miq-bot add_label ui

@jeff-phillips-18 did you add the embedded_automation_manager stuff here intentionally? If so.. the PR probably needs a description change ;)

@himdel Sorry about that, messed up my rebase. Should be all set now. Thanks 😉

Fixed the alphabetizing as well

Thanks, LGTM :)


Consider exif rotation when doing focus thumbnail

Fixes 370.
I added a test however the configuration may not be correct as I can not run them locally or in my github actions.

The failing test may not seems to related to you changes. Would you please merge from master branch?

ok I merged the master, the tests run now on my system but some others fail even if I revert my changes. My new test passes if I add the changes back so I think that one is ok (at least on arm64).

Thanks!


Resolve XHTML5 compatibility issues highlighted by https://validator.…

…w3.org:

Remove unnecessary type from script tags.
Remove scrolling/frameborder from iframe.
Use HTML5 compliant html tag.
Assign appropriate header/nav/main/footer tags in the site.vm.

https://jira.apache.org/jira/browse/MSKINS-153

Will look into it.

I see this locally:
[INFO] -------------------------------------------------
[ERROR] The following builds failed:
[ERROR] *  mskins-75\pom.xml
[ERROR] *  mskins-76\pom.xml
[ERROR] *  mskins-76_topbar\pom.xml

Please have a look and rebase your branch on top of the one I have pushed.

Integration tests are fixed.


Fix Fable.ObjExpr call in Fable.Plugins.Random.fsx plugin sample.

Both documentation and plugin sample are outdated. Fable.ObjExpr now has 4 arguments.

I forgot to update that, thank you!


Support multiple bridges with qemu + simplification of Nic by MAC

With this small change, vm.json now supports the scripts member in net, which means qemu can use another ifup/ifdown script than the default one (/includeos/scripts/qemu-ifup).
The create_bridge.sh already (kinda) supported creating your own custom bridge, but now you also need to assign a mac address so you can have them different.
Usage:
$ ./create_bridge.sh bridge44 <IP_ADDRESS> <IP_ADDRESS> c0:ff:0a:00:00:01
Then I copy the qemu-if* scripts to ~/dev/bridge44/, and edit the BRIDGE value inside the scripts to bridge44. Executable permission also needs to be set:
$ chmod +x ~/dev/bridge44/qemu-if*
In vm.json I point to the script path (they have to be named the same):
"net" : [
    {"device" : "vmxnet3", "mac" : "c0:01:0a:00:00:aa", "scripts": "/Users/andreas/dev/bridge44/"},
    {"device" : "vmxnet3", "mac" : "c0:01:0a:00:00:2a"}
  ]

This allows daredevils (like me) to create and try out the routing facilities we have. Not yet so stream lined - improvements are gladly welcomed!

Nic got helper functions to retrieve index for a given MAC addr. The result is that a stack with subindex (VLAN) can now also be retrieved together with MAC Addr.


Add bash to prereqs for dotnet-install.sh on Alpine

Otherwise you get
[2021/03/13 18:40:35][INFO] $ /home/dan/git/performance/tools/dotnet/x64/dotnet-install.sh -InstallDir /home/dan/git/performance/tools/dotnet/x64 -Architecture x64 -Channel 5.0
[2021/03/13 18:40:35][INFO] env: ‘bash’: No such file or directory

bash is not installed by default on Alpine.
Also added a note for libgdiplus.

Build system is currently having problems..

@danmoseley should we wait for @AR-May ?

Sure, that makes sense. I'm just a consumer, they own the script I guess and can check whether I missed anything.

@adegeo can we merge?


Cleaned up and added functionality

Feel free to use any part of this, or none of it.  I hope my comments help make sense of some things.
Let me know if you have any questions.

Thanks for your modifications. I like the $SyncDelay tweak and the improved modularity.


feature: Filter indicators

@danharrin

Just a little problem on RTL layout.
Close icon (X) goes over the text.

It seems that the deletion doesn't work.
I think it's related to the fact that my filters have the same name property inside the Checkbox class, which the value is "isActive", even if I precise the name when configuring the filter :

When I dd the $this->getFlatComponents($withHidden) inside the getFlatFields function of the HasComponents :

So when I click on the "x" to delete the filter, nothing happens.

The name shouldnt matter in this case. Please open an issue with a reproduction repo and I can look into it

I think that this has to do with the default() method actually. Basically, if you specify the default() method for any filter, any don't change it from that default - deleting the filter doesn't do anything because it simply reverts back to that default. If you were to change the filter from the default selection to something else, then click the delete button - it doesn't remove the filter, but it does change it back to the default filter.
I never realized it before but the "Reset Filters" functionality, which was in place before these filter indicators, did the same thing.
While I can understand the rationale here, this behavior doesn't feel intuitive to me. It feels like clicking "Reset Filters", or removing any specific filter via the Filter Indicator, should remove the filter entirely - not revert to the default.

@intrepidws you are right. I removed the default() modifier and the removal works. Thank you for finding it :)
I don't know if it is the expected behavior for @danharrin. But on checkbox filter, I was expecting to be "unchecked", even if the default status of the checkbox is to be "checked".

@danharrin I guess I can understand why the "Reset Filters" link itself would reset the filters to their default state, but it feels like clicking the "X" close icon of a filter indicator should remove the filter entirely. Likewise with clicking the "X" close icon of the entire filter indicator row. Thoughts?

Hm right, I think I understand why this isn't ideal behaviour for resetting the indicator individually, yes. I can see that there would be edge cases where even setting the value to null would cause problems, but ignoring the default() is probably a better solution, yes. I will prepare a PR now.

#3669

Stellar work as always Dan, thank you.


CryptoTokenExtension - need or not?

What is the CryptoTokenExtension?

AFAIK the CryptoTokenExtension implements the U2F standard for two factor authenticaton with hardware devices.

I'm closing this issue, feel free to reopen if you have further questions.

I have some questions, please.
There isn't much info about this CryptoTokenExtension online, the most prominent Ask Ubuntu answer says:

On the other hands... it IS a tracking tool

While taking this sentence with a grain of salt as with most Ask Ubuntu answers, I wonder if there is any tracking threat coming from this extension? Is it proprietary? Why can't it be disabled even if you don't utilize 2FA? If it's such a core functionality that it can't be disabled, why is it an extension and not part of the browser?

@Lesik My knowledge of CryptoTokenExtension is limited, but I might be able to provide some more insight:

I wonder if there is any tracking threat coming from this extension?

I highly doubt the component itself will proactively or unnecessarily send identifying data about you anywhere.
I am suspecting the answer is referring to how the whole 2FA process allows you to be tracked, which is a given since it's an authentication method using a very strong fingerprint (i.e. the hardware key).

Is it proprietary?

I can say with 99% certainty that it is open source due to the binary pruning process in building ungoogled-chromium. I also haven't seen anything binaries download while building or running Chromium (that aren't intentional).

Why can't it be disabled even if you don't utilize 2FA? If it's such a core functionality that it can't be disabled, why is it an extension and not part of the browser?

I think the suffix "Extension" in CryptoTokenExtension may be a bit misleading here. It is technically an "extension" due to where it runs, how it runs, and what it uses to run. However, this extension is only one component of the implementation of the U2F standard. I suspect there is some JavaScript or HTML functionality that is easier to implement in a specialized extension, which then talks through exclusive private chrome APIs (like the Webstore app has) to send data to the browser component that interfaces with the hardware key.
My knowledge of these kinds of extensions are limited, but I don't think anything bad will happen by disabling this extension if you don't use U2F. However, I don't think there's much of a reason to do so unless you're worried about it being exploited in some manner.

Please keep in mind that this is all speculation. We would need to look through the code for CryptoTokenExtension and the U2F implementation to be certain.

@Eloston but still, this extension creates an identification code for each computer, based on it's hardware.
Isn't there any plans to remove it?

@MrOCR Do you have information on what CryptoTokenExtension uses from the hardware to create an identification code, and an explanation of how this extension can be used by a webpage?


UriLabelService.getWorkspaceLabel

This PR does the following:

Moves the UriLabelService to be a core service, such that the configuration service depends on it, not the other way around. Note that the previous solution was also unhappy with the configurationService.acquireUriLabelService. Now it is the other way around. The reason for this is that the configurationService needs the workspaceLabel very early on startup
Adds the getWorkspaceLabel() to the UriLabelService
Adopts the getWorkspaceLabel acrross the workbench and removes the weird function from workspaces.ts

The benefits of this is that we can easily add rules for computing a workspace label. For example instead of the remotehub scheme we could display github.
I still plan to simplify the implementation of the getWorkspaceLabel and adopt it to show proper label for werid workspace schemas.
What might be an issue: in some cases the workspace label is needed very early and this might be before clients get a chance to register "rules" for displaying the workspace label - though will have to double check.
@bpasero most of the feedback in this review I would need regarding the first commit which makes the uriLabelService a core service. Could you please take a glance if this makes sense to you?
fyi @aeschli @sandy081

@sandy081 thanks, that makes perfect sense, let me work on that and I will push changes here.

Based on the feedback I have removed the IWorkspace.name and now everybody hast to go to the UriLabelService.getWorkspaceLabel in order to get this.
This change reduced quite some complexity across the workbench.
@bpasero @sandy081 could you please review, most of the places it is just adapoting to the new way of getting the workspace name. A thing to keep in mind is the ExHostWorkspace which gets the name from the renderer side and stores it.
@sandy081 since we have now removed the name from the IWorkspace this method is not 100% correct since it will also return true if I pass in the IWorkspaceIdentifier - not sure if that will break something but just so we are aware

@bpasero agree - I was thinking the same. Will do that on master.

@sandy081 gave a thumbs up while talking to him -> merging


fs: fat: Use uin16_t instead of wchar_t in fs_fat32dirent.c

Summary

Due to the recent changes of wchar_t, ls command always
causes errors for the fat file system.
This commit fixes this issue by replacing wchar_t with
uint16_t in fs_fat32dirent.c

Impact

None

Testing

Tested with spresense:wifi and stm32f4discovery:wifi

See https://github.com/apache/incubator-nuttx/pull/4754#issuecomment-990488059

i guess you need to change this too. https://github.com/apache/incubator-nuttx/blob/bcf9b4e5cd502e7270339c4c4f64f355f0c17870/fs/fat/fs_fat32.h#L948

i guess you need to change this too.

@yamt
OK. I'll modify the file later.

LGTM.


Cannot read properties of undefined (reading 'value')

Hi! I'm using qwik-speak with the inline plugin, and I'm getting the following error when building for production:
It only fails with version 0.12.1, and works with previous version
computing gzip size (0)...[vite-plugin-qwik-speak-inline] Cannot read properties of undefined (reading 'value')
✓ built in 3.56s
error during build:
TypeError: Cannot read properties of undefined (reading 'value')
    at $ (/home/juan/Projects/every/node_modules/.pnpm/qwik-speak@0.12.1_@builder.io+qwik@1.0.0/node_modules/qwik-speak/inline/index.cjs:6:1731)
    at $ (/home/juan/Projects/every/node_modules/.pnpm/qwik-speak@0.12.1_@builder.io+qwik@1.0.0/node_modules/qwik-speak/inline/index.cjs:6:1686)
    at $ (/home/juan/Projects/every/node_modules/.pnpm/qwik-speak@0.12.1_@builder.io+qwik@1.0.0/node_modules/qwik-speak/inline/index.cjs:6:1686)
    at $ (/home/juan/Projects/every/node_modules/.pnpm/qwik-speak@0.12.1_@builder.io+qwik@1.0.0/node_modules/qwik-speak/inline/index.cjs:6:1686)
    at $ (/home/juan/Projects/every/node_modules/.pnpm/qwik-speak@0.12.1_@builder.io+qwik@1.0.0/node_modules/qwik-speak/inline/index.cjs:6:1686)
    at $ (/home/juan/Projects/every/node_modules/.pnpm/qwik-speak@0.12.1_@builder.io+qwik@1.0.0/node_modules/qwik-speak/inline/index.cjs:6:1686)
    at $ (/home/juan/Projects/every/node_modules/.pnpm/qwik-speak@0.12.1_@builder.io+qwik@1.0.0/node_modules/qwik-speak/inline/index.cjs:6:1686)
    at $ (/home/juan/Projects/every/node_modules/.pnpm/qwik-speak@0.12.1_@builder.io+qwik@1.0.0/node_modules/qwik-speak/inline/index.cjs:6:1907)
    at $ (/home/juan/Projects/every/node_modules/.pnpm/qwik-speak@0.12.1_@builder.io+qwik@1.0.0/node_modules/qwik-speak/inline/index.cjs:6:1686)
    at $ (/home/juan/Projects/every/node_modules/.pnpm/qwik-speak@0.12.1_@builder.io+qwik@1.0.0/node_modules/qwik-speak/inline/index.cjs:6:1686)
 ELIFECYCLE  Command failed with exit code 1.
 ELIFECYCLE  Command failed with exit code 1.

I have same problem:
`
vite v4.1.4 building for production...
✓ 87 modules transformed.
[vite-plugin-qwik-speak-inline] Cannot read properties of undefined (reading 'value')
file: D:/work/wocute/ssr/src/s_c7jsucm5pkq.js
error during build:
TypeError: Cannot read properties of undefined (reading 'value')
at $ (D:\work\wocute\ssr\node_modules.pnpm\registry.npmmirror.com+qwik-speak@0.12.0_@builder.io+qwik@0.104.0\node_modules\qwik-speak\inline\index.cjs:6:1527)
at $ (D:\work\wocute\ssr\node_modules.pnpm\registry.npmmirror.com+qwik-speak@0.12.0_@builder.io+qwik@0.104.0\node_modules\qwik-speak\inline\index.cjs:6:1703)
at $ (D:\work\wocute\ssr\node_modules.pnpm\registry.npmmirror.com+qwik-speak@0.12.0_@builder.io+qwik@0.104.0\node_modules\qwik-speak\inline\index.cjs:6:1703)
at $ (D:\work\wocute\ssr\node_modules.pnpm\registry.npmmirror.com+qwik-speak@0.12.0_@builder.io+qwik@0.104.0\node_modules\qwik-speak\inline\index.cjs:6:1703)
at $ (D:\work\wocute\ssr\node_modules.pnpm\registry.npmmirror.com+qwik-speak@0.12.0_@builder.io+qwik@0.104.0\node_modules\qwik-speak\inline\index.cjs:6:1703)
at m (D:\work\wocute\ssr\node_modules.pnpm\registry.npmmirror.com+qwik-speak@0.12.0_@builder.io+qwik@0.104.0\node_modules\qwik-speak\inline\index.cjs:6:1857)
at m (D:\work\wocute\ssr\node_modules.pnpm\registry.npmmirror.com+qwik-speak@0.12.0_@builder.io+qwik@0.104.0\node_modules\qwik-speak\inline\index.cjs:6:1864)
at $ (D:\work\wocute\ssr\node_modules.pnpm\registry.npmmirror.com+qwik-speak@0.12.0_@builder.io+qwik@0.104.0\node_modules\qwik-speak\inline\index.cjs:6:1694)
at $ (D:\work\wocute\ssr\node_modules.pnpm\registry.npmmirror.com+qwik-speak@0.12.0_@builder.io+qwik@0.104.0\node_modules\qwik-speak\inline\index.cjs:6:1703)
at $ (D:\work\wocute\ssr\node_modules.pnpm\registry.npmmirror.com+qwik-speak@0.12.0_@builder.io+qwik@0.104.0\node_modules\qwik-speak\inline\index.cjs:6:1703)
 ELIFECYCLE  Command failed with exit code 1.
 ELIFECYCLE  Command failed with exit code 1.
`

@juanpmarin Thanks for reporting. I need to isolate the problem to fix the bug.
In v0.12.1 I made some changes to params parsing: are you using $translate function somewhere with some particular parameter, like a call expression:
t('home.greeting', getGreeting('name'))
To find out, temporarily remove the function from your code and do npm run build.client
@juzicheng From your log it looks like you are using version 0.12.0 (which by the way supports Qwik greater than v1): can you provide some more details on when the error started happening? can you do tests like the one described above?
Thanks!

I have same problem:
vite v4.1.4 building for production...
✓ 87 modules transformed.
[vite-plugin-qwik-speak-inline] Cannot read properties of undefined (reading 'value')
file: D:/xxx/ssr/src/s_c7jsucm5pkq.js
error during build:
TypeError: Cannot read properties of undefined (reading 'value')
    at $ (D:\xxx\ssr\node_modules\.pnpm\registry.npmmirror.com+qwik-speak@0.12.0_@builder.io+qwik@0.104.0\node_modules\qwik-speak\inline\index.cjs:6:1527)
    at $ (D:\xxx\ssr\node_modules\.pnpm\registry.npmmirror.com+qwik-speak@0.12.0_@builder.io+qwik@0.104.0\node_modules\qwik-speak\inline\index.cjs:6:1703)
    at $ (D:\xxx\ssr\node_modules\.pnpm\registry.npmmirror.com+qwik-speak@0.12.0_@builder.io+qwik@0.104.0\node_modules\qwik-speak\inline\index.cjs:6:1703)
    at $ (D:\xxx\ssr\node_modules\.pnpm\registry.npmmirror.com+qwik-speak@0.12.0_@builder.io+qwik@0.104.0\node_modules\qwik-speak\inline\index.cjs:6:1703)
    at $ (D:\xxx\ssr\node_modules\.pnpm\registry.npmmirror.com+qwik-speak@0.12.0_@builder.io+qwik@0.104.0\node_modules\qwik-speak\inline\index.cjs:6:1703)
    at m (D:\xxx\ssr\node_modules\.pnpm\registry.npmmirror.com+qwik-speak@0.12.0_@builder.io+qwik@0.104.0\node_modules\qwik-speak\inline\index.cjs:6:1857)
    at m (D:\xxx\ssr\node_modules\.pnpm\registry.npmmirror.com+qwik-speak@0.12.0_@builder.io+qwik@0.104.0\node_modules\qwik-speak\inline\index.cjs:6:1864)
    at $ (D:\xxx\ssr\node_modules\.pnpm\registry.npmmirror.com+qwik-speak@0.12.0_@builder.io+qwik@0.104.0\node_modules\qwik-speak\inline\index.cjs:6:1694)
    at $ (D:\xxx\ssr\node_modules\.pnpm\registry.npmmirror.com+qwik-speak@0.12.0_@builder.io+qwik@0.104.0\node_modules\qwik-speak\inline\index.cjs:6:1703)
    at $ (D:\xxx\ssr\node_modules\.pnpm\registry.npmmirror.com+qwik-speak@0.12.0_@builder.io+qwik@0.104.0\node_modules\qwik-speak\inline\index.cjs:6:1703)
 ELIFECYCLE  Command failed with exit code 1.
 ELIFECYCLE  Command failed with exit code 1.

@juanpmarin Thanks for reporting. I need to isolate the problem to fix the bug.
In v0.12.1 I made some changes to params parsing: are you using $translate function somewhere with some particular parameter, like a call expression:
t('home.greeting', getGreeting('name'))
To find out, temporarily remove the function from your code and do npm run build.client
@juzicheng From your log it looks like you are using version 0.12.0 (which by the way supports Qwik greater than v1): can you provide some more details on when the error started happening? can you do tests like the one described above?
Thanks!

Thanks!
But when I update "qwik-speak": "0.12.1",,  the problem still exists!
my package.json:
{
  "name": "xxx",
  "description": "SSR for xxx",
  "engines": {
    "node": ">=15.0.0"
  },
  "private": true,
  "scripts": {
    "build:test": "rimraf dist && rimraf server && qwik build --mode testing",
    "build:staging": "rimraf dist && rimraf server && qwik build --mode staging",
    "build": "rimraf dist && rimraf server && qwik build",
    "deploy": "node server/entry.express",
    "build.client": "vite build",
    "build.preview": "vite build --ssr src/entry.preview.tsx",
    "build.server": "vite build -c adapters/express/vite.config.ts",
    "build.types": "tsc --incremental --noEmit",
    "dev": "vite --mode ssr --port 8888 --host",
    "dev.debug": "node --inspect-brk ./node_modules/vite/bin/vite.js --mode ssr --force",
    "fmt": "prettier --write .",
    "fmt.check": "prettier --check .",
    "lint": "eslint \"src/**/*.ts*\"",
    "preview": "qwik build preview && vite preview --open",
    "start": "vite --open --mode ssr --port 8888",
    "qwik": "qwik",
    "rm.dist.server": "rimraf dist && rimraf server"
  },
  "devDependencies": {
<EMAIL_ADDRESS>"0.104.0",
<EMAIL_ADDRESS>"0.104.0",
    "@types/compression": "^1.7.2",
    "@types/eslint": "8.21.1",
    "@types/express": "4.17.17",
    "@types/node": "^18.14.0",
    "@types/node-fetch": "latest",
    "@typescript-eslint/eslint-plugin": "5.54.0",
    "@typescript-eslint/parser": "5.54.0",
    "compression": "^1.7.4",
    "eslint": "8.10.0",
    "eslint-plugin-qwik": "0.21.0",
    "express": "4.18.2",
    "node-fetch": "3.3.0",
    "prettier": "2.8.4",
    "qwik-speak": "0.12.0",
    "typescript": "4.9.5",
    "undici": "5.20.0",
    "vite": "4.1.4",
    "vite-plugin-compression": "^0.5.1",
    "vite-tsconfig-paths": "3.5.0"
  },
  "dependencies": {
    "qwik-image": "^0.0.3"
  }
}

I did use the $translate function in a component:
\test\index.tsx :
import type { Signal } from<EMAIL_ADDRESS>import { $, component$, Slot, useSignal, useVisibleTask$ } from<EMAIL_ADDRESS>import { $translate as t, displayName as dn, Speak, useSpeakConfig } from "qwik-speak";
// import { config } from "@plug/qwikSpeak";
import { useLocale } from "~/hooks/useLocale";

export { head } from "@Html/DocHead";

export const CardSlot = component$(({ title }: { title: string }) => {
    return (

{title}

                <Slot />

    );
});

export const ToggleLocale = component$(() => {
    const config = useSpeakConfig();

    const changeLocale$ = $((lang: any) => {
        location.replace(location.href.replace(/language=([a-zA-Z-]*)/gi, `language=${lang}`));
    });

    return (
        <CardSlot title="Toggle Locale">

                {config.supportedLocales.map(({ lang }, i) => {
                    return (
                        <button
                            class="button is-link is-outlined"
                            key={i}
                            onClick$={async () => {
                                await changeLocale$(lang);
                                // change language
                                // location.replace(location.href.replace(/language=([a-zA-Z-]*)/gi, `language=${lang}`));
                            }}
                        >
                            {lang}: {dn(lang, { type: "language" })}
                        </button>
                    );
                })}

        </CardSlot>
    );
});

export const GlobalText = component$(({ fName = "[lang]" }: { fName: string | null }) => {
    return (
        <CardSlot title={`/i18n/${fName}/global.json`}>

                app.AppName:{" "}

                    {t("app.AppName@@{{defaultValue}}", {
                        defaultValue: "This is default value!",
                    })}

                app.title:{" "}

                    {t("app.title@@{{defaultValue}}", {
                        str: t("app.AppName"),
                        defaultValue: "Default: Unknown",
                    })}

        </CardSlot>
    );
});

export const TestText = component$(({ fName = "[lang]" }: { fName: string | null }) => {
    return (
        <CardSlot title={`/i18n/${fName}/test.json`}>

                test.testStr: {t("test.testStr")}

        </CardSlot>
    );
});

export const Child = component$(() => {
    const _l: Signal<string | null> = useSignal("");
    useVisibleTask$(() => {
        _l.value = window.localStorage.getItem("language");
    });

    return (

            <ToggleLocale />
            <GlobalText fName={_l.value} />
            <TestText fName={_l.value} />

    );
});

export default component$(() => {
    useLocale();
    return (
        <Speak assets={["test"]}>
            <Child />
        </Speak>
    );
});

in Dev, it working, but no in production!
Can you help me? thx!

I tried to do this, but it still doesn't working.
$ pnpm i
Packages: +4 -4
++++----
Downloading<EMAIL_ADDRESS>12 MB/12 MB, done
Progress: resolved 382, reused 381, downloaded 1, added 1, done

devDependencies:
- @builder.io/qwik
+ @builder.io/qwik 1.1.1
- @builder.io/qwik-city
+ @builder.io/qwik-city 1.1.1
- qwik-speak
+ qwik-speak 0.12.1

@juzicheng Yes in dev works, because the Inline plugin works only in prod mode.
I found the issue in you code:
{t("app.title@@{{defaultValue}}", {
  str: t("app.AppName"),
  defaultValue: "Default: Unknown",
})}

are the colon in the string: "Default: Unknown".
However if you use parameters like this you will have other problems: $translate of a parameter: what's the point?

it's a test demo, just show other developer. don't care it  ! 😂
I have just started using qwik, no long time.I am still trying something, haha. If there are any issues with my writing, please help me correct it. Thank you!

@robisim74
When I remove the colon :, it can compile normally.

Yes, it compiles: but the colon should be supported in literals!
Then, the str parameter is not used in your example, but in production it will not translated, because $translate inside a $translate is not supported (it will considered a dynamic key).
You have to keep in mind that in production the $translate function is only a placeholder: it is replaced with the translated text

Yes, it compiles: but the colon should be supported in literals!
Then, the str parameter is not used in your example, but in production it will not translated, because $translate inside a $translate is not supported (it will considered a dynamic key).
You have to keep in mind that in production the $translate function is only a placeholder: it is replaced with the translated text

ok, thanks, i think i got this.
I'm try it now.
Thank you for your patience!

@juzicheng  I released a new versions that should solve the problem of colon in params. I also added support for parameter stranslation

@juanpmarin Version v0.12.2 contains fixes that maybe solve your problem too.
If not, you should now see the log for the function that is causing the problem in the console.
Please, let me know

The latest version fixed my issue, thanks! @robisim74

Okay, glad to know. These issues are useful for fine-tuning the Inline tool.


[FALSE-POSITIVE] FrankerFaceZ (andknuckles.frankerfacez.com, frankerfacez.com)

Domains or links
andknuckles.frankerfacez.com
frankerfacez.com
More Information
How did you discover your web site or domain was listed here?
A user in our project's Discord reported this repository as incorrectly flagging our domain as a phishing site. I am not currently aware of any other services that report any of our domains as phishing.
Our website has not been hacked. In fact, andknuckles.frankerfacez.com is not regularly visited by human users. It serves as a web-socket host, and only returns a very basic HTML page that hasn't been modified since 2015 if someone tries visiting directly as something of an easter egg.
Have you requested removal from other sources?
No other services at this time have flagged our domains, to the best of my knowledge, including but not limited to OpenPhish and Phishtank.

Obviously, this came from one of our partners - which I can find any record of, unfortunately. Our crawlers are definitely not navigating on that scope ...
Sorry for the disturbance this may have caused @SirStendec.

Obviously, this came from one of our partners - which I can find any record of, unfortunately. Our crawlers are definitely not navigating on that scope ...

3 years old (!) false positive submitted by abusers.
https://www.phishtank.com/phish_detail.php?phish_id=5976284
Has been removed from the site almost immediately, but remained in your DB for years.

Obviously, this came from one of our partners - which I can find any record of, unfortunately. Our crawlers are definitely not navigating on that scope ...

3 years old (!) false positive submitted by abusers. https://www.phishtank.com/phish_detail.php?phish_id=5976284
Has been removed from the site almost immediately, but remained in your DB for years.

PhishTank > Details on suspected phish #5976284

Sadly phishtank doesn't provide any whitelisted or removal lists so we rely on user reports and issues


v2.3.0 Release

Changelog
Added

Added missing webhook triggers (#220)
Added provider field to token exchange response (#225)
Added support for clean messages endpoint (#226, #228)
Added support for custom headers field for Drafts and Messages (#223)
Added support for overriding various fields of outgoing requests (#224)

Changed

Fixed issue where attachments < 3mb were not being encoded correctly (#227, #222)

License

I confirm that this contribution is made under the terms of the MIT license and that I have the authority necessary to make this contribution on behalf of its copyright owner.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 80.04%. Comparing base (e1a2f30) to head (31b90dc).

Additional details and impacted files
@@            Coverage Diff            @@
##               main     #229   +/-   ##
=========================================
  Coverage     80.04%   80.04%
  Complexity      284      284
=========================================
  Files            30       30
  Lines           847      847
  Branches         86       86
=========================================
  Hits            678      678
  Misses          120      120
  Partials         49       49

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Screen is not a constructor

const screen = new Screen();
^
TypeError: Screen is not a constructor
at Object. (C:\Users\User\3dproject\index.js:5:16)
    at Module._compile (internal/modules/cjs/loader.js:959:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
    at Module.load (internal/modules/cjs/loader.js:815:32)
    at Function.Module._load (internal/modules/cjs/loader.js:727:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1047:10)
    at internal/main/run_main_module.js:17:11

Hello!
Any steps to reproduce that? What is Screen in this context anyway?
Did it come from the code like this?
const init = require('3d-core-raub');
const { Screen, loop } = init();

const screen = new Screen();
loop(() => screen.draw());

Hello!
Any steps to reproduce that? What is Screen in this context anyway?
Did it come from the code like this?
const init = require('3d-core-raub');
const { Screen, loop } = init();

const screen = new Screen();
loop(() => screen.draw());

Yes i've tried this code.

Hello!
Any steps to reproduce that? What is Screen in this context anyway?
Did it come from the code like this?
const init = require('3d-core-raub');
const { Screen, loop } = init();

const screen = new Screen();
loop(() => screen.draw());

I solved the problem.
const init = require('3d-core-raub');
const { Screen, loop } = init();

This is working.
const { Screen, loop } = require('3d-core-raub');
This is not working.


v0.1.7 image removed from ghcr.io

A new version was recently released. However we have difficulties getting this version up and running on Openshift. We want to use the previous version v0.1.7, but this image has been removed from ghcr.io.
Locally,
➜  ~ docker pull ghcr.io/interlynk-io/sbomqs:v0.1.7
v0.1.7: Pulling from interlynk-io/sbomqs
no matching manifest for linux/arm64/v8 in the manifest list entries

From the clusters,
ERROR: Job failed: prepare environment: waiting for pod running: pulling image "ghcr.io/interlynk-io/sbomqs:v1.7.0":
image pull failed: rpc error: code = Unknown desc = reading manifest v1.7.0 in ghcr.io/interlynk-io/sbomqs: unknown:
 resource not found: repo ghcr.io/interlynk-io/sbomqs, tag v1.7.0 not found.
Check https://docs.gitlab.com/runner/shells/index.html#shell-profile-loading for more information

@Hannessi yes this is accurate in v0.1.7 we did not support ARM. Thats the support we added to v0.1.8. Let me fix v0.1.8 so u can use it.

Closing as a known issue of 0.1.7, has been fixed in v0.1.9


Aleaverfay/stack kinematics

Construct a kinematic tree for a stack of systems.
The kinematics code has a "flattened" view of the atoms in the system, with the system-indices of the kintree atoms being their row-major index;
ie. if there are 3 systems with at most 50 atoms each, then atom 5 in system 2 (indexing from zero) would be:
50 * 2 + 5
so that
coords = torch.zeros( (nstacks, system_size, 3), dtype=float)

can be written to by a view
coords_flattened = coords.reshape((-1, 3))

Within the kintree, there's a single root at position 0 (as before) and this root connects to the first atom (atom 0) for each of the systems. Within the KinematicBuilder code, this is accomplished by creating faux bonds between the root of the first system to the roots of all the other systems, ahead of the call to csgraph.breadth_first_order.
The messiest part of this conversion is that I'm tolerating the two descriptions of bonds:
as either a nbonds x 2 array of atom index pairs, or a nbonds x 3 array of (stack-index, at1, at2) triples. There are several access points, it seems, into the KinematicBuilder code, (at least as far as testing goes) and I've had to make Unions of the n x 2 and n x 3 inputs and then paste on a column of 0's in case the user has passed an n x 2 array (corresponding to "everything is in a single stack").

Very old code here; eventually bits and pieces of this branch were integrated into the res-centric code.


inconsistent naming of implicit x86 operands, e.g.  and "eax"

I would be nice to standardize on one, e.g. the one without angle brackets.

Can you show an example of the place of inconsistency?
Implicit here means mostly for assemblers implementing X86/X86_64 backends. When eax is used in instruction like ADD, it's implicit in the encoding, but not for assemblers - assemblers use regular encoding and decide which encoding to use based on the use of eax, for example.
This is why you see aaa x:<ax> and add X:eax, id/ud - in the former case ax is implicit, in the latter case eax is not implicit.

Here are a  few
"out"              , "ub, eax"                                         , "I"       , "E7 ib"
"xsaves"           , "W:mem, , "
"adc"              , "X:eax, id/ud"                                    , "I"       , "15 id"
"mul"              , "W:, X:, r32/m32"

Ok, so:

out - hah, I think this actually could be implicit, I would have to check the manuals
xsaves - this one has all registers implicit
adc - cannot be implicit as that is just an alternative encoding of a regular adc r32, id/ud
mul - first two registers are implicit - in AsmJit the preferred is to have them explicit instead of implicit

Just to be clear, I just did a grep for eax over  x86data.js and copied a few examples. there are many more.
I also just realized that the encoding byte sequence for xsave and mul was missing in my examples but you
can quickly verify that there is now place holder for eax in those bytes so it must be implicit.
To reiterate my point: I believe the information is in the tables is correct but I do not understand why two notations
( and eax) are used for what seems to be same thing.