from is typed to accept any Subscribable, but only accepts Observables with Symbol.observable

https://github.com/ReactiveX/rxjs/issues/1980 was closed so opening a new one.
Currently from() is typed to accepts any object with a subscribe method. But at runtime it actually throws if the object does not have a Symbol.observable property. The types or implementation should be corrected.
Personally I prefer using Subscribable because Symbol.observable is not even standard and it is a global property. There can be nasty bugs if polyfills are loaded wrong (e.g. Rx is loaded first, then something imports symbol-observable which will mutate the global Symbol.observable and then make Rx's symbol checks fail because it already set it to "@@observable" or the Observable was created before (I've already lost hours debugging real bugs caused from this).

Hi there!
I faced with the same problem and was surprised to see runtime error: TypeError: You provided an invalid object where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.
RxJS typings definitely support Subscribable<T> interface: ObservableInput implies SubscribableOrPromise, which implies Subscribable.
I looked at the source code to understand what was the reason of rejecting my entity implementing Subscribable<T>. This condition doesn't consider "fromSubscribable" case which is technically similar to fromObservable -> subscribeToObservable. Here we just check the presence of .subscribe method which is all we need for fromSubscribable -> subscribeToSubscribable analogue.
Maybe me or someone will offer a solution by providing pull request? This feature will be very useful for me.
Thank you.

@bloadvenro go ahead :)

@felixfbecker
I edited my post to add some argumentation about Symbol.observable interface. Want to hear some thoughts from community about this topic. Addition looks harmless and fits naturally to the from utility.

To reiterate, I agree with you and would encourage you to open a PR

I'm facing the same issue trying to deserialize the Subscribable calling from(subscribable). The used serializer is capable to handle functions (see more in https://www.electronjs.org/docs/api/context-bridge) and according to the Subscribable interface that should work but it turns out that the Subscribable interface doesn't represent the actual logic which checks for Symbol.observable prop in runtime. So right now I have to explicitly unwrap pure subscribe object by running similar code:
// prop intentionally named as "subscribeLike" but not "subscribe"
// so you can't accidentally do "from(SubscribeLike)" like you can do using
// regular "Subscribable" and get runtime error due to the "Subscribable" inconsistency
export type SubscribeLike<T> = NoExtraProperties<{
    subscribeLike: Subscribable<T>["subscribe"]
}>;

export function subscribableLikeToObservable<T>(
    input: SubscribeLike<T>,
): Observable<T> {
    return new Observable<T>((subscriber) => {
        return input.subscribeLike(
            (value) => subscriber.next(value),
            (error) => subscriber.error(error),
            () => subscriber.complete(),
        );
    })
}

But would love from(subscribable) works on pure {subscribe: () => {...}} object that doesn't have Symbol.observable prop defined in it. Or alternatively, the worse option, the Subscribable interface gets Symbol.observable described in it, so TypeScript won't allow you to call from(subscribable) if subscribable is a pure {subscribe: () => {...}}-like object without Symbol.observable prop set.

@cartant I saw you commenting on https://github.com/ReactiveX/rxjs/issues/5066#issuecomment-586541767 and would love to discuss this more. Are you arguing in your comment towards improving the ergonomics of Subscribable, or to remove it?
In my experience the Symbol ergonomics are even worse, because there is no standard global Symbol.observable, you can get into nasty version conflicts, and symbols cannot be easily cloned over IPC/workers (while a Subscribable can be very easily proxied in a generic way with e.g. comlink).

@felixfbecker see https://github.com/cartant/rxjs-interop/blob/master/README.md

Thanks for the link, but that doesn't seem to help with the case of IPC/workers. Things would be a lot easier if instead of checking for Symbol.observable Rx just checked if typeof obj.subscribe === 'function' (as the type signatures imply, but is not the case). It's possible of course that subscribe is a different method but that would be caught by TypeScript (and it hasn't really been a problem for Promises).

ATM, Symbol.observable is the interop point, and the patch function in rxjs-interop can be used to ensure that interop works without having to mess around with polyfilling Symbol.observable:
import { patch } from "rxjs-interop";
const foreignSource: Observable<Whatever> = /* some foreign source */;
foreignSource[Symbol.observable] = () => foreignSource;
patch(foreignSource);
// foreignSource will now be seen as an observable input by RxJS regardless of
// whether or not Symbol.observable was polyfilled by the application.

Whether or not the API is relaxed regarding inputs having to implement Symbol.observable or just implement subscribe, the library will still have to support Symbol.observable shenanigans. And, TBH, the interop business is unlikely to be a priority.

Would the core team accept a PR to bring the implementation in line with the types? I.e. not throwing on Subscribables

It really depends upon the other issue upon which you commented: the subscribe signature. If the three-arg, non-observer signature is deprecated, this turns into an even bigger mess, IMO. If the deprecation is rescinded - which would be my choice - I guess I would be okay with it. I'd have to give it more thought.

I think the real resolution to this, short term, is to remove "Subscribable" from ObservableInput. The reason for this is we might end up moving toward using AbortSignal in the subscribe signature. I'd hate to start supporting something externally and have to pivot away from it soon after.
Long term: I think we should support subscribe(observer)... Just unwilling to do it right now.


PR-s wait the review forever

Issue you'd like to raise.
The PRs wait for review  (for any feedback) very long time.

Some sort of triage would be helpful.
Some sort of PR closure can be helpful. If something is wrong with PR this should be explained/discussed/addressed. Not providing any feedback is demoralizing for contributors.

Thanks!
Suggestion:
No response

@leo-gan Thanks for raising this. I know the maintainers are stretched for time. I'm not a maintainer but have been thinking about this problem and how automation might be able to help. A few follow up questions:

What do you mean by "some sort of triage"? What's an example?
Maintainers will have the ultimate yes/no decision on merging the PR, but what other types of lower-hanging feedback would be helpful?
Any other ideas for automaton that would give contributors more feedback and visibility in the process?

It is still relevant

It mostly fixed


182402361 time travel mapping

The time travel document scubbing is based on the time travel mapping so closing this PR
https://github.com/concord-consortium/collaborative-learning/pull/1353


make notice of current TTY limitations

through powershell remoting TTY limitations

Thanks! I'll also do an update to clarify that PowerShell ISE does not work for the same reason.


tour: missing function body

Context: https://go.dev/tour/concurrency/8
go: downloading golang.org/x/tour v0.0.0-20201207214521-004403599411
example
./prog.go:7:6: missing function body
./prog.go:11:6: missing function body
Go build failed.

The goal of "Exercise: Equivalent Binary Trees" is for the reader to implement those two functions, creating those missing function bodies.


Server mode support

I need to be able to receive ws input in logstash from multiple remote clients which feed stringified JS stacktrace via a web socket to a remote server for logging. Currently server mode is not implemented yet, and I was wondering when this mode will be available in the plugin.

+1

Any update?

Is there any option to listen on websocket for logstash?

+1

+1

+1

+1


Support for 32-bit ASNs

Currently adding a 32-bit ASN throws an error message in the "Add Site" page:
Ensure this value is less than or equal to<PHONE_NUMBER>.

However you are using a signed integer in this check. The BGP ASN can be a 32-bit unsigned integer, which means it can accept values from 0 to<PHONE_NUMBER>. This error can render some ASNs unmanageable. Although RIRs have not allocated an ASN this large yet, the 32-bit ASN Private Range<PHONE_NUMBER> -<PHONE_NUMBER>) is not supported.

The asn field is currently defined as a PositiveIntegerField which as  @DaKnOb points out behaves as a signed integer. We might need a custom field to support unsigned 32-bit integers.


Considerations for setting up model relationships with sequelize

I've talked about this with @daffl and am available to discuss further with anybody who has questions. But the way models and services are generated needs to be altered to allow for models to define relationships and associations with other models. This mostly just affects relational database schemas. Consider the following:
var Auther = sequelize.define('author', {
    name: Sequelize.STRING
});
var Book = sequelize.define('book', {
    title: Sequelize.STRING
});
Author.hasMany(Book);
Book.belongsTo(Author);

The relationship setup at the bottom is the important part. Both models need to be created, and both models need to know about one another. Only at that point can the associations actually be made, and then after it's all done the schemas should be sync()'d with the db.
I have implemented a fix on my current project and am still refining it a little based on my discussion with David earlier. If anybody has any questions, please feel free to ask. Here is the synopsis of what I've done:
Don't call sync() from within a model.
Load all models and save references in a hash table (using sequelize.import())
Iterate over all models. If a static "associate" method exists, call it, passing in the hash table.
Finally call sequelize.sync()

Sequelize recommends the following strategy for setting up associations in an Express app:
http://docs.sequelizejs.com/en/1.7.0/articles/express/#modelsindexjs
I am using this technique locally and it works like a charm. I have refactored all of my models in to a models directory, the index file looks like this:
const model1 = require('./model1');
const model2 = require('./model2');
const user = require('./user');
const Sequelize = require('sequelize');

module.exports = function() {
  const app = this;

  const sequelize = new Sequelize(app.get('db_url'), {
    dialect: 'postgres',
    logging: console.log
  });

  app.set('sequelize', sequelize);

  app.configure(user);
  app.configure(model1);
  app.configure(model2);

  app.set('models', sequelize.models);

  Object.keys(sequelize.models).forEach(function(modelName) {
    if ("associate" in sequelize.models[modelName]) {
      sequelize.models[modelName].associate();
    }
  });

  sequelize.sync();
};

and a model looks like this:
const Sequelize = require('sequelize');
const ModelHelper = require('../util/model-helper');

module.exports = function() {
  const app = this;
  const sequelize = app.get('sequelize');

  const Model1 = sequelize.define('Model1', {
    name: {
      type: Sequelize.STRING,
      allowNull: false
    }
  }, {
    freezeTableName: true,
    classMethods: {
      associate () {
        const models = app.get('models');
        MyModel.hasMany(models["Model2"]);
      }
    }
  });

  return Model1;
};

@DesignByOnyx thanks for doing the research on this and reporting back.  I've been meaning to get into this, but this just saved me a load of time. 🕗👍

@DesignByOnyx nice man! That looks pretty great. Definitely awesome for an app where everything is in one. At some point I'll get around to seeing how it mike work with remote services. This might be a pain to change in the generator but at a minimum should probably go into a guide somewhere.

Trying to get my head around doing some model associations in feathers, @DesignByOnyx please help with a few questions if possible:

where is MyModel defined?
what does ModelHelper do?
where is your models/index.js file imported/run in feathers?

