@learncard/network-brain-service 4.1.0 → 4.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +16 -0
- package/CHANGELOG.md +35 -0
- package/dist/didkit_wasm_bg.wasm +0 -0
- package/dist/helpers/app-credential-delivery.helpers.d.ts +4 -0
- package/dist/helpers/app-credential-delivery.helpers.d.ts.map +1 -0
- package/dist/helpers/app-credential-delivery.helpers.test.d.ts +2 -0
- package/dist/helpers/app-credential-delivery.helpers.test.d.ts.map +1 -0
- package/dist/helpers/boost.helpers.d.ts.map +1 -1
- package/dist/helpers/sentry.helpers.d.ts.map +1 -1
- package/dist/helpers/sentry.helpers.test.d.ts +2 -0
- package/dist/helpers/sentry.helpers.test.d.ts.map +1 -0
- package/dist/index.js +2 -2
- package/dist/publish-metafile.json +1 -1
- package/dist/routes/app-store.d.ts.map +1 -1
- package/package.json +18 -18
- package/project.json +1 -1
- package/src/helpers/activity.helpers.ts +3 -3
- package/src/helpers/app-credential-delivery.helpers.test.ts +56 -0
- package/src/helpers/app-credential-delivery.helpers.ts +11 -0
- package/src/helpers/boost-storage.helpers.test.ts +63 -0
- package/src/helpers/boost.helpers.ts +23 -18
- package/src/helpers/sentry.helpers.test.ts +56 -0
- package/src/helpers/sentry.helpers.ts +4 -3
- package/src/routes/app-store.ts +9 -16
- package/test/app-credential-delivery.neo4j.spec.ts +110 -0
- package/tsconfig.json +13 -13
- package/vitest.config.ts +2 -0
- package/vitest.inbox-e2e.config.ts +1 -0
package/AGENTS.md
CHANGED
|
@@ -264,6 +264,22 @@ For certain workflows, such as sending a boost (credential) to another profile v
|
|
|
264
264
|
- Document the expected flow, security implications, and how to set up signing authorities in both code and tests.
|
|
265
265
|
- Prefer direct HTTP calls in E2E tests for service-only routes, and demonstrate signing authority setup in test code.
|
|
266
266
|
|
|
267
|
+
### Credential delivery write ordering (LC-2312 / CI-20)
|
|
268
|
+
|
|
269
|
+
App-event issuance uses `sendAppCredentialWithActivity`: complete the activity graph
|
|
270
|
+
before starting `sendBoost`, and carry the returned activity ID into delivery.
|
|
271
|
+
`sendBoost` awaits each relationship write; creating promises up front reintroduces
|
|
272
|
+
parallel auto-commit writes and Neo4j relationship-chain contention. A listing issuer
|
|
273
|
+
already gets a listing `CREDENTIAL_SENT` edge from `createSentCredentialRelationship`;
|
|
274
|
+
only add explicit listing attribution when it names a different listing or the issuer
|
|
275
|
+
is a profile/integration. Preserve the owner-profile edge in every case.
|
|
276
|
+
|
|
277
|
+
This ordering removes contention within one send, not all possible contention between
|
|
278
|
+
independent requests. Do not retry signing, credential storage or notifications as one
|
|
279
|
+
unit to hide a graph failure. Focused tests cover ordering/failure boundaries, and
|
|
280
|
+
`test/app-credential-delivery.neo4j.spec.ts` verifies real graph counts and activity
|
|
281
|
+
correlation in both the integration and CI inbox configurations.
|
|
282
|
+
|
|
267
283
|
## Profile Connection Invites
|
|
268
284
|
|
|
269
285
|
LearnCard supports creating and managing profile connection invitation links with single-use, multi-use, and unlimited usage, as well as optional expiration.
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
# @learncard/network-brain-service
|
|
2
2
|
|
|
3
|
+
## 4.1.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`c20460f6fef685272227f506f536b6811f90b8a0`](https://github.com/learningeconomy/LearnCard/commit/c20460f6fef685272227f506f536b6811f90b8a0)]:
|
|
8
|
+
- @learncard/types@5.24.1
|
|
9
|
+
- @learncard/email-templates@1.2.2
|
|
10
|
+
- @learncard/credential-library@2.1.5
|
|
11
|
+
- @learncard/core@9.4.42
|
|
12
|
+
- @learncard/helpers@1.7.2
|
|
13
|
+
- @learncard/did-web-plugin@1.1.42
|
|
14
|
+
- @learncard/didkey-plugin@1.1.42
|
|
15
|
+
- @learncard/didkit-plugin@1.10.8
|
|
16
|
+
- @learncard/didkit-plugin-node@0.3.8
|
|
17
|
+
- @learncard/encryption-plugin@1.1.42
|
|
18
|
+
- @learncard/learn-card-plugin@1.2.42
|
|
19
|
+
- @learncard/vc-plugin@1.6.8
|
|
20
|
+
- @learncard/vc-templates-plugin@1.1.42
|
|
21
|
+
- @learncard/crypto-plugin@1.1.42
|
|
22
|
+
- @learncard/dynamic-loader-plugin@1.1.42
|
|
23
|
+
- @learncard/expiration-plugin@1.2.42
|
|
24
|
+
|
|
25
|
+
## 4.1.1
|
|
26
|
+
|
|
27
|
+
### Patch Changes
|
|
28
|
+
|
|
29
|
+
- [#1887](https://github.com/learningeconomy/LearnCard/pull/1887) [`decc065dcc7ecf3a5aacd06850ed23356f528153`](https://github.com/learningeconomy/LearnCard/commit/decc065dcc7ecf3a5aacd06850ed23356f528153) Thanks [@TaylorBeeston](https://github.com/TaylorBeeston)! - Stop reporting expected `CONFLICT` tRPC errors (like re-consenting to a contract you've already consented to) to Sentry, the same way `BAD_REQUEST`, `NOT_FOUND` and `FORBIDDEN` are already filtered.
|
|
30
|
+
|
|
31
|
+
- [#1883](https://github.com/learningeconomy/LearnCard/pull/1883) [`9bca968ad4da81ce98674d0e1a3959956d7521ca`](https://github.com/learningeconomy/LearnCard/commit/9bca968ad4da81ce98674d0e1a3959956d7521ca) Thanks [@goblincore](https://github.com/goblincore)! - Sequence app credential activity and delivery graph writes to reduce Neo4j deadlocks, and avoid duplicate listing attribution when the listing is already the issuer.
|
|
32
|
+
|
|
33
|
+
- Updated dependencies [[`4ec92c41442b56341c1205e6ddd6ae784aecc990`](https://github.com/learningeconomy/LearnCard/commit/4ec92c41442b56341c1205e6ddd6ae784aecc990)]:
|
|
34
|
+
- @learncard/didkit-plugin@1.10.7
|
|
35
|
+
- @learncard/credential-library@2.1.4
|
|
36
|
+
- @learncard/didkit-plugin-node@0.3.7
|
|
37
|
+
|
|
3
38
|
## 4.1.0
|
|
4
39
|
|
|
5
40
|
### Minor Changes
|
package/dist/didkit_wasm_bg.wasm
CHANGED
|
Binary file
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { logCredentialSent } from './activity.helpers';
|
|
2
|
+
import { sendBoost } from './boost.helpers';
|
|
3
|
+
export declare const sendAppCredentialWithActivity: (activity: Parameters<typeof logCredentialSent>[0], delivery: Omit<Parameters<typeof sendBoost>[0], "activityId">) => Promise<string>;
|
|
4
|
+
//# sourceMappingURL=app-credential-delivery.helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-credential-delivery.helpers.d.ts","sourceRoot":"","sources":["../../src/helpers/app-credential-delivery.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,eAAO,MAAM,6BAA6B,GACtC,UAAU,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,EACjD,UAAU,IAAI,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,KAC9D,OAAO,CAAC,MAAM,CAGhB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-credential-delivery.helpers.test.d.ts","sourceRoot":"","sources":["../../src/helpers/app-credential-delivery.helpers.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boost.helpers.d.ts","sourceRoot":"","sources":["../../src/helpers/boost.helpers.ts"],"names":[],"mappings":"AAQA,OAAO,EACH,EAAE,EACF,GAAG,EACH,UAAU,EAEV,sBAAsB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EACH,gBAAgB,
|
|
1
|
+
{"version":3,"file":"boost.helpers.d.ts","sourceRoot":"","sources":["../../src/helpers/boost.helpers.ts"],"names":[],"mappings":"AAQA,OAAO,EACH,EAAE,EACF,GAAG,EACH,UAAU,EAEV,sBAAsB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EACH,gBAAgB,EAKnB,MAAM,iBAAiB,CAAC;AAWzB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAgBxC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,EAAE,QAAQ,MAAM,KAAG,MACpB,CAAC;AAEtC,eAAO,MAAM,mBAAmB,GAC5B,SAAS,WAAW,EACpB,OAAO,aAAa,KACrB,OAAO,CAAC,OAAO,CAOjB,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,OAAO,aAAa,KAAG,OAEnD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,OAAO,aAAa,KAAG,OAEzD,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,aAAa,KAAG,OAEtD,CAAC;AAMF,eAAO,MAAM,0BAA0B,GAAU,OAAO,aAAa,KAAG,OAAO,CAAC,OAAO,CAQtF,CAAC;AAWF,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,UAAU,GAAG,EAAE,EACvD,YAAY,CAAC,EACb,MAAK,MAAiC,KACvC,CASF,CAAC;AAEF,eAAO,MAAM,oCAAoC,GAC7C,YAAY,EAAE,GAAG,UAAU,EAC3B,mBAAmB,MAAM,KAC1B,MAQF,CAAC;AAEF,eAAO,MAAM,SAAS,GAAU,iJAa7B;IACC,IAAI,EAAE,gBAAgB,CAAC;IACvB,EAAE,EAAE,WAAW,CAAC;IAChB,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,EAAE,EAAE,GAAG,GAAG,GAAG,gBAAgB,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,KAAG,OAAO,CAAC,MAAM,CAqHjB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC5B,OAAO,aAAa,EACpB,QAAQ,MAAM,EACd,MAAM,gBAAgB,EACtB,IAAI,WAAW,EACf,yBAAyB,2BAA2B,KACrD,OAAO,CAAC,MAAM,CAqChB,CAAC;AAKF,eAAO,MAAM,gBAAgB,GAAI,WAAW,MAAM,KAAG,sBAAsB,GAAG,IAY7E,CAAC;AAMF,eAAO,MAAM,0BAA0B,GACnC,OAAO,aAAa,EACpB,UAAU,MAAM,EAChB,QAAQ,MAAM,EACd,UAAS;IACL,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACjB,KACP,OAAO,CAAC,UAAU,CA+CpB,CAAC;AAqCF,eAAO,MAAM,kCAAkC,GAC3C,YAAY,UAAU,EACtB,eAAe,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,kBAAiB,OAAc,KAChC,UA4DF,CAAC;AA8BF,eAAO,MAAM,iBAAiB,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,aAAa,CAc/E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sentry.helpers.d.ts","sourceRoot":"","sources":["../../src/helpers/sentry.helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAE7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"sentry.helpers.d.ts","sourceRoot":"","sources":["../../src/helpers/sentry.helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAE7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAY9C,eAAO,MAAM,iBAAiB,GAAI,WAAW,MAAM,KAAG,OAErD,CAAC;AAMF,eAAO,MAAM,eAAe,GAAI,uBAI7B;IACC,KAAK,EAAE,SAAS,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,KAAG,IAmBH,CAAC;AAMF,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAepF,CAAC;AAOF,eAAO,MAAM,mBAAmB,QAAO,MAQtC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sentry.helpers.test.d.ts","sourceRoot":"","sources":["../../src/helpers/sentry.helpers.test.ts"],"names":[],"mappings":""}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
[diffend] Oversized file quarantined before diffing.
|
|
2
2
|
name: package/dist/index.js
|
|
3
|
-
size:
|
|
4
|
-
sha256:
|
|
3
|
+
size: 124380683 bytes
|
|
4
|
+
sha256: d038c54ca3700b2c254e309cb0994b4d90cf9b8da122260be8c9dd3f89fae974
|