text:
Loaders merge behavior with "include"

I found issue with merging multiple loaders (in 2.6.1) with same test and different include fields:
rule 1: { test: 'js', } // <-- no include field
....
rule 10: { test: 'js', include: 'verySpecialDir', 'loaders only for this dir'}
rule 11: { test: 'js', include: 'anotherSpecialDir', 'different loaders'}
merge.smart will return:
{ test: 'js', include: 'verySpecialDir', 'loaders only for this dir' merged with 'global loaders'}
{ test: 'js', include: 'anotherSpecialDir', 'different loaders'}
At first, rule 1 merged with rule 10, because of rule 10 looks like it extend rule 1 with include field. Next, rule 10 not merged with rule 11 - they had different include fields. As result, global rule applied only for files in one dir, not for all js.
Yes, it's expected behavior (one rule extends another), but it's looks not really 'smart'. Currently, I use slightly different (and useless for webpack) test fields to avoid merge, but it's very bad idea, I think.
Write a customizeArray is slightly better option, but it's very tricky and unclear solution at my sight.
May be smart.merge should not merge include fields (exclude, and other scope modificators) by default, and treat loaders with different includes as different objects?

I think I'll deprecate merge.smart in 3.0. Too unpredictable.

But how to replace current smart behavior? It's need to write entry with merge.unique and compare test, include, etc in every project?

I guess the quickest fix would be to not merge when there's no include. That would be the safest option.

Any chance for a test case?

it('should not merge to parent without include ' + loadersKey, function () {
  const common = {
    module: {}
  };
  common.module[loadersKey] = [
    {
      test: /\.js$/,
      loaders: ['babel']
    }
  ];
  const strip = {
    module: {}
  };
  strip.module[loadersKey] = [
    {
      test: /\.js$/,
      loaders: ['strip?strip[]=debug'],
      include: 'apps'
    }
  ];
  const result = {
    module: {}
  };
  result.module[loadersKey] = [
    {
      test: /\.js$/,
      loaders: ['babel']
    },
    {
      test: /\.js$/,
      loaders: ['strip?strip[]=debug'],
      include: 'apps'
    }
  ];

  assert.deepEqual(merge(common, strip), result);
});

passes for me even though based on your description it should not. I'm missing something in my test.

My bad - order in example does matter. Fixed example:
const merge = require('webpack-merge');

var configs = [
    {
        module: {
            rules: [
                {
                    test: /\.js$/,
                    include: 'dir-1',
                    use: [
                        'custom-loader-1'
                    ]
                }
            ]
        }
    }, {
        module: {
            rules: [
                {
                    test: /\.js$/,
                    use: [
                        'common-loader'
                    ]
                }
            ]
        }
    }, {
        module: {
            rules: [
                {
                    test: /\.js$/,
                    include: 'dir-2',
                    use: [
                        'custom-loader-2'
                    ]
                }
            ]
        }
    }
];

console.log(JSON.stringify(merge.smart(configs), null, '\t'));

Result:
{
	"module": {
		"rules": [
			{
				"test": {},
				"include": "dir-1",
				"use": [
					"custom-loader-1",
					"common-loader"
				]
			},
			{
				"test": {},
				"include": "dir-2",
				"use": [
					"custom-loader-2"
				]
			}
		]
	}
}

That helps. Thanks. 👍

Hi,
I have an initial fix at https://github.com/survivejs/webpack-merge/pull/69 if you want to have a look.
I'll likely merge that in a few days and publish a version with the fix.

Looks good, thanks!

Published in 3.0.0. Sorry for the delay, busy days.

Just upgraded to 3.0.0 - works perfectly, thank!

authors: VladimirGrenaderov bebraw

repo: survivejs/webpack-merge


text:
login credentials

login credentials are not in proper order. Assign so that i will make it in proper.

assign to me i would like to work @suryanshsk

@suryanshsk i have added it named Logins.If any changes are required let me know.

@suryanshsk is it good or not

should i send the code

@suryanshsk How can i give access so that you can access?

Make one credentials which only admin can access
On Wed, 9 Oct, 2024, 9:12 pm 23wh1a0513, @.***> wrote:

@suryanshsk https://github.com/suryanshsk How can i give access so that
you can access?
—
Reply to this email directly, view it on GitHub
https://github.com/suryanshsk/Python-Voice-Assistant-Suryanshsk/issues/85#issuecomment-2402688784,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVBBZFJX3HLJXZDIPG4JOOLZ2VFGFAVCNFSM6AAAAABPSEPX5GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBSGY4DQNZYGQ
.
You are receiving this because you were mentioned.Message ID:
@.***
com>

how can i do it because i am new to this so i am learn then if you guide i can do it now itself.

Okay you know react js. Or Flask?
On Wed, 9 Oct, 2024, 9:15 pm 23wh1a0513, @.***> wrote:

how can i do it because i am new to this so i am learn then if you guide i
can do it now itself.
—
Reply to this email directly, view it on GitHub
https://github.com/suryanshsk/Python-Voice-Assistant-Suryanshsk/issues/85#issuecomment-2402695282,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVBBZFOQXDQKJVYMZ47DX53Z2VFRTAVCNFSM6AAAAABPSEPX5GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBSGY4TKMRYGI
.
You are receiving this because you were mentioned.Message ID:
@.***
com>

At present i dont know them i have knowledge about python,and bit of html and css.

Okay don't worry Submit pr of only this project I will merged it don't
worry about it 😊
On Wed, 9 Oct, 2024, 9:23 pm 23wh1a0513, @.***> wrote:

At present i dont know them i have knowledge about python,and bit of html
and css.
—
Reply to this email directly, view it on GitHub
https://github.com/suryanshsk/Python-Voice-Assistant-Suryanshsk/issues/85#issuecomment-2402712613,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVBBZFP5OJP7N7ARZXM2LTLZ2VGPJAVCNFSM6AAAAABPSEPX5GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBSG4YTENRRGM
.
You are receiving this because you were mentioned.Message ID:
@.***
com>

Thank you for your support I actually added a file with name Login isnt it there.

Did you submit Pull request?

NO

So submit without any hesitate
On Wed, 9 Oct, 2024, 9:31 pm 23wh1a0513, @.***> wrote:

NO
—
Reply to this email directly, view it on GitHub
https://github.com/suryanshsk/Python-Voice-Assistant-Suryanshsk/issues/85#issuecomment-2402730472,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVBBZFMMSVRFZQQFRG24IITZ2VHOVAVCNFSM6AAAAABPSEPX5GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBSG4ZTANBXGI
.
You are receiving this because you were mentioned.Message ID:
@.***
com>

Can i directly add a file without pull request

No first add the file then submit pull request them I'll merge it
On Wed, 9 Oct, 2024, 9:36 pm 23wh1a0513, @.***> wrote:

Can i directly add a file without pull request
—
Reply to this email directly, view it on GitHub
https://github.com/suryanshsk/Python-Voice-Assistant-Suryanshsk/issues/85#issuecomment-2402739638,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVBBZFJ7M3OO4V4B2LKPV5LZ2VH65AVCNFSM6AAAAABPSEPX5GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBSG4ZTSNRTHA
.
You are receiving this because you were mentioned.Message ID:
@.***
com>

once can you check it have i done it with name NewLogin

Yes, I can see it.
On Wed, 9 Oct, 2024, 9:38 pm 23wh1a0513, @.***> wrote:

once can you check it have i done it with name NewLogin
—
Reply to this email directly, view it on GitHub
https://github.com/suryanshsk/Python-Voice-Assistant-Suryanshsk/issues/85#issuecomment-2402745336,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVBBZFJDPB2BIQLTO2D77DDZ2VIJFAVCNFSM6AAAAABPSEPX5GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBSG42DKMZTGY
.
You are receiving this because you were mentioned.Message ID:
@.***
com>

source: gharchive/issue

license: MIT

license_type: permissive

license_source: github-api


text:
enable check dist

after merged https://github.com/sustainable-computing-io/kepler-action/pull/44, we can enable check dist ref https://github.com/actions/javascript-action/pull/304

Commit number 4be183afbd08ddadedcf09f17e8e112326894107 from https://github.com/actions/javascript-action/commit/4be183afbd08ddadedcf09f17e8e112326894107

source: gharchive/pull-request

repo: sustainable-computing-io/kepler-action


text:
Handle unknowns completely

This PR combines  this existing branch with the updates made here.
Hopefully this comprehensively handles unknown DICOM elements.
(Note: this PR also contains the changes from my PR currently up)

Suggestion: this PR may read cleaner if you branch off of the existing changes branch and add on top as needed. I'm not sure if this PR needs the changes from your other PR #233, but if not then that will probably be the cleanest way to setup and review the salient changes in this PR (and make it less likely to be stale as changes are made in the other PRs etc)! You can also probably rebase your new branch to incoporate the changes already merged into main (or if needed I can rebase s/read-un-as-sq).

authors: jabillings suyashkumar

repo: suyashkumar/dicom


text:
Update Node.js Buffer gap for Node.js v6.8.1

[x] Recheck gap description from v6.7.0 to v6.8.1
[x] Update website, documentation, and tests referring to Node.js snapshot (a bit premature but some behaviors have already been changed)

Checked the diff between v6.7.0 and v6.8.1 buffer docs and there doesn't seem to be any changes. Also checked v6.8.0 and v6.8.1 release notes and there seem to be only internal buffer changes.

repo: svaarala/duktape

license: mit

license_source: bigquery


text:
E419: FG color unknown

Getting this error on vim 8.2
line 555:
E419: FG color unknown

Closed in fd2582a

authors: svanburen tchardin


text:
Deleting Downloaded files

How do you delete downloaded files? Is this done automatically?

There is a settings option that let's you automatically clear the list upon startup. You can also hit shift-d to delete them one by one.

repo: sveale/remote-edit


text:
Cookies set on server are improperly escaped

Describe the bug
This load function in +page.server.ts sets a cookie with value "a/b":
export function load({cookies}: any) {
    cookies.set("test", `"a/b"`);
    return {};
}

But the value that's actually returned in the Set-Cookie header and saved in the browser is %22a%2Fb%22. This bug only happens when load is run on the server, not in the browser.
Reproduction
Code: https://codesandbox.io/p/devbox/sveltekit-cookie-issue-l3c2zc?file=%2Fsrc%2Froutes%2F%2Bpage.server.ts%3A4%2C2
Website: https://l3c2zc-5173.csb.app/
(The code is deployed on the website above, and visiting the website should set the incorrect cookie %22a%2Fb%22 in your browser)
Logs
No response
System Info
System:
    OS: Linux 5.13 Ubuntu 20.04.4 LTS (Focal Fossa)
    CPU: (4) x64 Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz
    Memory: 26.26 GB / 30.85 GB
    Container: Yes
    Shell: 5.0.17 - /bin/bash
  Binaries:
    Node: 18.14.0 - ~/.nvm/versions/node/v18.14.0/bin/node
    npm: 9.3.1 - ~/.nvm/versions/node/v18.14.0/bin/npm
  Browsers:
    Chrome: 120.0.6099.234

Severity
serious, but I can work around it
Additional Information
No response

The server behavior sounds correct to me. The default behavior in the underlying cookie library is to URL-encode cookie values, but this can be overridden - https://github.com/jshttp/cookie#encode
What are you doing on the browser so that it's set differently? And what value does it end up being?

When I force it to run in the browser (by putting load() in +layout.ts instead of +layout.server.ts, and adding if (!browser) return {}), it sets the cookie to "a/b", which is inconsistent with the server-side behavior.

cookies isn't passed to universal load() functions, neither on the browser nor on the server. Could you show a complete reproduction of what you're doing?

