Npm package datagrok-api@0.1.37 breaks typescript build

It contains src/data.ts file which is absent in the datagrok-ai/public.

Furthermore it breaks the sunburst package. If I do all the manual tinkering to the npm package then the sunburst compiles ok but it’s unable to load on datagrok side.

error: Bad state: No element
js_primitives.dart:30 stackTrace: https://dev.datagrok.ai/login.dart.js?59784 5521:17              Object.wrapException
https://dev.datagrok.ai/login.dart.js?59784 1819:17              Interceptor.firstWhere
https://dev.datagrok.ai/login.dart.js?59784 1822:21              Interceptor.firstWhere
https://dev.datagrok.ai/login.dart.js_1.part.js?59784 267916:36  TableView.loadState.<fn>
https://dev.datagrok.ai/login.dart.js_1.part.js?59784 113786:69  DockGraphDeserializer._createContainer
https://dev.datagrok.ai/login.dart.js_1.part.js?59784 113764:36  DockGraphDeserializer._buildGraph
https://dev.datagrok.ai/login.dart.js_1.part.js?59784 113820:39  DockGraphDeserializer._buildGraph.<fn>
https://dev.datagrok.ai/login.dart.js?59784 1755:13              Interceptor.forEach
https://dev.datagrok.ai/login.dart.js?59784 40929:42             Object.J.forEach
https://dev.datagrok.ai/login.dart.js_1.part.js?59784 113763:11  DockGraphDeserializer._buildGraph
https://dev.datagrok.ai/login.dart.js_1.part.js?59784 113820:39  DockGraphDeserializer._buildGraph.<fn>
https://dev.datagrok.ai/login.dart.js?59784 1755:13              Interceptor.forEach
https://dev.datagrok.ai/login.dart.js?59784 40929:42             Object.J.forEach
https://dev.datagrok.ai/login.dart.js_1.part.js?59784 113763:11  DockGraphDeserializer._buildGraph
https://dev.datagrok.ai/login.dart.js_1.part.js?59784 113398:60  DockManager.loadState
https://dev.datagrok.ai/login.dart.js_1.part.js?59784 266990:26  TableView.loadState
https://dev.datagrok.ai/login.dart.js_1.part.js?59784 267022:21  TableView.loadState
https://dev.datagrok.ai/login.dart.js_1.part.js?59784 266983:21  TableView.loadStateMap
https://dev.datagrok.ai/login.dart.js_1.part.js?59784 266842:18  TableView.onAdded
https://dev.datagrok.ai/login.dart.js_1.part.js?59784 182176:12  Object.addView
https://dev.datagrok.ai/login.dart.js_1.part.js?59784 183627:21  <fn>
https://dev.datagrok.ai/login.dart.js?59784 8487:15              _wrapJsFunctionForAsync.closure.$protected
https://dev.datagrok.ai/login.dart.js?59784 8989:14              _wrapJsFunctionForAsync.<fn>
https://dev.datagrok.ai/login.dart.js?59784 8977:34              _awaitOnObject.<fn>
https://dev.datagrok.ai/login.dart.js?59784 8824:18              _rootRunUnary
https://dev.datagrok.ai/login.dart.js?59784 12636:41             _CustomZone.runUnary
https://dev.datagrok.ai/login.dart.js?59784 10023:62             _Future._propagateToListeners.handleValueCallback
https://dev.datagrok.ai/login.dart.js?59784 9878:108             Object._Future._propagateToListeners
https://dev.datagrok.ai/login.dart.js?59784 9722:13              _Future._complete
https://dev.datagrok.ai/login.dart.js?59784 9574:12              _SyncCompleter.complete
https://dev.datagrok.ai/login.dart.js?59784 8461:17              Object._asyncReturn
https://dev.datagrok.ai/login.dart.js_1.part.js?59784 268438:28  <fn>
https://dev.datagrok.ai/login.dart.js?59784 8487:15              _wrapJsFunctionForAsync.closure.$protected
https://dev.datagrok.ai/login.dart.js?59784 8989:14              _wrapJsFunctionForAsync.<fn>
https://dev.datagrok.ai/login.dart.js?59784 8977:34              _awaitOnObject.<fn>
https://dev.datagrok.ai/login.dart.js?59784 8824:18              _rootRunUnary
https://dev.datagrok.ai/login.dart.js?59784 12636:41             _CustomZone.runUnary
https://dev.datagrok.ai/login.dart.js?59784 10023:62             _Future._propagateToListeners.handleValueCallback
https://dev.datagrok.ai/login.dart.js?59784 9878:108             Object._Future._propagateToListeners
https://dev.datagrok.ai/login.dart.js?59784 9920:11              _Future._addListener.<fn>
https://dev.datagrok.ai/login.dart.js?59784 8812:16              _rootRun
https://dev.datagrok.ai/login.dart.js?59784 12627:41             _CustomZone.run
https://dev.datagrok.ai/login.dart.js?59784 12547:21             _CustomZone.runGuarded
https://dev.datagrok.ai/login.dart.js?59784 12707:27             _CustomZone.bindCallback.<fn>
https://dev.datagrok.ai/login.dart.js?59784 8619:21              Object._microtaskLoop
https://dev.datagrok.ai/login.dart.js?59784 8625:11              _startMicrotaskLoop
https://dev.datagrok.ai/login.dart.js?59784 8946:11              _AsyncRun._initializeScheduleImmediate.internalCallback
https://dev.datagrok.ai/login.dart.js?59784 7051:29              invokeClosure.<fn>
https://dev.datagrok.ai/login.dart.js?59784 4409:25              _IsolateContext.eval
https://dev.datagrok.ai/login.dart.js?59784 3987:28              Object._callInIsolate
https://dev.datagrok.ai/login.dart.js?59784 5671:20              invokeClosure
https://dev.datagrok.ai/login.dart.js?59784 5690:18              MutationObserver.<fn>

I guess it’s something fishy with the js-api code or there are breaking changes that I’m unable to track down.

Thanks for reporting it - we are looking into this issue…

Alex Shevnin just informed me that he did some work merging the sunburst into datagrok-ai/public. And I need to switch to datagrok-ai/public repo and apply my changes there. So, there is a possibility that, the second part of the report is on my side.

So far I’ve found that the “Error loading SunburstViewerTS” error is due to the viewer descriptor not being found (so likely there was some error when publishing the package). I’ve changed the code to make a more descriptive error message in this case.

Regarding this:

I’m not sure what contains src/data.ts? It is indeed not there since we only have .d.ts files, but maybe I’m missing something. Looks like things will get a lot simpler once we migrate the API to TypeScript…

Please take a look inside actual npm package contents https://registry.npmjs.org/datagrok-api/-/datagrok-api-0.1.37.tgz package/src/data.ts

I guess the npm package assembly is manual hence there is possibility for a source-build difference.

You are right.
I’ve just published 0.1.38 version with no data.ts file.

1 Like