SpacetimeDB icon indicating copy to clipboard operation
SpacetimeDB copied to clipboard

Fix AngularJS builds

Open jdetter opened this issue 2 months ago • 2 comments

At least 2 community members have mentioned that we broke AngularJS builds since v1.4.0

  • https://discord.com/channels/1037340874172014652/1431594353612296292/1431594353612296292
  • https://discord.com/channels/1037340874172014652/1138987509834059867/1423467631893282879

Example error from discord:

✘ [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/client_api/index.ts:38:29:
      38 │ import { BsatnRowList } from './bsatn_row_list_type.ts';

TODO

  • [ ] Fix the build issue
  • [ ] Add regression test to make sure we don't break this moving forward

jdetter avatar Oct 27 '25 19:10 jdetter

Original reporter here, I think it's a typo but you mention AngularJS in the description which is the first angular version and is deprecated now. The issue is for the latest Angular v20.

JohnyBro avatar Oct 28 '25 08:10 JohnyBro

We are also unable to use the latest version of SpacetimeDB (bindings generated with v1.8.0) with the TypeScript configuration generated by our Angular v19 project.

gk-bbai avatar Nov 18 '25 02:11 gk-bbai

I tried to update to version 1.9 to see if the build works but I still get 2 errors.

  1. Seems like there is a name issue in the generated typescript code
✘ [ERROR] TS2552: Cannot find name 'ClubRow'. Did you mean 'ClubsRow'? [plugin angular-compiler]

    src/module_bindings/index.ts:60:5:
      60 │   }, ClubRow),
         ╵      ~~~~~~~
const tablesSchema = __schema(
  __table({
    name: 'Clubs',
    indexes: [
      { name: 'ClubId', algorithm: 'btree', columns: [
        'clubId',
      ] },
    ],
    constraints: [
      { name: 'Clubs_ClubId_key', constraint: 'unique', columns: ['ClubId'] },
    ],
  }, ClubRow),
);
public static partial class Module
{
    [Table(Name = "Clubs", Public = true)]
    public partial class Club
    {
        [PrimaryKey]
        [AutoInc]
        public uint ClubId;

        public string Name = "";
        public string Description = "";
        public Timestamp CreatedAt;
        public Timestamp UpdatedAt;
    }
}
  1. SubscriptionBuilder error
