@kosdev-code/kos-ui-sdk 0.1.0-next.849 → 0.1.0-next.851

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.
@@ -3,6 +3,12 @@ export declare class KosDependencyManager {
3
3
  private _usesCache;
4
4
  add(modelId: string, dependencyId: string): void;
5
5
  remove(modelId: string, dependencyId: string): void;
6
+ /**
7
+ * Drops every edge into and out of a model. Called when the model is
8
+ * destroyed, so its dependencies are not left pinned by a model that is
9
+ * gone and can never release them.
10
+ */
11
+ removeAll(modelId: string): void;
6
12
  canDestroy(modelId: string): boolean;
7
13
  clear(): void;
8
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-manager.d.ts","sourceRoot":"","sources":["../../../../../packages/kos-ui-sdk/src/core/core/dependency-manager.ts"],"names":[],"mappings":"AAOA,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,UAAU,CAA+B;IAEjD,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAYzC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAc5C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IASpC,KAAK;CAIN"}
1
+ {"version":3,"file":"dependency-manager.d.ts","sourceRoot":"","sources":["../../../../../packages/kos-ui-sdk/src/core/core/dependency-manager.ts"],"names":[],"mappings":"AAOA,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,UAAU,CAA+B;IAEjD,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAYzC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAc5C;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM;IAwBzB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IASpC,KAAK;CAIN"}
@@ -1 +1 @@
1
- {"version":3,"file":"kosModelManager.d.ts","sourceRoot":"","sources":["../../../../../packages/kos-ui-sdk/src/core/core/kosModelManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kosModelManager.d.ts","sourceRoot":"","sources":["../../../../../packages/kos-ui-sdk/src/core/core/kosModelManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Suspense cache backing `useKosModel`.
3
+ *
4
+ * A `finished` entry never re-runs its fetcher, so it has to be evicted when
5
+ * the model it stands for is destroyed. Otherwise the hook keeps resolving the
6
+ * key against a model that no longer exists and the model is never rebuilt.
7
+ *
8
+ * It lives in core rather than beside the hook so the model manager can evict
9
+ * on destroy without depending on the ui layer.
10
+ */
11
+ export type ModelHookCacheEntry = {
12
+ status: "pending";
13
+ promise: Promise<unknown>;
14
+ } | {
15
+ status: "finished";
16
+ key: string;
17
+ } | {
18
+ status: "error";
19
+ error: unknown;
20
+ };
21
+ export declare const modelHookCache: {
22
+ has: (key: string) => boolean;
23
+ get: (key: string) => ModelHookCacheEntry | undefined;
24
+ set: (key: string, entry: ModelHookCacheEntry) => Map<string, ModelHookCacheEntry>;
25
+ delete: (key: string) => boolean;
26
+ clear: () => void;
27
+ };
28
+ /** Evicts a model's cache entry so the next render rebuilds it. */
29
+ export declare const clearModelHookCacheEntry: (modelId?: string) => void;
30
+ //# sourceMappingURL=model-hook-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-hook-cache.d.ts","sourceRoot":"","sources":["../../../../../../packages/kos-ui-sdk/src/core/core/model/model-hook-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,MAAM,mBAAmB,GAC3B;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,GAChD;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAIxC,eAAO,MAAM,cAAc;eACd,MAAM;eACN,MAAM;eACN,MAAM,SAAS,mBAAmB;kBAC/B,MAAM;;CAErB,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,KAAG,IAI3D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mock-registry.d.ts","sourceRoot":"","sources":["../../../../../../../packages/kos-ui-sdk/src/core/core/transport/mock/mock-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mock-registry.d.ts","sourceRoot":"","sources":["../../../../../../../packages/kos-ui-sdk/src/core/core/transport/mock/mock-registry.ts"],"names":[],"mappings":"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"}
package/core/index.d.ts CHANGED
@@ -16,6 +16,7 @@ export * from './core/kosModelManager';
16
16
  export { KosModelEvents, KosModelState } from './core/lifecycle';
17
17
  export * from './core/log';
18
18
  export { KosLoggerFactory } from './core/model/kos-logger-factory';
19
+ export { clearModelHookCacheEntry, modelHookCache, type ModelHookCacheEntry, } from './core/model/model-hook-cache';
19
20
  export * from './core/models';
20
21
  export { default as KosToken } from './core/models/kos-token';
21
22
  export { KosModelRegistrationFactory, preloadKosModel, registerCompanionModel, registerKosModel, registerLegacyModel, RegistrationManager, SingletonKosModelRegistrationFactory, type KosModelRegistrationType, type RegistrationResult, } from './core/registration';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/kos-ui-sdk/src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAEP,kBAAkB,EAClB,cAAc,EAEd,QAAQ,EACR,WAAW,EACX,IAAI,EACL,MAAM,MAAM,CAAC;AACd,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mCAAmC,CAAC;AAClD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjE,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,2BAA2B,EAC3B,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,oCAAoC,EACpC,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,OAAO,EACL,SAAS,EACT,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,OAAO,EACP,kBAAkB,EAClB,cAAc,GACf,CAAC;AAEF;;;GAGG;AACH,QAAA,MAAM,OAAO,aAAO,CAAC;AAErB;;;GAGG;AACH,QAAA,MAAM,WAAW,iCAAW,CAAC;AAC7B;;;GAGG;AACH,QAAA,MAAM,SAAS,oBAAc,CAAC;AAE9B;;;;;;;GAOG;AACH,QAAA,MAAM,aAAa,gBAAU,CAAC;AAE9B;;;GAGG;AACH,QAAA,MAAM,SAAS,iBAAW,CAAC;AAE3B;;;GAGG;AACH,QAAA,MAAM,aAAa,mCAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/kos-ui-sdk/src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAEP,kBAAkB,EAClB,cAAc,EAEd,QAAQ,EACR,WAAW,EACX,IAAI,EACL,MAAM,MAAM,CAAC;AACd,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mCAAmC,CAAC;AAClD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjE,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EACL,wBAAwB,EACxB,cAAc,EACd,KAAK,mBAAmB,GACzB,MAAM,+BAA+B,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,2BAA2B,EAC3B,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,oCAAoC,EACpC,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,OAAO,EACL,SAAS,EACT,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,OAAO,EACP,kBAAkB,EAClB,cAAc,GACf,CAAC;AAEF;;;GAGG;AACH,QAAA,MAAM,OAAO,aAAO,CAAC;AAErB;;;GAGG;AACH,QAAA,MAAM,WAAW,iCAAW,CAAC;AAC7B;;;GAGG;AACH,QAAA,MAAM,SAAS,oBAAc,CAAC;AAE9B;;;;;;;GAOG;AACH,QAAA,MAAM,aAAa,gBAAU,CAAC;AAE9B;;;GAGG;AACH,QAAA,MAAM,SAAS,iBAAW,CAAC;AAE3B;;;GAGG;AACH,QAAA,MAAM,aAAa,mCAAa,CAAC"}
package/index.cjs CHANGED
@@ -4190,6 +4190,33 @@ class KosDependencyManager {
4190
4190
  uses.filter((id) => id !== dependencyId)
4191
4191
  );
4192
4192
  }
4193
+ /**
4194
+ * Drops every edge into and out of a model. Called when the model is
4195
+ * destroyed, so its dependencies are not left pinned by a model that is
4196
+ * gone and can never release them.
4197
+ */
4198
+ removeAll(modelId) {
4199
+ for (const dependencyId of this._usesCache.get(modelId) ?? []) {
4200
+ const usedBy = this._usedByCache.get(dependencyId);
4201
+ if (usedBy) {
4202
+ this._usedByCache.set(
4203
+ dependencyId,
4204
+ usedBy.filter((id) => id !== modelId)
4205
+ );
4206
+ }
4207
+ }
4208
+ this._usesCache.delete(modelId);
4209
+ for (const dependentId of this._usedByCache.get(modelId) ?? []) {
4210
+ const uses = this._usesCache.get(dependentId);
4211
+ if (uses) {
4212
+ this._usesCache.set(
4213
+ dependentId,
4214
+ uses.filter((id) => id !== modelId)
4215
+ );
4216
+ }
4217
+ }
4218
+ this._usedByCache.delete(modelId);
4219
+ }
4193
4220
  canDestroy(modelId) {
4194
4221
  const usedBy = this._usedByCache.get(modelId);
4195
4222
  if (usedBy?.length) {
@@ -4267,6 +4294,19 @@ class KosModelCache {
4267
4294
  return this._preloaded;
4268
4295
  }
4269
4296
  }
4297
+ const cache$1 = /* @__PURE__ */ new Map();
4298
+ const modelHookCache = {
4299
+ has: (key) => cache$1.has(key),
4300
+ get: (key) => cache$1.get(key),
4301
+ set: (key, entry) => cache$1.set(key, entry),
4302
+ delete: (key) => cache$1.delete(key),
4303
+ clear: () => cache$1.clear()
4304
+ };
4305
+ const clearModelHookCacheEntry = (modelId) => {
4306
+ if (modelId) {
4307
+ cache$1.delete(modelId);
4308
+ }
4309
+ };
4270
4310
  class KosModelError extends Error {
4271
4311
  context;
4272
4312
  originalCause;
@@ -9272,32 +9312,53 @@ const resolveSingleton = () => {
9272
9312
  };
9273
9313
  const kosMockRegistry = resolveSingleton();
9274
9314
  const KosMock = kosMockRegistry;
9275
- if (typeof window !== "undefined" && window.location?.search) {
9276
- const params2 = getQueryParams();
9277
- if (params2["kosMock"] === "standalone") {
9315
+ const PROFILE_MOCK = "studio.mock";
9316
+ const PROFILE_MOCK_STANDALONE = "studio.mock.standalone";
9317
+ const PROFILE_MOCK_RECORD = "studio.mock.record";
9318
+ const PROFILE_MOCK_FIXTURE_SERVER = "studio.mock.fixtureServer";
9319
+ const PROFILE_MOCK_FIXTURE = "studio.mock.fixture";
9320
+ const PROFILE_MOCK_SETUP = "studio.mock.setup";
9321
+ const profileValue = (name) => {
9322
+ const match = resolveKosProfiles().find(
9323
+ (profile) => profile === name || profile.startsWith(`${name}=`)
9324
+ );
9325
+ return match === void 0 ? void 0 : match.slice(name.length + 1);
9326
+ };
9327
+ if (typeof window !== "undefined") {
9328
+ const params2 = window.location?.search ? getQueryParams() : {};
9329
+ const setting = (param, profile) => params2[param] !== void 0 ? params2[param] : profileValue(profile);
9330
+ const mock = params2["kosMock"] !== void 0 ? params2["kosMock"] : hasKosProfile(PROFILE_MOCK_STANDALONE) ? "standalone" : hasKosProfile(PROFILE_MOCK) ? "on" : void 0;
9331
+ const record = setting("kosRecord", PROFILE_MOCK_RECORD);
9332
+ const fixtureServer = setting(
9333
+ "kosFixtureServer",
9334
+ PROFILE_MOCK_FIXTURE_SERVER
9335
+ );
9336
+ const fixture = setting("kosFixture", PROFILE_MOCK_FIXTURE);
9337
+ const setups = setting("kosSetup", PROFILE_MOCK_SETUP);
9338
+ if (mock === "standalone") {
9278
9339
  KosMock.configure({ standalone: true });
9279
- } else if (params2["kosMock"] === "on") {
9340
+ } else if (mock === "on") {
9280
9341
  KosMock.enable();
9281
9342
  }
9282
- if (params2["kosRecord"] !== void 0) {
9283
- KosMock.recorder.start({ name: params2["kosRecord"] || void 0 });
9343
+ if (record !== void 0) {
9344
+ KosMock.recorder.start({ name: record || void 0 });
9284
9345
  }
9285
- if (params2["kosFixtureServer"] !== void 0) {
9286
- KosMock.fixtures.useServer(params2["kosFixtureServer"] || true);
9346
+ if (fixtureServer !== void 0) {
9347
+ KosMock.fixtures.useServer(fixtureServer || true);
9287
9348
  }
9288
9349
  const bootLoads = [];
9289
- if (params2["kosFixture"]) {
9350
+ if (fixture) {
9290
9351
  bootLoads.push(
9291
- KosMock.fixtures.play(params2["kosFixture"]).then(() => void 0).catch(
9352
+ KosMock.fixtures.play(fixture).then(() => void 0).catch(
9292
9353
  (error) => KosLog.error(
9293
- `KosMock: boot fixture "${params2["kosFixture"]}" failed to load`,
9354
+ `KosMock: boot fixture "${fixture}" failed to load`,
9294
9355
  error?.message
9295
9356
  )
9296
9357
  )
9297
9358
  );
9298
9359
  }
9299
- if (params2["kosSetup"]) {
9300
- for (const name of params2["kosSetup"].split(",").filter(Boolean)) {
9360
+ if (setups) {
9361
+ for (const name of setups.split(",").filter(Boolean)) {
9301
9362
  bootLoads.push(
9302
9363
  KosMock.setups.load(name).then(() => void 0).catch(
9303
9364
  (error) => KosLog.error(
@@ -11721,6 +11782,8 @@ class KosModelManager {
11721
11782
  if (model?.modelId && this.dependencies.canDestroy(model.modelId)) {
11722
11783
  await model.unload?.();
11723
11784
  this.removeModel(model);
11785
+ this.dependencies.removeAll(model.modelId);
11786
+ clearModelHookCacheEntry(model.modelId);
11724
11787
  }
11725
11788
  }
11726
11789
  /**
@@ -26800,30 +26863,29 @@ const waitForRetry = (depth = 0) => new Promise((resolve) => {
26800
26863
  resolve(true);
26801
26864
  }, 2 ** depth * 10);
26802
26865
  });
26803
- const cache$1 = /* @__PURE__ */ new Map();
26804
26866
  function fetchData$1(key, fetcher) {
26805
- if (cache$1.has(key)) {
26806
- const entry = cache$1.get(key);
26867
+ const entry = modelHookCache.get(key);
26868
+ if (entry) {
26807
26869
  if (entry.status === "finished") {
26808
26870
  const kosModel2 = KosCore.getInstance().modelManager.getModelById(key);
26809
26871
  return { kosModel: kosModel2, model: kosModel2?.modelData };
26810
- } else {
26811
- throw entry.promise;
26812
26872
  }
26813
- } else {
26814
- const promise = fetcher().then(
26815
- () => {
26816
- cache$1.set(key, { status: "finished", key });
26817
- },
26818
- (error) => {
26819
- cache$1.set(key, { status: "error", error });
26820
- throw error;
26821
- }
26822
- );
26823
- const entry = { status: "pending", promise };
26824
- cache$1.set(key, entry);
26825
- throw promise;
26873
+ if (entry.status === "error") {
26874
+ throw entry.error;
26875
+ }
26876
+ throw entry.promise;
26826
26877
  }
26878
+ const promise = fetcher().then(
26879
+ () => {
26880
+ modelHookCache.set(key, { status: "finished", key });
26881
+ },
26882
+ (error) => {
26883
+ modelHookCache.set(key, { status: "error", error });
26884
+ throw error;
26885
+ }
26886
+ );
26887
+ modelHookCache.set(key, { status: "pending", promise });
26888
+ throw promise;
26827
26889
  }
26828
26890
  function useSuspenseData$1(key, fetcher) {
26829
26891
  const data = fetchData$1(key, fetcher);
@@ -26914,7 +26976,7 @@ const useKosModel = (modelOptions) => {
26914
26976
  if (destroyOnUnmount) {
26915
26977
  const modelId2 = model.id;
26916
26978
  destroyKosModel(model).then(() => {
26917
- cache$1.delete(modelId2);
26979
+ clearModelHookCacheEntry(modelId2);
26918
26980
  disposer?.();
26919
26981
  });
26920
26982
  }
@@ -26923,7 +26985,7 @@ const useKosModel = (modelOptions) => {
26923
26985
  } else {
26924
26986
  if (destroyOnUnmount && model) {
26925
26987
  destroyKosModel(model).then(() => {
26926
- cache$1.delete(modelId);
26988
+ clearModelHookCacheEntry(modelId);
26927
26989
  disposer?.();
26928
26990
  });
26929
26991
  }
@@ -29205,6 +29267,7 @@ exports.cancelFuture = cancelFuture;
29205
29267
  exports.checkAppsStarted = checkAppsStarted;
29206
29268
  exports.checkWildcardPattern = checkWildcardPattern;
29207
29269
  exports.clearAllServiceResponses = clearAllServiceResponses;
29270
+ exports.clearModelHookCacheEntry = clearModelHookCacheEntry;
29208
29271
  exports.clearPath = clearPath;
29209
29272
  exports.clearServiceResponse = clearServiceResponse;
29210
29273
  exports.convert = convert;
@@ -29359,6 +29422,7 @@ exports.mapDtoToFutureOptions = mapDtoToFutureOptions;
29359
29422
  exports.mapUpdateDtoToConfigBeanModel = mapUpdateDtoToConfigBeanModel;
29360
29423
  exports.modelEventTopicFactory = modelEventTopicFactory;
29361
29424
  exports.modelFactory = modelFactory;
29425
+ exports.modelHookCache = modelHookCache;
29362
29426
  exports.modelTypeEventTopicFactory = modelTypeEventTopicFactory;
29363
29427
  exports.modifyConfigBean = modifyConfigBean;
29364
29428
  exports.modifyFuture = modifyFuture;