Skip to content

Releases: linked-fw/server

v2.1.7

Choose a tag to compare

@linked-cm-release-bot linked-cm-release-bot released this 31 Aug 11:55
8a2cda6

Patch Changes

  • #30 87a524b Thanks @flyon! - Track the current @_linked/core (^2.17.0).

    The declared range was ^2.2.1 while the lockfile pinned 2.11.1, so CI built
    against a core three minor versions behind the one consumers actually run. That
    divergence is invisible locally — the monorepo resolves core to 2.17.0 — and it
    surfaced as a build failure only after a change referenced a module that exists
    in 2.17.0 but not in 2.11.1.

v2.1.6

Choose a tag to compare

@linked-cm-release-bot linked-cm-release-bot released this 31 Aug 08:01
a912936

Patch Changes

  • #28 093e096 Thanks @flyon! - Install the SPA catch-all after setupAfterControllers, and re-pin it after HMR.

    The client shell is served from a catch-all GET *, which is only a fallback by
    accident of registration order. Two supported paths register GET routes once it
    already exists: setupAfterControllers (a documented provider hook, which ran
    after the catch-all was installed) and onSourceChange, where
    disposeRoutes() splices a provider's layers out and registerRoute() can only
    append them back. A route that ends up behind the catch-all is answered with the
    HTML shell at status 200, so it reads as an auth/config problem rather than a
    routing one.

    The catch-all now goes on last, in its own installSpaFallback() step after
    setupAfterControllers, and onSourceChange re-pins it once providers have
    re-registered. Ordering is asserted at registration time from the two places
    that create the situation, so nothing hooks express's dispatch path. Trailing
    error-handling middleware (arity-4) is deliberately kept behind the fallback, so
    errors thrown while rendering the shell still reach the app's error handler.

    Adds the package's first test harness (jest + ts-jest) with coverage for the
    ordering, the dispose/re-register cycle, error-handler placement, idempotency,
    and a negative control asserting the shell wins when re-pinning is skipped.

v2.1.5

Choose a tag to compare

@linked-cm-release-bot linked-cm-release-bot released this 31 Aug 07:24
ffb8cbf

Patch Changes

  • #26 b3ea735 Thanks @flyon! - Build the in-memory shape index against either core property-list shape.

    indexShapesIntoMemory read localShape.properties. Newer @_linked/core
    converted shape metadata to plain objects exposing propertyShapes and dropped
    the NodeShape.properties getter, so that read returned undefined and threw on
    .map. The throw happened while evaluating the object literal, before the
    shapeIndex[...] = ... assignment, on the first shape class carrying a
    .shape — so the loop aborted on its first iteration and the index was left
    completely empty rather than partial. Everything reading it (LincdAPI
    get_all_shapes / get_shape_details, and the shape-catalog fallback and
    shape-sync in create-now-js) silently saw nothing.

    Nothing surfaced because the async call was not awaited at either call site
    (initOnly, start): the failure escaped as an unhandled rejection and boot
    continued as if it had succeeded. Both call sites now await it.

    The property list is read as .properties ?? .propertyShapes, so the index
    builds against both the core generation this package declares (which still has
    the getter) and newer core (plain objects).

v2.1.4

Choose a tag to compare

@linked-cm-release-bot linked-cm-release-bot released this 16 Jul 15:51
5cb9d4e

@_linked/server

2.1.3

Patch Changes

  • #20 2bda81c Thanks @flyon! - LinkedServer.callShapeMethod now degrades gracefully (warns and skips) when a shape URI can't be resolved to a provider, instead of throwing and turning the whole request into a 500.

2.1.2

Patch Changes

  • #17 ef9d285 Thanks @flyon! - Remove the development export condition (pointed at src, which isn't shipped to npm). Monorepo dev resolves workspace source via the cli Vite plugin; standalone resolves import → lib. No consumer-visible change.

2.1.1