✘ [ERROR] TS4114: This member must have an 'override' modifier because it overrides a member in the base class 'DbConnectionImpl<{ versionInfo: { cliVersion: "1.9.0"; }; tables: readonly [{ name: "Clubs"; accessorName: "clubs"; columns: CoerceRow<CoerceRow<any>>; rowType: ProductTypeType; indexes: [...]; constraints: readonly { ...; }[]; }, { ...; }]; reducers: readonly [...]; }>'. [plugin angular-compiler]

    src/module_bindings/index.ts:118:2:
      118 │   subscriptionBuilder = (): SubscriptionBuilder => {
          ╵   ~~~~~~~~~~~~~~~~~~~
export class DbConnection extends __DbConnectionImpl<typeof REMOTE_MODULE> {
  static builder = (): DbConnectionBuilder => {
    return new DbConnectionBuilder(REMOTE_MODULE, (config: __DbConnectionConfig<typeof REMOTE_MODULE>) => new DbConnection(config));
  };
  subscriptionBuilder = (): SubscriptionBuilder => {
    return new SubscriptionBuilder(this);
  };
}

JohnyBro avatar Nov 22 '25 13:11 JohnyBro

I see the same issue for Angular 21. Upvote this issue.

webmarket7 avatar Nov 23 '25 09:11 webmarket7

A fix is in the works here: https://github.com/clockworklabs/SpacetimeDB/pull/3737

cloutiertyler avatar Nov 25 '25 21:11 cloutiertyler

Are there any updates on this issue? I tried to use spacetimedb: 1.10.0 with freshly created Angular 20 project.

  "dependencies": {
    "@angular/common": "^20.3.0",
    "@angular/compiler": "^20.3.0",
    "@angular/core": "^20.3.0",
    "@angular/forms": "^20.3.0",
    "@angular/platform-browser": "^20.3.0",
    "@angular/router": "^20.3.0",
    "rxjs": "~7.8.0",
    "spacetimedb": "^1.10.0",
    "tslib": "^2.3.0"
  },

And I get a lot of TS errors:

Application bundle generation failed. [5.999 seconds] - 2025-11-28T07:58:07.260Z

X [ERROR] TS7030: Not all code paths return a value. [plugin angular-compiler]

    node_modules/spacetimedb/src/lib/schema.ts:108:23:
      108 │                   .map(c => {
          ╵                        ~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/client_cache.ts:4:48:
      4 │ import { type TableCache, TableCacheImpl } from './table_cache.ts';
        ╵                                                 ~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/db_connection_impl.ts:5:25:
      5 │ import BsatnRowList from './client_api/bsatn_row_list_type.ts';
        ╵                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/db_connection_impl.ts:6:26:
      6 │ import ClientMessage from './client_api/client_message_type.ts';
        ╵                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/db_connection_impl.ts:7:27:
      7 │ import DatabaseUpdate from './client_api/database_update_type.ts';
        ╵                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/db_connection_impl.ts:8:24:
      8 │ import QueryUpdate from './client_api/query_update_type.ts';
        ╵                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/db_connection_impl.ts:9:26:
      9 │ import ServerMessage from './client_api/server_message_type.ts';
        ╵                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/db_connection_impl.ts:10:27:
      10 │ import RawTableUpdate from './client_api/table_update_type.ts';
         ╵                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/db_connection_impl.ts:11:28:
      11 │ import { ClientCache } from './client_cache.ts';
         ╵                             ~~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/db_connection_impl.ts:12:36:
      12 │ import { DbConnectionBuilder } from './db_connection_builder.ts';
         ╵                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/db_connection_impl.ts:13:31:
      13 │ import { type DbContext } from './db_context.ts';
         ╵                                ~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/db_connection_impl.ts:20:7:
      20 │ } from './event_context.ts';
         ╵        ~~~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/db_connection_impl.ts:21:29:
      21 │ import { EventEmitter } from './event_emitter.ts';
         ╵                              ~~~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/db_connection_impl.ts:22:27:
      22 │ import { decompress } from './decompress.ts';
         ╵                            ~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/db_connection_impl.ts:32:41:
      32 │ import { type UntypedRemoteModule } from './spacetime_module.ts';
         ╵                                          ~~~~~~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/db_connection_impl.ts:38:7:
      38 │ } from './table_cache.ts';
         ╵        ~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/db_connection_impl.ts:39:43:
      39 │ ...ocketDecompressAdapter } from './websocket_decompress_adapter.ts';
         ╵                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/db_connection_impl.ts:46:7:
      46 │ } from './subscription_builder_impl.ts';
         ╵        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/db_connection_impl.ts:47:27:
      47 │ import { stdbLogger } from './logger.ts';
         ╵                            ~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/db_connection_impl.ts:58:42:
      58 │ import { toCamelCase, toPascalCase } from '../lib/util.ts';
         ╵                                           ~~~~~~~~~~~~~~~~


X [ERROR] TS7030: Not all code paths return a value. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/db_connection_impl.ts:424:5:
      424 │   ): Promise<Message | undefined> {
          ╵      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~


X [ERROR] TS2550: Property 'withResolvers' does not exist on type 'PromiseConstructor'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2024' or later. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/db_connection_impl.ts:992:49:
      992 │ ...promise, resolve, reject } = Promise.withResolvers<Uint8Array>();
          ╵                                         ~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/index.ts:2:14:
      2 │ export * from './db_connection_impl.ts';
        ╵               ~~~~~~~~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/index.ts:3:14:
      3 │ export * from './client_cache.ts';
        ╵               ~~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/index.ts:4:14:
      4 │ export * from './message_types.ts';
        ╵               ~~~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/index.ts:5:33:
      5 │ export { type ClientTable } from './client_table.ts';
        ╵                                  ~~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/index.ts:6:34:
      6 │ export { type RemoteModule } from './spacetime_module.ts';
        ╵                                   ~~~~~~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/index.ts:7:37:
      7 │ export { type SetReducerFlags } from './reducers.ts';
        ╵                                      ~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/index.ts:8:14:
      8 │ export * from '../lib/type_builders.ts';
        ╵               ~~~~~~~~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/index.ts:9:45:
      9 │ export { schema, convertToAccessorMap } from '../lib/schema.ts';
        ╵                                              ~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/index.ts:10:22:
      10 │ export { table } from '../lib/table.ts';
         ╵                       ~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/index.ts:11:40:
      11 │ export { reducerSchema, reducers } from '../lib/reducers.ts';
         ╵                                         ~~~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/index.ts:12:44:
      12 │ export { procedureSchema, procedures } from '../lib/procedures.ts';
         ╵                                             ~~~~~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/table_cache.ts:1:29:
      1 │ import { EventEmitter } from './event_emitter.ts';
        ╵                              ~~~~~~~~~~~~~~~~~~~~


X [ERROR] TS5097: An import path can only end with a '.ts' extension when 'allowImportingTsExtensions' is enabled. [plugin angular-compiler]

    node_modules/spacetimedb/src/sdk/table_cache.ts:3:27:
      3 │ import { stdbLogger } from './logger.ts';
        ╵                            ~~~~~~~~~~~~~