Hey @delta1 - sorry I am just getting to this - the email slipped through the cracks.
where is MyModel defined?
That's a typo and I have updated the example above. It should be Model1 (I think this would even work too, so you could to this.hasMany(Model2);)
what does ModelHelper do?
That shouldn't be there either - I copied from my project and didn't delete that line. I have a model helper for doing shared some helpful things for my models ;)
where is your models/index.js file imported/run in feathers?
In my app file. This is kind of what it looks like:
// other imports omitted for brevity
const models = require('./models');

const app = feathers();
app.configure(configuration(path.join(__dirname, '..')));

app
  .use(bodyParser.json())
  .use(bodyParser.urlencoded({ extended: true }))
  .configure(rest())
  .configure(socketio())
  .configure(hooks())
  .configure(models)
  .configure(services);

@DesignByOnyx that's awesome, thank you very much

Hi there,
This all looks so nice and I almost got it to work. However, something is wrong in the order in which I do things. Please have look at the trace of my error:

const sequelize = app.get('sequelize')
^
TypeError: app.get is not a function
at module.exports (/home/pim/projects/bijlesismore/starters/Feathers-React-Starterkit/src/sequelize/models/user-model.js:18:25)
at EventEmitter.module.exports (/home/pim/projects/bijlesismore/starters/Feathers-React-Starterkit/src/services/user/index.js:33:12)
at EventEmitter.configure (/home/pim/projects/bijlesismore/starters/Feathers-React-Starterkit/node_modules/feathers/lib/application.js:138:8)
at EventEmitter.module.exports (/home/pim/projects/bijlesismore/starters/Feathers-React-Starterkit/src/services/index.js:52:7)
at EventEmitter.configure (/home/pim/projects/bijlesismore/starters/Feathers-React-Starterkit/node_modules/feathers/lib/application.js:138:8)
at Object. (/home/pim/projects/bijlesismore/starters/Feathers-React-Starterkit/src/app.js:71:4)

A model (in sequelize/models/) starts like this:
const Sequelize = require('sequelize')