Ah, my bad. The code I ran with the universal load() function was more complicated - calling an external API that sets a cookie (which I believe SvelteKit forwards to the browser?). I'll try to set up a minimal reproduction of this.

If it's an external API, that's going to have its own decisions that have been made about how/whether to encode cookie values.
In any case, I suspect the solution for you is to pass an identity encode callback to the cookies library when setting the cookie, which is essentially 'I know what I'm doing, use this literal cookie value'. I believe that library will still throw an error if your encoded cookie contains any characters disallowed by the spec (which presumably it won't, if this other external API is successfully setting it to that).

Here's a better reproduction. I have an API endpoint that sets a cookie:
/routes/api/set-cookie/+server.ts
import type { RequestHandler } from './$types';

export const POST: RequestHandler = () => {
    const headers = new Headers();
    headers.append('Set-Cookie', 'test="a/b"; Path=/; HttpOnly');

    return new Response("Cookie has been set", { headers });
}

and a universal load() function that calls this API:
/routes/bad/+page.ts
import { browser } from "$app/environment";
import type { PageLoad } from "./$types";

export const load: PageLoad = ({fetch}) => {
    if (!browser) {
        fetch('/api/set-cookie', { method: 'POST' });
    }
    return {};
}

When I use if (!browser) to force it to run on the server, the cookie is set to %22a%2Fb%22, which you can see for yourself by going to https://h9trhh-5173.csb.app/bad and checking your cookies.
But when I use if (browser) to run load() in the browser, it sets the cookie to "a/b", which you can see at https://h9trhh-5173.csb.app/good
You can find the full code here
Also see #1198 for a similar bug (except in that issue, the "bad" case wouldn't set a cookie at all)

Use the cookies arg of the load function or if you really want to set it manually use encodeURIComponent as stated.

@gterras the cookies arg is only available on +layout.server.ts, not +layout.ts. I have a workaround for this, but it seems like a bug in SvelteKit if load() acts differently when run server-side vs client-side.

From the link above :

You cannot add a set-cookie header with setHeaders — use cookies.set(name, value, options) instead.

Just use the cookies args inside your request handler (api/set-cookie). As for why it happens in addition to being explicitly not supported I suppose sveltekit or even your browser does it for you at some point. Ensuring cookies are encoded/decoded isn't mandatory but it really helps avoiding surprises.

This issue still happens when fetching an external API, not just /api/set-cookie. My toy example uses /api/set-cookie because it was the simplest way to demonstrate the bug, but in my real use case, the external API is implemented in Python, where cookies.set() won't work.
encodeURIcomponent also won't work: if the API returns an encoded cookie value (such as %2F instead of /), then the server-side load() function will encode it a second time (turning %2F into %252F) when passing on the Set-Cookie response header.

Sorry for the delay - yep, this indeed looks like a bug in how cookies are (re-)serialized when server-side rendering is collecting together the cookies getting sent by the various API calls made with fetch. The bug is presumably somewhere around https://github.com/sveltejs/kit/blob/c4efc26f67c369bd802ac27ba6f1087077dfe7c1/packages/kit/src/runtime/server/fetch.js#L131-L132 or around https://github.com/sveltejs/kit/blob/a2fe7abe3cbb8344f25a529a2014103a2e75abff/packages/kit/src/runtime/server/cookie.js#L186 .
As an aside, in your repro you should be awaiting the result of the fetch in your load functions, otherwise it's not guaranteed to finish in time, and you may get errors about not being able to set cookies on the outgoing response.

My (untested) guess for a fix would be something like this:
diff --git a/packages/kit/src/runtime/server/fetch.js b/packages/kit/src/runtime/server/fetch.js
index e59112092..dcd1c240b 100644
--- a/packages/kit/src/runtime/server/fetch.js
+++ b/packages/kit/src/runtime/server/fetch.js
@@ -132,14 +132,17 @@ export function create_fetch({ event, options, manifest, state, get_cookie_heade
 				const set_cookie = response.headers.get('set-cookie');
 				if (set_cookie) {
 					for (const str of set_cookie_parser.splitCookiesString(set_cookie)) {
-						const { name, value, ...options } = set_cookie_parser.parseString(str);
+						const { name, value, ...options } = set_cookie_parser.parseString(str, {
+							decodeValues: false
+						});

 						const path = options.path ?? (url.pathname.split('/').slice(0, -1).join('/') || '/');

 						// options.sameSite is string, something more specific is required - type cast is safe
 						set_internal(name, value, {
 							path,
-							.../** @type {import('cookie').CookieSerializeOptions} */ (options)
+							.../** @type {import('cookie').CookieSerializeOptions} */ (options),
+							encode: (value) => value
 						});
 					}
 				}

We need to tell the set-cookie-parser to not try to URL-decode the cookie values, and then we need to tell the cookie library to not try to URL-encode them.

authors: Conduitry gterras howard36

repo: sveltejs/kit


text:
Server-side fetch in load is not credentialed

Describe the bug
No credentials are passed on in a server-side fetch.
To Reproduce
On a fresh kit project:

blah

// src/routes/test.js
export async function get(request) {
  console.log(request);
  return {
    body: {
      data: 1234,
    },
  };
}

// src/setup/index.js
export async function prepare() {
  return {
    headers: {
      "Set-Cookie": "test=1234",
    },
  };
}

Load http://localhost:3000 twice.
Expected behavior
Cookie header should appear in server console on second load.
Information about your SvelteKit Installation:
  System:
    OS: Windows 10 10.0.19042
    CPU: (16) x64 AMD Ryzen 7 3700X 8-Core Processor
    Memory: 12.38 GB / 31.95 GB
  Binaries:
    Node: 14.16.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.10 - ~\AppData\Roaming\npm\yarn.CMD
    npm: 7.6.1 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Chrome: 89.0.4389.90
    Edge: Spartan (44.19041.423.0), Chromium (89.0.774.54)
    Internet Explorer: 11.0.19041.1
  npmPackages:
    @sveltejs/kit: next => 1.0.0-next.59
    svelte: ^3.29.0 => 3.35.0

Severity
Blocking for any project that requires credentialed server-side requests.

Is this related to this?

It's apparently a five-month old comment, but probably!
https://github.com/sveltejs/kit/blob/4267d8e77028dbf56234b43a8b0ae13dbdb58631/packages/app-utils/src/render/page.ts#L104

this is the issue in node-red for that https://github.com/node-fetch/node-fetch/issues/1113

in order to move forward here
a) node-fetch needs to accept the pull request https://github.com/node-fetch/node-fetch/pull/1116
b) sveltekit needs to actually set the cookie headers etc. if credentials is true. likewise to sapper

@eikaramba This is a good workaround for setting headers with ssr, but it only worked for me when placed above that conditional.

yeah it could be that it actually needs to be executed for internal and external calls. i am calling a backend api on localhost from svelte, not first fetching some internal svelte ressource, which then calls my backend api.

Closed via #835

Reopening as this is not quite fixed. Internal fetches like fetch('/test') work.
"External" fetches like fetch('http://localhost:3000/test') (yes, same origin) do not have headers passed even if we explicitly include credentials:
await fetch('http://localhost:4000/test', {
  credentials: 'include',
  mode: 'cors'
});

Probably because we don't pass it to the external node fetch:
https://github.com/sveltejs/kit/blob/108c26cb797a7d09dda5f287cd17ee9f02bc914a/packages/kit/src/runtime/server/page.js#L82-L85

We need to be really careful about what's 'same origin' because the server has no idea what host/path the various cookies are associated with. It just has a list of cookies that the browser had determined to be relevant for this SSR'd page, and not for any other subrequests.

Right, I think forcing the user to be explicit about wanting to do a "cross-origin" fetch makes sense. Should credentials: 'same-origin' emit a warning in console maybe?

What I meant is that all the server will have are the wrong cookies. It's not like on the browser where we can jump through CORS hoops to make a page on domain1 talk to domain2 using domain2's cookies. On the server, we'd have domain1 talking to domain2 with domain1's cookies.

Is there an actual solution to this problem? I was hoping for this to eventually work as it would significantly simplify the authentication in my application so this is kind of a blocker for me.

Due to the origin issues Conduitry mentioned there's not really a way to do cross-origin requests. If you do need to passthrough your mydomain.com cookies to a thirdparty.com domain, you can technically already do that now by implementing it as an endpoint and calling fetch('/my-endpoint'). However, thirdparty.com cookies will always require client side involvement.
I'm not sure how we can reasonably detect fetch('http://mydomain.com/blah') is equivalent to fetch('/blah') without trusting the host has been properly set.

I don't really want to re-implement all of my api endpoints to make this work. Is there a way to "mask" the thirdparty endpoints to pass through the cookies?

This is a blocker for me as well, as I don't really understand how to interact with my backend while it's not implemented within sveltekit and cookie-based authentication.
I don't know how much workaround is it, but for now I'm using this approach:
myproject/src/routes/api/[...route].ts
import fetch from 'node-fetch';
import type { RequestHandler } from '@sveltejs/kit';

const apiUrl = 'http://localhost:5000';

const handler: RequestHandler = async function (request) {
	const response = await fetch(apiUrl + request.path, {
		headers: request.headers,
		method: request.method
	});

	let body: unknown;

	try {
		body = await response.clone().json();
	} catch (e) {
		body = await response.text();
	}

	const headers = {
		'set-cookie': response.headers.get('set-cookie')
	};

	return {
		status: response.status,
		headers,
		body
	};
};

export const get: RequestHandler = handler;

This way I'b able to pass cookie back and forth, so this code kind of works:

{JSON.stringify(me)}

Doesn't seem to me as an optimal approach, because in involves some manual parsing and non-obvious assumptions.
Hope for some solution from @Rich-Harris as well.

The problem is that the browser will not send first-party thirdparty.com cookies to mydomain.com, and vice versa. A credentialed client-side fetch to thirdparty.com can never be emulated on the server-side because the requisite information is never sent to the mydomain.com server, so if you have no control over thirdparty.com there's not much you can do.
If you need mydomain.com cookies to pass through to thirdparty.com with the potential security issues that comes with - it's better to parse the cookies and selectively forward specific ones - you can always use spread routes: src/routes/api/[...params].js and map mydomain.com/api/foo/bar to thirdparty.com/foo/bar as done above. This means that both client and server fetch calls will have to go through your /api proxy, since there's no thirdparty.com cookie as far as the browser is concerned.
If you control both domains, maybe you can make the cookie's Domain attribute contain both domains and set SameSite to none? I haven't tried this. That said, third party cookies are subject to privacy concerns and are blocked by both browser extensions and even by some browsers themselves, so they shouldn't be relied upon.

This feels like a common use case for SvelteKit. I want to write my frontend in SvelteKit and have a separate api. What would be the optimal way to do this? Using token-based auth? Something else?

My typical sapper workflow had a mix of API endpoints (in express). This was like nirvana to me- i miss it in SK.
I also think that having the 'escape hatch' of expresses middleware ecosystem was one of the biggest selling points of sapper. I'd love to be able to do the same thing.

@schibrikov 's solution almost works for us, but unfortunately Apollo requires you to have a full URI for their config. The problem with that is that Svelte Kit, even with the proxied API route is seeing that URI as a different origin and still doesn't pass in our Headers.  So while hitting that proxied url with a fetch using a relative path work, the same relative path doesn't play nice with Apollo client.
Wondering if you found any solutions @eikaramba

i ditched apollo, because it just does not work for me with svelteKit. in dev mode yes, but as soon as i started building it broke everything. now i am just using a simple plain fetch to the graphql endpoint.
that said, the issue from this ticket is still a huge problem. the workaround from @schibrikov  is kind of working although i have a problem that the endpoint does seem to accept post requests. it always fire the exported GET method even if the svelte component uses fetch with method:"POST". i guess i will settle with this workaround but it really feels quite weird to first go over the internal node server to finally access my own backend if i want to use authentication (which of course i want).

