dfinity / wg-identity-authentication

Repository of the Identity and Wallet Standards Working Group
https://wiki.internetcomputer.org/wiki/Identity_%26_Authentication
Apache License 2.0
31 stars 9 forks source link

Add ICRC-35 reference impl #138

Closed seniorjoinu closed 7 months ago

seniorjoinu commented 8 months ago

Copying here the code from https://github.com/seniorjoinu/icrc35

Everything is functional. The only issue I see for now is that this library is deployed to npm by me, so my account occupies the name. I don't know if it is possible to transfer it (and to whom).

frederikrothenberger commented 7 months ago

The only issue I see for now is that this library is deployed to npm by me, so my account occupies the name. I don't know if it is possible to transfer it (and to whom).

I think the published library should not be part of the reference implementation. I.e. retain ownership of the library. The library has (probably) the goal to become as usable as possible with potentially additional features that do not belong in a minimal reference implementation. So I don't think you need to do anything in particular with respect to the library.

frederikrothenberger commented 7 months ago

I tried running the example, but I think I'm doing something wrong:

$ pnpm run dev

> @ dev /Users/frederik/repos/wg-seniorjoinu-fork/reference-implementations/icrc35
> turbo dev

• Packages in scope: example-icrc35-service-consumer, example-icrc35-service-provider, example-icrc35-shared-library, icrc-35
• Running dev in 4 packages
• Remote caching disabled
example-icrc35-service-provider:dev: cache hit, replaying logs 0d873376ef9a79b7
example-icrc35-service-provider:dev:
example-icrc35-service-provider:dev:
example-icrc35-service-provider:dev: > example-icrc35-service-provider@0.1.0 dev /Users/frederik/repos/wg-seniorjoinu-fork/reference-implementations/icrc35/example/service-provider
example-icrc35-service-provider:dev: > vite --mode dev
example-icrc35-service-provider:dev:
example-icrc35-service-provider:dev: The CJS build of Vite's Node API is deprecated. See https://vitejs.dev/guide/troubleshooting.html#vite-cjs-node-api-deprecated for more details.
example-icrc35-service-provider:dev:
example-icrc35-service-provider:dev:   VITE v5.0.8  ready in 269 ms
example-icrc35-service-provider:dev:
example-icrc35-service-provider:dev:   ➜  Local:   http://localhost:8092/
example-icrc35-service-provider:dev:   ➜  Network: use --host to expose
example-icrc35-service-provider:dev:   ➜  press h + enter to show help
example-icrc35-service-consumer:dev: cache hit, replaying logs 8926644302e565c1
example-icrc35-service-consumer:dev:
example-icrc35-service-consumer:dev:
example-icrc35-service-consumer:dev: > example-icrc35-service-consumer@0.1.0 dev /Users/frederik/repos/wg-seniorjoinu-fork/reference-implementations/icrc35/example/service-consumer
example-icrc35-service-consumer:dev: > vite --mode dev
example-icrc35-service-consumer:dev:
example-icrc35-service-consumer:dev: The CJS build of Vite's Node API is deprecated. See https://vitejs.dev/guide/troubleshooting.html#vite-cjs-node-api-deprecated for more details.
example-icrc35-service-consumer:dev:
example-icrc35-service-consumer:dev:   VITE v5.0.8  ready in 269 ms
example-icrc35-service-consumer:dev:
example-icrc35-service-consumer:dev:   ➜  Local:   http://localhost:8091/
example-icrc35-service-consumer:dev:   ➜  Network: use --host to expose
example-icrc35-service-consumer:dev:   ➜  press h + enter to show help

 Tasks:    2 successful, 2 total
Cached:    2 cached, 2 total
  Time:    227ms >>> FULL TURBO

This seems to execute fine, but the command immediately terminates and does not keep the server running?

Running pnpm run dev in either of the example projects (service provider / consumer) results in a dependency error:

[plugin:vite:import-analysis] Failed to resolve entry for package "example-icrc35-shared-library". The package may have incorrect main/module/exports specified in its package.json.

/Users/frederik/repos/wg-seniorjoinu-fork/reference-implementations/icrc35/example/service-consumer/src/index.ts

    at packageEntryFailure (file:///Users/frederik/repos/wg-seniorjoinu-fork/reference-implementations/icrc35/node_modules/.pnpm/vite@5.0.8/node_modules/vite/dist/node/chunks/dep-uAHLeuC6.js:29448:17)
    at resolvePackageEntry (file:///Users/frederik/repos/wg-seniorjoinu-fork/reference-implementations/icrc35/node_modules/.pnpm/vite@5.0.8/node_modules/vite/dist/node/chunks/dep-uAHLeuC6.js:29445:5)
    at tryNodeResolve (file:///Users/frederik/repos/wg-seniorjoinu-fork/reference-implementations/icrc35/node_modules/.pnpm/vite@5.0.8/node_modules/vite/dist/node/chunks/dep-uAHLeuC6.js:29215:20)
    at Context.resolveId (file:///Users/frederik/repos/wg-seniorjoinu-fork/reference-implementations/icrc35/node_modules/.pnpm/vite@5.0.8/node_modules/vite/dist/node/chunks/dep-uAHLeuC6.js:28983:28)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Object.resolveId (file:///Users/frederik/repos/wg-seniorjoinu-fork/reference-implementations/icrc35/node_modules/.pnpm/vite@5.0.8/node_modules/vite/dist/node/chunks/dep-uAHLeuC6.js:63609:32)
    at async TransformContext.resolve (file:///Users/frederik/repos/wg-seniorjoinu-fork/reference-implementations/icrc35/node_modules/.pnpm/vite@5.0.8/node_modules/vite/dist/node/chunks/dep-uAHLeuC6.js:63314:23)
    at async normalizeUrl (file:///Users/frederik/repos/wg-seniorjoinu-fork/reference-implementations/icrc35/node_modules/.pnpm/vite@5.0.8/node_modules/vite/dist/node/chunks/dep-uAHLeuC6.js:61655:34)
    at async file:///Users/frederik/repos/wg-seniorjoinu-fork/reference-implementations/icrc35/node_modules/.pnpm/vite@5.0.8/node_modules/vite/dist/node/chunks/dep-uAHLeuC6.js:61813:47

Click outside, press Esc key, or fix the code to dismiss.
You can also disable this overlay by setting server.hmr.overlay to false in vite.config.js.

Are there steps missing in the readme? Do I need specific versions of node, etc?

seniorjoinu commented 7 months ago

@frederikrothenberger

Seems like the new version of turbo broke something (I used to have 1.10 and it was working, but on 1.12 it terminates like you say).

I've updated the PR, it should work now.

PS. Use pnpn run dev from the root project directory. This is how turbo works.

frederikrothenberger commented 7 months ago

@seniorjoinu: Given that with that reference implementation you will own a significant portion of this repository, I invited you to the repo. So you should now be able to merge at your leisure.

seniorjoinu commented 7 months ago

@frederikrothenberger

Understood. Thanks for the invite! Hope to come up with an example by the next session.