X [ERROR] TS4114: This member must have an 'override' modifier because it overrides a member in the base class 'Error'. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/errors.ts:10:18:
      10 │   public readonly message: string;
         ╵                   ~~~~~~~


X [ERROR] TS4114: This member must have an 'override' modifier because it overrides a member in the base class 'Error'. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/errors.ts:29:6:
      29 │   get name(): string {
         ╵       ~~~~


X [ERROR] TS4114: This member must have an 'override' modifier because it overrides a member in the base class 'Error'. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/errors.ts:44:6:
      44 │   get name() {
         ╵       ~~~~


X [ERROR] TS7016: Could not find a declaration file for module 'statuses'. 'E:/GameDev/rts/client/node_modules/statuses/index.js' implicitly has an 'any' type.
  Try `npm i --save-dev @types/statuses` if it exists or add a new declaration (.d.ts) file containing `declare module 'statuses';` [plugin angular-compiler]

    node_modules/spacetimedb/src/server/http_internal.ts:2:19:
      2 │ import status from 'statuses';
        ╵                    ~~~~~~~~~~


X [ERROR] TS2307: Cannot find module 'spacetime:[email protected]' or its corresponding type declarations. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/runtime.ts:1:30:
      1 │ import * as _syscalls1_0 from 'spacetime:[email protected]';
        ╵                               ~~~~~~~~~~~~~~~~~~~


X [ERROR] TS2307: Cannot find module 'spacetime:[email protected]' or its corresponding type declarations. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/runtime.ts:2:30:
      2 │ import * as _syscalls1_2 from 'spacetime:[email protected]';
        ╵                               ~~~~~~~~~~~~~~~~~~~


X [ERROR] TS2307: Cannot find module 'spacetime:[email protected]' or its corresponding type declarations. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/runtime.ts:4:43:
      4 │ import type { ModuleHooks, u16, u32 } from 'spacetime:[email protected]';
        ╵                                            ~~~~~~~~~~~~~~~~~~~


X [ERROR] TS7006: Parameter 'reducerId' implicitly has an 'any' type. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/runtime.ts:203:19:
      203 │   __call_reducer__(reducerId, sender, connId, timestamp, argsBuf) {
          ╵                    ~~~~~~~~~


X [ERROR] TS7006: Parameter 'sender' implicitly has an 'any' type. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/runtime.ts:203:30:
      203 │   __call_reducer__(reducerId, sender, connId, timestamp, argsBuf) {
          ╵                               ~~~~~~


X [ERROR] TS7006: Parameter 'connId' implicitly has an 'any' type. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/runtime.ts:203:38:
      203 │   __call_reducer__(reducerId, sender, connId, timestamp, argsBuf) {
          ╵                                       ~~~~~~


X [ERROR] TS7006: Parameter 'timestamp' implicitly has an 'any' type. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/runtime.ts:203:46:
      203 │   __call_reducer__(reducerId, sender, connId, timestamp, argsBuf) {
          ╵                                               ~~~~~~~~~


X [ERROR] TS7006: Parameter 'argsBuf' implicitly has an 'any' type. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/runtime.ts:203:57:
      203 │   __call_reducer__(reducerId, sender, connId, timestamp, argsBuf) {
          ╵                                                          ~~~~~~~


X [ERROR] TS2307: Cannot find module 'spacetime:[email protected]' or its corresponding type declarations. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/runtime.ts:231:32:
      231 │ export const hooks_v1_1: import('spacetime:[email protected]').ModuleHooks = {
          ╵                                 ~~~~~~~~~~~~~~~~~~~


X [ERROR] TS7006: Parameter 'id' implicitly has an 'any' type. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/runtime.ts:232:16:
      232 │   __call_view__(id, sender, argsBuf) {
          ╵                 ~~


X [ERROR] TS7006: Parameter 'sender' implicitly has an 'any' type. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/runtime.ts:232:20:
      232 │   __call_view__(id, sender, argsBuf) {
          ╵                     ~~~~~~


X [ERROR] TS7006: Parameter 'argsBuf' implicitly has an 'any' type. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/runtime.ts:232:28:
      232 │   __call_view__(id, sender, argsBuf) {
          ╵                             ~~~~~~~


X [ERROR] TS7006: Parameter 'id' implicitly has an 'any' type. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/runtime.ts:251:21:
      251 │   __call_view_anon__(id, argsBuf) {
          ╵                      ~~


X [ERROR] TS7006: Parameter 'argsBuf' implicitly has an 'any' type. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/runtime.ts:251:25:
      251 │   __call_view_anon__(id, argsBuf) {
          ╵                          ~~~~~~~


X [ERROR] TS2307: Cannot find module 'spacetime:[email protected]' or its corresponding type declarations. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/runtime.ts:271:32:
      271 │ export const hooks_v1_2: import('spacetime:[email protected]').ModuleHooks = {
          ╵                                 ~~~~~~~~~~~~~~~~~~~


X [ERROR] TS7006: Parameter 'id' implicitly has an 'any' type. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/runtime.ts:272:21:
      272 │   __call_procedure__(id, sender, connection_id, timestamp, args) {
          ╵                      ~~


X [ERROR] TS7006: Parameter 'sender' implicitly has an 'any' type. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/runtime.ts:272:25:
      272 │   __call_procedure__(id, sender, connection_id, timestamp, args) {
          ╵                          ~~~~~~


X [ERROR] TS7006: Parameter 'connection_id' implicitly has an 'any' type. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/runtime.ts:272:33:
      272 │   __call_procedure__(id, sender, connection_id, timestamp, args) {
          ╵                                  ~~~~~~~~~~~~~


X [ERROR] TS7006: Parameter 'timestamp' implicitly has an 'any' type. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/runtime.ts:272:48:
      272 │   __call_procedure__(id, sender, connection_id, timestamp, args) {
          ╵                                                 ~~~~~~~~~


X [ERROR] TS7006: Parameter 'args' implicitly has an 'any' type. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/runtime.ts:272:59:
      272 │   __call_procedure__(id, sender, connection_id, timestamp, args) {
          ╵                                                            ~~~~


X [ERROR] TS2550: Property 'isSubsetOf' does not exist on type 'Set<number>'. Do you need to change your target library? Try changing the 'lib' compiler option to 'esnext' or later. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/runtime.ts:413:27:
      413 │       .some(x => columnSet.isSubsetOf(new Set(x.data.value.column...
          ╵                            ~~~~~~~~~~


X [ERROR] TS2550: Property 'dispose' does not exist on type 'SymbolConstructor'. Do you need to change your target library? Try changing the 'lib' compiler option to 'esnext' or later. [plugin angular-compiler]

    node_modules/spacetimedb/src/server/runtime.ts:626:10:
      626 │   [Symbol.dispose]() {
          ╵           ~~~~~~~


X [ERROR] TS2707: Generic type 'RemoteModule' requires between 3 and 4 type arguments. [plugin angular-compiler]

    src/module_bindings/index.ts:114:12:
      114 │ } satisfies __RemoteModule<
          ╵             ~~~~~~~~~~~~~~~


X [ERROR] TS4114: This member must have an 'override' modifier because it overrides a member in the base class 'DbConnectionImpl<any>'. [plugin angular-compiler]

    src/module_bindings/index.ts:140:2:
      140 │   subscriptionBuilder = (): SubscriptionBuilder => {
          ╵   ~~~~~~~~~~~~~~~~~~~

webmarket7 avatar Nov 28 '25 08:11 webmarket7

@webmarket7 Did you regenerate the bindings after updating ?

JohnyBro avatar Nov 28 '25 22:11 JohnyBro

@webmarket7 Did you regenerate the bindings after updating ?

I created the new Angular project, installed spacetimedb: 1.10.0, generated the module_bindings from the Rust server with spacetimedb: 1.10.0 and ran the ng serve.

webmarket7 avatar Nov 29 '25 07:11 webmarket7

@webmarket7 It strange because thoses errors are from past version which has been fixed.

I tried the version 1.10 and now I only have this error :

✘ [ERROR] TS4114: This member must have an 'override' modifier because it overrides a member in the base class 'DbConnectionImpl<{ procedures: readonly []; versionInfo: { cliVersion: "1.10.0"; }; tables: readonly [{ name: "Clubs"; accessorName: "clubs"; columns: CoerceRow<CoerceRow<{ clubId: U32ColumnBuilder<{ isPrimaryKey: true; }>; name: StringBuilder; description: StringBuilder; createdAt: TimestampBuilder; updatedAt: Time...'. [plugin angular-compiler]

    src/module_bindings/index.ts:141:2:
      141 │   subscriptionBuilder = (): SubscriptionBuilder => {
          ╵   ~~~~~~~~~~~~~~~~~~~                                                                                                                                                                             

JohnyBro avatar Nov 29 '25 16:11 JohnyBro

@JohnyBro Hello! I think I know, why you don't see those errors. I tried to build the app with ng build and got only those issues from module_bindings, that you mentioned:

Image

But when I run the dev server with ng serve, I get this:

Image

I mean, being able to build it is awesome, but it is pretty much not usable for me, because I can't develop the app with the dev server.

webmarket7 avatar Dec 02 '25 09:12 webmarket7

Fixed by https://github.com/clockworklabs/SpacetimeDB/pull/3852

joshua-spacetime avatar Dec 11 '25 18:12 joshua-spacetime