I'd just like to add that I am also being frustrated by this bug.
A Graphql server on localhost:8080 and site on localhost:3000 and they don't play nicely. In production I'd like to have the api on a subdomain.
These are pretty normal setups and should not be so difficult to get working.
I can't understand why this issue is closed.

@daamsie Part of the original issue has been solved. The other part of the issue is inherently problematic because cookies cannot cross origins. The issue is not closed as a "won't fix", it's closed because SvelteKit cannot change the behavior of the browser.
To solve the problem in a secure manner, the recommended setup is to proxy your API:
client <-> sveltekit <-> api

Using, for example, /src/routes/api/[...path].js.

My problems are for situations where the domain is the same though. A cookie can be shared across subdomains or ports. That is not a browser limitation.

I think this is beyond the scope of the original issue so I'll file a new one specifically for same-origin "external" fetches.

I think this is beyond the scope of the original issue so I'll file a new one specifically for same-origin "external" fetches.

Awesome,thank you. I think determining that something is an external fetch call based on relative or absolute url might throw a lot of people off.

The new issue will be tracked at #1777.

authors: Conduitry GrygrFlzr MirrorBytes Rich-Harris acoyfellow daamsie eikaramba pixelmund schibrikov sphinxc0re stolinski


text:
[@svelteui/core] Generate random id for input label in TextInput component

Generate random id for input label
Before submitting the PR, please make sure you do the following

[x] Read the Contributing guide
[x] Prefix your PR title with [@svelteui/core], [@svelteui/actions], [@svelteui/motion], [@svelteui/core], [core], or [docs].
[x] This message body should clearly illustrate what problems it solves.

Tests

[ ] Run the tests with npm test and lint the project with yarn lint or just run yarn repo:prepush and check to see if it's passing.

Thank you for your contribution!

authors: BeeMargarida hiddenLadder

repo: svelteuidev/svelteui


text:
JavaScript error on save

Hey!
Since v0.21.2 I see the following message in the console when saving a collection, and the page becomes unresponsive.
sveltia-cms.js:627 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading '_default')
    at t.$$.update (sveltia-cms.js:627:238808)
    at PT (sveltia-cms.js:1:5502)
    at Ze (sveltia-cms.js:1:5217)

My config is:
backend:
  name: github
  repo: jonnyowenpowell/<repo name>
  branch: main
site_url: http://localhost:1313
logo_url: /img/logo.png
media_folder: static/img
public_folder: /img
search: true
collections:
  - name: blog
    label: Blog
    folder: 'content/blog'
    create: true
    editor:
      preview: false
    fields:
      - { label: 'Title', name: 'title', widget: 'string' }
      - { label: 'Publish Date', name: 'date', widget: 'string' }
      - { label: 'Description', name: 'description', widget: 'string' }
      - { label: 'Author', name: 'author', widget: 'string' }
      - { label: 'Body', name: 'body', widget: 'markdown' }

Thanks for reporting! Just fixed the issue and shipped v0.21.5 🙇🏼

Nice one, thanks very much!
I see you're not accepting contributions right now, and I understand why! However, if you do start looking for contributors at some point, I'd be happy to chip in - I'll check the readme periodically to see if you announce anything like that 👍

Thanks! I’ll start accepting contributions once the Svelte 5 migration is done. It will happen as soon as the next month.

authors: jonnyowenpowell kyoshino

repo: sveltia/sveltia-cms


text:
Can I use dependency injection in this scenario?

I'm using Bolt. I've subclassed their Unit object and want to use another class in this unit. Previously this class was a singleton but I'm trying to replace that with dependency injection everywhere.
The Unit class is not a monobehaviour and is instantiated at runtime but I cannot override the constructor as it breaks Bolt. Is it possible to use dependency injection in this case? If so, how would I set it up my class?

I'm not familiar with Bolt, but as long as there is some code you can run when the Unit class gets created then you can force Zenject to inject it by calling DiContainer.Inject.  You probably want to use the scene container for this by doing something like  var sceneContainer = ProjectContext.Instance.Container.Resolve<SceneContextRegistry>().GetContainerForScene(someGameObject.scene)

I played around a bit with Injecting into Bolt units. I did get some simple injection up and running by creating a FlowMachineInjector MonoBehaviour, borrowing heavily on the Auto Injector.
A bit annoying, but no different than binding other MonoBehaviours.
I haven't yet attempted to inject to the Bolt State Machines.

Sorry to open again, but I wanted to share code from my initial try at Bolt Unit injection for any future travelers into this thread.
I don't think I'm going to use Bolt + Zenject just yet. I like a lot of Bolt, but it's too thin on the documentation right now for custom units and scripting.
`using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Zenject;
using Ludiq;
using Bolt;
using ModestTree;
[RequireComponent(typeof(FlowMachine))]
public class FlowMachineInjector : MonoBehaviour
{
[SerializeField]
ContainerSources _containerSource = ContainerSources.SearchHierarchy;
public ContainerSources ContainerSource
{
	get { return _containerSource; }
	set { _containerSource = value; }
}

void InjectGraph(DiContainer container, FlowGraph graph)
{
	foreach(Unit unit in graph.units)
	{
		if (unit.GetType() == typeof(SuperUnit))
		{
			// work through the units within a super unit
			SuperUnit superUnit = (SuperUnit)unit;

			InjectGraph(container, superUnit.nest.graph);
		}

		container.Inject(unit);
	}
}

private void Start()
{
	FlowMachine flowMachine = this.GetComponent<FlowMachine>();

	FlowGraph graph = null;

	if (flowMachine.nest.source == GraphSource.Macro )
	{
		graph = flowMachine.nest.instance;
	}
	else
	{
		graph = flowMachine.nest.graph;
	}

	if (graph != null)
	{
		InjectGraph(LookupContainer(), graph);
	}
}

DiContainer LookupContainer()
{
	if (_containerSource == ContainerSources.ProjectContext)
	{
		return ProjectContext.Instance.Container;
	}

	if (_containerSource == ContainerSources.SceneContext)
	{
		return GetContainerForCurrentScene();
	}

	Assert.IsEqual(_containerSource, ContainerSources.SearchHierarchy);

	var parentContext = this.transform.GetComponentInParent<Context>();

	if (parentContext != null)
	{
		return parentContext.Container;
	}

	return GetContainerForCurrentScene();
}

DiContainer GetContainerForCurrentScene()
{
	return ProjectContext.Instance.Container.Resolve<SceneContextRegistry>()
		.GetContainerForScene(this.gameObject.scene);
}

public enum ContainerSources
{
	SceneContext,
	ProjectContext,
	SearchHierarchy
}

}
`

I played around a bit with Injecting into Bolt units. I did get some simple injection up and running by creating a FlowMachineInjector MonoBehaviour,, borrowing heavily on the Zenject Binding helper MonoBehaviour.
A bit annoying, but no different than binding other MonoBehaviours.
I haven't yet attempted to inject to the Bolt State Machines.

This is super late reply to this @marshmatter but do you have an example? I don't know what the Zenject Binding Helper is

authors: marshmatter realworld666 svermeulen

repo: svermeulen/Zenject


text:
[BUG] Optimized SVG is different than source Allande coat of arms.svg

Using the (wip) integration test tool we identified an issue while optimizing the file Allande coat of arms.svg with the default settings.
SVGO version
2.0.2
Differences
The crown and the cross lost part of their colors.
Sources
Original:

source.svg.txt
Optimized:

optimized.svg.txt
Renders
Here are the two rendered images for comparison:
Original:

Optimized:

Diff:

I think this is also solved by #1365 . At least when I disabled that option in SVGOMG I got an equivalent svg.

Fixed in https://github.com/svg/svgo/releases/tag/v2.1.0

authors: TrySound sk-

repo: svg/svgo


text:
Question about DependencyCmdlet

Hi @svrooij
Thanks for the work you have done demonstraiting DI for PSCmdlet.
I haven't written a binary Cmdlet before so aplogies in advance if I am asking obvious stuff.
I have read through your post on writing DependencyCmdlet and I understand the reason you needed sealed and protected PSCmdlet methods like BeginProcessing, EndProcessing etc.
What I was wondering is if adding virtual "After" methods (eg AfterBeginProcessing) to DependencyCmdlet would cause issues / break async?
Below is an example of what I am thinking, if it doesn't break other stuff it would allow developers of DependencyCmdlet decendants to implement functionality that would of traditionally gone into overridden BeginProcessing/EndProcessing methods.
the current definition of DependencyCmdlet.BeginProcessing
/// <summary>
/// You can call BeginProcessing, but you cannot override it!
/// </summary>
/// <remarks>This is called by PowerShell automatically. And is used to bind dependencies.</remarks>
protected sealed override void BeginProcessing()
{
    BindDependencies(this, _serviceProvider);
    base.BeginProcessing();
}

Possible implementation of DependencyCmdlet with AfterBeginProcessing
/// <summary>
/// You can call BeginProcessing, but you cannot override it!
/// </summary>
/// <remarks>This is called by PowerShell automatically. And is used to bind dependencies.</remarks>
protected sealed override void BeginProcessing()
{
    BindDependencies(this, _serviceProvider);
    base.BeginProcessing();
    this.AfterBeginProcessing();
}

/// <summary>
/// Called after BeginProcessing, can be overriden by decendants to implement functionality normally implemented in the now sealed BeginProcessing
/// </summary>
protected virtual void AfterBeginProcessing()
{
    //left blank but not abstract so that decendants are not forced to implement this method
}

@djwork great question, I think that would be possible. But I have no clue what you would do there instead of setting things up.
So if the first use case appeared, that might get implemented.
Apart from that I think this can be done as a source generator, which would make it not show the dll in the module and use less reflection, thus making it faster I guess.

authors: djwork svrooij


text:
Contacts list

List of all contacts, with basic info such as name and maybe location. Could be grouped by location.

leaving grouping for later.

repo: svub/lets-stay-in-touch


text:
@ApiModel value ignored

I have a Jersey 1 application using swagger-jersey-jaxrs_2.11 version 1.3.12. With a simple Jackson POJO model class I am trying to change the model name/id in the generated Swagger 1.2 spec. My example is:
import com.wordnik.swagger.annotations.ApiModel;
import org.codehaus.jackson.map.annotate.JsonSerialize;

@ApiModel(value="BOB", description="A user in the application.")
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
public class User {
    public String email;
    public String firstName;
    public String lastName;
}

According to https://github.com/swagger-api/swagger-core/wiki/Annotations#apimodel I should see my custom value as the id of this model but I only see the description getting used.
"User":{"id":"User","description":"A user in the application.","properties":{"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"}}}

Please upgrade to 1.5.1-M2, this should be supported now.

authors: chasetec fehguy

repo: swagger-api/swagger-core


text:
JUnit 4.13

notes:
https://github.com/junit-team/junit4/blob/master/doc/ReleaseNotes4.13.md

LGTM

obsolete


text:
move_higher and move_lower need to be ran twice

Hi,
I have an issue with acts_as_list in a simple has_many relationship.
When I try to update the position of items using the provided method I get an error:
'position taken', but if I run it again, I've got what was expected. Any thoughts?
@messages={:position=>["translation missing: eu.activerecord.errors.models.option.attributes.position.taken"]}, @details={:position=>[{:error=>:taken, :value=>1}]}>