Patch Changes

  • #15 e98441f Thanks @flyon! - Replace removed CoreMap with native Map (core dropped CoreMap in b2de3ad). Fixes Cannot find module @_linked/core/collections/CoreMap from LinkedServer on a clean install.

2.1.0

Minor Changes

  • #13 8932811 Thanks @flyon! - ESM-only. Dropped the CommonJS build; the package now ships ES modules only (type: module, no require export condition, no lib/cjs). All first-party consumers are ESM; CJS projects on Node 22+ can still require() it (sync ESM) or use dynamic import(). Also fixed the root types field (was a non-existent ./index.d.ts).

Patch Changes

  • #13 daef98d Thanks @flyon! - BackendAPIStore now speaks DSL-JSON over the wire, adapting to the @_linked/core query-contract flip (datasets receive the live/closed query, not IR).

    • The frontend store serializes each query with query.toJSON() before Server.call (the live query can't cross the wire), replacing the removed getQueryObject() path.
    • BackendAPIStoreProvider rehydrates it with fromJSON(json) back into a live query before routing through LinkedStorage — the backend store lowers it to SPARQL itself.

    No API change for callers; the round-trip is lower(fromJSON(query.toJSON())) ≡ lower(query).

  • #13 28d0f49 Thanks @flyon! - Dropped lincd-sioc: ~1.0 from package.json dependencies. Audit
    confirmed no source file in packages/server/src imports from sioc;
    the dep was vestigial.

    No API change. Consumers that depended on @_linked/server transitively
    pulling sioc into their lockfile will need to add @_linked/sioc (the
    new name; see its own release notes) as a direct dep if they actually
    use it.

    Context: see create-now plan-011 report (docs/reports/009-legacy-lincd-eradication.md).

2.0.3

Patch Changes

  • #10 5619ddf Thanks @flyon! - Switch to explicit per-step build pipeline (mirrors @_linked/cli's and @_linked/server-utils's). The previous yarn linked build wrapper was failing silently in CI and shipping incomplete tarballs.

2.0.2

Patch Changes

  • #8 17e6771 Thanks @flyon! - Rebuild against @_linked/server-utils@1.0.5. The lockfile previously pinned 1.0.4 whose published tarball was empty, so server's build couldn't resolve BackendProvider/JSONParser/JSONWriter/RouteConfig. Lockfile now points at 1.0.5 which ships its lib/ correctly.

2.0.1

Patch Changes

  • #6 7eb425b Thanks @flyon! - Rebuild + republish. The 2.0.0 tarball shipped without lib/ because the build silently failed against an empty @_linked/server-utils@1.0.4 tarball. @_linked/server-utils@1.0.5 now ships its lib/ correctly, so this version compiles + packages as intended.

2.0.0

Major Changes

  • #4 d1ad65c Thanks @flyon! - Track @_linked/core storage-API renames and adopt the new BackendAPIStore config-object constructor.

    Breaking — call-site renames (paired with the matching changes in @_linked/core):

    • LinkedStorage.setDefaultStoresetDefaultDataset
    • LinkedStorage.setStoreForShapessetDatasetForShapes
    • LinkedStorage.getDefaultStoregetDefaultDataset
    • LinkedStorage.getStoresgetDatasets
    • SparqlStoreSparqlDataset

    Breaking — BackendAPIStore constructor takes a config object:

    // before
    new BackendAPIStore("appData");
    
    // after
    new BackendAPIStore({ name: "appData" });

    The config field is name (renamed from alias in the intermediate iteration).

    Fix — scoped-package /call routes. Backend now correctly routes /call/@scope/pkg/method requests, not just /call/pkg/method.

    Fix — relative bundle URLs in dev. Drops the baked-in :4000 origin so bundle URLs work whatever PORT the dev server binds to.

    Docs. Constructor doc-comments refreshed from the older lincd naming to linked.

Minor Changes

  • #4 2ae7a72 Thanks @flyon! - Update BackendAPIStore to implement IDataset (renamed from IQuadStore in @_linked/core).

    No functional change — import path and interface name updated to match the new @_linked/core export.

1.0.8

Patch Changes

  • bb74f32 - Initial release under the new publishing setup.

v2.1.3

Choose a tag to compare

@linked-cm-release-bot linked-cm-release-bot released this 12 Jul 07:56
49cf1a8

Patch Changes

  • #20 2bda81c Thanks @flyon! - LinkedServer.callShapeMethod now degrades gracefully (warns and skips) when a shape URI can't be resolved to a provider, instead of throwing and turning the whole request into a 500.

v2.1.2

Choose a tag to compare

@linked-cm-release-bot linked-cm-release-bot released this 07 Jul 07:14
ea4ba54

Patch Changes

  • #17 ef9d285 Thanks @flyon! - Remove the development export condition (pointed at src, which isn't shipped to npm). Monorepo dev resolves workspace source via the cli Vite plugin; standalone resolves import → lib. No consumer-visible change.

v2.1.1

Choose a tag to compare

@linked-cm-release-bot linked-cm-release-bot released this 06 Jul 17:12
c693c69

Patch Changes

  • #15 e98441f Thanks @flyon! - Replace removed CoreMap with native Map (core dropped CoreMap in b2de3ad). Fixes Cannot find module @_linked/core/collections/CoreMap from LinkedServer on a clean install.

v2.1.0

Choose a tag to compare

@linked-cm-release-bot linked-cm-release-bot released this 06 Jul 10:01
55adbeb

Minor Changes

  • #13 8932811 Thanks @flyon! - ESM-only. Dropped the CommonJS build; the package now ships ES modules only (type: module, no require export condition, no lib/cjs). All first-party consumers are ESM; CJS projects on Node 22+ can still require() it (sync ESM) or use dynamic import(). Also fixed the root types field (was a non-existent ./index.d.ts).

Patch Changes

  • #13 daef98d Thanks @flyon! - BackendAPIStore now speaks DSL-JSON over the wire, adapting to the @_linked/core query-contract flip (datasets receive the live/closed query, not IR).

    • The frontend store serializes each query with query.toJSON() before Server.call (the live query can't cross the wire), replacing the removed getQueryObject() path.
    • BackendAPIStoreProvider rehydrates it with fromJSON(json) back into a live query before routing through LinkedStorage — the backend store lowers it to SPARQL itself.

    No API change for callers; the round-trip is lower(fromJSON(query.toJSON())) ≡ lower(query).

  • #13 28d0f49 Thanks @flyon! - Dropped lincd-sioc: ~1.0 from package.json dependencies. Audit
    confirmed no source file in packages/server/src imports from sioc;
    the dep was vestigial.

    No API change. Consumers that depended on @_linked/server transitively
    pulling sioc into their lockfile will need to add @_linked/sioc (the
    new name; see its own release notes) as a direct dep if they actually
    use it.

    Context: see create-now plan-011 report (docs/reports/009-legacy-lincd-eradication.md).

v2.0.3

Choose a tag to compare

@github-actions github-actions released this 07 Jun 12:37
caf642e

Patch Changes

  • #10 5619ddf Thanks @flyon! - Switch to explicit per-step build pipeline (mirrors @_linked/cli's and @_linked/server-utils's). The previous yarn linked build wrapper was failing silently in CI and shipping incomplete tarballs.

v2.0.2

Choose a tag to compare

@github-actions github-actions released this 07 Jun 11:29
9687aa7

Patch Changes

  • #8 17e6771 Thanks @flyon! - Rebuild against @_linked/server-utils@1.0.5. The lockfile previously pinned 1.0.4 whose published tarball was empty, so server's build couldn't resolve BackendProvider/JSONParser/JSONWriter/RouteConfig. Lockfile now points at 1.0.5 which ships its lib/ correctly.