module.exports = function() {
  const app = this
  const sequelize = app.get('sequelize')

  const User = sequelize.define('users', {

In services/index.js to whole shabam:
app.set('sequelize', sequelize)

  app.configure(listingcategories)

  app.configure(authentication)
  app.configure(user)
  app.configure(listing)
  app.configure(review)
  app.configure(category)

  app.set('models', sequelize.models)

  Object.keys(sequelize.models).forEach(function(modelName) {
    if ('associate' in sequelize.models[modelName]) {
      sequelize.models[modelName].associate()
    }
  })

  sequelize.sync({ force: true })


kml layers not load on iis server

hi
i used kml.js and load layer file into my map but nothing happened. when i open kml.html on browser locally, kml layer show me right but when i open it in my iis site only base map shows !!!!
plz help me.

are you kidding ???
kml.html is in source code example here!!!!!
leaflet-plugin example:
https://github.com/shramov/leaflet-plugins/tree/master/examples

are you kidding ???

Surely not, it works well for me (and many other people). Give us some infos about your bug, and we may help you.

sorry. i think your kml layer not load local files correctly.
I only web share your example folder on iis 7.5 and open http://localhost/kml.html page on firefox 60 .
but only base map showed for me and kml layer not loaded.
thanks.

Sorry but without an online page showing your bug, i can't guess waht is your configuration problem, so give us a link or have a look in your browser debug tools.

OK.
I uploaded files on the web: [http://www.DreamyTools.somee.com](KML Test)
this address contains all files in example folder of your codes, except "default.htm"l is correspondent to "KML.html "

Hum...
map = new OpenLayers.Map("mapdiv");
So you are trying to use a leaflet plugin with openlayers ?
Plus the fact that you doesn't seem to have looked at your browser console showing this error :
Blocage d’une requête multiorigines (Cross-Origin Request) : la politique « Same Origin » ne permet pas de consulter la ressource distante située sur http://toplane-sa.co.ba/mapa/Toplane.kml. Raison : l’en-tête CORS « Access-Control-Allow-Origin » est manquant.
Since i'm a nice guy, i've downloaded your kml and tested it with the example file available in this repo, and it works. I think we can close this issue now.

sorry. i edit my site root to reference "default.html"
here is my link: KML Test.
thanks

Please have a look to your dev console...
http://www.dreamytools.somee.com/KML_Samples.kml => 404

i correct MIME types of my host, so below links is kml file and my page:
KML Page
KML file

i correct MIME types of my host, so below links is kml file and my page:
KML Page http://www.dreamytools.somee.com/default.html
KML file http://www.dreamytools.somee.com/Dadsara-Zones.kml
On Tue, Aug 28, 2018 at 1:31 PM b_b<EMAIL_ADDRESS>wrote:

Please have a look to your dev console...
http://www.dreamytools.somee.com/KML_Samples.kml => 404
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/shramov/leaflet-plugins/issues/276#issuecomment-416506996,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ARCpbreiP3tcYkjEGZYk4WJ3Vkmdp5hcks5uVQcDgaJpZM4V_Tlj
.

HTTP/1.1 406 Not Acceptable
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
Date: Fri, 31 Aug 2018 08:58:03 GMT
Content-Length: 4942
Connection: keep-alive

Please, make sure you set all this correctly before posting, issues should be used for declaring bugs not like a support forum.


[Bug] Can't move request inside empty folder

Insomnia Version: 6.5.1
Operating System: Windows 10

Details
After updating to 6.5.1 version I can't move request inside empty folder.
Steps to reproduce:

Create new empty folder
Try to move some request inside folder created on previous step

If some request is already exist in folder, other request could be moved inside.

Duplicate of #1486


feat: add LoaderContext to types

This is a speculative PR to resolve #13162 by strongly typing LoaderContext in webpack. - This is possibly not complete yet but I wanted to have a go at what this might look like and see if I was headed in the right direction.
Related PR where ts-loader starts to consume webpack 5 types: https://github.com/TypeStrong/ts-loader/pull/1251
What kind of change does this PR introduce?
It adds a type.
Did you add tests for your changes?
It's a type that's exposed rather than a runtime code change - I don't think there are tests for this beyond compilation?
Does this PR introduce a breaking change?
No
What needs to be documented once your changes are merged?
Nothing - just the types that webpack exposes will be richer.

This isn't a complete type yet as it misses the async method on the loader context. You can see what usage of that looks like here:
https://github.com/TypeStrong/ts-loader/blob/bada1e41e8e484e3fd88fd77ab4217745f2083ee/src/index.ts#L38
Could anyone point me in the direction of where that gets created in webpack? I've done a bunch of code spelunking but haven't found it yet.

These are the contents of the LoaderContext:
version: 2, getOptions: ƒ, emitWarning: ƒ, emitError: ƒ, getLogger: ƒ, …}
_compilation:Compilation {hooks: {…}, name: undefined, startTime: undefined, endTime: undefined, compiler: Compiler, …}
_compiler:Compiler {hooks: {…}, webpack: ƒ, name: undefined, parentCompilation: undefined, root: Compiler, …}
_module:NormalModule {dependencies: Array(0), blocks: Array(0), type: 'javascript/auto', context: '/workspaces/ts-loader/examples/vanilla/src', layer: null, …}
addBuildDependency:dep => {\n\t\t\t\tif (this.buildInfo.buildDependencies === undefined) {\n\t\t\t\t\tthis.buildInfo.buildDependencies = new LazySet();\n\t\t\t\t}\n\t\t\t\tthis.buildInfo.buildDependencies.add(dep);\n\t\t\t}
addContextDependency:ƒ addContextDependency(context) {\n\t\tcontextDependencies.push(context);\n\t}
addDependency:ƒ addDependency(file) {\n\t\tfileDependencies.push(file);\n\t}
addMissingDependency:ƒ addMissingDependency(context) {\n\t\tmissingDependencies.push(context);\n\t}
async:ƒ async() {\n\t\tif(isDone) {\n\t\t\tif(reportedError) return; // ignore\n\t\t\tthrow new Error("async(): The callback was already called.");\n\t\t}\n\t\tisSync = false;\n\t\treturn innerCallback;\n\t}
cacheable:ƒ cacheable(flag) {\n\t\tif(flag === false) {\n\t\t\trequestCacheable = false;\n\t\t}\n\t}
callback:ƒ () {\n\t\tif(isDone) {\n\t\t\tif(reportedError) return; // ignore\n\t\t\tthrow new Error("callback(): The callback was already called.");\n\t\t}\n\t\tisDone = true;\n\t\tisSync = false;\n\t\ttry {\n\t\t\tcallback.apply(null, arguments);\n\t\t} catch(e) {\n\t\t\tisError = true;\n\t\t\tthrow e;\n\t\t}\n\t}
clearDependencies:ƒ clearDependencies() {\n\t\tfileDependencies.length = 0;\n\t\tcontextDependencies.length = 0;\n\t\tmissingDependencies.length = 0;\n\t\trequestCacheable = true;\n\t}
context:'/workspaces/ts-loader/examples/vanilla/src'
currentRequest (get):ƒ () {\n\t\t\treturn loaderContext.loaders.slice(loaderContext.loaderIndex).map(function(o) {\n\t\t\t\treturn o.request;\n\t\t\t}).concat(loaderContext.resource || "").join("!");\n\t\t}
data (get):ƒ () {\n\t\t\treturn loaderContext.loaders[loaderContext.loaderIndex].data;\n\t\t}
dependency:ƒ addDependency(file) {\n\t\tfileDependencies.push(file);\n\t}
emitError:error => {\n\t\t\t\tif (!(error instanceof Error)) {\n\t\t\t\t\terror = new NonErrorEmittedError(error);\n\t\t\t\t}\n\t\t\t\tthis.addError(\n\t\t\t\t\tnew ModuleError(error, {\n\t\t\t\t\t\tfrom: getCurrentLoaderName()\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t}
emitFile:(name, content, sourceMap, assetInfo) => {\n\t\t\t\tif (!this.buildInfo.assets) {\n\t\t\t\t\tthis.buildInfo.assets = Object.create(null);\n\t\t\t\t\tthis.buildInfo.assetsInfo = new Map();\n\t\t\t\t}\n\t\t\t\tthis.buildInfo.assets[name] = this.createSourceForAsset(\n\t\t\t\t\toptions.context,\n\t\t\t\t\tname,\n\t\t\t\t\tcontent,\n\t\t\t\t\tsourceMap,\n\t\t\t\t\tcompilation.compiler.root\n\t\t\t\t);\n\t\t\t\tthis.buildInfo.assetsInfo.set(name, assetInfo);\n\t\t\t}
emitWarning:warning => {\n\t\t\t\tif (!(warning instanceof Error)) {\n\t\t\t\t\twarning = new NonErrorEmittedError(warning);\n\t\t\t\t}\n\t\t\t\tthis.addWarning(\n\t\t\t\t\tnew ModuleWarning(warning, {\n\t\t\t\t\t\tfrom: getCurrentLoaderName()\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t}
fs:CachedInputFileSystem {fileSystem: {…}, _lstatBackend: CacheBackend, lstat: ƒ, lstatSync: ƒ, _statBackend: CacheBackend, …}
getContextDependencies:ƒ getContextDependencies() {\n\t\treturn contextDependencies.slice();\n\t}
getDependencies:ƒ getDependencies() {\n\t\treturn fileDependencies.slice();\n\t}
getLogger:name => {\n\t\t\t\tconst currentLoader = this.getCurrentLoader(loaderContext);\n\t\t\t\treturn compilation.getLogger(() =>\n\t\t\t\t\t[currentLoader && currentLoader.loader, name, this.identifier()]\n\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t.join("|")\n\t\t\t\t);\n\t\t\t}
getMissingDependencies:ƒ getMissingDependencies() {\n\t\treturn missingDependencies.slice();\n\t}
getOptions:schema => {\n\t\t\t\tconst loader = this.getCurrentLoader(loaderContext);\n\n\t\t\t\tlet { options } = loader;\n\n\t\t\t\tif (typeof options === "string") {\n\t\t\t\t\tif (options.substr(0, 1) === "{" && options.substr(-1) === "}") {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\toptions = parseJson(options);\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tthrow new Error(`Cannot parse string options: ${e.message}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\toptions = querystring.parse(options, "&", "=", {\n\t\t\t\t\t\t\tmaxKeys: 0\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (options === null || options === undefined) {\n\t\t\t\t\toptions = {};\n\t\t\t\t}\n\n\t\t\t\tif (schema) {\n\t\t\t\t\tlet name = "Loader";\n\t\t\t\t\tlet baseDataPath = "options";\n\t\t\t\t\tlet match;\n\t\t\t\t\tif (schema.title && (match = /^(.+) (.+)$/.exec(schema.title))) {\n\t\t\t\t\t\t[, name, baseDataPath] = match;\n\t\t\t\t\t}\n\t\t\t\t\tvalidate(schema, options, {\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tbaseDataPath\n\t\t\t\t\t});\n\t\t\t\...
getResolve:getResolve(options) {\n\t\t\t\tconst child = options ? resolver.withOptions(options) : resolver;\n\t\t\t\treturn (context, request, callback) => {\n\t\t\t\t\tif (callback) {\n\t\t\t\t\t\tchild.resolve({}, context, request, getResolveContext(), callback);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\t\t\tchild.resolve(\n\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\t\trequest,\n\t\t\t\t\t\t\t\tgetResolveContext(),\n\t\t\t\t\t\t\t\t(err, result) => {\n\t\t\t\t\t\t\t\t\tif (err) reject(err);\n\t\t\t\t\t\t\t\t\telse resolve(result);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}
loaderIndex:0
loaders:(1) [{…}]
loadModule:(request, callback) => {…}
mode:'development'
previousRequest (get):ƒ () {\n\t\t\treturn loaderContext.loaders.slice(0, loaderContext.loaderIndex).map(function(o) {\n\t\t\t\treturn o.request;\n\t\t\t}).join("!");\n\t\t}
query (get):ƒ () {\n\t\t\tvar entry = loaderContext.loaders[loaderContext.loaderIndex];\n\t\t\treturn entry.options && typeof entry.options === "object" ? entry.options : entry.query;\n\t\t}
remainingRequest (get):ƒ () {\n\t\t\tif(loaderContext.loaderIndex >= loaderContext.loaders.length - 1 && !loaderContext.resource)\n\t\t\t\treturn "";\n\t\t\treturn loaderContext.loaders.slice(loaderContext.loaderIndex + 1).map(function(o) {\n\t\t\t\treturn o.request;\n\t\t\t}).concat(loaderContext.resource || "").join("!");\n\t\t}
request (get):ƒ () {\n\t\t\treturn loaderContext.loaders.map(function(o) {\n\t\t\t\treturn o.request;\n\t\t\t}).concat(loaderContext.resource || "").join("!");\n\t\t}
resolve:ƒ resolve(context, request, callback) {\n\t\t\t\tresolver.resolve({}, context, request, getResolveContext(), callback);\n\t\t\t}
resource (get):ƒ () {\n\t\t\tif(loaderContext.resourcePath === undefined)\n\t\t\t\treturn undefined;\n\t\t\treturn loaderContext.resourcePath.replace(/#/g, "\\0#") + loaderContext.resourceQuery.replace(/#/g, "\\0#") + loaderContext.resourceFragment;\n\t\t}
resource (set):ƒ (value) {\n\t\t\tvar splittedResource = value && parsePathQueryFragment(value);\n\t\t\tloaderContext.resourcePath = splittedResource ? splittedResource.path : undefined;\n\t\t\tloaderContext.resourceQuery = splittedResource ? splittedResource.query : undefined;\n\t\t\tloaderContext.resourceFragment = splittedResource ? splittedResource.fragment : undefined;\n\t\t}

a complete type should encompass this.

Okay, so it turns out that LoaderContext is constructed in two places:

in webpacks NormalModule: https://github.com/webpack/webpack/blob/49890b77aae455b3204c17fdbed78eeb47bc1d98/lib/NormalModule.js#L426- in loader-runners LoaderRunner: https://github.com/webpack/loader-runner/blob/6221befd031563e130f59d171e732950ee4402c6/lib/LoaderRunner.js#L289

Not quite sure how to tackle this...

Hey @sokra,
I've implemented the suggestions you made. However, attaching the /** @type {import("webpack").LoaderDefinition} */ to loaders doesn't seem to be working...

Also export a LoaderDefinition<ContextAdditions = EmptyContextAdditions> type which can be added to loaders like that:
/** @type {import("webpack").LoaderDefinition} */
module.exports = function(source) {
// ...
}
and do that for loaders in test/... to test that.

Am I doing something incorrect here? (I could well be using JSDoc wrong)

I've had a go at implementing the suggestions you made. However, attaching the /** @type {import("webpack").LoaderDefinition} */ to loaders doesn't seem to be working...

Also export a LoaderDefinition<ContextAdditions = EmptyContextAdditions> type which can be added to loaders like that:
/** @type {import("webpack").LoaderDefinition} */
module.exports = function(source) {
// ...
}
and do that for loaders in test/... to test that.

Am I doing something incorrect here? (I could well be using JSDoc wrong)

Ah sorry. Within webpack it's more like /** @type {import("../../../../").LoaderDefinition} */.

You made the non generic commit in the middle of my review. Some of the comment might be outdated...

You made the non generic commit in the middle of my review. Some of the comment might be outdated...

Yeah - I tried the generic approach and it didn't work unfortunately.  I've now switched to the non-generic approach which seems happier.

I've tried the generic workaround but it still doesn't seem to work.  Should we drop the generics?  I've left it in place so you can see.

I'll finish that... The tooling need to be improved a bit for that...

Ok, I improved the tooling a bit so we can export generic types now.
Types in declarations/index.d.ts are now exposed too (in addition to lib/index.js), since it's not possible to expose generic types with defaults for the type parameters from jsdocs 😢
All (hopefully all) loaders in the test suite are now tested against the new declarations and all have type annotations.
I needed to fix a few type problems there too...


Update to current draft of upstream immer PR

Definitely not ready for review as the upstream PR may still change dramatically. Just testing.

I'm going to close this because the upstream pr has further changes that need to be made and I am no longer working on this. I'll let @theo25 open his own pr whenever he gets around to picking up the immer tasks.


Scoop can't recognize all installed apps

I had used scoop for a while. Today when I want to check status of all installed apps. After I inputting command "scoop status", it reports error "These app manifests have been removed" and "These app failed to install". Below these two message, it lists apps. After checking, I found the listed app covers all apps I downloaded through scoop. It looks like the scoop lost connection with its managed apps. Any idea for solving this? Thanks in advance.

For every such error or missing apps, run scoop uninstall XXX; scoop install XXX will fix.
Some are failed to install, while others' manifests may be moved between buckets.

https://github.com/lukesampson/scoop/issues/3642#issuecomment-532287196 is informative.


Make path to follow clearer

The Fabulous home page is unclear

The main "Fabulous" link takes you to unfinished docs

The "StaticView" is not really supported

The "CodeGen" is a tool and is not documented

We really have to make the getting-started path really simple.   I think we should just direct people down the happy path for now and take them straight to the "Fabulous for Xamarin Forms" documentation.  We really don't want anyone to end up anywhere else for now??

@TimLariviere I'm going to merge this as we should get this clear before the show goes live

@dsyme I'm fine with it, but I think we should still use the name Fabulous.XamarinForms to match READMEs and existing docs.
Even though we might commonly call Fabulous.XamarinForms Fabulous, there's a difference between the two - notably the NuGet packages.


AUR Package

Thanks for creating this excellent software.
I've created an AUR package for unfog-cli and think it might be a good idea to mention it in the README.
Assuming your Arch readers have the commonly used yay installed, yay -S unfog-cli-bin could be used to install unfog from AUR.

Thank you so much @mohsen-mohammadi! I'm a Arch user also and it's a very good idea. Would you like to update the README also (the install section)?

Thanks for including it in the REAME.
Yes, you're right about the upstream URL. I fixed it.

@mohsen-mohammadi the link seems not up-to-date anymore, since I removed unfog from its organization. Could you update it?


12 allow for just width or height. If height, fix fullPage

Re: #12 allowing for users to pass just --w,  --h, or both.
Setting fallback values where needed.

Just --w sets h='0' to respect the default fullPage=true;

This results in the specified width and full page height

Just --h sets w=600 to be consistent with chrome's default. Also sets fullPage=false if not explicitly declared.

This results in the default width of 600px and specified height

Both --w and --h sets fullPage=false to respect specified height

This is a change from my proposed solution in #12; This solution may be more elegant as the code base grows.

Oh, I wrote this against the last version, I'll rebase.

Ok, thanks!


Add events list to the CRDS general views

Description
Changes proposed in this pull request:

Add Events list to the CRDS general views

Related issue(s)
Closes #930

/retest


Investigate backend GraphQL resolvers histogram

(Blocked by #2808)
Context
We need to determine how long each of our GraphQL APIs take so we can get an estimate on how performant each of the operations are, and get an relative idea of how long a payment might take.
There is a few options of doing this, either manually instrumenting histograms per resolver, or since adding traces in #2808, we can potentially automatically generate metrics from Tempo as well via https://grafana.com/docs/tempo/latest/metrics-generator/
The metrics generation from Tempo should include generating histograms.
This ticket will be looking into seeing how we can do that/what will be easier.

When running with telemetry and viewing the local dashboard, I see metrics like http_client_duration_milliseconds_bucket. We could use something like this to make histograms or get performance for different percentiles.

However, I don't see this for the graphql resolvers, but I'm not sure why. That's what I'm currently investigating. I tried changing the config for the gql instrumentation but that didnt change anything. I expect the instrumentation should produce similar metrics.

OK, metric generation from spans working here: https://github.com/interledger/rafiki/tree/bc/2802/investigate-span-metrics-generator
We can use the traces_spanmetrics_latency_bucket metric and span_label (mutation CreateQuote for example) to visualize the resolver durations as histograms.

Just to follow up on my previous comment, it seems like for whatever reason the HTTPInstrumentation just collects these metrics by default whereas graphql does not.


Ensure Indicators Always Receive Adjusted Data #383

Adds AdjustSelectorOutput method that take a selector in and returns a selector that outputs adjusted data.

Wow.


Fix Meilisearch error and refactor of the server index.js

Summary

Fix Meilisearch & remove useless Meilisearch console log
Small index.js refactor

Change Type

[x] Bug fix (non-breaking change which fixes an issue)

Testing
Check if there's still the console log & if all the social login work (because of a small refactor)
Checklist

[x] My code adheres to this project's style guidelines
[x] I have performed a self-review of my code
[x] I have commented in any complex areas of my code
[x] I have made pertinent documentation changes
[x] My changes do not introduce new warnings
[x] I have written tests demonstrating that my changes are effective or that my feature works
[x] Local unit tests pass with my changes
[x] Any changes dependent on mine have been merged and published in downstream modules.

Do you mean to create a new file like this @danny-avila?

Do you mean to create a new file like this @danny-avila?

yes thank you, that will help de-clutter the main index file, is the PR ready?

Yes, I have tried to test most of the logins and everything seems to work fine, even the tests run successfully


Fix colab_tpu.setup_tpu import in example Cloud TPU notebooks.

Will this fix work outside of colab?
The kokoro builds/CI that test these notebooks don't run inside colab. They run inside their own environment.

I believe so. This fix isn't colab-specific, it's just a python path thing. Time will tell for sure though :)


chore: bdd-spring-1575072811 to 0.0.1

chore: Promote bdd-spring-1575072811 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


v3: Overview

Building the code generator

[x] Build on top AutoRest runtime v3
[ ] Add csharp autorest configuration model (#7813)
[x] Add support for autorest code model (#7811)
[x] Add support for swagger extensions (#7812)
[ ] Add csharp specific transformations (#7814)
[x] Add csharp code generation plugin (#7815)
[x] Validate generate csharp code against test server (#7816)
[ ] Hook up auto-PR support for generated code (#7819)

Designing the generated code

[x] Design the exact set of csharp code to generate (#7817)
[ ] Design shared multi-api support for generated code (#7818)

Plan of action

Replace existing storage code generator

This will not encompass the final design. It is simply to get the pieces together, find issues, and allow the current generator for Storage to be replaced. Think of this as a prototype.

Track 2 data plane (Storage, KeyVault, AzConfig, some CogServices)

This involves a strong set of design requirements. Other services outside of this set will be tested for unknown issues. This is still primarily focused on data plane, but management plane would at least be acknowledged when designing.
May or may not involve generating public surface APIs. It depends on timelines and how the team wants to proceed. If not, it would at least have a 'finalized' protocol layer.
Would need to have multi-api/Azure profile integrated into the design at this point.

Replace management plane code generator

This is a long term goal. It involves other teams involvement (those that now maintain the management plane SDKs). It would be a breaking change for all of their SDKs.
There are conventions that are used by management plane that would need to be designed and handled appropriately in the generator.

We have separate issues for remaining action items. Closing this umbrella issue.


[SPARK-48807][SQL] Binary Support for CSV datasource

What changes were proposed in this pull request?

SPARK-42237 disabled binary output for CSV because the binary values use java.lang.Object.toString for outputting. Now we have meaningful binary string representations support in UnivocityGenerator, we can support it now.
Why are the changes needed?

improve csv with spark sql types
Does this PR introduce any user-facing change?

Yes, but it's from failures to success with binary csv tables
How was this patch tested?

new tests
Was this patch authored or co-authored using generative AI tooling?
no

cc @weiyuyilia and @HyukjinKwon

#39802

only thing from me is that we won't be able to read/write roundtrip. Can we do this with the newer binary string format?

For IO roundtrip, the UFT8 output style can play it directly. Other styles can play with/ functions, or we can add an extra read option to help

If we specify the schema as binary, can we read it back as binary?

I remember we do similar things in thriftserver (cc @wangyum ) so I am fine with this but just want to make sure we can read it back

If we specify the schema as binary, can we read it back as binary?
https://github.com/apache/spark/pull/47212/files#diff-9ccc240a0142ac3674f47953eb70be3424c3f8bc19e6c7431d4575adfe9bd3fbR3185-R3190
Yes, I have added the above tests to verify read-as-raw-string and read-w/-binary-schema

Thanks you @HyukjinKwon @dongjoon-hyun
Merged to master


Module '"@sanity/document-internationalization"' has no exported member 'PublishWithi18nAction'

As the title says, whenever I need to customize document actions with this library, I get this:
Module '"@sanity/document-internationalization"' has no exported member 'PublishWithi18nAction'
Same thing that was fixed on the issue number 98.

Of course, same happens for the other actions:

DeleteWithi18nAction
DuplicateWithi18nAction

I think that a review on all the exports useful to extend the i18n plugin has to be done, to solve the problem from the root.
I'm looking at the code of the action PublishWithI18nAction.ts, and the type IEditState is not exportable, for example.
I'll keep commenting this issue to highlight the other missing exports.

Also the util function getBaseIdFromId has no exported member.


add Load(istream&) function

analog to stream options in Constructor and in Save.
This allows to read from wstring file paths under windows, making https://github.com/d99kris/rapidcsv/pull/58 unnecessary.
@d99kris Please review. Thanks!

Thanks for the contribution @Sven-HP - the changes in rapidcsv.h looks good to me!
I try to keep all public APIs of rapidcsv covered by at least some basic test, no matter how simple the API is. Would you mind adding a simple test? You could base it off tests/test054.cpp, call it test076.cpp and add it to the list in CMakeLists.txt just after test075 (just copy its line and change to 76).
If you don't feel comfortable adding a test just let me know. Then we can merge this new feature first, and I can add a test myself. Thanks!

@d99kris Done. Sorry I did not set up a local test environment here, so I could not test, but apparently the automatic checks Travis and AppVeyor have passed.

Thanks a lot @Sven-HP - the changes look very good to me. I will proceed to merge the PR.


[Ammonite] Turn yarn config / jars back on

needed to explicitly add spark properties through Java apis (ammonite-spark doesn't do a good job of reading them), but this works as of the latest version.
We also need to make sure that we have the correct jars already on the class path in order for that to work out. If they are to be local jars we need to load them explicitly using ammonite's interp.load.cp functionality.


crypto plugin integration changes

Description
This change is to integrate crypto plugin in remote store.
Related Issues
This is one of the tasks of meta issue https://github.com/opensearch-project/OpenSearch/issues/7229
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[ ] Commits are signed per the DCO using --signoff
[ ] Commit changes are listed out in CHANGELOG.md file (See: Changelog)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #7337 (8adb607) into main (72ed13b) will increase coverage by 0.03%.
The diff coverage is 78.44%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@             Coverage Diff              @@
##               main    #7337      +/-   ##
============================================
+ Coverage     70.55%   70.58%   +0.03%
- Complexity    59441    59522      +81
============================================
  Files          4862     4864       +2
  Lines        285544   285623      +79
  Branches      41153    41162       +9
============================================
+ Hits         201453   201596     +143
+ Misses        67544    67463      -81
- Partials      16547    16564      +17

Impacted Files
Coverage Δ

...ensearch/index/translog/transfer/FileSnapshot.java
63.88% <0.00%> (-1.83%)
:arrow_down:

...g/opensearch/repositories/RepositoriesService.java
72.50% <0.00%> (+0.09%)
:arrow_up:

...anslog/RemoteBlobStoreInternalTranslogFactory.java
66.66% <33.33%> (-8.34%)
:arrow_down:

...search/index/shard/RemoteStoreRefreshListener.java
81.13% <42.85%> (-0.18%)
:arrow_down:

...java/org/opensearch/index/shard/StoreRecovery.java
65.75% <50.00%> (+0.60%)
:arrow_up:

...in/java/org/opensearch/index/shard/IndexShard.java
69.85% <53.33%> (-0.55%)
:arrow_down:

...ndex/store/RemoteSegmentStoreDirectoryFactory.java
86.95% <77.77%> (-7.79%)
:arrow_down:

...dex/translog/transfer/TranslogTransferManager.java
82.42% <85.71%> (-0.19%)
:arrow_down:

...er/src/main/java/org/opensearch/common/Stream.java
87.50% <87.50%> (ø)

...ex/translog/transfer/BlobStoreTransferService.java
86.36% <87.50%> (-0.31%)
:arrow_down:

... and 5 more

... and 456 files with indirect coverage changes

Closing this as it has been crossed out on the meta issue. @vikasvb90 Please reopen if this shouldn't be closed.


[Bug]: Hover Effect Not Working Properly on Welcome Popup Buttons

Give a brief about the bug ✍
Description:
When starting the game for the first time, a welcome popup appears with greetings and instructions on how to play the game. The popup includes a close button (cross icon) and a skip button (>> icon). However, the hover effect behaves incorrectly: the pointer changes just outside the buttons but does not change when hovering directly over the buttons.
What is the expected behavior? 🤔
Description
The pointer should change when hovering directly over the close (cross) button and the skip (>>) button to indicate they are clickable.
Steps to Reproduce:

Start the game for the first time.
Observe the welcome popup with greetings and instructions.
Hover the pointer near the close (cross) button and skip (>>) button.
Notice the pointer changes just outside the buttons but not when hovering directly over the buttons.

https://github.com/user-attachments/assets/d04066eb-b6ca-4be0-93d4-1a812e5d6b30
Select program in which you are contributing
GSSoC24
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

I would love to work on this issue as I have the required skill set to work on it, so can you please assign this issue to me

@thevirengarg Kindly assign this issue to me. I would like to work on it.

@thevirengarg please assign


Force Comic Vine Series ID for Auto-Tag

From<EMAIL_ADDRESS>on August 12, 2013 19:04:13
Suggestion - allow user to specify the series ID on Comic Vine while using Auto-Tag. Sometimes I've found the proper series on Comic Vine, but getting comictagger to find the series while searching has caused problems.
Original issue: http://code.google.com/p/comictagger/issues/detail?id=31

From<EMAIL_ADDRESS>on August 18, 2013 09:47:17
This is not a bad idea for a general work-around.
I'm curious, though, what specific series can't you find now with auto-tag?  I ask because it might be worth also investigating the specific cause of the problems you're seeing.

From<EMAIL_ADDRESS>on August 19, 2013 05:05:41
I think it was one or more of the Star Wars series. There are a number of listings with similar names, and it wasn't returning any results.

From<EMAIL_ADDRESS>on August 21, 2013 19:39:11
Found one that won't work: http://www.comicvine.com/hellboy-the-chained-coffin-and-others/4050-33636/ Filename is:
Hellboy 03 - The Chained Coffin and others TPB.cbz
No results for "Search Online" and "Auto-Identify" doesn't work, either. Tried using "Auto-Tag," but it doesn't find anything. Forcing it to search using "Hellboy" or "Hellboy: The Chained Coffin and Others" doesn't bring anything up.

From<EMAIL_ADDRESS>on March 24, 2014 07:36:57
Status: Done


RP2-432 Protect all endpoints with RESETTLEMENT_PASSPORT_READ_WRITE role

Don't merge yet - will demo to make sure we are all happy this has been done correctly. We should also wait until everyone has the role applied to their DPS accounts.

Ready to be merged following demo.


Add round_down_to_next_multiple_of_alignment

This function implements the operation more efficiently using bitmasking instead of division and multiplication. While LLVM is probably smart enough in practice to produce this sort of code, Kani (#378) has trouble with multiplication, and so this code is hopefully more Kani-friendly.
Closes #390

Looks like the test is a little to much for miri to handle. Reduce the iterations, and I'll re-approve.


Consider renaming method call to submit

Follows the ideas from:

https://github.com/FuelLabs/fuels-ts/issues/1451

We must first check for any problem or incoherence before renaming all call methods to submit.
The goal is to achieve improved semantics.

[!NOTE]
Validate the impact of breaking changes with the @FuelLabs/frontend team.

what happens with callParams?

it's not a problem to be a breaking change if it makes sense and implement a consistent pattern across sdk

We could also rename call -> submit but maintain the API, and keep a call function that calls submit if we are concerned about a breaking change.

@LuizAsFight Good point.
Maybe something like requestParams() and submit() could work well together.


Remove named returns

Use of named returns is discouraged by the Go community.
Apply error check shorthand to simplify code
Simplify SelfPid() (unneeded use of variable)
Add more elaborate error messages to simplify debugging

Resolved the merge conflicts.
By the way: Thx for your code!

Thank you so much. You are my First contributor.


[URLSession] Do not allow resuming cancelled/completed tasks.

A cancelling or completed task might have been resumed (or suspended)
because the implementation didn't check for the state of the task to be
valid.
Includes a small test that reproduces the problem when this patch is not
applied and that doesn't fail when it is.

@swift-ci please test Linux platform


unable to deploy standalone version

I've deployed this application a number of times from my user account, including the current version, successfully.
The only customization besides providing a unique name a source bucket is to change the ResolverTemplate setting from %s.tif to %s.ptif which has always worked before.
The following is a redacted version of the message I see in the CloudFormation Stack CREATE_FAILED status.

Resource handler returned message: "User: arn:aws:iam::000000000000:user/xxx is not authorized to perform: lambda:GetLayerVersion on resource: arn:aws:lambda:us-west-2:000000000000:layer:libvips-sharp-jp2:3 because no resource-based policy allows the lambda:GetLayerVersion action (Service: Lambda, Status Code: 403, Request ID: -uuid-)" (RequestToken: -uuid-, HandlerErrorCode: AccessDenied)

Ah, sorry about that. The most recent deployment of the layer must not have set the permissions correctly. I’m not at a computer where I can fix it right this minute, but I can take care of it within a few hours.

No worries! Thanks for the prompt response. I'm at the end of my work day so I won't be looking at this again for another 16 hours or so.

Should be good to go now.


Plugin 'convertTransform' corrupts image

Step to reproduce:

Clone repo from my bug test project
Go to repo directory
npm i
npm run build
Run serve in dist directory
Visit server page
See that image was showed correctly
Stop serve
Delete value in excludedSvgoPluginsBecauseItCorruptImages in webpack.config.js
npm run build
Run serve in dist directory
Visit server page
See that image was corrupted

Actual result:
Image was corrupted
Expected result:
Image on second view must be equal image on first view
Svgo version: ^3.0.2
NodeJS version: v18.13.0
OS version: Ubuntu 23.04 Lunar Lobster

The problem is ultimately rounding. The convertTransform plugin reduces the number of decimal places, which changes in output to -.125 to -.13.
We make the assumption that there's no need to add more precision than there already is. So since it started with 2 decimal places, we assume that we can round to two decimal places at the end.
We should make this do one of the following:

Use significant digits instead of decimal places to determine floating-point precision.
Take the existing number of decimal places + 1 to calculate the desired precision, the plus 1 offset being what we consider a non-negligible change.
Drop that logic altogether.

There may be edge cases where this still screws up the SVG, but this should certainly improve the situation for now.

I created additional branch overrides, where I overrided svgo plugins options. Three commits was placed on this branch and in any ones webpack.config.js have different settings. I discover that disabling of option collapseIntoOne solved this problem, but increasing of ...Precision settings do not.
Thus enabling of plugin convertTransform have some risk. Will you may descript it in documentation at least short?

I'd actually consider this a bug based on my findings above. Rather than update the documentation, I intend to resolve the precision issue.
You're correct, updating the precision settings wouldn't help due to the assumptions that are made. For some reason, that takes precedence over the parameters, which I'd also consider a bug tbh. 🤔

I also get a corrupted image when using 'convertTransform'. I upload my files here to give you an other example of corruption:

abc_original.svg
abc_svgo_optimized_with_convertTransform.svg (corrupted! path30 is shifted on the left outside the document)
abc_svgo_optimized_without_convertTransform.svg (not corrupted)
svgo.config.cjs
Using
node v20.10.0
svgo 3.0.4
ubuntu 22.04

svgo.config.cjs.txt


23 win number output, jcstress version up

Coverage remained the same at 90.714% when pulling 5e75ac1ab3b6e36bc2104ab1a4bded3a0500c06a on 23-windows-output-and-jcstress03 into ee21d40f0defdd630a39e70d7271d01c088095d8 on master.


How to use prettier's plugins option?

Follow-up to #103
When using the prettier formatter, how do we actually use the plugins option?
With
programs.prettier.settings = {
  plugins = [ "prettier-plugin-tailwindcss" ];
};

(To use https://tailwindcss.com/blog/automatic-class-sorting-with-prettier)
I get:
[INFO]: Error using formatter #prettier:
• [STDOUT]:

• [STDERR]:
[error] Cannot find package 'prettier-plugin-tailwindcss' imported from /Users/srid/code/nix-browser/noop.js

You'd need to install the NPM module yourself. Right now accessing/managing NPM modules from Nix/Nixpkgs isn't straightforward

Does pluginSearchDirs has any effect at all? I couldn't find it in the upstream documentations. I packaged the plugin but it's not found by prettier:
    treefmt.programs.prettier.settings.plugins = [ "prettier-plugin-tailwindcss" ];
    treefmt.programs.prettier.settings.pluginSearchDirs = [
      "${self'.packages.prettier-plugin-tailwindcss}/lib"
    ];

Yeah it' not pretty (no pun intended lol) but that works... hopefully once NPM <=> Nix improves it will be more straightforward

@Mic92 Is this still the recommended way? Looks like the absolutely plugin path hack has been removed from HEAD: https://git.clan.lol/clan/clan-core/src/branch/main/formatter.nix

What is currently the best method to use a plugin that's in nixpkgs?
prettier = {
  enable = true;
  settings = {
    plugins = [ "${pkgs.prettier-plugin-go-template}" ];
    overrides = {
      files = [ "*.html" ];
      options.parser = "go-template";
    };
  };
};

Would this work? Do I need to specify the path further? Do I have to add the package separately?

@Mic92 Is this still the recommended way? Looks like the absolutely plugin path hack has been removed from HEAD: https://git.clan.lol/clan/clan-core/src/branch/main/formatter.nix

I don't actually don't know, we currently don't need prettier.

When I got this working I installed the plugins via the devShell's packages and specified their names in the prettier config

Does pluginSearchDirs has any effect at all? I couldn't find it in the upstream documentations. I packaged the plugin with npm2nix but it's not found by prettier:
    treefmt.programs.prettier.settings.plugins = [ "prettier-plugin-tailwindcss" ];
    treefmt.programs.prettier.settings.pluginSearchDirs = [
      "${self'.packages.prettier-plugin-tailwindcss}/lib"
    ];

Prettier remove the pluginSearchDirs option so that is probably why it's not working.

How do you set plugin options? e.g. @prettier/plugin-xml has the option xmlWhitespaceSensitivity, but you can't set it in settings because it does not exist.

Finally got it working, had to update the plugin which is in nixpkgs.
{ pkgs, ... }:
{
  projectRootFile = "flake.nix";
  programs = {
    nixfmt.enable = true;
    gofmt.enable = true;
    taplo.enable = true;
    prettier = {
      enable = true;
      settings = {
        plugins = [
          "${pkgs.prettier-plugin-go-template}/lib/node_modules/prettier-plugin-go-template/lib/index.js"
        ];
        overrides = [
          {
            files = [ "*.html" ];
            options.parser = "go-template";
          }
        ];
      };
    };
  };
  settings.global.excludes = [
    "public/**"
    "static/**"
  ];
}

Is it, in any way, possible to use a Prettier plugin that's not in nixpkgs, while also at the same time using Yarn Berry (with PnP)?
In my case, if I use this .prettierrc.cjs:
console.log(require.resolve('prettier-plugin-tailwindcss'));

module.exports = {
  plugins: [require.resolve('prettier-plugin-tailwindcss')],
};

It works when running Prettier normally, but not inside Nix (because both node_modules and the .yarn's cache are gitignored).
The path printed by the console.log is this very ugly path:
/home/ggorg/Documents/Programming/<project>/.yarn/__virtual__/prettier-plugin-tailwindcss-virtual-17a95f4a43/4/.yarn/berry/cache/prettier-plugin-tailwindcss-npm-0.6.9-b8379758a4-10c0.zip/node_modules/prettier-plugin-tailwindcss/dist/index.mjs

I think this approach only works for packages that are in nixpkgs.

@jukremer why? I defined the package myself above; so it should be no different.


Add a way to customise aria-label on close button

Done with https://github.com/HugoGiraudel/react-a11y-dialog/commit/aaff1b9df7e5c234eac9281d61f8c390a5c983b2.


Question on event handling

To help us process the issue more efficiently, please provide the following information:

Specify the version of the devextreme-angular and devextreme packages you are using.
devexteme version: 17.1.4
devextreme-angular version: 17.1.4

Specify the type of the issue (check one with "x"):
[ ] bug Report
[ ] feature request
[ ] support inquiry

When assigning an event handler (in Typescript) to the setCellValue event  in DxDataGrid e.g. like in this method:
onSetitemtypeLocal(rowData: any, value: any): void
{
this.defaultSetCellValue(rowData, value);
}
where this.defaultSetCellValue(rowData, value) will update the grid value within the "this" context.
If I need to do other work, for example accessing the Angular component where the method is located, I need to re-bind the method to the component's execution context in the component constructor:
this.onSetitemtypeLocal = this.onSetitemtypeLocal.bind(this);
Doing that, however, alters the execution context, so that I can no longer call the "this.defaultSetCellValue(rowData, value);" method as it's not present in the context.
It might be simple, but how can I combine the two contexts allowing me to call the this.defaultSetCellValue method as well as accessing the component's elements via the this operator ?

You don't need to call the defaultSetCellValue method. You can assign the passed value to the corresponding column field or the passed rowData object:
onSetitemtypeLocal(rowData: any, value: any): void
{
    rowData.MyColumn = value;
}

This is what the defaultSetCellValue method does. If this does not work for you, provide me with a sample project to reproduce the issue.

This issue is closed because of being inactive. If you need further assistance, leave a comment here.


changed homescreen display to show days from expiry instead of expiry…

… date. Also disabled selection of past dates in date picker widget.

lgtm


batteries running down much faster than expected

days instead of weeks. Correlated in time frame to integration of new code and SCD40

Changing bug to P2 so it will be addressed after the code refactoring

need to monitor power use via external tool

SCD40 was pushing data every 5 seconds causing a consistent power draw during deep sleep. Issue resolved via implementing stopPeriodicMeasurement() in deepSleep() routine.


Zotero user ans pass shouldnt be ingested in GIT

And we should create a dedicated ÖBL user and group.

zotero user id and api key no longer live in git, for the second point see #150


fixes #1 use track.currency() for Facebook conversions

I wanted to write test but couldn't get npm test working... Any pointers would be much appreciated

Thanks so much, looking good so far!! Would love to add a test too — lmk if switching node versions (we use n here for doing that seamlessly) does the trick to get them running, otherwise I can add the test and get this merged.

@sperand-io I have added some tests and tested that they fail before my changes.
Lets let this merged!

@sperand-io What is the status of this????

closing this since this integration is deprecated.


Export Class Support

I'm pretty unfamiliar with the syntax for ctags regex and was wondering if there's a reason that the following wouldn't work?
export class Foo {
  // ...
}

I'd expect to be able to reach Foo as a class if that makes sense.

The pattern for the Class kind assumes this structure:
[BOL][0+ whitespace][class][1+ whitespace][name]

You would need to add another pattern for that one:
[BOL][0+ whitespace][export][1+ whitespace][keyword][1+ whitespace][name]

But I'm conflicted about this request as Foo would be both a named export and a class.

Hm, yeah I see get the conflict. Is that just a semantic difference in ctags or is it more meaningful?

For the pattern, would this make sense?
--regex-javascript=/^[ \t]export[ \t]*class[ \t]\{1,\}\([A-Za-z0-9_$]\{1,\}\)/\1/C,Class,Classes/b

I just added export[ \t] in front of *class...

This is better:
--regex-javascript=/^[ \t]*export[ \t]\{1,\}class[ \t]\{1,\}\([A-Za-z0-9_$]\{1,\}\)/\1/C,Class,Classes/b

This is not a technical problem, really, but a semantic problem: is that a named export or class definition?

Makes sense, thanks! And it’s really both. I have a single file with a single class definition that it exports as a named export (i.e. not the default export).

Hey Romain, thanks a lot for creating this super useful setup! I stumbled across the same problem. Do you think it would be possible to add the regex from your comment above to the repository?

@tom3q I'm still not sure how to classify that thing: "class definition" or "named export", as it's both and I have no desire to have dupes in the generated tags file. Either way, you could add it to your own fork in the mean time.

Okay, thanks for explanation. I'll keep it in my fork.

import Data from './data';
import Unit from './unit';

export default class Daily extends Data {
  constructor({ swellHeight, waveHeight, swellPeriod, windSpeed, imperial, i}) {
    super({swellHeight, swellPeriod, windSpeed, imperial})
    this._swellHeight = new Unit({ value: swellHeight[i] })
    this._waveHeight = new Unit({ value: waveHeight[i] })
    this._windSpeed = new Unit({ value: windSpeed[i] })
  }

  get waveHeight() {
    if (this._imperial) {
      return this._waveHeight.ft
    }
    return this._waveHeight.mt
  }
}

but if I remove the export it works.
none of the above solution from @romainl and @evanleck worked.


adding extra characters to the original file name

after using youtube-dl -t {link} to download playlist from youtube
it download file very well, but it adds extra characters to the file name like this one
ex: this command
[ youtube-dl -t  https://www.youtube.com/playlist?list=PLAwxTw4SYaPnMwH5-FNkErnnq_aSy706S ]
should download the first video with this title "Welcome to Developing Android Apps"
instead it downloaded with this one " Welcome to Developing Android Apps-2Wo_QfQZ0lE.mp4"
finally thank you for such a great tool it changed my life :+1:
i hope we can figure the solution soon

It's intentional. Use -o "%(title)s.%(ext)s".

can you explain it to me please
i understand that i should replace (ext).s with (mp4).s , but (title)s with
what ? what should write in stead of title ?
On Sun, May 29, 2016 at 5:00 AM, Sergey M<EMAIL_ADDRESS>wrote:

Closed #9625 https://github.com/rg3/youtube-dl/issues/9625.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/rg3/youtube-dl/issues/9625#event-675323290, or mute
the thread
https://github.com/notifications/unsubscribe/APCmBdQmJDY3CC7_QvpaxVK0L8EZKoIHks5qGPMlgaJpZM4IpMaY
.

The -o option specifies a template for the filename. It is not recommended to actually replace anything in there.
You're passing in the option -t, which is equivalent to -o "%(title)s-%(id)s.%(ext)s" (which is, coincidentally, also the default behavior). This makes the filename include the video ID, which is extremely useful if you want to find the original video URL in a pinch.
If you only want the title and extension (there are lots of other fields too), pass in -o "%(title)s.%(ext)s" instead of -t.
If that's the behavior you want all the time, consider creating a configuration file.


Suggested flow to deploy RC2 to azure web app

After converting my PR1 project to RC2, I need to update my azure web app with it. What's the suggested path? There are some references in the official RC2 announcement to "wait for Azure Blog for something to happen" but 7 days after, we are still waiting and I need to deploy now.
Thanks a lot!

I've managed to deploy on Azure manually. My target is "net461", probably targeting .NET Core would not work due to missing environment on Azure's servers. What follows may be useful to anyone with my same problems, but I am not implying it's be best way to deploy on Azure. In fact, I'd like to be corrected by someone with more experience than me and make the flow more streamlined.
It seems to me that the "dotnet publish" command is not doing what's needed to make things work on Azure. I've issued the command:
"dotnet deploy -c Release -o bin\approot"
This generated an approot folder with all needed stuff, but unsurprisingly files were not placed where needed.
My project.json contained the suggested:
	"publishOptions": {
		"include": [
			"wwwroot",
			"appsettings.json",
			"app.config",
			"web.config"
		]
	},

But this creates a structure where: approot contains executables, dlls, appsettings, app.config, web,config and wwwroot. Inside wwwroot there are files taken from the project's wwwroot folder.
Azure Web Apps expect 2 folders, all rooted on the same "site" folder: "site/approot" and "site/wwwroot".
My quick and dirty change is:
  "publishOptions": {
    "mappings": {
      "../wwwroot/appsettings.json": "appsettings.json",
      "../wwwroot/app.config": "app.config",
      "../wwwroot/web.config": "web.config"
    }
  }

This creates 2 folders on the same level: approot and wwwroot wherever I decide to output the deploy's results. Notice that the suggested "project.json" contains:
"scripts": {
	"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}

This generates a web.config file that does not work (with my current setup). It expects the app executables to be in its same folder, while on Azure it is not (i.e. web.config is in wwwroot, while the app executable is in approot). I had to change the %publish:OutputPath% value manually with something like "../approot/".
The generated approot and wwwroot folders can be copied manually to Azure's server (as an example through Kudu's interface).

I asked a question that led me to the right way to do, #1482
First now the context of approot is gone, you can call it whatver you want, it'll be the root folder for your app to set in azure.
Secondly, let web.config and all the files required in your app base root, include wwwroot also.
When you'll do
dotnet restore
dotnet publish --configuration Release --output ./publish
from the package manager you'll see the folder is almost ready just be sure the web config is done with the config you wish.
And then you just have to upload to azure with ftp and you're done.
Hope it helps!

@pictuel thanks a lot! So if I understand correctly everything in the local "publish" folder needs to be copied in azure's site folder. I'll have to try it because I fear a bit of what will happen of the existing content (I.e. Webjobs in "App_Data" and other stuff created directly by azure.

Rethinking at what I wrote, can I keep the app content in a separate folder and set the folder anywhere in azure's panel?

you should try on a local iis server, therefor on azure dont delete anything if you're not sure, copy the folder below the site directory and then link your azure setting to the new folder just to test if it works as you wish. In case it dosen't just relink to the old folder.

web.config was moved to the approot and therefore publish-iis creates the web.config in the approot location. You can find more details in this announcement. If you want continue to have web.config in wwwroot you can find how to do this here.
If you install tooling for VS (preview1) you can deploy you application directly from VS.
You can deploy standalone apps to Azure for a while now and as of last week the rc2 runtime was installed and you can also publish portable apps.

Thank you all, tomorrow I'll make some tests. The new layout makes sense. I still don't like azure placing the webjobs in my application root, but that's another topic.

I did it! Thanks a lot! I've created an approot folder and set it as the application root in Azure, then deployed in it and now I have my webjobs nicely separated from my main app. The only hiccup I had was when using the existing deploy profile which needed to be updated.

congrats! :+1:


[JS] ARROW-2206 - Document Perspective project

See https://issues.apache.org/jira/browse/ARROW-2206

https://github.com/deepankarsharma

-- I removed JP Morgan stewardship from main arrow docs, though still seems relevant for JS powered by so kept there
-- I removed superlatives
I didn't take action on adding to 'Examples' section. I think we can do a lot better on the arrow js intro section, and recommend approaching that more holistically, vs. via this...


Images in dark mode

Often, images don't display nicely in dark mode.
They either

have transparency, and then you get black lines and text on a dark blue background, or
a hard white background, which slightly defeats the object of dark mode!

Could we come up with some way of displaying an alternative image (if present) if running in dark mode?
E.g. for an image my_image.svg, could we detect whether we're in dark mode and, if we are, render instead my_image_dm.svg if that image exists?
Happy to entertain other solutions if there's a better way of doing this!

just putting it out there, is it feasible to support a text-based diagram tool like https://mermaid.js.org/ and encourage the use of that in the material?


Registro DID en el Tec

We added DID of issuer (Tec de Monterrey) in json file for verifiable credentials pilot.

hi @jchartrand, good afternoon, could you please share the status of this task with us, thank you very much.
Antonio.

Hi James, we removed the space.
We added too the file we generated with this command to get a new key for Emisor.
curl --location 'http://localhost:4005/seedgen'
In this json, is the DID.
¿Would you check again please?
json_did_emisor.txt


fix fix broker load parquet format file finished but no data actually

Proposed changes
Issue Number: close #xxx
affects master, introduced by #15175
Problem summary
broker openReader interface cannot get the file size, resulting in the file size being incorrectly set to 0
Checklist(Required)

Does it affect the original behavior:

[ ] Yes
[ ] No
[ ] I don't know

Has unit tests been added:

[ ] Yes
[ ] No
[ ] No Need

Has document been added or modified:

[ ] Yes
[ ] No
[ ] No Need

Does it need to update dependencies:

[ ] Yes
[ ] No

Are there any changes that cannot be rolled back:

[ ] Yes (If Yes, please explain WHY)
[ ] No

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 35.79 seconds
load time: 655 seconds
storage size:<PHONE_NUMBER>2 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20221228040952_clickbench_pr_69837.html


Tipue-Search in a single page application

Hi,
I just started looking at Tipue-Search and it looks really powerful, yet lightweight in terms of code. Well done!
I would like to try and get this working in an HTML5 single page application that uses dynamic content loading based on hashed urls, and I've got a few questions:
First, can I use the hashes for the live mode list of tipuesearch_pages, e.g. ["#first","#second","#third"].
Secondly, can I get the search results to load into a div on the same page, instead of a separate page? So presumably not <form action="myurl">.
And on an unrelated note, does Tipue-Search work with jquery-1.11.1? I'm using it instead of a newer version in my app for compatibility with latest stable jquery-mobile (1.4.5).
Thanks for any help you are able to provide!

No, I don't think hashes will work in Live mode. Static mode is probably the way to go here.
Yup, you can use the same page. Just start with the results page rather than a search page.
No, Tipue Search is jQuery 2.x and above.
Cheers,
Steve

Thanks for the speedy response. It appears that jq-mobile will work with the same (newer) version of jquery, at least for the very limited mobile functions I need (just swiping).
I got the search results on the same (single) page, will try static mode. Thanks again.

No worries. Good hunting.


Code Quality: SYSLIB1054 - Use LibraryImportAttribute instead of DllImportAttribute to generate p/invoke marshalling code at compile time.

Description
Related to https://learn.microsoft.com/en-us/dotnet/fundamentals/syslib-diagnostics/syslib1050-1069.
Concerned code
Found issues (67 issues)
	Found usages (67 issues)
		<src>\<core> (4 issues)
			<src>\<core>\<Files.Core> (4 issues)
				<src>\<core>\<Files.Core>\Helpers (4 issues)
					<src>\<core>\<Files.Core>\Helpers\NativeFindStorageItemHelper.cs (4 issues)
						Mark the method 'FindFirstFileExFromApp' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'FindNextFile' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'FindClose' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'FileTimeToSystemTime' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
		<src>\<platforms> (63 issues)
			<src>\<platforms>\<Files.App> (63 issues)
				<src>\<platforms>\<Files.App>\Utils\Shell (3 issues)
					<src>\<platforms>\<Files.App>\Utils\Shell\PreviewHandler.cs (1 issue)
						Mark the method 'CoCreateInstance' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
					<src>\<platforms>\<Files.App>\Utils\Shell\ItemStreamHelper.cs (2 issues)
						Mark the method 'SHCreateStreamOnFileEx' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'SHCreateItemFromParsingName' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
				<src>\<platforms>\<Files.App>\Services (1 issue)
					<src>\<platforms>\<Files.App>\Services\SideloadUpdateService.cs (1 issue)
						Mark the method 'RegisterApplicationRestart' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
				<src>\<platforms>\<Files.App>\Helpers (1 issue)
					<src>\<platforms>\<Files.App>\Helpers\NaturalStringComparer.cs (1 issue)
						Mark the method 'CompareStringEx' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
				<src>\<platforms>\<Files.App>\Helpers\Win32 (1 issue)
					<src>\<platforms>\<Files.App>\Helpers\Win32\Win32Helper.Storage.cs (1 issue)
						Mark the method 'SHQueryRecycleBin' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
				<src>\<platforms>\<Files.App>\Helpers\Interop (56 issues)
					<src>\<platforms>\<Files.App>\Helpers\Interop\NativeWinApiHelper.cs (8 issues)
						Mark the method 'GetKeyState' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'GetDpiForMonitor' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'OpenProcessToken' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'GetCurrentProcess' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'GetTokenInformation' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'CloseHandle' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'GetLengthSid' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'IsWow64Process2' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
					<src>\<platforms>\<Files.App>\Helpers\Interop\NativeIoDeviceControlHelper.cs (4 issues)
						Mark the method 'CreateFileFromAppW' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'DeviceIoControl' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'DeviceIoControl' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'CloseHandle' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
					<src>\<platforms>\<Files.App>\Helpers\Interop\NativeFileOperationsHelper.cs (21 issues)
						Mark the method 'CloseHandle' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'CreateFileFromApp' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'DeviceIoControl' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'CreateFile2FromApp' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'CreateDirectoryFromApp' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'MoveFileFromApp' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'CopyFileFromApp' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'DeleteFileFromApp' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'RemoveDirectoryFromApp' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'GetFileAttributesExFromApp' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'SetFileAttributesFromApp' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'SetFilePointer' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'ReadFile' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'WriteFile' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'WriteFileEx' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'GetFileTime' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'SetFileTime' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'GetFileInformationByHandleEx' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'GetFileInformationByHandleEx' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'FindFirstStreamW' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'FindNextStreamW' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
					<src>\<platforms>\<Files.App>\Helpers\Interop\NativeDirectoryChangesHelper.cs (9 issues)
						Mark the method 'CloseHandle' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'GetOverlappedResult' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'CancelIo' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'CancelIoEx' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'WaitForMultipleObjectsEx' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'CreateEvent' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'ResetEvent' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'WaitForSingleObjectEx' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'ReadDirectoryChangesW' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
					<src>\<platforms>\<Files.App>\Helpers\Interop\InteropHelpers.cs (10 issues)
						Mark the method 'SetPropW' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'GetCursorPos' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'CreateEvent' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'SetEvent' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'GetDpiForWindow' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'CoWaitForMultipleObjects' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'SetWindowLongPtr32' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'SetWindowLongPtr64' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'GetKeyState' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'SHBrowseForFolder' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
					<src>\<platforms>\<Files.App>\Helpers\Interop\FileUtils.cs (4 issues)
						Mark the method 'RmRegisterResources' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'RmStartSession' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'RmEndSession' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
						Mark the method 'RmGetList' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)
				<src>\<platforms>\<Files.App>\Helpers\Environment (1 issue)
					<src>\<platforms>\<Files.App>\Helpers\Environment\ElevationHelpers.cs (1 issue)
						Mark the method '_IsElevationRequired' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time (0 issues)

Example:

[DllImport("api-ms-win-core-timezone-l1-1-0.dll", SetLastError = true)]
public static extern bool FileTimeToSystemTime(
	ref FILETIME lpFileTime,
	out SYSTEMTIME lpSymTime);stemTime);

to
[LibraryImport("api-ms-win-core-timezone-l1-1-0.dll", SetLastError = true)]
public static extern bool FileTimeToSystemTime(
	ref FILETIME lpFileTime,
	out SYSTEMTIME lpSystemTime);

Gains

Better performance using source generators instead of reflection

Requirements

Running R# to generate the report of variables and fields that can be converted
Applying the change file by file

Comments
No response

Looks good.
FYI we are working on merging those PInvokes into single partial class(*1) and more over replace them with CsWin32.
(*1) Win32PInvoke class with following prefixes:

Win32PInvoke.Methods
Win32PInvoke.Structs
Win32PInvoke.Enums
Win32PInvoke.Consts

Feel free to work on these (step by step) after this issue if you want.

https://learn.microsoft.com/en-us/dotnet/standard/native-interop/pinvoke-source-generation
Another reference explaining the benefits. I think this is an important issue.

Sounds good, it might be worth splitting this into multiple PRs to make it easier to test and review.

Thanks for the initial try.
Do you know CsWin32?
If you know, you can replace them with API generated by CsWin32.
Using DllImport or LibraryImport is deprecation in Files app.

Just checked about CsWin32, looks promising because of source generator usage like LibraryImportAttribute. Will make a try tonight at NativeFindStorageItemHelper.cs

Don't know if this is expected behavior when migrating:
https://github.com/microsoft/CsWin32/issues/1167

I'm not sure but this function in C language uses void* iirc.I assume if adding in or out and even ref is defined in win32metadata. Can't you cast?

I'm not sure, but this function in C language uses void*.
I assume that whether adding in or out and even ref is defined in win32metadata or CsWin32 repo.
#include <fileapifromapp.h>

WINSTORAGEAPI HANDLE FindFirstFileExFromAppW(
  LPCWSTR            lpFileName,
  FINDEX_INFO_LEVELS fInfoLevelId,
  LPVOID             lpFindFileData, // HERE
  FINDEX_SEARCH_OPS  fSearchOp,
  LPVOID             lpSearchFilter,
  DWORD              dwAdditionalFlags
) noexcept;

You can use Marshal.PtrToStructure:
using System.Runtime.InteropServices;

Marshal.PtrToStructure((nint)lpFindFileData, typeof(WIN32_FIND_DATA));

And you don't need to migrate all of inside of NativeFindStorageItemHelper because it would make us unreviewable so why not migrate step by step.
Also, if you're struggling with some issues you can skip, or you can pick functions up from Win32PInvoke that I made in my PR #15075 after merged because I gathered methods into single file and I think it's a good play ground as well for you.

Now you can see Files.App.Helpers.Win32 Win32PInvoke class. We can replace them with CsWin32 piece by piece (starting from about 10 functions).

[!IMPORTANT]

Please Use CsWin32 instead of replacing with LibraryImport. This Win32PInvoke class should be going to contain undocumented native functions defined through LibraryImport or DllImport when possible.
Don't use "*FromApp" functions. They are intended to be used on UWP. Instead, use native ones.
E is easy, M is medium, D is difficult. If anyone else can take a look, it'd be good to start from ones marked as E.

Documented native methods (targets to convert to CsWin32)

[ ] M: RmRegisterResources
[ ] M: RmStartSession
[ ] E: RmEndSession
[ ] D: RmGetList
[ ] E: SetPropW
[ ] E: CreateEvent
[ ] E: SetEvent
[ ] E: GetDpiForWindow
[ ] M: CoWaitForMultipleObjects
[ ] E: SetWindowLongPtr32
[ ] E: SetWindowLongPtr64
[ ] E: SHBrowseForFolder
[ ] E: SHGetPathFromIDList
[ ] E: CloseHandle
[ ] M: GetOverlappedResult
[ ] E: CancelIo
[ ] E: CancelIoEx
[ ] M: WaitForMultipleObjectsEx
[ ] E: ResetEvent
[ ] E: WaitForSingleObjectEx
[ ] M: ReadDirectoryChangesW
[ ] E: CreateFileFromAppW
[ ] M: DeviceIoControl
[ ] M: ToUnicode
[ ] M: ToUnicodeEx
[ ] E: GetKeyboardState
[ ] E: GetKeyboardLayout
[ ] E: MapVirtualKey
[ ] M: TranslateMessage
[ ] E: CreateFileFromApp
[ ] E: GetFileAttributesExFromApp
[ ] E: SetFileAttributesFromApp
[ ] E: SetFilePointer
[ ] M: ReadFile
[ ] M: WriteFile
[ ] M: WriteFileEx
[ ] M: GetFileTime
[ ] M: SetFileTime
[ ] E: GetFileInformationByHandleEx
[ ] E: GetFileInformationByHandleEx
[ ] E: FindFirstStreamW
[ ] E: FindNextStreamW
[ ] E: GetDpiForMonitor
[ ] E: OpenProcessToken
[ ] E: GetCurrentProcess
[ ] E: GetTokenInformation
[ ] E: GetLengthSid
[ ] M: CryptUnprotectData
[ ] E: IsWow64Process2
[ ] E: FindNextFile
[ ] E: FindClose
[ ] M: FileTimeToSystemTime
[ ] E: FindFirstFileExFromApp
[ ] E: CompareStringEx
[ ] E: SHCreateStreamOnFileEx
[ ] M: SHCreateItemFromParsingName
[ ] M: CoCreateInstance
[ ] E: RegisterApplicationRestart
[ ] M: SHGetKnownFolderPath

Undocumented native functions

[x] IsElevationRequired
[x] SHUpdateRecycleBinIcon


Buffering

Seconds into YouTube video and it buffers forever.

My HarmonyOS phone is also having this problem. It didn't have this problem four days ago
<IP_ADDRESS>.240913 This problem does not occur

I have tested versions <IP_ADDRESS>, <IP_ADDRESS>, and <IP_ADDRESS> of the software on a Redmi device running HarmonyOS and encountered random buffering issues.


User data not getting

when try to get user data
error :
Array ( [error] => 1 [message] => Unable to retrieve NEXT_DATA from DOM )

This is due to the captcha verification coming back as a response. Right now, there's not a solid solution for this, so what I'll be doing is pushing an update that allows you to manually set the verifyFp token. Stay tuned.

This is due to the captcha verification coming back as a response. Right now, there's not a solid solution for this, so what I'll be doing is pushing an update that allows you to manually set the verifyFp token. Stay tuned.

Hey Robert! I often get code 10000 or error 'Verification for current cookie data is required'. It also looks like captcha...

When I hit any file like video.php, music.php, or any other file to get data I am also facing such type of sam error in the response. Please have a look at the screenshot.

Hey @RobertGrubb
when can you push the new updates ?
i am using your library on my live site and my customers are complaining.
can you provide the stable version.
Thanks

@andersonrobert1313
As of v1.9.12 you may now manually set a fp token that you have verified via captcha from tiktok's website like so:
$scraper = new Scraper([
  'verifyFp' => 'verify_xxxxxx_xxx...'
]);

As soon as it's possible, I will implement a captcha solver. Just not sure about the route I want to take with it yet.

Closing due to no response. Feel free to reopen if need be.

Hey @RobertGrubb
This is not the solution i can't tell to all my customers for go to tiktok website and add the manually token.
Do you have any other solution for this.

Hey @RobertGrubb
This is not the solution i can't tell to all my customers for go to tiktok website and add the manually token.
Do you have any other solution for this.

I'm not sure what your setup is. If you're saying that you spin up a new scraper for every customer, then yes, this is the actual solution right now.
If you are scraping FOR your customers, only you should be setting the fp token on your scraper configuration.

Hey @RobertGrubb
I am using your library on shopify app.
So all my customers are using my app on their store.
So each store has their own username and own platform to use your apis.
So in my app there is an input field by saying enter tiktok username.
Once  they add username then I'll hit your apis and fetch last 20 videos.
From those videos customer can on/off what to show or hide on their website.
Now can you let me know how can I continue with your apis.
Thanks
On Sat, 21 Nov 2020 at 6:57 PM, Robert Grubb<EMAIL_ADDRESS>wrote:

Hey @RobertGrubb https://github.com/RobertGrubb
This is not the solution i can't tell to all my customers for go to tiktok
website and add the manually token.
Do you have any other solution for this.
I'm not sure what your setup is. If you're saying that you spin up a new
scraper for every customer, then yes, this is the actual solution right now.
If you are scraping FOR your customers, only you should be setting the fp
token on your scraper configuration.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/RobertGrubb/tiktok-php/issues/37#issuecomment-731579485,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOMVU2TEJFIJEKMRHZ5FYLDSQ653HANCNFSM4TVJYPNQ
.

Tiktok / Libraries / Request.php Line  309
"
if (preg_match_all('#<script id="NEXT_DATA" type="application/json" crossorigin="anonymous">(.?)</script>#', $this->data, $out)) {
return json_decode($out[1][0], true, 512, JSON_BIGINT_AS_STRING);
}
"
change code
"
if (preg_match_all('#<script id="NEXT_DATA" type="application/json" nonce="(.?)" crossorigin="anonymous">(.*?)</script>#', $this->data, $out)) {
  return json_decode($out[2][0], true, 512, JSON_BIGINT_AS_STRING);
}

"
Tadadadam


Combine all Bridge client js files into one closure not to propogate "use strict" on everything

http://forums.bridge.net/forum/general/feature-requests/1124

Related to #672 - Option to turn on/off "use strict" in output .js files.


Add Support for Cuda 12.1 and Pytorch 2.2

Feature request
Upgrade the DockerFile to use or support CUDA 12.1 and Pytorch 2.2 to greatly improve performance for lovelace Nvidia graphics cards.
Motivation
Lovelace nvidia graphics cards such as the H100, L40, and 4090 run slower than they should on the default text-generation-inference install due to the older version of CUDA and Pytorch. Upgrading to CUDA 12.1 and Pytorch 2.2 will increase tokens per second by about 20% based on my own testing.
Your contribution
So far my attempts to do this myself have failed due to different compiling steps such as the Fast Attention V2 compile, if I solve this issue myself I will post a PR.

Python 2.2 is not out yet afaik : https://pytorch.org/get-started/locally/ (are they going to skip 2.1 ?)
We're trying to stick with released versions of Pytorch, because tgi is run on many devices, and making sure it works correctly on all environments is already non trivial.
But thanks for sharing, I'm sure it can help others.

Yes it seems they are skipping 2.1. the nightly build is on 2.2
The pip3 and/or conda installs both uses 2.2 with cuda 12.1
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch-nightly -c nvidia
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu121
2.0 lacks important improvements needed unlock the gains from the newer generation GPUs.
I have been unable to get the newer pytorch working with the Fast Attention build steps, if someone could help get this working it would be appreciated.
The Fast Attention Build also seems to be using a branch that was last updated over a year ago, which may also unlock more performance but that is just a theory.

I believe the nightlies were on 2.2 already because 2.1 was already essentially finished. Since 2.1 is out now, I'd love to see this happen, since more than just performance, some things just won't work on 2.0  (#1101 for example).

We moved to 2.1 and Cuda 12.1.
Docker release 1.2.0 will be done today.


[Nox.Generator] SqlException - Invalid object name 'OutboxState'

Experiencing this issue when I activate inMemory messaging in Cryptocash solution:

@Mornevanzyl   I was using this scenario in CryptoCash API,  when you add messaging you need to run Migrations again and update the db because messaging is creating tables on the database to manage the Outbox

Actually this note is very important . See also https://masstransit.io/documentation/configuration/middleware/outbox section Entity Framework

This is a MassTransit thing, we just need to state that the database model is going to change, migrations must be executed