here is the update action:
irb(main):057:0> tw.move_lower
  Option Load (3.3ms)  SELECT  "options".* FROM "options" WHERE "options"."menu_id" = $1 AND ("options"."position" >= 1) AND ("options".id != 2) ORDER BY "options"."position" ASC LIMIT $2  [["menu_id", 1], ["LIMIT", 1]]
   (0.4ms)  BEGIN
  Option Load (2.9ms)  SELECT  "options".* FROM "options" WHERE "options"."menu_id" = $1 AND ("options"."position" >= 1) AND ("options".id != 2) ORDER BY "options"."position" ASC LIMIT $2  [["menu_id", 1], ["LIMIT", 1]]
  Option Load (3.0ms)  SELECT  "options".* FROM "options" WHERE "options"."menu_id" = $1 AND ("options"."position" >= 1) AND ("options".id != 2) ORDER BY "options"."position" ASC LIMIT $2  [["menu_id", 1], ["LIMIT", 1]]
  Menu Load (3.4ms)  SELECT  "menus".* FROM "menus" WHERE "menus"."id" = $1 LIMIT $2  [["id", 1], ["LIMIT", 1]]
  Option Exists (7.3ms)  SELECT  1 AS one FROM "options" WHERE "options"."position" = $1 AND ("options"."id" != $2) AND "options"."menu_id" = $3 LIMIT $4  [["position", 1], ["id", 1], ["menu_id", 1], ["LIMIT", 1]]
  Option Exists (2.6ms)  SELECT  1 AS one FROM "options" WHERE "options"."position" = $1 AND ("options"."id" != $2) AND "options"."menu_id" = $3 LIMIT $4  [["position", 2], ["id", 2], ["menu_id", 1], ["LIMIT", 1]]
   (0.2ms)  COMMIT
=> false
irb(main):058:0> tw.move_lower
  Option Load (6.3ms)  SELECT  "options".* FROM "options" WHERE "options"."menu_id" = $1 AND ("options"."position" >= 2) AND ("options".id != 2) ORDER BY "options"."position" ASC LIMIT $2  [["menu_id", 1], ["LIMIT", 1]]
   (0.5ms)  BEGIN
  Option Load (2.4ms)  SELECT  "options".* FROM "options" WHERE "options"."menu_id" = $1 AND ("options"."position" >= 2) AND ("options".id != 2) ORDER BY "options"."position" ASC LIMIT $2  [["menu_id", 1], ["LIMIT", 1]]
  Option Load (2.7ms)  SELECT  "options".* FROM "options" WHERE "options"."menu_id" = $1 AND ("options"."position" >= 2) AND ("options".id != 2) ORDER BY "options"."position" ASC LIMIT $2  [["menu_id", 1], ["LIMIT", 1]]
  Menu Load (3.3ms)  SELECT  "menus".* FROM "menus" WHERE "menus"."id" = $1 LIMIT $2  [["id", 1], ["LIMIT", 1]]
  Option Exists (2.6ms)  SELECT  1 AS one FROM "options" WHERE "options"."position" = $1 AND ("options"."id" != $2) AND "options"."menu_id" = $3 LIMIT $4  [["position", 1], ["id", 1], ["menu_id", 1], ["LIMIT", 1]]
  Option Exists (2.7ms)  SELECT  1 AS one FROM "options" WHERE "options"."position" = $1 AND ("options"."id" != $2) AND "options"."menu_id" = $3 LIMIT $4  [["position", 3], ["id", 2], ["menu_id", 1], ["LIMIT", 1]]
  SQL (4.9ms)  UPDATE "options" SET "position" = $1, "updated_at" = $2 WHERE "options"."id" = $3  [["position", 3], ["updated_at", "2019-02-21 07:30:27.674229"], ["id", 2]]
   (2.2ms)  SELECT COUNT(*) FROM "options" WHERE "options"."menu_id" = $1 AND ("options"."position" = 3)  [["menu_id", 1]]
   (0.8ms)  COMMIT
=> true

Hi @7vs, looks like you have a uniqueness constraint? Take a look at the sequential_updates feature that will shuffle things around atomically so that you don't end up setting two positions the same while the shuffle happens.

Hi @brendon, thanks for your reply, I've seen thesequential _updates features now and I've removed the uniqueness constraint, delegating that work to the gem:
validates_uniqueness_of :position, scope: :menu_id
Thank you.

Hi @7vs, you should be able to keep the uniqueness constraint (on the database if you want) and it should all still work. That's what it was designed for :)

I've removed the uniqueness constraint

@7vs Oops, this is a bad idea. Constraints should be enforced on the database level. sequential_updates will work constraints.

Yes, @swanandp I figured it out after testing it properly. I managed to return back my constraint so everything is working smoothly now. Thank you both :)

authors: 7vs brendon swanandp


text:
Add more geeksays

Add a translation #1
Add a quote #5

@swapagarwal feel free to review this one, cheers :beers:

repo: swapagarwal/geeksay


text:
converted solution from python2 to python3 to fix the linting error

contributes to #259

the lint_python check is passing again

repo: swapnanildutta/Hackerrank-Codes


text:
add new file in the 30DaysOfJavaScript

Add new feature in the 30DaysOfJavaScript i.e., Word_Definition (issues no. 394)

@abhinay99190 Thank you for your contribution. Looking forward to more such amazing contributions 🥂

Thanks @swapnilsparsh


text:
Update LIQUIDITY_SOURCES.md

Checklist

[ ] I have read the CONTRIBUTING guide
[ ] Good naming (as clear and simple as possible)
[ ] Correct behavior if external API endpoints are down, return 404, 504 (or no answer), 401 errors (ddos simulation)
[ ] I tested desktop/mobile resolution
[ ] I tested light/dark theme
[ ] I tested different languages
[ ] I checked the functionality once again (AFFECT MONEY)
[ ] I checked the work on the Testnet
[ ] I checked the work on the Mainnet
[ ] I checked the work in the plugin
[ ] I checked the PR once again

Tests
Please start auto tests as follows:

add a label swap test to start swap tests
add a label withdraw test to start withdraw tests

You can skip these tests if you completely sure that your changes aren't related to this functional
Original issue

Video / screenshot proof

builded https://testnet4752.swaponline.site ;

commit d0dec2c64 rebuilded https://testnet4752.swaponline.site https://mainnet4752.swaponline.site

commit 9e73c223f rebuilded https://testnet4752.swaponline.site https://mainnet4752.swaponline.site

commit 3ecb34112 rebuilded https://testnet4752.swaponline.site https://mainnet4752.swaponline.site

commit 54b5e17ba rebuilded https://testnet4752.swaponline.site https://mainnet4752.swaponline.site

repo: swaponline/MultiCurrencyWallet


text:
Modified GET All Function

Created a get_filter_by function that converts a query string to dictionary. It will also double check against the schema fields and value datatypes.
Modified get_all to filter query if it is given

Partly addresses issue #6

repo: swarmauri/crouton


text:
Only send current mode via wl_output

Modes were a protocol design mistake.
GNOME does this.

I don't see any reason not to send modes. It's easy and in the protocol, and it's not dangerous if the client knows what other modes are available. I find it useful to enumerate modes with weston-info at times, too.

Will discuss this with the rest of the Wayland community. If possible, I'd like those to get deprecated.

I'd like to bump this again for two reasons:

Modes as exposed in the core protocol have many issues: https://gitlab.freedesktop.org/wayland/wayland/issues/92
We now support a specialized protocol for output management, which exposes modes in a better way.

authors: SirCmpwn emersion

repo: swaywm/wlroots


text:
layer-shell: implement configure scheduling

This commit introduces wlr_layer_surface_v1.scheduled and implements
configure scheduling mechanism used by xdg-surface, unifying the API.

This is a breaking change: wlr_layer_surface_v1_configure() is replaced by wlr_layer_surface_v1_set_size().

wlroots has migrated to gitlab.freedesktop.org. This pull request has been moved to:
https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3212

authors: emersion vyivel


text:
Running test using swc/jest with coverage is 5x times slower than running it without coverage!

Describe the bug
I am trying to switch to @swc/jest instead of standard ts-jest.
Running locally a single test takes 2x less time which is 🔥
But on CI I was getting longer run times.
So I've started googling similar issues and found this post
https://www.reddit.com/r/typescript/comments/v8cc5t/no_speed_difference_after_replacing_tsjest_with/
and after some more experiments I discovered that running tests with --coverage is much slower than without it.
For example:
yarn jest test.spec.ts --no-cache
Time:        50.664 s

yarn jest test.spec.ts --no-cache --coverage
Time:        244.773 s

So running our tests with --coverage ON on CI using @swc/jest is slower compared to standard ts-jest.
Is it a known issue?
Input code
No response
Config
{
  "jsc": {
    "parser": {
      "syntax": "typescript",
      "tsx": true,
      "decorators": true
    },
    "transform": {
      "react": {
        "pragma": "React.createElement",
        "pragmaFrag": "React.Fragment"
      },
      "legacyDecorator": true
    },
    "loose": true,
    "minify": {
      "compress": false,
      "mangle": false
    }
  },
  "module": {
    "type": "commonjs",
    "noInterop": true
  },
  "minify": false,
  "isModule": true
}

Playground link
No response
Expected behavior
No such tests run time degradation.
Actual behavior
No response
Version
"@swc/core": "^1.3.77"
Additional context
Other related dependencies:
"@swc/core": "^1.3.77"
"@swc/jest": "^0.2.29"
"jest": "27.5.1"

Jest creates coverage via babel, so if you're enabling babel there's actually 2 path of transform via swc and babel both. Do you think this is an issue of @swc/core does something incorrect when there's transform runs against coverage-enabled codes? Is there a repro outside of jest which rules out babel?

Closing as there's a no miminal repro

@kwonoj @kdy1 so maybe this is an issue of swc/jest?

No

@kdy1 why?

authors: chestozo kdy1 kwonoj

repo: swc-project/swc


text:
swc explicitResourceManagement SuppressedError implement does not obey spec

Describe the bug
swc explicitResourceManagement SuppressedError implement does not obey spec.
swc runtime output is different from tsc runtime output.
Input code
import { deepStrictEqual } from 'node:assert'
import process from 'node:process'

let i = 0
let err: any
try {
  await using _x1 = {
    async [Symbol.asyncDispose]() {
      throw [1, ++i]
    }
  }

  await using _x2 = {
    async [Symbol.asyncDispose]() {
      throw [2, ++i]
    }
  }

  await using _x3 = {
    async [Symbol.asyncDispose]() {
      throw [3, ++i]
    }
  }

  await using _x4 = {
    async [Symbol.asyncDispose]() {
      throw [4, ++i]
    }
  }

  throw [5, ++i]
} catch (e) {
  err = e
}

if (process.env['REPRODUCE_SWC_BUG'] === undefined) {
  deepStrictEqual(err.error, [1, 5])
  deepStrictEqual(err.suppressed.error, [2, 4])
  deepStrictEqual(err.suppressed.suppressed.error, [3, 3])
  deepStrictEqual(err.suppressed.suppressed.suppressed.error, [4, 2])
  deepStrictEqual(err.suppressed.suppressed.suppressed.suppressed, [5, 1])
} else {
  deepStrictEqual(err.suppressed, [1, 5])
  deepStrictEqual(err.error.suppressed, [2, 4])
  deepStrictEqual(err.error.error.suppressed, [3, 3])
  deepStrictEqual(err.error.error.error.suppressed, [4, 2])
  deepStrictEqual(err.error.error.error.error, [5, 1])
}

Config
{
    "$schema": "https://json.schemastore.org/swcrc",
    "jsc": {
        "parser": {
            "syntax": "typescript",
            "explicitResourceManagement": true,
        },
        "target": "es2022",
        "loose": false,
        "minify": {
            "compress": false,
            "mangle": false
        }
    },
    "module": {
        "type": "es6"
    },
    "minify": false,
    "isModule": true
}

