Conversation
📝 WalkthroughWalkthroughInjects a TypeScript runtime into Integration/TypescriptAPI, adds an async Integration.create(), refactors identifier handling to string/id helpers, makes Zod metadata inheritable (removes pack/unpack and moves brand to globalRegistry/x-brand), and updates workflows, docs, migration rules, tests, and package metadata for v27/v4. Changes
Sequence Diagram(s)sequenceDiagram
participant Client as Client Code
participant Integration as Integration
participant Base as IntegrationBase
participant TSAPI as TypescriptAPI
participant TS as TypeScript Runtime
rect rgba(240,248,255,0.5)
Note over Client,Integration: New async Integration.create flow
Client->>Integration: await Integration.create({ config, routing, serverUrl? })
activate Integration
Integration->>TS: load peer TypeScript (auto-load)
activate TS
TS-->>Integration: ts module
Integration->>Base: super(ts, serverUrl)
activate Base
Base->>TSAPI: new TypescriptAPI(ts)
activate TSAPI
TSAPI->>TS: createIdentifier / build nodes
TSAPI-->>Base: id helpers ready
deactivate TSAPI
Base-->>Integration: initialized
deactivate Base
Integration-->>Client: Integration instance
deactivate Integration
end
rect rgba(255,240,245,0.5)
Note over Client,Integration: Old synchronous constructor flow
Client->>Integration: new Integration({ config, routing })
Note over Integration: Synchronous path, no create() factory, no auto TS load
end
Estimated code review effort🎯 4 (Complex) | ⏱️ ~75 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
The better implementation of #3139 using the dynamic `import()` instead of `createRequire()`. The new implementation requires either: - to import and provide the `typescript` to `Integration::constructor()` - or to use the new async method `Integration::create()` This is a breaking change. `typescript` becomes an optional peer dependency. Documentation adjusted accordingly. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Updated README installation section to clarify TypeScript handling. * Enhanced frontend client generation examples with explicit TypeScript configuration instructions and usage patterns. * **New Features** * Added async factory method for integration setup, offering alternative to direct instantiation. * Made TypeScript an optional peer dependency instead of required, reducing installation footprint. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Thanks to #3156 storing the runtime distinguishable brand in the `bag` is no longer required, since metadata became inheritable between zod schemas in `globalRegistry` starting from Zod v4.3.0. See https://github.com/colinhacks/zod/pull/5578/changes for implementation. Breaking changes to the Zod Plugin: - min Zod version 4.3.4 - `pack()` and `unpack()` removed (no longer needed) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Metadata now inherits across chained schema operations and constraints. * **Breaking Changes** * Removed pack/unpack utilities; use schema.meta() for metadata. * Brand metadata moved to a namespaced meta key ("x-brand"); retrieve via schema.meta() or the getBrand() helper. * **Chores** * Bumped Zod requirement to ^4.3.4 and plugin version to 4.0.0-beta.1. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
✅ QA passed |
RobinTail
left a comment
There was a problem hiding this comment.
✅ reviewed, ready
needs v26 branch before merging
|
✅ made v26 branch |
Nikki Kuhnhausen was 17 years young transgender woman. She was murdered by David Bogdanov in 2019. Her body was identified from decayed remains on December 7th, in the Larch Mountain area near Vancouver, Washington. Authorities were able to identify the body from personal effects; subsequent examination showed she died from strangulation. Nikki had previously been missing since June 5th when she left with David Bogdanov, a 25-year-old male she met in Snapchat, who has since been charged with second degree murder. Authorities believe that Bogdanov, looking for a sexual encounter, became enraged upon learning of Nikki's transgender origins.
https://katu.com/news/local/missing-vancouver-teen-nikki-kuhnhausen-found-dead-in-remote-clark-county-location-suspect-arrested
Transgender women suffer too frequently from transphobic violence and cruelty, being the less protected social group. I'd like to raise an awareness of this problem. Humans should be creators — not killers. But most importantly, I want every transgender girl to have an opportunity to create applications quickly and, in general, learn to write code easily in order to receive job offers and leave dangerously transphobic territories for more favorable and civilized ones, and live happily there. Protect transgender women.
Version 27 makes
typescriptan optional peer dependency with explicit injection of the manually imported module into theIntegrationclass constructor (new Integration({ typescript, ... })), or by calling the new asyncIntegration.create()factory method for automatic loading. The Zod Plugin now leverages Zod 4.3's inheritable metadata feature, removing the need forpack()andunpack()helpers while simplifying brand handling by storing brands in standard metadata underx-brandproperty.Integration#3149Summary by CodeRabbit
New Features
Breaking Changes
Documentation
Chores
✏️ Tip: You can customize this high-level summary in your review settings.