Playground link (or link to the minimal reproduction)
https://github.com/swc-project/swc/issues/8853
SWC Info output
No response
Expected behavior

If tsc is correct, expect same output as tsc.

Actual behavior
$ yarn tsc --build
...
$ yarn swc ./reproduce.mts -o reproduce/reproduce.swc.mjs
...
$ node ./reproduce/reproduce.tsc.mjs && REPRODUCE_SWC_BUG=1 node ./reproduce/reproduce.swc.mjs && echo OK
OK

Version
0.3.12
Additional context
@swc/cli: 0.3.12
@swc/core: 1.4.13
Downstream
https://github.com/denoland/deno/issues/23249

Babel output:
import { deepStrictEqual } from 'node:assert';
function _usingCtx2() { var r = "function" == typeof SuppressedError ? SuppressedError : function (r, n) { var e = Error(); return e.name = "SuppressedError", e.suppressed = n, e.error = r, e; }, n = {}, e = []; function using(r, n) { if (null != n) { if (Object(n) !== n) throw new TypeError("using declarations can only be used with objects, functions, null, or undefined."); if (r) var o = n[Symbol.asyncDispose || Symbol.for("Symbol.asyncDispose")]; if (null == o && (o = n[Symbol.dispose || Symbol.for("Symbol.dispose")]), "function" != typeof o) throw new TypeError("Property [Symbol.dispose] is not a function."); e.push({ v: n, d: o, a: r }); } return n; } return { e: n, u: using.bind(null, !1), a: using.bind(null, !0), d: function () { var o = this.e; function next() { for (; r = e.pop();) try { var r, t = r.d.call(r.v); if (r.a) return Promise.resolve(t).then(next, err); } catch (r) { return err(r); } if (o !== n) throw o; } function err(e) { return o = o !== n ? new r(o, e) : e, next(); } return next(); } }; }
let i = 0;
let err;
try {
    try {
        var _usingCtx = _usingCtx2();
        const _x1 = _usingCtx.a({
            async [Symbol.asyncDispose]() {
                throw [1, ++i];
            }
        });
        const _x2 = _usingCtx.a({
            async [Symbol.asyncDispose]() {
                throw [2, ++i];
            }
        });
        const _x3 = _usingCtx.a({
            async [Symbol.asyncDispose]() {
                throw [3, ++i];
            }
        });
        const _x4 = _usingCtx.a({
            async [Symbol.asyncDispose]() {
                throw [4, ++i];
            }
        });
        throw [5, ++i];
    } catch (_) {
        _usingCtx.e = _;
    } finally {
        await _usingCtx.d();
    }
} catch (e) {
    err = e;
}
deepStrictEqual(err.error, 1);
deepStrictEqual(err.suppressed.error, 2);
deepStrictEqual(err.suppressed.suppressed.error, 3);
deepStrictEqual(err.suppressed.suppressed.suppressed.error, 4);
deepStrictEqual(err.suppressed.suppressed.suppressed.suppressed, 5);%

@kdy1
$ yarn tsc --version \
    && yarn swc --version \
    && yarn tsc --build \
    && yarn swc ./reproduce.mts -o ./swc/reproduce.mjs \
    && node ./tsc/reproduce.mjs \
    && node ./swc/reproduce.mjs \
    && echo OK
Version 5.4.5

@swc/cli: 0.3.12
@swc/core: 1.4.15

Successfully compiled 1 file with swc.
node:internal/process/esm_loader:34
      internalBinding('errors').triggerUncaughtException(
                                ^

AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
+ actual - expected

+ undefined
- [
-   1,
-   5
- ]
    at file:///path/to/swc/reproduce.mjs:115:5
    at ModuleJob.run (node:internal/modules/esm/module_job:222:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:323:24)
    at async loadESM (node:internal/process/esm_loader:28:7)
    at async handleMainPromise (node:internal/modules/run_main:120:12) {
  generatedMessage: true,
  code: 'ERR_ASSERTION',
  actual: undefined,
  expected: [ 1, 5 ],
  operator: 'deepStrictEqual'
}

Node.js v21.7.1

import { deepStrictEqual } from 'node:assert'
import process from 'node:process'

let i = 0
let err: any
try {
  await using _x1 = {
    async [Symbol.asyncDispose]() {
      throw [1, ++i]
    }
  }

  await using _x2 = {
    async [Symbol.asyncDispose]() {
      throw [2, ++i]
    }
  }

  await using _x3 = {
    async [Symbol.asyncDispose]() {
      throw [3, ++i]
    }
  }

  await using _x4 = {
    async [Symbol.asyncDispose]() {
      throw [4, ++i]
    }
  }

  throw [5, ++i]
} catch (e) {
  err = e
}

if (process.env['REPRODUCE_SWC_BUG'] === undefined) {
  deepStrictEqual(err.error, [1, 5])
  deepStrictEqual(err.suppressed.error, [2, 4])
  deepStrictEqual(err.suppressed.suppressed.error, [3, 3])
  deepStrictEqual(err.suppressed.suppressed.suppressed.error, [4, 2])
  deepStrictEqual(err.suppressed.suppressed.suppressed.suppressed, [5, 1])
} else {
  deepStrictEqual(err.suppressed, [1, 5])
  deepStrictEqual(err.error.suppressed, [2, 4])
  deepStrictEqual(err.error.error.suppressed, [3, 3])
  deepStrictEqual(err.error.error.error.suppressed, [4, 2])
  deepStrictEqual(err.error.error.error.error, [5, 1])
}

Actually, swc core 1.4.15 err is ReferenceError: resource is not defined.
And I found babel also have different output with tsc.

https://github.com/swc-project/swc/issues/8872

In my experience, when babel vs tsc is different, tsc was the problem, but need to check

I reverted to 1.4.14, and opened an issue at typescript.

@kdy1

TypeScript is the correct one here.

import { deepStrictEqual } from 'node:assert'
import process from 'node:process'

let i = 0
/** @type {any} */
let err
try {
  await using _x1 = {
    async [Symbol.asyncDispose]() {
      throw [1, ++i]
    }
  }

  await using _x2 = {
    async [Symbol.asyncDispose]() {
      throw [2, ++i]
    }
  }

  await using _x3 = {
    async [Symbol.asyncDispose]() {
      throw [3, ++i]
    }
  }

  await using _x4 = {
    async [Symbol.asyncDispose]() {
      throw [4, ++i]
    }
  }

  throw [5, ++i]
} catch (e) {
  err = e
}

switch (process.env['TRANSPILER']) {
  case 'tsc':
    deepStrictEqual(err.error, [1, 5])
    deepStrictEqual(err.suppressed.error, [2, 4])
    deepStrictEqual(err.suppressed.suppressed.error, [3, 3])
    deepStrictEqual(err.suppressed.suppressed.suppressed.error, [4, 2])
    deepStrictEqual(err.suppressed.suppressed.suppressed.suppressed, [5, 1])
    break
  case 'swc':
    deepStrictEqual(err.suppressed, [1, 5])
    deepStrictEqual(err.error.suppressed, [2, 4])
    deepStrictEqual(err.error.error.suppressed, [3, 3])
    deepStrictEqual(err.error.error.error.suppressed, [4, 2])
    deepStrictEqual(err.error.error.error.error, [5, 1])
    break
  case 'babel':
    deepStrictEqual(err.suppressed, [1, 5])
    deepStrictEqual(err.error.suppressed, [2, 4])
    deepStrictEqual(err.error.error.suppressed, [3, 3])
    deepStrictEqual(err.error.error.error.suppressed, [4, 2])
    deepStrictEqual(err.error.error.error.error, [5, 1])
    break
  default:
    // break
    throw new Error()
}

// export { err }


text:
Make swc_css_parser compile on stable rust

Description:
This PR removes usage of #![feature(box_patterns)] from swc_css_parser. It also removes #![cfg_attr(docsrs, feature(doc_cfg))], but as far as I can see this feature was not actually being used in this crate. This is of course subjective, but IMO these changes actually improve the readability of the affected code. It certainly makes it shorter in most cases.
This allows swc_css_parser to be compiled using a stable rust compiler.
Related issue (if exists):
https://github.com/swc-project/swc/issues/6630

This PR only applies changes to the swc_css_parser crate as this the only crate (which does not already compile on stable) that I am personally interested in using, but I would be willing to go through the other swc crates and make similar changes to the other crates if you would be open to accepting such changes. It looks like swc's usage of unstable features are all pretty trivial and could easily be replaced.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

I don't think this improves readability, and is there a reason you can't use nightly rust?
Honestly I don't want to accept this PR

Is there a reason you can't use nightly rust?

Yes, I'm writing a widely used library that is depended on by multiple projects (such as Bevy) which use stable Rust.

Honestly I don't want to accept this PR

Fair enough. It's your project. It was worth a try!

I'll not accept this PR because this is about adding a huge API

authors: CLAassistant kdy1 nicoburns


text:
Sweetpad issue: No schemes

Please describe your issue here.
Last logs:
{
  "message": "Failed to get schemes",
  "type": "error",
  "time": "2024-04-10T18:50:25.612Z",
  "error": {
    "context": {
      "errorMessage": "Command failed with exit code 1: xcodebuild -list -json",
      "stderr": "xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance",
      "command": "xcodebuild",
      "args": [
        "-list",
        "-json"
      ],
      "cwd": "/Users/------------/Developer/Game Lounge"
    }
  }
}

Hello! Seems like you need to install Xcode build tools. Could you try solution from this issue ?
https://github.com/sweetpad-dev/sweetpad/issues/3#issuecomment-2017742269

That fixed it. Thanks!

repo: sweetpad-dev/sweetpad


text:
Fails to build

Unable to build master on humble following instructions from:
https://github.com/swift-nav/swiftnav-ros2/blob/master/docs/build-in-docker.md
Seems the regression was introduced in #35
Looks like it even fails in the github actiosn too
https://github.com/swift-nav/swiftnav-ros2/actions/runs/4864865903/jobs/8674433304#step:3:2512

This should be resolved by #39 -- thanks for reporting.

authors: silverjam willcbaker


text:
allow per request TLS settings

Currently, we configure TLS globally per HTTPClient. Usually, that's fine but there are use cases where we need different TLS settings per server etc.
As @Lukasa point out, this unfortunately has consequences for the connection pool: Currently we key the pool with (protocol, host, port) which would then no longer work and we'd have to change the key to (protocol, host, port, TLS config) which doesn't sound too bad of a change and enables quite a few new use cases.

API could be
HTTPClient.Request(url: "https://my-server1.corp/foo/bar",
                   method: .POST,
                   tlsConfiguration: specialServer1Settings)

API could be
HTTPClient.Request(url: "https://my-server1.corp/foo/bar",
                   method: .POST,
                   tlsConfiguration: specialServer1Settings)

Currently, the key is
    struct Key: Hashable {
        var scheme: Scheme
        var host: String
        var port: Int
        var unixPath: String

I think the only thing we'd need to do is add a var tlsConfiguration: TLSConfiguration? there (and make TLSConfigurable Hashable)

Currently, the key is
    struct Key: Hashable {
        var scheme: Scheme
        var host: String
        var port: Int
        var unixPath: String

I think the only thing we'd need to do is add a var tlsConfiguration: TLSConfiguration? there (and make TLSConfigurable Hashable)

repo: swift-server/async-http-client


text:
Support concurrent use of a shared JavaVirtualMachine

The JavaVirtualMachine class was not at all designed with concurrency in mind: it always created a new Java VM under the hood, and was associated with a single JNI environment even though different threads could have different JNI environments.
Move to a different model with a static shared() method to create or access a shared JavaVirtualMachine instance to encapsulate the (singleton) JVM. If there is an existing JVM, whether created via this Swift library or from some other code, it will be adopted by the shared JavaVirtualMachine instance.
Additionally, the JavaVirtualMachine no longer stores a JNI environment. Instead, it now provides an environment function that queries the JVM to get the JNI environment for the current thread. If the current thread isn't attached to the JVM, it does so and provides the resulting JNI environment.
With all of these in place, we no longer need to force all of our JavaKit tests over to the main actor.

Merging because I'm building other things on top of this

repo: swiftlang/swift-java


text:
Compiler error when using #expect(try …) macro inside throwing closure

Description
When using an #expect macro within a throwing closure, compilation fails with "Errors thrown from here are not handled".
import Testing

class Foo {
	init() {
	}

	func doSomething() throws -> Bool {
		throw TestError("Error")
	}
}

struct FooTest {
	@Test func throwingClosure() async throws {
		let foo = Foo()

		try Self.perform {
			#expect(try foo.doSomething())
		}
	}

	static func perform(_ block: () throws -> Void) throws {
		try block()
	}
}

The reported error message is:
error: errors thrown from here are not handled
Testing.__checkValue(try foo.doSomething(), expression: .__fromSyntaxNode("try foo.doSomething()"), comments: [], isRequired: false, sourceLocation: Testing.SourceLocation.__here()).__expected()
                     ^
note: in expansion of macro 'expect' here
                        #expect(try foo.doSomething())
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: in expansion of macro 'expect' here
                        #expect(try foo.doSomething())

The expanded macro looks like this:
Testing.__checkValue(try foo.doSomething(), expression: .__fromSyntaxNode("try foo.doSomething()"), comments: [], isRequired: false, sourceLocation: Testing.SourceLocation.__here()).__expected()

The same happens:

if perform is declared as rethrows
when using a closure variable of type () throws -> Void and calling the closure directly.

It doesn't happen, if #expect is used within a throwing function body.
Expected behavior
According to this compiler bug report, it seems to be expected behavior of the Swift compiler:
https://github.com/swiftlang/swift/issues/67102
But it feels quite counter-intuitive, because using an #expect macro within a throwing function is no problem. Probably it should either also work within throwing closures. Otherwise the provided error message or at least documentation should clarify it.
Thanks!
Actual behavior
Compilation fails with an error "Errors thrown from here are not handled".
Steps to reproduce
No response
swift-testing version/commit hash
Xcode Version 16.0 beta 5 (16A5221g)
Swift & OS version (output of swift --version ; uname -a)
swiftc --version
swift-driver version: 1.113 Apple Swift version 6.0 (swiftlang-6.0.0.7.6 clang-1600.0.24.1)
Target: arm64-apple-macosx15.0
Darwin frieder 24.0.0 Darwin Kernel Version 24.0.0: Wed Jul 31 21:50:55 PDT 2024; root:xnu-11215.0.199.501.2~1/RELEASE_ARM64_T6020 arm64

Duplicate of https://github.com/swiftlang/swift/issue/75256

authors: grynspan hydrixos

repo: swiftlang/swift-testing


text:
404 when loading .woff files when dynamically loaded using SystemJS

Hi,
I am dynamically loading the ngx-datatable from a separately hosted angular website. The javascript downloads correctly, and the css is applied. However when trying to download the .woff file, the HTTP request is to the url of the index.html, not to the URL of where the ngx-datatable is hosted. That particular application is webpack'd with a --deploy-url.

I modified release/assets/icons.css and assets/icons.css locally such that each font file is referenced on it's own line beginning with src, this gets me around this issue:
src:url("fonts/data-table.eot?#iefix") format("embedded-opentype");
src:url("fonts/data-table.woff") format("woff");
src:url("fonts/data-table.ttf") format("truetype");
src:url("fonts/data-table.svg#data-table") format("svg");
This is current github version that was causing my project experience 404 errors when these files are referenced.
src: url('fonts/data-table.eot?#iefix') format('embedded-opentype'), url('fonts/data-table.woff') format('woff'),
url('fonts/data-table.ttf') format('truetype'), url('fonts/data-table.svg#data-table') format('svg');

Same here when compiling the Angular project in production mode. While locally the "woff" is found, in production I get a 404 error only for this file, in comparison to the "ttf" files which are referenced from icons.scss as well and are in the same path.

Also been experiencing this - @Hypercubed, any advice?

So for me, it looks like the woff extension & it's mimetype weren't included in my server configuration, which propagated and threw errors in my service worker on Angular
Seems like a small 'gotcha' since all the other mimetypes are supported by default with IIS

authors: elielia jarodsmk metallidevils mike-little

repo: swimlane/ngx-datatable


text:
Resize crash on iOS Safari

I'm submitting a ...  (check one with "x")
[X] bug report => search github for a similar issue or PR before submitting
[ ] feature request
[ ] support request => Please do not submit support request here

Current behavior
While scrolling the page with a datatable on it, iOS 10.2 Safari, an exception is thrown when the "resize" event of the datatable is invoked but no column object is passed.
Reproduction of the problem
Scroll a page vertically that has a datatable on it that does not fit on the screen vertically. The datatable itself is not scrolled, the page is.
Please tell us about your environment:
iOS 10.2, iPhone SE simulator in Xcode.

Table version: 0.7.x
6.0.0

Angular version: 2.0.x
2.4.5

Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]
Safari iOS 10.2

Language: [all | TypeScript X.X | ES6/7 | ES5]
TypeScript 2.1.4

The event does not have a column member. A simple fix would check for that but probably it should be done where the event is emitted?

same issue

This seems to do the job to work around the issue. Not sure it's the right thing to do though...
https://github.com/achimha/ngx-datatable/commit/0e4c678e648c4d575a7658b97e14b6bcf908ad95

Created a PR, please merge https://github.com/swimlane/ngx-datatable/pull/514

Merged :)

authors: achimha amcdnl istiti


text:
Search Provider : Yandex

Description

You can now start searching on Yandex.
Related Issue(s)

#907
Testing and Validation

Type of Change

[ ] Bug fix or other non-breaking change that addresses an issue
[x] New Feature / Enhancement (non-breaking change that add or improves functionality)
[ ] New Feature (breaking change that is not backwards compatible and/or alters current functionality)
[ ] Documentation (change to product documentation or README.md only)

By mistake opened the PR for main branch instead of develop.

repo: swirlai/swirl-search


text:
New Enum in Income Types

Some options are missing in the enum of the "income Types": leasing_payment, consumer_loan_payment, child_allowance_payment, rental_costs, costs_for_additional_properties
Please add these to the enum.

I thing the first three are available (Leasing and consumer loan are "merged" on our side for Valiant resp. sent as "other" for CS). Code line 2651 in 2.3. version. The last two are future topic when including rented objects.

authors: Adi-Moneypark simonbbaumgartner

repo: swissfintechinnovations/ca-mortgage


text:
指定php-config方式编译未能通过

安装了 php7.2.24 与 php7.4.12
使用7.4对应的 phpize7.4 以及在configue时候指定对应php-config，make时候报找不到 php/main/php.h
➜  yasd git:(master) phpize7.4 --clean
Cleaning..
➜  yasd git:(master) phpize7.4
Configuring for:
PHP Api Version:         20190902
Zend Module Api No:      20190902
Zend Extension Api No:   320190902
➜  yasd git:(master) ./configure --with-php-config=/usr/bin/php-config7.4
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking how to run the C preprocessor... cc -E
checking for icc... no
checking for suncc... no
checking for system library directory... lib
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for PHP prefix... /usr
checking for PHP includes... -I/usr/include/php/20190902 -I/usr/include/php/20190902/main -I/usr/include/php/20190902/TSRM -I/usr/include/php/20190902/Zend -I/usr/include/php/20190902/ext -I/usr/include/php/20190902/ext/date/lib
checking for PHP extension directory... /usr/lib/php/20190902
checking for PHP installed headers prefix... /usr/include/php/20190902
checking if debug is enabled... no
checking if zts is enabled... no
checking for gawk... no
checking for nawk... nawk
checking if nawk is broken... no
checking whether to enable yasd support... yes, shared
checking whether to enable yasd developer build flags... no
checking if compiling with clang... no
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C++ preprocessor... g++ -E
checking how to print strings... printf
checking for a sed that does not truncate output... (cached) /bin/sed
checking for fgrep... /bin/grep -F
checking for ld used by cc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking for gawk... (cached) nawk
checking command to parse /usr/bin/nm -B output from cc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if cc supports -fno-rtti -fno-exceptions... no
checking for cc option to produce PIC... -fPIC -DPIC
checking if cc PIC flag -fPIC -DPIC works... yes
checking if cc static flag -static works... yes
checking if cc supports -c -o file.o... yes
checking if cc supports -c -o file.o... (cached) yes
checking whether the cc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/bin/ld -m elf_x86_64
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
configure: patching config.h.in
configure: creating ./config.status
config.status: creating config.h
config.status: executing libtool commands
➜  yasd git:(master) make
/bin/bash /home/jobin/software/yasd/libtool --mode=compile g++  -I. -I/home/jobin/software/yasd -DPHP_ATOM_INC -I/home/jobin/software/yasd/include -I/home/jobin/software/yasd/main -I/home/jobin/software/yasd -I/usr/include/php/20190902 -I/usr/include/php/20190902/main -I/usr/include/php/20190902/TSRM -I/usr/include/php/20190902/Zend -I/usr/include/php/20190902/ext -I/usr/include/php/20190902/ext/date/lib -I/include  -DHAVE_CONFIG_H  -g -O2 -Wall -Wno-unused-function -Wno-deprecated -Wno-deprecated-declarations -std=c++11   -c /home/jobin/software/yasd/yasd.cc -o yasd.lo
libtool: compile:  g++ -I. -I/home/jobin/software/yasd -DPHP_ATOM_INC -I/home/jobin/software/yasd/include -I/home/jobin/software/yasd/main -I/home/jobin/software/yasd -I/usr/include/php/20190902 -I/usr/include/php/20190902/main -I/usr/include/php/20190902/TSRM -I/usr/include/php/20190902/Zend -I/usr/include/php/20190902/ext -I/usr/include/php/20190902/ext/date/lib -I/include -DHAVE_CONFIG_H -g -O2 -Wall -Wno-unused-function -Wno-deprecated -Wno-deprecated-declarations -std=c++11 -c /home/jobin/software/yasd/yasd.cc  -fPIC -DPIC -o .libs/yasd.o
/home/jobin/software/yasd/yasd.cc:28:10: fatal error: php/main/php.h: 没有那个文件或目录
#include "php/main/php.h"
^~~~~~~~~~~~~~~~
compilation terminated.
Makefile:192: recipe for target 'yasd.lo' failed
make: *** [yasd.lo] Error 1

你可以检查下/usr/include/php/20190902目录里面有没有丢失的文件。

/usr/include/php/20190902 下，没有 php 这个文件夹，只有 main 下面有 php.h。编译此插件除了需要安装 php-dev，还需要其他的？

/usr/include/php/20190902 下，没有 php 这个文件夹，只有 main 下面有 php.h。编译此插件除了需要安装 php-dev，还需要其他的？

你应该是自己手动编译的，你可以在外面套一个php目录。

/usr/include/php/20190902 下，没有 php 这个文件夹，只有 main 下面有 php.h。编译此插件除了需要安装 php-dev，还需要其他的？

你应该是自己手动编译的，你可以在外面套一个php目录。

php 与 php-dev 都是通过 apt 直接安装的。Ubantu 18.04。通过在 /usr/include/php/20190902 套多层 php 把其他的链接进去的确可以编译成功。

我不是很清楚ubuntu下你的这种安装方式，我见过的安装方式都是有php这个目录的。如果有多人反馈同样的问题，我再去掉php目录。

我的系统是windows10的WSL环境要报错
yasd/yasd.cc:28:10: fatal error: php/main/php.h: No such file or directory

我的系统是windows10的WSL环境要报错
yasd/yasd.cc:28:10: fatal error: php/main/php.h: No such file or directory

看起来不是个例了，那我改改

已经修改完了，不需要套一个php目录了，在master分支。

authors: huanghantao jobinli zd04

repo: swoole/yasd


text:
feat(components): add Time Picker Slider

add time picker slider

Task linked: CU-86bxx8mje Time picker Slider


text:
🛑 BestQA_GO is down

In 8f2581e, BestQA_GO (https://www.bestqa.net/go/bestqa_dev/up) was down:

HTTP code: 0
Response time: 0 ms

Resolved: BestQA_GO is back up in 8bd0e28.

repo: swuecho/upptime


text:
🛑 雙龍體育web is down

In 6ad2656, 雙龍體育web (https://www.ssangyongsports.eu.org/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 雙龍體育web is back up in 0ccf8d1 after 22 days, 23 hours, 2 minutes.

repo: sxadxsx/upptime


text:
请问插件支持css，js吗？

请问插件支持css，js这些文件的存储吗？
还有可以走内网吗？

支持，不过插件只能设置一个路径，可以尝试修改为静态资源路径到uploads目录下；
桶和服务器在一个地区就会走内网

authors: sy-records zhujitop

repo: sy-records/wordpress-qcloud-cos


text:
Launchpad required?

Hi just wondered if you have tried j-tag or j-link
I was thinking of trying this with an st-link V2 that's been reprogrammed to j-link or trying it at work with a j-tag programmer
Just wondered if it's already been tried & not working or a reason it wouldn't work or is it worth trying?
Thanks

What about FTDI or Raspberry Pi?  I wanted to try one of those if possible instead of a CC1310.

You need something that can do the 2 wire jtag. I looked at OpenOCD and it didn't support it. This is why I ended up using the dev board to do the flashing. Someone needs to write code for OpenOCD or a raspberry pi if they want to use something else.

Would a different Launchpad model work? I snagged a TI CC3200 Launchpad on ebay for $17.95 in hopes it would work. It is actually more expensive if I was to buy it straight from TI. Also see the pin labels are present in the 3200.

Bumping this. Tasmota'd ESP8266s can be used to flash CC25xx-devices. It's currently an effort over my head, but perhaps similar code could be used for this project. The launchpad requirement is the only thing keeping me from trying this out.

repo: sycophantic/wyzeback


text:
🛑 The AZ Clean Expert is down

In 1071d4c, The AZ Clean Expert (https://theazcleanexpert.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: The AZ Clean Expert is back up in b9f09ad after 21 minutes.

repo: symapex/upsite


text:
🛑 Alpha Landscaping is down

In 69b2ffb, Alpha Landscaping (https://alpha-landscaping.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Alpha Landscaping is back up in 25895e0 after 19 minutes.


text:
🛑 AZ Brick Frames is down

In 78a036e, AZ Brick Frames (https://azbrickframes.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: AZ Brick Frames is back up in 59bd0a8 after 1 hour, 27 minutes.


text:
🛑 Decor and Scape is down

In 124ef3f, Decor and Scape (https://decorandscape.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Decor and Scape is back up in e92a292 after 29 minutes.


text:
🛑 Rigid Ground Work is down

In e2e76c2, Rigid Ground Work (https://rigidgroundwork.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Rigid Ground Work is back up in 4d71aa1 after 26 minutes.


text:
🛑 Landscape Topia is down

In dff922c, Landscape Topia (https://landscape-topia.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Landscape Topia is back up in 70b602b after 33 minutes.


text:
🛑 Speedy Drywall is down

In 38f97f1, Speedy Drywall (https://speedy-drywall.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Speedy Drywall is back up in 9711627.


text:
🛑 Clean Wise is down

In 5923701, Clean Wise (https://cleanwisenv.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Clean Wise is back up in 44fd62b.


text:
🛑 Sprint Fence is down

In 6588109, Sprint Fence (https://sprintfence.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Sprint Fence is back up in 409078e after 28 minutes.


text:
🛑 Mr Drywall TX is down

In 151f45d, Mr Drywall TX (https://mrdrywalltx.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Mr Drywall TX is back up in c083ed6 after 42 minutes.


text:
🛑 Brickyard Fence is down

In feebb25, Brickyard Fence (https://brickyardfence.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Brickyard Fence is back up in 8deed8f after 15 minutes.


text:
🛑 Well Repairman is down

In 0128aff, Well Repairman (https://wellrepairman.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Well Repairman is back up in 0e24f9f.


text:
🛑 Cleanary Sandiego is down

In 0b90332, Cleanary Sandiego (https://cleanarysandiego.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Cleanary Sandiego is back up in b6d5045 after 1 hour, 13 minutes.


text:
🛑 Piano Precision is down

In 05b2055, Piano Precision (https://piano-precision.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Piano Precision is back up in fd49d1c.


text:
🛑 Garden Gate Fence is down

In 1826b43, Garden Gate Fence (https://gardengate-fence.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Garden Gate Fence is back up in 8c9ba8f after 2 hours, 41 minutes.


text:
🛑 Clean Standards is down

In 308d2e7, Clean Standards (https://clean-standards.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Clean Standards is back up in 4deb0c2 after 30 minutes.


text:
🛑 Mr Drywall TX is down

In 5d35acb, Mr Drywall TX (https://mrdrywalltx.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Mr Drywall TX is back up in 9094d66 after 1 hour, 29 minutes.


text:
🛑 Bring Back Clean is down

In ff9dbcf, Bring Back Clean (https://bringbackclean.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Bring Back Clean is back up in bea7b6b after 44 minutes.


text:
🛑 Environ Work is down

In 4e52ce0, Environ Work (https://environwork.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Environ Work is back up in 269d6dc after 30 minutes.


text:
Update checks in SymfonyRequirements for PHP 5.3.9

Updates the checks in the SymfonyRequirements class to match the Symfony 2.7 PHP minimum.

This change should be in SensioDistributionBundle as the requirements file is generated from the skeleton file in this bundle.

Learned something new today.  Got it.

authors: Pierstoval mbabker

repo: symfony/symfony-standard


text:
[phpstan-rules] Unable to use symplify/phpstan-rules (upgrading old projects or creating new ones)

Hi,
I was trying to update an old project (using 9.4) to ^10.0, but I can't manage to get symplify/phpstan-rules working again.
PhpStan complains about unregistered services, but I don't understand why since I'm doing the same stuff as always.
I created an extremely simple reproducer: https://github.com/liarco/phpstan-rules-issue
Running vendor/bin/phpstan analyze:
Note: Using configuration file /Users/marco/Projects/phpstan-rules-issue/phpstan.neon.

In Resolver.php line 452:

  Service of type Symplify\PHPStanRules\Rules\Missing\CheckSprinfMatchingTypesRule: Service of type Symplify\Astral\Naming\SimpleNameResolver required by $simpleNameResolver in CheckSprinfMatchingTypesRule::__construct() not fou
  nd. Did you add it to configuration file?

analyse [-c|--configuration CONFIGURATION] [-l|--level LEVEL] [--no-progress] [--debug] [-a|--autoload-file AUTOLOAD-FILE] [--error-format ERROR-FORMAT] [--generate-baseline [GENERATE-BASELINE]] [--memory-limit MEMORY-LIMIT] [--xdebug] [--fix] [--watch] [--pro] [--] [<paths>...]

The example is including vendor/symplify/phpstan-rules/config/static-rules.neon, but even adding vendor/symplify/phpstan-rules/config/services/services.neon (that shouldn't be required), or even just the services alone, gives the same result (missing services may change).
What Am I doing wrong?
Thank you for your time.

Hi, my rough guess is add PHPStan extension installer and update package with composer install, to include extension.

Thank you very much, that completely solved the issue. I'm sorry but didn't know about that package!
For others finding this issue
By installing that package you may see some warnings like:
Note: Using configuration file /YOUR_PROJECT_PATH/phpstan.neon.
These files are included multiple times:
- /YOUR_PROJECT_PATH/vendor/symplify/phpstan-rules/config/services/services.neon
- /YOUR_PROJECT_PATH/vendor/symplify/phpstan-rules/config/services/generated-services.neon

It can lead to unexpected results. If you're using phpstan/extension-installer, make sure you have removed corresponding neon files from your project config file.

Simply remove any "services" file from the includes section and it will be fine.

authors: TomasVotruba liarco

repo: symplify/symplify


text:
Support the closed issues event

It would be great if this action was able to support the issues event in workflows. This would allow the action to be used for both pull request and issue events.

Support has been added for the issues event in v1.1 with this commit.

repo: synergy-au/Close-Milestone-Action


text:
SAM does not support Steam Families Beta

I can load game list but cannot load achievements when I use Steam Families Beta.
After I switch back to normal build, I can load them.
I guess steam change the arguments on Families Beta.
SteamStatsManager [6] - An error occurred handling stats retrieval. Specified argument was out of the range of valid values. (Parameter 'stat')
System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. (Parameter 'stat')
   at SAM.Stats.SteamStatisticFactory.CreateStat(Client client, StatInfoBase stat) in D:\a\SteamAchievementManager\SteamAchievementManager\src\SAM\Stats\Factories\SteamStatisticFactory.cs:line 57
   at SAM.Stats.SteamStatsManager.GetStatistics() in D:\a\SteamAchievementManager\SteamAchievementManager\src\SAM\Stats\SteamStatsManager.cs:line 279
   at SAM.Stats.SteamStatsManager.OnUserStatsReceived(UserStatsResponse param) in D:\a\SteamAchievementManager\SteamAchievementManager\src\SAM\Stats\SteamStatsManager.cs:line 144
SAM (673610) 2024-07-17 21:04:04,897 ERROR SteamStatsManager [6] - An error occurred handling stats retrieval. Specified argument was out of the range of valid values. (Parameter 'stat')
System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. (Parameter 'stat')
   at SAM.Stats.SteamStatisticFactory.CreateStat(Client client, StatInfoBase stat) in D:\a\SteamAchievementManager\SteamAchievementManager\src\SAM\Stats\Factories\SteamStatisticFactory.cs:line 57
   at SAM.Stats.SteamStatsManager.GetStatistics() in D:\a\SteamAchievementManager\SteamAchievementManager\src\SAM\Stats\SteamStatsManager.cs:line 279
   at SAM.Stats.SteamStatsManager.OnUserStatsReceived(UserStatsResponse param) in D:\a\SteamAchievementManager\SteamAchievementManager\src\SAM\Stats\SteamStatsManager.cs:line 144
SAM (270880) 2024-07-17 21:05:33,701 ERROR SteamStatsManager [6] - An error occurred handling stats retrieval. Specified argument was out of the range of valid values. (Parameter 'stat')
System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. (Parameter 'stat')
   at SAM.Stats.SteamStatisticFactory.CreateStat(Client client, StatInfoBase stat) in D:\a\SteamAchievementManager\SteamAchievementManager\src\SAM\Stats\Factories\SteamStatisticFactory.cs:line 57
   at SAM.Stats.SteamStatsManager.GetStatistics() in D:\a\SteamAchievementManager\SteamAchievementManager\src\SAM\Stats\SteamStatsManager.cs:line 279
   at SAM.Stats.SteamStatsManager.OnUserStatsReceived(UserStatsResponse param) in D:\a\SteamAchievementManager\SteamAchievementManager\src\SAM\Stats\SteamStatsManager.cs:line 144
SAM (289070) 2024-07-17 21:09:49,523 ERROR SteamStatsManager [6] - An error occurred handling stats retrieval. Specified argument was out of the range of valid values. (Parameter 'stat')
System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. (Parameter 'stat')
   at SAM.Stats.SteamStatisticFactory.CreateStat(Client client, StatInfoBase stat) in D:\a\SteamAchievementManager\SteamAchievementManager\src\SAM\Stats\Factories\SteamStatisticFactory.cs:line 57
   at SAM.Stats.SteamStatsManager.GetStatistics() in D:\a\SteamAchievementManager\SteamAchievementManager\src\SAM\Stats\SteamStatsManager.cs:line 279
   at SAM.Stats.SteamStatsManager.OnUserStatsReceived(UserStatsResponse param) in D:\a\SteamAchievementManager\SteamAchievementManager\src\SAM\Stats\SteamStatsManager.cs:line 144

Which version of the app are you using?

I use the Steam Families Beta so that's definitely not the issue (assuming you are on the latest). Is this a game that you own or is it owned by a family member?

I use the Steam Families Beta so that's definitely not the issue (assuming you are on the latest). Is this a game that you own or is it owned by a family member?

All those games are owned by me.
I just switch to Steam Families Beta so it should be the latest.
And I use the latest SAM v0.6.0 release version.

Try the latest pre-release. I just left my Steam Family so I can't easily join a new one (for a year or so), but I was able to use it with that update fine. Still on that update without being in a family and no issues. Let me know if it's still an issue on the latest pre-release.
v0.7.0-beta

Try the latest pre-release. I just left my Steam Family so I can't easily join a new one (for a year or so), but I was able to use it with that update fine. Still on that update without being in a family and no issues. Let me know if it's still an issue on the latest pre-release.
v0.7.0-beta

Still there.
2024-07-25 20:29:01,752 ERROR SteamStatsManager [5] - An error occurred handling stats retrieval. Specified argument was out of the range of valid values. (Parameter 'stat')
System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. (Parameter 'stat')
   at SAM.Stats.SteamStatisticFactory.CreateStat(Client client, StatInfoBase stat) in D:\a\SteamAchievementManager\SteamAchievementManager\src\SAM\Stats\Factories\SteamStatisticFactory.cs:line 57
   at SAM.Stats.SteamStatsManager.GetStatistics() in D:\a\SteamAchievementManager\SteamAchievementManager\src\SAM\Stats\SteamStatsManager.cs:line 280
   at SAM.Stats.SteamStatsManager.OnUserStatsReceived(UserStatsResponse param) in D:\a\SteamAchievementManager\SteamAchievementManager\src\SAM\Stats\SteamStatsManager.cs:line 145

Is it only that game? It's $4.99 right now I don't want it but might buy it if it's only that app having issues.

Is it only that game? It's $4.99 right now I don't want it but might buy it if it's only that app having issues.

Not only, but yes, I check all of my games, and some of them can be loaded(such as Euro Truck Simulator 2, Cities Skylines 2, Airport CEO, etc...), some of them cannot(American Truck Simulator, Dyson Sphere Program, Factory Town, Forager, etc...).
But if one game cannot be loaded, it will never be loaded though I tries over ten times. So I think it's a stable bug related by games.

Is it only that game? It's $4.99 right now I don't want it but might buy it if it's only that app having issues.

Not only, but yes, I check all of my games, and some of them can be loaded(such as Euro Truck Simulator 2, Cities Skylines 2, Airport CEO, etc...), some of them cannot(American Truck Simulator, Dyson Sphere Program, Factory Town, Forager, etc...).
But if one game cannot be loaded, it will never be loaded though I tries over ten times. So I think it's a stable bug related by games.

Seems like Steam Families Beta has an A/B test policy for games. So I'm not sure you will hit the same policy to me. Maybe you can try all your games to see if anyone have the same issue.

In my case SAM doesn't loaded any achievements from family games since July 16th beta Steam update. So I try install some game from family, open the game and then open the manager in SAM while the game was open and it work for that specific game from family, but stop to load the achievements from my own games. Then I launch one of my own game from Steam and open de manager for that game in SAM and it worked for that game. Currently in my own games SAM load achievements in some games and others not. Same thing for family games, some loads, some don't. Seens Valve change something in how the API handle with player id on requests in the beta client for games in family share.

Yeah I'll dump steamclient.dll and see what changed. Also check and see if there's a new Steamworks SDK or something that has all the interface versions and stuff.

Some user on Gibbed original branch comes with the solution "Temporary fix: open the game page (don't need to launch the game) in your Steam Library before opening it with SAM.". Can confirm that works perfectly this way, for my own games and also for family games. Somehow SAM don't recognize the parameters anymore on Steam Beta if the game page isn't open.

Some user on Gibbed original branch comes with the solution "Temporary fix: open the game page (don't need to launch the game) in your Steam Library before opening it with SAM.". Can confirm that works perfectly this way, for my own games and also for family games. Somehow SAM don't recognize the parameters anymore on Steam Beta if the game page isn't open.

Very useful. Can confirm I was having the same issue, and this solution resolves it for the time being.

Yeah I'll dump steamclient.dll and see what changed. Also check and see if there's a new Steamworks SDK or something that has all the interface versions and stuff.

Gibbed found the problem and post a correction on original branch. Please check the discution on this link:
https://github.com/gibbed/SteamAchievementManager/issues/413
And the fix update in this link:
https://github.com/gibbed/SteamAchievementManager/commit/b3a66df0d1a870e1646a259698a670f6884fa7c9

Also. The the Steam Families client is now the main one, this is not a problem only for beta version.

authors: Mandydeth lovexuan maconho syntax-tm

repo: syntax-tm/SteamAchievementManager

license: Zlib


text:
Fix AUC statistic and series-distribution

The AUC statistic did not take the delta-x into account causing wrong values. Additionally, the series-distribution had the wrong structure. It included an additional series name which should not exist.
This PR fixes some minor things as well:

Misspelling of Middleware (was MiddleWare)
Misspelling of SERIES_DISTRIBUTION (SERIES_DISTRUBUTION)
Misspelling of processed (prosesed)

The Metric Manager was using different types for storing metrics (PropertyTypes) than we use for defining metrics (MetricType). These are now integrated together.

Pull Request Test Coverage Report for Build 6147076018

3 of 64 (4.69%)  changed or added relevant lines in 3 files are covered.
6 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.2%) to 51.605%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

libraries/metric/lib/util/diagnostics.ts
1
3
33.33%

plugins/plugin-core-metric-middleware-file-writer/lib/middleware/FileWriterMetricMiddleware.ts
1
12
8.33%

libraries/metric/lib/MetricManager.ts
1
49
2.04%

Files with Coverage Reduction
New Missed Lines
%

libraries/metric/lib/MetricManager.ts
3
4.94%

plugins/plugin-core-metric-middleware-file-writer/lib/middleware/FileWriterMetricMiddleware.ts
3
10.23%

Totals

Change from base Build 6145901295:
-0.2%

Covered Lines:
800

Relevant Lines:
1484

💛  - Coveralls

authors: coveralls mitchellolsthoorn

repo: syntest-framework/syntest-core


text:
Add grammar support for boundary species

https://tellurium.readthedocs.io/en/latest/antimony.html#boundary-species

#94

repo: sys-bio/vscode-antimony


text:
remove highlight.js

Summary
highlight.jsはここのみで使われているようだが、これをこれやその派生関数で置き換えることでhighlight.js由来のjs・cssを削減でき、読み込みを少しだけ高速にすることができるようになると思う。
…まあそもそもexif表示出来てないっぽいんですけどね。
Environment
mobile, desktop

highlight.jsはドキュメントのシンタックスハイライトにも使われています。

EXIFについては削除しました

authors: syuilo tamaina

repo: syuilo/misskey


text:
ノートの投稿日時がざっくりとしか確認できない

💡 Summary

ノート詳細ページでも時間が相対表示のまま
🙂 Expected Behavior

☹ Actual Behavior

📝 Steps to Reproduce

📌 Environment

こんな見た目でどうだろう
（個人的には公開範囲の表記がダサいなってちょっと気になっている）

私はこれがベストだと思ってるわ

わかる

やった

やった

authors: Xeltica mei23 syuilo


text:
[WIP] Refactor

リモートサーバーへの配信処理は deliver ジョブにまとめた

副作用がないので、何回リトライしても安全

act/ にある関数が resolver や distribute フラグを受け取らず、また何も値を返さないようにしてシンプルにした

さて、いろいろ確認しなければならないことがある。一度にレビューするとこうなってしまうので、できればPRはもっと小さい単位にして欲しい。

リモートサーバーへの配信処理は deliver ジョブにまとめた

副作用がないので、何回リトライしても安全

これは達成できていない。例えばfolowなど。もっともmasterでこの点は改善されているため、そちらの実装を使えば良いかもしれない。

act/ にある関数が resolver や distribute フラグを受け取らず、また何も値を返さないようにしてシンプルにした

resolverはレビューで書いたとおり、distributeはsilentと同様の機能のもので、どちらも必要である。その点を簡略化することはできない。
他の変更についても:

inboxでは1つのオブジェクトが渡される、attachmentは常に配列、といった想定にしているが、これはActivityPub仕様では規定されておらず、そうでない場合も正しく扱えなければならない。これを一般化していたresolveCollectionを消したのは良い判断と言えない。

actやcreateを再帰的に呼び出すのをやめているが、これをすると複数のtypeが想定される場面やActivityPubの拡張に対処するためにコードが増加するのですべきでない。もっとも、現在のactやcreateの実装は再帰的な呼び出しに最適化されていないので、今後改善の余地がある (例えばUndoやDeleteではドキュメントを作成しないようにするなど。これは今のインターフェイス、つまりDBRefを返す仕様を変更することで達成できる。)

ログについての変更を行う前にまずロガーを整理すべきだ。

api (services) ディレクトリはドメイン駆動設計で説明できる。もし、ドメイン駆動設計で抜本的なリファクタリングを志向するのなら:

modelsはrepositoriesに
servicesはentitiesに
server/apiにある諸々のロジックはservicesに

他にもあった気がするけど忘れた

最後に:

いろいろ改善すべき点があるのでこれをマージするのは危険すぎる。マージできそうなものを分割してマージすると良いかもしれない。
まだActivityPubは実装途中なので、コードを見ても分からない落とし穴がある。実装を変更するときにはActivityPub仕様やMastodonの実装、私の実装の意図を確認すべきだ。やって良い変更かどうか分からずに手を付けてしまうと時間を無駄にしてしまう。

書き忘れていたことを1つ思い出した:

kueで積まれたジョブはメモリに置かれ、クラスタ構成の場合はネットワーク経由で伝搬する。だからジョブの数、ジョブに含まれるデータの数は最低限に抑えなければならない。例えば、元のfollowの実装では、データベースにFollowingを先に記録しておきこの_idのみを渡していた。

ご指摘いただいた点はできるだけ修正しました。ただジョブに関してはそのままにしてあります。やっぱりメモリ的にきつかったら変更を考えたいと思います！
今後開発していくには私が一番コードを知っている必要があると思うのでマージすることにします。

レビューありがとうございました！とても参考になりました。

authors: akihikodaki syuilo


text:
readying a new release

you can ignore reading this. nothing of importance here. just updating files to ready a new release for v0.9.5.x.

@ftownes Please consider a new release.

ahhhh too late for https://github.com/szepeviktor/w3-total-cache-fixed/pull/413
:D

authors: amiga-500 nigrosimone szepeviktor