@osdk/client 2.2.0-beta.8 → 2.2.0-beta.9

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.
Files changed (202) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/build/browser/createMinimalClient.js +2 -2
  3. package/build/browser/createMinimalClient.js.map +1 -1
  4. package/build/browser/object/SimpleOsdkProperties.js +2 -0
  5. package/build/browser/object/SimpleOsdkProperties.js.map +1 -0
  6. package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js +2 -0
  7. package/build/browser/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -0
  8. package/build/browser/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -1
  9. package/build/browser/object/convertWireToOsdkObjects/ObjectHolder.js.map +1 -1
  10. package/build/browser/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  11. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js +10 -3
  12. package/build/browser/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  13. package/build/browser/object/convertWireToOsdkObjects/getDollarAs.js.map +1 -1
  14. package/build/browser/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  15. package/build/browser/object/convertWireToOsdkObjects.js +4 -2
  16. package/build/browser/object/convertWireToOsdkObjects.js.map +1 -1
  17. package/build/browser/object/fetchPage.js +13 -1
  18. package/build/browser/object/fetchPage.js.map +1 -1
  19. package/build/browser/object/fetchPage.test.js +56 -2
  20. package/build/browser/object/fetchPage.test.js.map +1 -1
  21. package/build/browser/object/object.test.js.map +1 -1
  22. package/build/browser/objectSet/InterfaceObjectSet.test.js +18 -2
  23. package/build/browser/objectSet/InterfaceObjectSet.test.js.map +1 -1
  24. package/build/browser/objectSet/ObjectSet.test.js +92 -102
  25. package/build/browser/objectSet/ObjectSet.test.js.map +1 -1
  26. package/build/browser/objectSet/ObjectSetListenerWebsocket.js +18 -14
  27. package/build/browser/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  28. package/build/browser/objectSet/createObjectSet.js.map +1 -1
  29. package/build/browser/observable/ListPayload.js.map +1 -1
  30. package/build/browser/observable/ObjectPayload.js.map +1 -1
  31. package/build/browser/observable/ObservableClient.js.map +1 -1
  32. package/build/browser/observable/internal/ActionApplication.js +29 -29
  33. package/build/browser/observable/internal/ActionApplication.js.map +1 -1
  34. package/build/browser/observable/internal/CacheKey.js +1 -1
  35. package/build/browser/observable/internal/CacheKey.js.map +1 -1
  36. package/build/browser/observable/internal/CacheKeys.js +2 -2
  37. package/build/browser/observable/internal/CacheKeys.js.map +1 -1
  38. package/build/browser/observable/internal/{ChangedObjects.js → Changes.js} +20 -9
  39. package/build/browser/observable/internal/Changes.js.map +1 -0
  40. package/build/browser/observable/internal/Layer.js +3 -0
  41. package/build/browser/observable/internal/Layer.js.map +1 -1
  42. package/build/browser/observable/internal/ListQuery.js +411 -170
  43. package/build/browser/observable/internal/ListQuery.js.map +1 -1
  44. package/build/browser/observable/internal/ObjectQuery.js +32 -16
  45. package/build/browser/observable/internal/ObjectQuery.js.map +1 -1
  46. package/build/browser/observable/internal/ObservableClientImpl.js +4 -12
  47. package/build/browser/observable/internal/ObservableClientImpl.js.map +1 -1
  48. package/build/browser/observable/internal/OptimisticJob.js.map +1 -1
  49. package/build/browser/observable/internal/OrderByCanonicalizer.js +73 -0
  50. package/build/browser/observable/internal/OrderByCanonicalizer.js.map +1 -0
  51. package/build/browser/observable/internal/OrderByCanonicalizer.test.js +78 -0
  52. package/build/browser/observable/internal/OrderByCanonicalizer.test.js.map +1 -0
  53. package/build/browser/observable/internal/Query.js +64 -31
  54. package/build/browser/observable/internal/Query.js.map +1 -1
  55. package/build/browser/observable/internal/RefCounts.js +7 -2
  56. package/build/browser/observable/internal/RefCounts.js.map +1 -1
  57. package/build/browser/observable/internal/SimpleWhereClause.js +2 -0
  58. package/build/browser/observable/internal/SimpleWhereClause.js.map +1 -0
  59. package/build/browser/observable/internal/Store.js +84 -267
  60. package/build/browser/observable/internal/Store.js.map +1 -1
  61. package/build/browser/observable/internal/Store.test.js +264 -247
  62. package/build/browser/observable/internal/Store.test.js.map +1 -1
  63. package/build/browser/observable/internal/WhereClauseCanonicalizer.js +11 -3
  64. package/build/browser/observable/internal/WhereClauseCanonicalizer.js.map +1 -1
  65. package/build/browser/observable/internal/objectMatchesWhereClause.js.map +1 -1
  66. package/build/browser/observable/internal/objectMatchesWhereClause.test.js.map +1 -1
  67. package/build/browser/observable/internal/testUtils.js +82 -18
  68. package/build/browser/observable/internal/testUtils.js.map +1 -1
  69. package/build/browser/public/unstable-do-not-use.js.map +1 -1
  70. package/build/browser/util/UserAgent.js +1 -1
  71. package/build/cjs/{chunk-JPENHIJB.cjs → chunk-EY52J5Z4.cjs} +25 -15
  72. package/build/cjs/chunk-EY52J5Z4.cjs.map +1 -0
  73. package/build/cjs/{chunk-IU47QMYO.cjs → chunk-MCQVHD2F.cjs} +32 -28
  74. package/build/cjs/chunk-MCQVHD2F.cjs.map +1 -0
  75. package/build/cjs/chunk-T4NIFYZS.cjs +14 -0
  76. package/build/cjs/chunk-T4NIFYZS.cjs.map +1 -0
  77. package/build/cjs/index.cjs +69 -72
  78. package/build/cjs/index.cjs.map +1 -1
  79. package/build/cjs/public/internal.cjs +6 -6
  80. package/build/cjs/public/unstable-do-not-use.cjs +683 -539
  81. package/build/cjs/public/unstable-do-not-use.cjs.map +1 -1
  82. package/build/cjs/public/unstable-do-not-use.d.cts +27 -26
  83. package/build/esm/createMinimalClient.js +2 -2
  84. package/build/esm/createMinimalClient.js.map +1 -1
  85. package/build/esm/object/SimpleOsdkProperties.js +2 -0
  86. package/build/esm/object/SimpleOsdkProperties.js.map +1 -0
  87. package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js +2 -0
  88. package/build/esm/object/convertWireToOsdkObjects/BaseHolder.js.map +1 -0
  89. package/build/esm/object/convertWireToOsdkObjects/InterfaceHolder.js.map +1 -1
  90. package/build/esm/object/convertWireToOsdkObjects/ObjectHolder.js.map +1 -1
  91. package/build/esm/object/convertWireToOsdkObjects/createOsdkInterface.js.map +1 -1
  92. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js +10 -3
  93. package/build/esm/object/convertWireToOsdkObjects/createOsdkObject.js.map +1 -1
  94. package/build/esm/object/convertWireToOsdkObjects/getDollarAs.js.map +1 -1
  95. package/build/esm/object/convertWireToOsdkObjects/getDollarLink.js.map +1 -1
  96. package/build/esm/object/convertWireToOsdkObjects.js +4 -2
  97. package/build/esm/object/convertWireToOsdkObjects.js.map +1 -1
  98. package/build/esm/object/fetchPage.js +13 -1
  99. package/build/esm/object/fetchPage.js.map +1 -1
  100. package/build/esm/object/fetchPage.test.js +56 -2
  101. package/build/esm/object/fetchPage.test.js.map +1 -1
  102. package/build/esm/object/object.test.js.map +1 -1
  103. package/build/esm/objectSet/InterfaceObjectSet.test.js +18 -2
  104. package/build/esm/objectSet/InterfaceObjectSet.test.js.map +1 -1
  105. package/build/esm/objectSet/ObjectSet.test.js +92 -102
  106. package/build/esm/objectSet/ObjectSet.test.js.map +1 -1
  107. package/build/esm/objectSet/ObjectSetListenerWebsocket.js +18 -14
  108. package/build/esm/objectSet/ObjectSetListenerWebsocket.js.map +1 -1
  109. package/build/esm/objectSet/createObjectSet.js.map +1 -1
  110. package/build/esm/observable/ListPayload.js.map +1 -1
  111. package/build/esm/observable/ObjectPayload.js.map +1 -1
  112. package/build/esm/observable/ObservableClient.js.map +1 -1
  113. package/build/esm/observable/internal/ActionApplication.js +29 -29
  114. package/build/esm/observable/internal/ActionApplication.js.map +1 -1
  115. package/build/esm/observable/internal/CacheKey.js +1 -1
  116. package/build/esm/observable/internal/CacheKey.js.map +1 -1
  117. package/build/esm/observable/internal/CacheKeys.js +2 -2
  118. package/build/esm/observable/internal/CacheKeys.js.map +1 -1
  119. package/build/esm/observable/internal/{ChangedObjects.js → Changes.js} +20 -9
  120. package/build/esm/observable/internal/Changes.js.map +1 -0
  121. package/build/esm/observable/internal/Layer.js +3 -0
  122. package/build/esm/observable/internal/Layer.js.map +1 -1
  123. package/build/esm/observable/internal/ListQuery.js +411 -170
  124. package/build/esm/observable/internal/ListQuery.js.map +1 -1
  125. package/build/esm/observable/internal/ObjectQuery.js +32 -16
  126. package/build/esm/observable/internal/ObjectQuery.js.map +1 -1
  127. package/build/esm/observable/internal/ObservableClientImpl.js +4 -12
  128. package/build/esm/observable/internal/ObservableClientImpl.js.map +1 -1
  129. package/build/esm/observable/internal/OptimisticJob.js.map +1 -1
  130. package/build/esm/observable/internal/OrderByCanonicalizer.js +73 -0
  131. package/build/esm/observable/internal/OrderByCanonicalizer.js.map +1 -0
  132. package/build/esm/observable/internal/OrderByCanonicalizer.test.js +78 -0
  133. package/build/esm/observable/internal/OrderByCanonicalizer.test.js.map +1 -0
  134. package/build/esm/observable/internal/Query.js +64 -31
  135. package/build/esm/observable/internal/Query.js.map +1 -1
  136. package/build/esm/observable/internal/RefCounts.js +7 -2
  137. package/build/esm/observable/internal/RefCounts.js.map +1 -1
  138. package/build/esm/observable/internal/SimpleWhereClause.js +2 -0
  139. package/build/esm/observable/internal/SimpleWhereClause.js.map +1 -0
  140. package/build/esm/observable/internal/Store.js +84 -267
  141. package/build/esm/observable/internal/Store.js.map +1 -1
  142. package/build/esm/observable/internal/Store.test.js +264 -247
  143. package/build/esm/observable/internal/Store.test.js.map +1 -1
  144. package/build/esm/observable/internal/WhereClauseCanonicalizer.js +11 -3
  145. package/build/esm/observable/internal/WhereClauseCanonicalizer.js.map +1 -1
  146. package/build/esm/observable/internal/objectMatchesWhereClause.js.map +1 -1
  147. package/build/esm/observable/internal/objectMatchesWhereClause.test.js.map +1 -1
  148. package/build/esm/observable/internal/testUtils.js +82 -18
  149. package/build/esm/observable/internal/testUtils.js.map +1 -1
  150. package/build/esm/public/unstable-do-not-use.js.map +1 -1
  151. package/build/esm/util/UserAgent.js +1 -1
  152. package/build/types/object/SimpleOsdkProperties.d.ts +1 -0
  153. package/build/types/object/SimpleOsdkProperties.d.ts.map +1 -0
  154. package/build/types/object/convertWireToOsdkObjects/BaseHolder.d.ts +1 -0
  155. package/build/types/object/convertWireToOsdkObjects/BaseHolder.d.ts.map +1 -0
  156. package/build/types/object/convertWireToOsdkObjects.d.ts +8 -1
  157. package/build/types/object/convertWireToOsdkObjects.d.ts.map +1 -1
  158. package/build/types/observable/ListPayload.d.ts +5 -9
  159. package/build/types/observable/ListPayload.d.ts.map +1 -1
  160. package/build/types/observable/ObjectPayload.d.ts +4 -7
  161. package/build/types/observable/ObjectPayload.d.ts.map +1 -1
  162. package/build/types/observable/ObservableClient.d.ts +27 -11
  163. package/build/types/observable/ObservableClient.d.ts.map +1 -1
  164. package/build/types/observable/internal/ActionApplication.d.ts.map +1 -1
  165. package/build/types/observable/internal/CacheKeys.d.ts +1 -1
  166. package/build/types/observable/internal/CacheKeys.d.ts.map +1 -1
  167. package/build/types/observable/internal/Changes.d.ts +15 -0
  168. package/build/types/observable/internal/Changes.d.ts.map +1 -0
  169. package/build/types/observable/internal/Layer.d.ts +1 -0
  170. package/build/types/observable/internal/Layer.d.ts.map +1 -1
  171. package/build/types/observable/internal/ListQuery.d.ts +59 -14
  172. package/build/types/observable/internal/ListQuery.d.ts.map +1 -1
  173. package/build/types/observable/internal/ObjectQuery.d.ts +5 -6
  174. package/build/types/observable/internal/ObjectQuery.d.ts.map +1 -1
  175. package/build/types/observable/internal/OptimisticJob.d.ts +1 -1
  176. package/build/types/observable/internal/OptimisticJob.d.ts.map +1 -1
  177. package/build/types/observable/internal/OrderByCanonicalizer.d.ts +12 -0
  178. package/build/types/observable/internal/OrderByCanonicalizer.d.ts.map +1 -0
  179. package/build/types/observable/internal/OrderByCanonicalizer.test.d.ts +1 -0
  180. package/build/types/observable/internal/OrderByCanonicalizer.test.d.ts.map +1 -0
  181. package/build/types/observable/internal/Query.d.ts +39 -4
  182. package/build/types/observable/internal/Query.d.ts.map +1 -1
  183. package/build/types/observable/internal/RefCounts.d.ts.map +1 -1
  184. package/build/types/observable/internal/SimpleWhereClause.d.ts +2 -0
  185. package/build/types/observable/internal/SimpleWhereClause.d.ts.map +1 -0
  186. package/build/types/observable/internal/Store.d.ts +19 -43
  187. package/build/types/observable/internal/Store.d.ts.map +1 -1
  188. package/build/types/observable/internal/WhereClauseCanonicalizer.d.ts +2 -1
  189. package/build/types/observable/internal/WhereClauseCanonicalizer.d.ts.map +1 -1
  190. package/build/types/observable/internal/objectMatchesWhereClause.d.ts +4 -2
  191. package/build/types/observable/internal/objectMatchesWhereClause.d.ts.map +1 -1
  192. package/build/types/observable/internal/testUtils.d.ts +39 -9
  193. package/build/types/observable/internal/testUtils.d.ts.map +1 -1
  194. package/build/types/public/unstable-do-not-use.d.ts +1 -4
  195. package/build/types/public/unstable-do-not-use.d.ts.map +1 -1
  196. package/package.json +12 -10
  197. package/build/browser/observable/internal/ChangedObjects.js.map +0 -1
  198. package/build/cjs/chunk-IU47QMYO.cjs.map +0 -1
  199. package/build/cjs/chunk-JPENHIJB.cjs.map +0 -1
  200. package/build/esm/observable/internal/ChangedObjects.js.map +0 -1
  201. package/build/types/observable/internal/ChangedObjects.d.ts +0 -11
  202. package/build/types/observable/internal/ChangedObjects.d.ts.map +0 -1
@@ -1,31 +1,76 @@
1
- import type { ObjectTypeDefinition, WhereClause } from "@osdk/api";
2
- import { type Connectable, type Observable } from "rxjs";
1
+ import type { Connectable, Observable, Subscription } from "rxjs";
2
+ import type { InterfaceHolder } from "../../object/convertWireToOsdkObjects/InterfaceHolder.js";
3
+ import type { ObjectHolder } from "../../object/convertWireToOsdkObjects/ObjectHolder.js";
3
4
  import type { ListPayload } from "../ListPayload.js";
4
5
  import type { CommonObserveOptions, Status } from "../ObservableClient.js";
5
6
  import { type CacheKey } from "./CacheKey.js";
6
7
  import type { Canonical } from "./Canonical.js";
7
- import { type Changes } from "./ChangedObjects.js";
8
+ import { type Changes } from "./Changes.js";
8
9
  import type { Entry } from "./Layer.js";
9
- import type { ObjectCacheKey } from "./ObjectQuery.js";
10
+ import { type ObjectCacheKey } from "./ObjectQuery.js";
10
11
  import type { OptimisticId } from "./OptimisticId.js";
11
12
  import { Query } from "./Query.js";
13
+ import type { SimpleWhereClause } from "./SimpleWhereClause.js";
12
14
  import type { BatchContext, Store, SubjectPayload } from "./Store.js";
13
15
  interface ListStorageData {
14
16
  data: ObjectCacheKey[];
15
17
  }
16
- export interface ListCacheKey extends CacheKey<"list", ListStorageData, ListQuery, [apiName: string, whereClause: Canonical<WhereClause<ObjectTypeDefinition>>, orderByClause: Canonical<Record<string, "asc" | "desc" | undefined>>]> {}
18
+ export interface ListCacheKey extends CacheKey<"list", ListStorageData, ListQuery, [type: "object" | "interface", apiName: string, whereClause: Canonical<SimpleWhereClause>, orderByClause: Canonical<Record<string, "asc" | "desc" | undefined>>]> {}
19
+ export interface BaseListCacheKey<
20
+ T_Type extends string,
21
+ T_Query extends Query<any, any, any>,
22
+ T_KeyFactoryArgs extends any[] = any[]
23
+ > extends CacheKey<T_Type, ListStorageData, T_Query, T_KeyFactoryArgs> {}
24
+ export declare const API_NAME_IDX = 1;
25
+ export declare const TYPE_IDX = 0;
26
+ export declare const WHERE_IDX = 2;
27
+ export declare const ORDER_BY_IDX = 3;
17
28
  export interface ListQueryOptions extends CommonObserveOptions {
18
29
  pageSize?: number;
19
30
  }
20
- export declare class ListQuery extends Query<ListCacheKey, ListPayload, ListQueryOptions> {
31
+ type ExtractRelevantObjectsResult = Record<"added" | "modified", {
32
+ all: (ObjectHolder | InterfaceHolder)[]
33
+ strictMatches: Set<(ObjectHolder | InterfaceHolder)>
34
+ sortaMatches: Set<(ObjectHolder | InterfaceHolder)>
35
+ }>;
36
+ declare abstract class BaseListQuery<
37
+ KEY extends ListCacheKey,
38
+ PAYLOAD,
39
+ O extends CommonObserveOptions
40
+ > extends Query<KEY, PAYLOAD, O> {
21
41
  #private;
22
- constructor(store: Store, subject: Observable<SubjectPayload<ListCacheKey>>, objectType: string, whereClause: Canonical<WhereClause<ObjectTypeDefinition>>, orderBy: Canonical<Record<string, "asc" | "desc" | undefined>>, cacheKey: ListCacheKey, opts: ListQueryOptions);
23
- get canonicalWhere(): Canonical<WhereClause<ObjectTypeDefinition>>;
42
+ protected abstract _sortCacheKeys(objectCacheKeys: ObjectCacheKey[], batch: BatchContext): ObjectCacheKey[];
43
+ /**
44
+ * Only intended to be "protected" and used by subclasses but exposed for
45
+ * testing.
46
+ *
47
+ * @param objectCacheKeys
48
+ * @param append
49
+ * @param status
50
+ * @param batch
51
+ * @returns
52
+ */
53
+ _updateList(objectCacheKeys: Array<ObjectCacheKey>, append: boolean, status: Status, batch: BatchContext): Entry<ListCacheKey>;
54
+ writeToStore(data: ListStorageData, status: Status, batch: BatchContext): Entry<KEY>;
55
+ _dispose(): void;
56
+ }
57
+ export declare class ListQuery extends BaseListQuery<ListCacheKey, ListPayload, ListQueryOptions> {
58
+ #private;
59
+ constructor(store: Store, subject: Observable<SubjectPayload<ListCacheKey>>, apiType: "object" | "interface", apiName: string, whereClause: Canonical<SimpleWhereClause>, orderBy: Canonical<Record<string, "asc" | "desc" | undefined>>, cacheKey: ListCacheKey, opts: ListQueryOptions);
60
+ get canonicalWhere(): Canonical<SimpleWhereClause>;
24
61
  protected _createConnectable(subject: Observable<SubjectPayload<ListCacheKey>>): Connectable<ListPayload>;
25
- _preFetch(): void;
26
- _fetch(): Promise<void>;
62
+ protected _preFetch(): void;
63
+ protected _fetchAndStore(): Promise<void>;
27
64
  fetchMore: () => Promise<unknown>;
28
65
  /**
66
+ * Will revalidate the list if its query is affected by invalidating the
67
+ * apiName of the object type passed in.
68
+ *
69
+ * @param apiName to invalidate
70
+ * @returns
71
+ */
72
+ revalidateObjectType: (apiName: string) => Promise<void>;
73
+ /**
29
74
  * Note: This method is not async because I want it to return right after it
30
75
  * finishes the synchronous updates. The promise that is returned
31
76
  * will resolve after the revalidation is complete.
@@ -35,9 +80,9 @@ export declare class ListQuery extends Query<ListCacheKey, ListPayload, ListQuer
35
80
  * revalidation is complete. Otherwise, undefined.
36
81
  */
37
82
  maybeUpdateAndRevalidate: (changes: Changes, optimisticId: OptimisticId | undefined) => Promise<void> | undefined;
38
- updateList(objectCacheKeys: Array<ObjectCacheKey>, append: boolean, status: Status, batch: BatchContext): Entry<ListCacheKey>;
39
- writeToStore(data: ListStorageData, status: Status, batch: BatchContext): Entry<ListCacheKey>;
40
- _dispose(): void;
83
+ protected _extractRelevantObjects(changes: Changes): ExtractRelevantObjectsResult;
84
+ _sortCacheKeys(objectCacheKeys: ObjectCacheKey[], batch: BatchContext): ObjectCacheKey[];
85
+ registerStreamUpdates(sub: Subscription): void;
41
86
  }
42
- export declare function isListCacheKey(cacheKey: CacheKey, apiName?: string): cacheKey is ListCacheKey;
87
+ export declare function isListCacheKey(cacheKey: CacheKey): cacheKey is ListCacheKey;
43
88
  export {};
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAEE,sBAEA,mBACK,WAAY;AAEnB,cAIO,kBAGA,kBAKA,MAAO;AAGd,cAAc,mBAAmB,mBAAoB;AACrD,cAAc,sBAAsB,cAAc,wBAAyB;AAC3E,cACO,gBAEA,eAAgB;AACvB,cAAc,iBAAiB,gBAAiB;AAChD,cAAc,eAA4C,qBAAsB;AAChF,cAAc,aAAa,YAAa;AAExC,cAAc,sBAAsB,kBAAmB;AACvD,cAAc,oBAAoB,mBAAoB;AACtD,SAAS,aAAa,YAAa;AACnC,cAAc,cAAc,OAAO,sBAAsB,YAAa;UAE5D,gBAAgB;CACxB,MAAM;AACP;AAED,iBAAiB,qBACf,SACE,QACA,iBACA,YAEE,iBACA,aAAa,UAAU,YAAY,wBACnC,eAAe,UAAU,eAAe,QAAQ,uBAGtD,CAAE;AAEF,iBAAiB,yBAAyB,qBAAqB;CAC7D;AACD;AAED,OAAO,cAAM,kBAAkB,MAC7B,cACA,aACA,kBACA;;CAcA,YACEA,OAAO,OACPC,SAAS,WAAW,eAAe,gBACnCC,oBACAC,aAAa,UAAU,YAAY,wBACnCC,SAAS,UAAU,eAAe,QAAQ,sBAC1CC,UAAU,cACVC,MAAM;CA0BR,IAAI,kBAAkB,UAAU,YAAY;CAI5C,UAAU,mBACRL,SAAS,WAAW,eAAe,iBAClC,YAAY;CA+Bf;CAIA,AAAM,UAAU;CAgChB,iBAAgB;;;;;;;;;;CAkFhB,2BACEM,SAAS,SACTC,cAAc,6BACb;CAwKH,WACEC,iBAAiB,MAAM,iBACvBC,iBACAC,QAAQ,QACRC,OAAO,eACN,MAAM;CA6FT,aACEC,MAAM,iBACNF,QAAQ,QACRC,OAAO,eACN,MAAM;CAmBT;AAYD;AAED,OAAO,iBAAS,eACdE,UAAU,UACVC,mBACC,YAAY","names":["store: Store","subject: Observable<SubjectPayload<ListCacheKey>>","objectType: string","whereClause: Canonical<WhereClause<ObjectTypeDefinition>>","orderBy: Canonical<Record<string, \"asc\" | \"desc\" | undefined>>","cacheKey: ListCacheKey","opts: ListQueryOptions","changes: Changes","optimisticId: OptimisticId | undefined","objectCacheKeys: Array<ObjectCacheKey>","append: boolean","status: Status","batch: BatchContext","data: ListStorageData","cacheKey: CacheKey","apiName?: string"],"sources":["../../../../src/observable/internal/ListQuery.ts"],"version":3,"file":"ListQuery.d.ts"}
1
+ {"mappings":"AAyBA,cAAc,aAAa,YAAY,oBAAoB,MAAO;AAalE,cAAc,uBAAuB,0DAA2D;AAKhG,cACE,oBACK,uDAAwD;AAC/D,cAAc,mBAAmB,mBAAoB;AACrD,cAAc,sBAAsB,cAAc,wBAAyB;AAC3E,cACO,gBAEA,eAAgB;AACvB,cAAc,iBAAiB,gBAAiB;AAChD,cAAc,eAA4C,cAAe;AACzE,cAAc,aAAa,YAAa;AAExC,cAAc,sBAA0C,kBAAmB;AAC3E,cAAc,oBAAoB,mBAAoB;AACtD,SAAS,aAAa,YAAa;AACnC,cAAc,yBAAyB,wBAAyB;AAChE,cAAc,cAAc,OAAO,sBAAsB,YAAa;UAE5D,gBAAgB;CACxB,MAAM;AACP;AAED,iBAAiB,qBACf,SACE,QACA,iBACA,YAEE,MAAM,WAAW,aACjB,iBACA,aAAa,UAAU,oBACvB,eAAe,UAAU,eAAe,QAAQ,uBAGtD,CAAE;AAEF,iBAAiB;CACf;CACA,gBAAgB;CAChB;UACQ,SAAS,QAAQ,iBAAiB,SAAS,kBAAkB,CACtE;AAED,OAAO,cAAM,eAAe;AAC5B,OAAO,cAAM,WAAW;AACxB,OAAO,cAAM,YAAY;AACzB,OAAO,cAAM,eAAe;AAE5B,iBAAiB,yBAAyB,qBAAqB;CAC7D;AACD;KAEI,+BAA+B,OAAO,UAAU,YAAY;CAC/D,MAAM,eAAe;CACrB,eAAe,KAAK,eAAe;CACnC,cAAc,KAAK,eAAe;AACnC;AAED,uBAAe;CAEb,YAAY;CACZ;CACA,UAAU;UACF,MAAM,KAAK,SAAS,GAAG;;CAK/B,mBAAmB,eACjBA,iBAAiB,kBACjBC,OAAO,eACN;;;;;;;;;;;CAgBH,YACEC,iBAAiB,MAAM,iBACvBC,iBACAC,QAAQ,QACRH,OAAO,eACN,MAAM;CAmBT,aACEI,MAAM,iBACND,QAAQ,QACRH,OAAO,eACN,MAAM;CAwDT;AAYD;AAED,OAAO,cAAM,kBAAkB,cAC7B,cACA,aACA,kBACA;;CAqBA,YACEK,OAAO,OACPC,SAAS,WAAW,eAAe,gBACnCC,SAAS,WAAW,aACpBC,iBACAC,aAAa,UAAU,oBACvBC,SAAS,UAAU,eAAe,QAAQ,sBAC1CC,UAAU,cACVC,MAAM;CA8BR,IAAI,kBAAkB,UAAU;CAIhC,UAAU,mBACRN,SAAS,WAAW,eAAe,iBAClC,YAAY;CA+Bf,UAAU;CAIV,UAAgB,kBAAkB;CA+BlC,iBAAgB;;;;;;;;CAwFhB,uBACEE,oBACC;;;;;;;;;;CA+BH,2BACEK,SAAS,SACTC,cAAc,6BACb;CAwHH,UAAU,wBACRD,SAAS,UACR;CAiFH,eACEd,iBAAiB,kBACjBC,OAAO,eACN;CAkBH,sBAAsBe,KAAK;AAqJ5B;AA2FD,OAAO,iBAAS,eACdC,UAAU,WACT,YAAY","names":["objectCacheKeys: ObjectCacheKey[]","batch: BatchContext","objectCacheKeys: Array<ObjectCacheKey>","append: boolean","status: Status","data: ListStorageData","store: Store","subject: Observable<SubjectPayload<ListCacheKey>>","apiType: \"object\" | \"interface\"","apiName: string","whereClause: Canonical<SimpleWhereClause>","orderBy: Canonical<Record<string, \"asc\" | \"desc\" | undefined>>","cacheKey: ListCacheKey","opts: ListQueryOptions","changes: Changes","optimisticId: OptimisticId | undefined","sub: Subscription","cacheKey: CacheKey"],"sources":["../../../../src/observable/internal/ListQuery.ts"],"version":3,"file":"ListQuery.d.ts"}
@@ -1,5 +1,6 @@
1
- import type { ObjectTypeDefinition, Osdk, PrimaryKeyType } from "@osdk/api";
1
+ import type { ObjectTypeDefinition, PrimaryKeyType } from "@osdk/api";
2
2
  import type { Connectable, Observable, Subject } from "rxjs";
3
+ import type { ObjectHolder } from "../../object/convertWireToOsdkObjects/ObjectHolder.js";
3
4
  import type { ObjectPayload } from "../ObjectPayload.js";
4
5
  import type { CommonObserveOptions, Status } from "../ObservableClient.js";
5
6
  import type { CacheKey } from "./CacheKey.js";
@@ -7,13 +8,11 @@ import type { Entry } from "./Layer.js";
7
8
  import { Query } from "./Query.js";
8
9
  import type { BatchContext, Store, SubjectPayload } from "./Store.js";
9
10
  export interface ObjectEntry extends Entry<ObjectCacheKey> {}
10
- type ObjectStorageData = Osdk.Instance<ObjectTypeDefinition>;
11
- export interface ObjectCacheKey extends CacheKey<"object", ObjectStorageData, ObjectQuery, [string, pk: PrimaryKeyType<ObjectTypeDefinition>]> {}
11
+ export interface ObjectCacheKey extends CacheKey<"object", ObjectHolder, ObjectQuery, [string, pk: PrimaryKeyType<ObjectTypeDefinition>]> {}
12
12
  export declare class ObjectQuery extends Query<ObjectCacheKey, ObjectPayload, CommonObserveOptions> {
13
13
  #private;
14
14
  constructor(store: Store, subject: Subject<SubjectPayload<ObjectCacheKey>>, type: string, pk: PrimaryKeyType<ObjectTypeDefinition>, cacheKey: ObjectCacheKey, opts: CommonObserveOptions);
15
15
  protected _createConnectable(subject: Observable<SubjectPayload<ObjectCacheKey>>): Connectable<ObjectPayload>;
16
- _fetch(): Promise<void>;
17
- writeToStore(data: Osdk.Instance<ObjectTypeDefinition>, status: Status, batch: BatchContext): Entry<ObjectCacheKey>;
16
+ _fetchAndStore(): Promise<void>;
17
+ writeToStore(data: ObjectHolder, status: Status, batch: BatchContext): Entry<ObjectCacheKey>;
18
18
  }
19
- export {};
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAEE,sBACA,MACA,sBACK,WAAY;AAEnB,cAAc,aAAa,YAAY,eAAe,MAAO;AAG7D,cAAc,qBAAqB,qBAAsB;AACzD,cAAc,sBAAsB,cAAc,wBAAyB;AAC3E,cAAc,gBAAgB,eAAgB;AAC9C,cAAc,aAAa,YAAa;AACxC,SAAS,aAAa,YAAa;AACnC,cAAc,cAAc,OAAO,sBAAsB,YAAa;AAEtE,iBAAiB,oBAAoB,MAAM,gBAAgB,CAAE;KAExD,oBAAoB,KAAK,SAAS;AAEvC,iBAAiB,uBACf,SACE,UACA,mBACA,sBACS,IAAI,eAAe,wBAEhC,CAAE;AAEF,OAAO,cAAM,oBAAoB,MAC/B,gBACA,eACA,sBACA;;CAIA,YACEA,OAAO,OACPC,SAAS,QAAQ,eAAe,kBAChCC,cACAC,IAAI,eAAe,uBACnBC,UAAU,gBACVC,MAAM;CAqBR,UAAU,mBACRC,SAAS,WAAW,eAAe,mBAClC,YAAY;CAwBf,AAAM,UAAU;CAmBhB,aACEC,MAAM,KAAK,SAAS,uBACpBC,QAAQ,QACRC,OAAO,eACN,MAAM;AAyBV","names":["store: Store","subject: Subject<SubjectPayload<ObjectCacheKey>>","type: string","pk: PrimaryKeyType<ObjectTypeDefinition>","cacheKey: ObjectCacheKey","opts: CommonObserveOptions","subject: Observable<SubjectPayload<ObjectCacheKey>>","data: Osdk.Instance<ObjectTypeDefinition>","status: Status","batch: BatchContext"],"sources":["../../../../src/observable/internal/ObjectQuery.ts"],"version":3,"file":"ObjectQuery.d.ts"}
1
+ {"mappings":"AAgBA,cAEE,sBAEA,sBACK,WAAY;AAEnB,cAAc,aAAa,YAAY,eAAe,MAAO;AAG7D,cAAc,oBAAoB,uDAAwD;AAC1F,cAAc,qBAAqB,qBAAsB;AACzD,cAAc,sBAAsB,cAAc,wBAAyB;AAC3E,cAAc,gBAAgB,eAAgB;AAC9C,cAAc,aAAa,YAAa;AACxC,SAAS,aAAa,YAAa;AACnC,cAAc,cAAc,OAAO,sBAAsB,YAAa;AAEtE,iBAAiB,oBAAoB,MAAM,gBAAgB,CAAE;AAE7D,iBAAiB,uBACf,SACE,UACA,cACA,sBACS,IAAI,eAAe,wBAEhC,CAAE;AAEF,OAAO,cAAM,oBAAoB,MAC/B,gBACA,eACA,sBACA;;CAIA,YACEA,OAAO,OACPC,SAAS,QAAQ,eAAe,kBAChCC,cACAC,IAAI,eAAe,uBACnBC,UAAU,gBACVC,MAAM;CAqBR,UAAU,mBACRC,SAAS,WAAW,eAAe,mBAClC,YAAY;CAwBf,AAAM,kBAAkB;CAqBxB,aACEC,MAAM,cACNC,QAAQ,QACRC,OAAO,eACN,MAAM;AAyBV","names":["store: Store","subject: Subject<SubjectPayload<ObjectCacheKey>>","type: string","pk: PrimaryKeyType<ObjectTypeDefinition>","cacheKey: ObjectCacheKey","opts: CommonObserveOptions","subject: Observable<SubjectPayload<ObjectCacheKey>>","data: ObjectHolder","status: Status","batch: BatchContext"],"sources":["../../../../src/observable/internal/ObjectQuery.ts"],"version":3,"file":"ObjectQuery.d.ts"}
@@ -1,5 +1,5 @@
1
1
  import type { OptimisticBuilder } from "../OptimisticBuilder.js";
2
- import { type Changes } from "./ChangedObjects.js";
2
+ import { type Changes } from "./Changes.js";
3
3
  import { type OptimisticId } from "./OptimisticId.js";
4
4
  import type { Store } from "./Store.js";
5
5
  export declare class OptimisticJob {
@@ -1 +1 @@
1
- {"mappings":"AAkBA,cAAc,yBAAyB,yBAA0B;AACjE,cAAc,eAAe,qBAAsB;AACnD,cAAkC,oBAAoB,mBAAoB;AAC1E,cAAc,aAAa,YAAa;AAExC,OAAO,cAAM,cAAc;;CACzB,SAAS;CACT,iBAAiB,QAAQ;CAGzB,YAAYA,OAAO,OAAOC,cAAc;AAmEzC;AAED,OAAO,iBAAS,iBACdD,OAAO,OACPE,gCAAgCC,KAAK,oCAC9B","names":["store: Store","optimisticId: OptimisticId","optimisticUpdate: undefined | ((ctx: OptimisticBuilder) => void)","ctx: OptimisticBuilder"],"sources":["../../../../src/observable/internal/OptimisticJob.ts"],"version":3,"file":"OptimisticJob.d.ts"}
1
+ {"mappings":"AAkBA,cAAc,yBAAyB,yBAA0B;AACjE,cAAc,eAAe,cAAe;AAC5C,cAAkC,oBAAoB,mBAAoB;AAC1E,cAAc,aAAa,YAAa;AAExC,OAAO,cAAM,cAAc;;CACzB,SAAS;CACT,iBAAiB,QAAQ;CAGzB,YAAYA,OAAO,OAAOC,cAAc;AAmEzC;AAED,OAAO,iBAAS,iBACdD,OAAO,OACPE,gCAAgCC,KAAK,oCAC9B","names":["store: Store","optimisticId: OptimisticId","optimisticUpdate: undefined | ((ctx: OptimisticBuilder) => void)","ctx: OptimisticBuilder"],"sources":["../../../../src/observable/internal/OptimisticJob.ts"],"version":3,"file":"OptimisticJob.d.ts"}
@@ -0,0 +1,12 @@
1
+ import type { Canonical } from "./Canonical.js";
2
+ export declare class WeakRefTrie<X extends object> {
3
+ #private;
4
+ constructor(makeData?: (array: any[]) => X);
5
+ lookupArray<T extends IArguments | any[]>(array: T): X;
6
+ peekArray<T extends IArguments | any[]>(array: T): X | undefined;
7
+ removeArray<T extends IArguments | any[]>(array: T): X | undefined;
8
+ }
9
+ export declare class OrderByCanonicalizer {
10
+ #private;
11
+ canonicalize: (orderBy: Record<string, "asc" | "desc" | undefined>) => Canonical<Record<string, "asc" | "desc" | undefined>>;
12
+ }
@@ -0,0 +1 @@
1
+ {"mappings":"AAmBA,cAAc,iBAAiB,gBAAiB;AAIhD,OAAO,cAAM,YAAY,kBAAkB;;CAWzC,YAAYA,YAAWC,iBAAiB;CAWxC,YAAY,UAAU,oBAAoBC,OAAO,IAAI;CAWrD,UAAU,UAAU,oBAAoBA,OAAO,IAAI;CAUnD,YAAY,UAAU,oBAAoBA,OAAO,IAAI;AAGtD;AAED,OAAO,cAAM,qBAAqB;;CA0BhC,eACEC,SAAS,eAAe,QAAQ,wBAC7B,UAAU,eAAe,QAAQ;AAMvC","names":["makeData: (array: any[]) => X","array: any[]","array: T","orderBy: Record<string, \"asc\" | \"desc\" | undefined>"],"sources":["../../../../src/observable/internal/OrderByCanonicalizer.ts"],"version":3,"file":"OrderByCanonicalizer.d.ts"}
@@ -0,0 +1 @@
1
+ {"mappings":"","names":[],"sources":["../../../../src/observable/internal/OrderByCanonicalizer.test.ts"],"version":3,"file":"OrderByCanonicalizer.test.d.ts"}
@@ -2,7 +2,9 @@ import type { Connectable, Observable, Observer, Subscribable, Subscription } fr
2
2
  import type { Logger } from "../../Logger.js";
3
3
  import type { CommonObserveOptions, Status } from "../ObservableClient.js";
4
4
  import type { CacheKey } from "./CacheKey.js";
5
+ import type { Changes } from "./Changes.js";
5
6
  import type { Entry } from "./Layer.js";
7
+ import type { OptimisticId } from "./OptimisticId.js";
6
8
  import type { BatchContext, Store, SubjectPayload } from "./Store.js";
7
9
  export declare abstract class Query<
8
10
  KEY extends CacheKey,
@@ -20,11 +22,44 @@ export declare abstract class Query<
20
22
  constructor(store: Store, observable: Observable<SubjectPayload<KEY>>, opts: O, cacheKey: KEY, logger?: Logger);
21
23
  protected abstract _createConnectable(subject: Observable<SubjectPayload<KEY>>): Connectable<PAYLOAD>;
22
24
  subscribe(observer: Partial<Observer<PAYLOAD>>): Subscription;
23
- revalidate(force?: boolean): Promise<unknown>;
24
- _preFetch(): void;
25
- abstract _fetch(): Promise<unknown>;
25
+ /**
26
+ * Causes the query to revalidate. This will cause the query to fetch
27
+ * the latest data from the server and update the store if it is deemed
28
+ * "stale" or if `force` is true.
29
+ *
30
+ * @param force
31
+ * @returns
32
+ */
33
+ revalidate(force?: boolean): Promise<void>;
34
+ protected _preFetch(): void;
35
+ protected abstract _fetchAndStore(): Promise<unknown>;
36
+ /**
37
+ * Sets the status of the query in the store (but does not store that in `changes`).
38
+ *
39
+ * @param status
40
+ * @param batch
41
+ * @returns
42
+ */
26
43
  setStatus(status: Status, batch: BatchContext): void;
27
44
  dispose(): void;
28
- _dispose(): void;
45
+ /**
46
+ * Per query type dispose functionality
47
+ */
48
+ protected _dispose(): void;
49
+ /**
50
+ * The purpose of this method is to provide a way for others to write
51
+ * directly into the store for this query.
52
+ *
53
+ * @param data
54
+ * @param status
55
+ * @param batch
56
+ */
29
57
  abstract writeToStore(data: KEY["__cacheKey"]["value"], status: Status, batch: BatchContext): Entry<KEY>;
58
+ /**
59
+ * @param changes
60
+ * @param optimisticId
61
+ * @returns If revalidation is needed, a promise that resolves after the
62
+ * revalidation is complete. Otherwise, undefined.
63
+ */
64
+ maybeUpdateAndRevalidate?: (changes: Changes, optimisticId: OptimisticId | undefined) => Promise<void> | undefined;
30
65
  }
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cACE,aACA,YACA,UACA,cACA,oBACK,MAAO;AAEd,cAAc,cAAc,iBAAkB;AAC9C,cAAc,sBAAsB,cAAc,wBAAyB;AAC3E,cAAc,gBAAgB,eAAgB;AAC9C,cAAc,aAAa,YAAa;AACxC,cAAc,cAAc,OAAO,sBAAsB,YAAa;AAEtE,OAAO,uBAAe;CACpB,YAAY;CACZ;CACA,UAAU;aACC,aAAa,SAAS;;CACjC;CACA,eAAe;CACf;CACA,SAAS;CACT,UAAU;CACV,OAAO;CACP,kBAAkB;CAQlB,YACEA,OAAO,OACPC,YAAY,WAAW,eAAe,OACtCC,MAAM,GACNC,UAAU,KACVC,SAAS;CAoBX,mBAAmB,mBACjBC,SAAS,WAAW,eAAe,QAClC,YAAY;CAEf,AAAO,UACLC,UAAU,QAAQ,SAAS,YAC1B;CAMH,WAAWC,kBAAkB;CAwD7B;CACA,SAAS,UAAU;CAEnB,UACEC,QAAQ,QACRC,OAAO;CAWT;CAQA;CAEA,SAAS,aACPC,MAAM,IAAI,cAAc,UACxBF,QAAQ,QACRC,OAAO,eACN,MAAM;AACV","names":["store: Store","observable: Observable<SubjectPayload<KEY>>","opts: O","cacheKey: KEY","logger?: Logger","subject: Observable<SubjectPayload<KEY>>","observer: Partial<Observer<PAYLOAD>>","force?: boolean","status: Status","batch: BatchContext","data: KEY[\"__cacheKey\"][\"value\"]"],"sources":["../../../../src/observable/internal/Query.ts"],"version":3,"file":"Query.d.ts"}
1
+ {"mappings":"AAgBA,cACE,aACA,YACA,UACA,cACA,oBACK,MAAO;AAEd,cAAc,cAAc,iBAAkB;AAC9C,cAAc,sBAAsB,cAAc,wBAAyB;AAC3E,cAAc,gBAAgB,eAAgB;AAC9C,cAAc,eAAe,cAAe;AAC5C,cAAc,aAAa,YAAa;AACxC,cAAc,oBAAoB,mBAAoB;AACtD,cAAc,cAAc,OAAO,sBAAsB,YAAa;AAEtE,OAAO,uBAAe;CACpB,YAAY;CACZ;CACA,UAAU;aACC,aAAa,SAAS;;CACjC;CACA,eAAe;CACf;CACA,SAAS;CACT,UAAU;CACV,OAAO;CACP,kBAAkB;CAQlB,YACEA,OAAO,OACPC,YAAY,WAAW,eAAe,OACtCC,MAAM,GACNC,UAAU,KACVC,SAAS;CAoBX,mBAAmB,mBACjBC,SAAS,WAAW,eAAe,QAClC,YAAY;CAEf,AAAO,UACLC,UAAU,QAAQ,SAAS,YAC1B;;;;;;;;;CAcH,AAAM,WAAWC,kBAAkB;CAiEnC,UAAU;CAEV,mBAAmB,kBAAkB;;;;;;;;CASrC,UACEC,QAAQ,QACRC,OAAO;CAWT;;;;CAWA,UAAU;;;;;;;;;CAUV,SAAS,aACPC,MAAM,IAAI,cAAc,UACxBF,QAAQ,QACRC,OAAO,eACN,MAAM;;;;;;;CAQT,4BACEE,SAAS,SACTC,cAAc,6BACX;AACN","names":["store: Store","observable: Observable<SubjectPayload<KEY>>","opts: O","cacheKey: KEY","logger?: Logger","subject: Observable<SubjectPayload<KEY>>","observer: Partial<Observer<PAYLOAD>>","force?: boolean","status: Status","batch: BatchContext","data: KEY[\"__cacheKey\"][\"value\"]","changes: Changes","optimisticId: OptimisticId | undefined"],"sources":["../../../../src/observable/internal/Query.ts"],"version":3,"file":"Query.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAkBA,OAAO,cAAM,UAAU,UAAU,CAAE,GAAE;CAOvB;CAA2B;CANvC,QAAQ;CAIR,QAAQ;CAER,YAAoBA,mBAA2BC,UAAUC,KAAK;CAG9D,SAAS,UAAU,GAAGC,KAAK,IAAI;CAQ/B,OAAOD,KAAK;CAQZ,QAAQA,KAAK;CAUb,IAAIA,KAAK;CAIT;AAiCD","names":["keepAlive: number","cleanup: (key: T) => void","key: T","key: X"],"sources":["../../../../src/observable/internal/RefCounts.ts"],"version":3,"file":"RefCounts.d.ts"}
1
+ {"mappings":"AAkBA,OAAO,cAAM,UAAU,UAAU,CAAE,GAAE;CAOvB;CAA2B;CANvC,QAAQ;CAIR,QAAQ;CAER,YAAoBA,mBAA2BC,UAAUC,KAAK;CAG9D,SAAS,UAAU,GAAGC,KAAK,IAAI;CAQ/B,OAAOD,KAAK;CAQZ,QAAQA,KAAK;CAgBb,IAAIA,KAAK;CAIT;AAiCD","names":["keepAlive: number","cleanup: (key: T) => void","key: T","key: X"],"sources":["../../../../src/observable/internal/RefCounts.ts"],"version":3,"file":"RefCounts.d.ts"}
@@ -0,0 +1,2 @@
1
+ import type { WhereClause } from "@osdk/api";
2
+ export type SimpleWhereClause = WhereClause<any>;
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cAAc,mBAAmB,WAAY;AAE7C,YAAY,oBAAoB","names":[],"sources":["../../../../src/observable/internal/SimpleWhereClause.ts"],"version":3,"file":"SimpleWhereClause.d.ts"}
@@ -1,4 +1,5 @@
1
- import type { ActionDefinition, ObjectTypeDefinition, Osdk, PrimaryKeyType, WhereClause } from "@osdk/api";
1
+ import type { ActionDefinition, InterfaceDefinition, ObjectTypeDefinition, PrimaryKeyType, WhereClause } from "@osdk/api";
2
+ import type { Observer } from "rxjs";
2
3
  import { BehaviorSubject } from "rxjs";
3
4
  import type { ActionSignatureFromDef } from "../../actions/applyAction.js";
4
5
  import { type Client } from "../../Client.js";
@@ -6,16 +7,16 @@ import type { ListPayload } from "../ListPayload.js";
6
7
  import type { ObjectPayload } from "../ObjectPayload.js";
7
8
  import type { ObserveListOptions, ObserveObjectOptions, OrderBy, Unsubscribable } from "../ObservableClient.js";
8
9
  import type { OptimisticBuilder } from "../OptimisticBuilder.js";
9
- import type { SubFn } from "../types.js";
10
10
  import type { CacheKey } from "./CacheKey.js";
11
11
  import type { Canonical } from "./Canonical.js";
12
- import { type Changes } from "./ChangedObjects.js";
12
+ import { type Changes } from "./Changes.js";
13
13
  import { Entry } from "./Layer.js";
14
14
  import type { ListQueryOptions } from "./ListQuery.js";
15
15
  import { ListQuery } from "./ListQuery.js";
16
- import type { ObjectCacheKey } from "./ObjectQuery.js";
17
16
  import { ObjectQuery } from "./ObjectQuery.js";
18
17
  import { type OptimisticId } from "./OptimisticId.js";
18
+ import { OrderByCanonicalizer } from "./OrderByCanonicalizer.js";
19
+ import type { SimpleWhereClause } from "./SimpleWhereClause.js";
19
20
  import { WhereClauseCanonicalizer } from "./WhereClauseCanonicalizer.js";
20
21
  export interface SubjectPayload<KEY extends CacheKey> extends Entry<KEY> {
21
22
  isOptimistic: boolean;
@@ -27,18 +28,11 @@ export interface BatchContext {
27
28
  write: <K extends CacheKey<string, any, any>>(k: K, v: Entry<K>["value"], status: Entry<K>["status"]) => Entry<K>;
28
29
  read: <K extends CacheKey<string, any, any>>(k: K) => Entry<K> | undefined;
29
30
  }
30
- interface UpdateOptions {
31
- optimisticId?: OptimisticId;
32
- }
33
31
  export declare namespace Store {
34
32
  interface ApplyActionOptions {
35
33
  optimisticUpdate?: (ctx: OptimisticBuilder) => void;
36
34
  }
37
35
  }
38
- export declare class OrderByCanonicalizer {
39
- #private;
40
- canonicalize: <T>(orderBy: Record<string, "asc" | "desc" | undefined>) => Canonical<Record<string, "asc" | "desc" | undefined>>;
41
- }
42
36
  export declare class Store {
43
37
  #private;
44
38
  whereCanonicalizer: WhereClauseCanonicalizer;
@@ -50,52 +44,34 @@ export declare class Store {
50
44
  getCacheKey<K extends CacheKey<string, any, any>>(type: K["type"], ...args: K["__cacheKey"]["args"]): K;
51
45
  peekSubject: <KEY extends CacheKey<string, any, any>>(cacheKey: KEY) => BehaviorSubject<SubjectPayload<KEY>> | undefined;
52
46
  getSubject: <KEY extends CacheKey<string, any, any>>(cacheKey: KEY) => BehaviorSubject<SubjectPayload<KEY>>;
53
- observeObject<T extends ObjectTypeDefinition>(apiName: T["apiName"] | T, pk: PrimaryKeyType<T>, options: ObserveObjectOptions<T>, subFn: SubFn<ObjectPayload>): Unsubscribable;
54
- observeList<T extends ObjectTypeDefinition>(options: ObserveListOptions<T>, subFn: SubFn<ListPayload>): Unsubscribable;
55
- getListQuery<T extends ObjectTypeDefinition>(apiName: T["apiName"] | T, where: WhereClause<T>, orderBy: Record<string, "asc" | "desc" | undefined>, opts: ListQueryOptions): ListQuery;
47
+ canonicalizeWhereClause<T extends ObjectTypeDefinition | InterfaceDefinition>(where: WhereClause<T>): Canonical<SimpleWhereClause>;
48
+ observeObject<T extends ObjectTypeDefinition | InterfaceDefinition>(apiName: T["apiName"] | T, pk: PrimaryKeyType<T>, options: ObserveObjectOptions<T>, subFn: Observer<ObjectPayload>): Unsubscribable;
49
+ observeList<T extends ObjectTypeDefinition | InterfaceDefinition>(options: ObserveListOptions<T>, subFn: Observer<ListPayload>): Unsubscribable;
50
+ peekQuery<K extends CacheKey>(cacheKey: K): K["__cacheKey"]["query"] | undefined;
51
+ getListQuery<T extends ObjectTypeDefinition | InterfaceDefinition>(def: Pick<T, "type" | "apiName">, where: WhereClause<T>, orderBy: Record<string, "asc" | "desc" | undefined>, opts: ListQueryOptions): ListQuery;
56
52
  getObjectQuery<T extends ObjectTypeDefinition>(apiName: T["apiName"] | T, pk: PrimaryKeyType<T>): ObjectQuery;
57
- getObject<T extends ObjectTypeDefinition>(apiName: T["apiName"] | T, pk: string | number): Osdk.Instance<T> | undefined;
53
+ getValue<K extends CacheKey<string, any, any>>(cacheKey: K): Entry<K> | undefined;
58
54
  batch: <X>({ optimisticId, changes }: {
59
55
  optimisticId?: OptimisticId
60
56
  changes?: Changes
61
57
  }, batchFn: (batchContext: BatchContext) => X) => {
62
58
  batchResult: BatchContext
63
59
  retVal: X
60
+ changes: Changes
64
61
  };
65
62
  invalidateObject<T extends ObjectTypeDefinition>(apiName: T["apiName"] | T, pk: PrimaryKeyType<T>): Promise<unknown>;
66
- maybeRevalidateLists(changes: Changes): Promise<void>;
67
- maybeUpdateLists(changes: Changes, optimisticId: OptimisticId | undefined): Promise<(void | undefined)[]>;
63
+ maybeRevalidateQueries(changes: Changes, optimisticId?: OptimisticId | undefined): Promise<void>;
68
64
  /**
69
65
  * @param apiName
70
66
  * @param changes The changes we know about / to update
71
67
  * @returns
72
68
  */
73
- invalidateObjectType<T extends ObjectTypeDefinition>(apiName: T["apiName"] | T, changes: Changes | undefined): Promise<unknown[]>;
74
- invalidateList<T extends ObjectTypeDefinition>({ objectType, where, orderBy }: {
75
- objectType: T["apiName"] | T
76
- where?: WhereClause<T>
77
- orderBy?: OrderBy<T>
78
- }): void;
79
- updateObject(apiName: string | ObjectTypeDefinition, value: Osdk.Instance<ObjectTypeDefinition>, { optimisticId }?: UpdateOptions): Osdk.Instance<ObjectTypeDefinition>;
80
- updateObjects(values: Array<Osdk.Instance<ObjectTypeDefinition>>, batch: BatchContext): ObjectCacheKey[];
81
- /**
82
- * Updates the internal state of a list and will create a new internal query if needed.
83
- *
84
- * Helper method only for tests right now. May be removed later.
85
- *
86
- * @param apiName
87
- * @param where
88
- * @param orderBy
89
- * @param objects
90
- * @param param4
91
- * @param opts
92
- */
93
- updateList<T extends ObjectTypeDefinition>({ objectType: apiName, where, orderBy }: {
94
- objectType: T["apiName"] | T
95
- where: WhereClause<T>
96
- orderBy: OrderBy<T>
97
- }, objects: Osdk.Instance<T>[], { optimisticId }?: UpdateOptions, opts?: ListQueryOptions): void;
69
+ invalidateObjectType<T extends ObjectTypeDefinition>(apiName: T["apiName"] | T, changes: Changes | undefined): Promise<void>;
98
70
  retain(cacheKey: CacheKey<string, any, any>): void;
99
71
  release(cacheKey: CacheKey<string, any, any>): void;
100
72
  }
101
- export {};
73
+ export declare function invalidateList<T extends ObjectTypeDefinition>(store: Store, args: {
74
+ type: Pick<T, "apiName" | "type">
75
+ where?: WhereClause<T> | SimpleWhereClause
76
+ orderBy?: OrderBy<T>
77
+ }): Promise<void>;
@@ -1 +1 @@
1
- {"mappings":"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","names":["k: K","v: Entry<K>[\"value\"]","status: Entry<K>[\"status\"]","ctx: OptimisticBuilder","orderBy: Record<string, \"asc\" | \"desc\" | undefined>","client: Client","action: Q","args: Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]","opts?: Store.ApplyActionOptions","layerId: OptimisticId","type: K[\"type\"]","cacheKey: KEY","apiName: T[\"apiName\"] | T","pk: PrimaryKeyType<T>","options: ObserveObjectOptions<T>","subFn: SubFn<ObjectPayload>","options: ObserveListOptions<T>","subFn: SubFn<ListPayload>","where: WhereClause<T>","opts: ListQueryOptions","pk: string | number","batchFn: (batchContext: BatchContext) => X","batchContext: BatchContext","changes: Changes","optimisticId: OptimisticId | undefined","changes: Changes | undefined","apiName: string | ObjectTypeDefinition","value: Osdk.Instance<ObjectTypeDefinition>","values: Array<Osdk.Instance<ObjectTypeDefinition>>","batch: BatchContext","objects: Osdk.Instance<T>[]","cacheKey: CacheKey<string, any, any>"],"sources":["../../../../src/observable/internal/Store.ts"],"version":3,"file":"Store.d.ts"}
1
+ {"mappings":"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","names":["k: K","v: Entry<K>[\"value\"]","status: Entry<K>[\"status\"]","ctx: OptimisticBuilder","client: Client","action: Q","args: Parameters<ActionSignatureFromDef<Q>[\"applyAction\"]>[0]","opts?: Store.ApplyActionOptions","layerId: OptimisticId","type: K[\"type\"]","cacheKey: KEY","where: WhereClause<T>","apiName: T[\"apiName\"] | T","pk: PrimaryKeyType<T>","options: ObserveObjectOptions<T>","subFn: Observer<ObjectPayload>","options: ObserveListOptions<T>","subFn: Observer<ListPayload>","cacheKey: K","def: Pick<T, \"type\" | \"apiName\">","orderBy: Record<string, \"asc\" | \"desc\" | undefined>","opts: ListQueryOptions","batchFn: (batchContext: BatchContext) => X","batchContext: BatchContext","changes: Changes","optimisticId?: OptimisticId | undefined","changes: Changes | undefined","cacheKey: CacheKey<string, any, any>","store: Store","args: {\n type: Pick<T, \"apiName\" | \"type\">;\n where?: WhereClause<T> | SimpleWhereClause;\n orderBy?: OrderBy<T>;\n }"],"sources":["../../../../src/observable/internal/Store.ts"],"version":3,"file":"Store.d.ts"}
@@ -1,6 +1,7 @@
1
1
  import type { ObjectOrInterfaceDefinition, WhereClause } from "@osdk/api";
2
2
  import type { Canonical } from "./Canonical.js";
3
+ import type { SimpleWhereClause } from "./SimpleWhereClause.js";
3
4
  export declare class WhereClauseCanonicalizer {
4
5
  #private;
5
- canonicalize<T extends ObjectOrInterfaceDefinition>(where: WhereClause<T>): Canonical<WhereClause<T>>;
6
+ canonicalize<T extends ObjectOrInterfaceDefinition>(where: WhereClause<T> | SimpleWhereClause): Canonical<SimpleWhereClause>;
6
7
  }
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,6BAA6B,mBAAmB,WAAY;AAI1E,cAAc,iBAAiB,gBAAiB;AAEhD,OAAO,cAAM,yBAAyB;;CAkBpC,AAAO,aAAa,UAAU,6BAC5BA,OAAO,YAAY,KAClB,UAAU,YAAY;AAmE1B","names":["where: WhereClause<T>"],"sources":["../../../../src/observable/internal/WhereClauseCanonicalizer.ts"],"version":3,"file":"WhereClauseCanonicalizer.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,6BAA6B,mBAAmB,WAAY;AAI1E,cAAc,iBAAiB,gBAAiB;AAChD,cAAc,yBAAyB,wBAAyB;AAEhE,OAAO,cAAM,yBAAyB;;CA6BpC,AAAO,aAAa,UAAU,6BAC5BA,OAAO,YAAY,KAAK,oBACvB,UAAU;AAmEd","names":["where: WhereClause<T> | SimpleWhereClause"],"sources":["../../../../src/observable/internal/WhereClauseCanonicalizer.ts"],"version":3,"file":"WhereClauseCanonicalizer.d.ts"}
@@ -1,2 +1,4 @@
1
- import type { ObjectTypeDefinition, Osdk, WhereClause } from "@osdk/api";
2
- export declare function objectSortaMatchesWhereClause(o: Osdk.Instance<ObjectTypeDefinition>, whereClause: WhereClause<ObjectTypeDefinition>, strict: boolean): boolean;
1
+ import type { InterfaceHolder } from "../../object/convertWireToOsdkObjects/InterfaceHolder.js";
2
+ import type { ObjectHolder } from "../../object/convertWireToOsdkObjects/ObjectHolder.js";
3
+ import type { SimpleWhereClause } from "./SimpleWhereClause.js";
4
+ export declare function objectSortaMatchesWhereClause(o: ObjectHolder | InterfaceHolder, whereClause: SimpleWhereClause, strict: boolean): boolean;
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cACE,sBACA,MAEA,mBACK,WAAY;AAuDnB,OAAO,iBAAS,8BACdA,GAAG,KAAK,SAAS,uBACjBC,aAAa,YAAY,uBACzBC","names":["o: Osdk.Instance<ObjectTypeDefinition>","whereClause: WhereClause<ObjectTypeDefinition>","strict: boolean"],"sources":["../../../../src/observable/internal/objectMatchesWhereClause.ts"],"version":3,"file":"objectMatchesWhereClause.d.ts"}
1
+ {"mappings":"AAmBA,cAAc,uBAAuB,0DAA2D;AAChG,cAAc,oBAAoB,uDAAwD;AAC1F,cAAc,yBAAyB,wBAAyB;AAqDhE,OAAO,iBAAS,8BACdA,GAAG,eAAe,iBAClBC,aAAa,mBACbC","names":["o: ObjectHolder | InterfaceHolder","whereClause: SimpleWhereClause","strict: boolean"],"sources":["../../../../src/observable/internal/objectMatchesWhereClause.ts"],"version":3,"file":"objectMatchesWhereClause.d.ts"}
@@ -1,17 +1,22 @@
1
- import type { ActionEditResponse, ObjectOrInterfaceDefinition, ObjectTypeDefinition, Osdk, PageResult, WhereClause } from "@osdk/api";
1
+ import type { ActionEditResponse, InterfaceDefinition, ObjectOrInterfaceDefinition, ObjectTypeDefinition, Osdk, PageResult, WhereClause } from "@osdk/api";
2
2
  import type { DeferredPromise } from "p-defer";
3
- import type { Mock } from "vitest";
3
+ import type { Observer } from "rxjs";
4
+ import type { Mock, MockedObject } from "vitest";
4
5
  import type { Client } from "../../Client.js";
5
6
  import type { Logger } from "../../Logger.js";
7
+ import type { ObjectHolder } from "../../object/convertWireToOsdkObjects/ObjectHolder.js";
6
8
  import type { ListPayload } from "../ListPayload.js";
7
9
  import type { ObjectPayload } from "../ObjectPayload.js";
8
- import type { Status, Unsubscribable } from "../ObservableClient.js";
10
+ import type { OrderBy, Status, Unsubscribable } from "../ObservableClient.js";
9
11
  import type { Entry } from "./Layer.js";
12
+ import type { ListQueryOptions } from "./ListQuery.js";
13
+ import type { OptimisticId } from "./OptimisticId.js";
14
+ import type { Store } from "./Store.js";
10
15
  export interface MockClientHelper {
11
16
  client: Mock<Client> & Client;
12
17
  mockApplyActionOnce: () => DeferredPromise<Partial<ActionEditResponse>>;
13
18
  mockFetchOneOnce: <Q extends ObjectTypeDefinition>(expectedId?: string | number | boolean) => DeferredPromise<Partial<Osdk.Instance<Q>>>;
14
- mockObjectFactory2Once: () => DeferredPromise<Osdk.Instance<ObjectOrInterfaceDefinition, never, any, {}>[]>;
19
+ mockObjectFactory2Once: () => DeferredPromise<Array<Osdk.Instance<ObjectOrInterfaceDefinition, never, any, {}> | ObjectHolder>>;
15
20
  mockFetchPageOnce: <Q extends ObjectTypeDefinition>(expected?: {
16
21
  where: WhereClause<any>
17
22
  orderBy: Record<string, "asc" | "desc" | undefined>
@@ -23,16 +28,18 @@ export declare function createTestLogger(bindings: Record<string, any>, options?
23
28
  }): Logger;
24
29
  export declare function createClientMockHelper(): MockClientHelper;
25
30
  export declare function createDefer(): (x: Unsubscribable) => Unsubscribable;
26
- export declare function expectSingleListCallAndClear<T extends ObjectTypeDefinition>(subFn: Mock<(e: ListPayload | undefined) => void>, resolvedList: Osdk.Instance<T>[], payloadOptions?: Omit<Partial<ListPayload>, "resolvedList">): void;
27
- export declare function expectSingleObjectCallAndClear<T extends ObjectTypeDefinition>(subFn: Mock<(e: ObjectPayload | undefined) => void>, object: Osdk.Instance<T>, status?: Status): void;
28
- export declare function waitForCall(subFn: Mock<(e: any) => void>, times?: number): Promise<void>;
29
- export declare function mockSingleSubCallback(): Mock<(e: ObjectPayload | undefined) => void> & {
31
+ export declare function expectSingleListCallAndClear<T extends ObjectTypeDefinition>(subFn: MockedObject<Observer<ListPayload | undefined>>, resolvedList: ObjectHolder[] | Osdk.Instance<T>[], payloadOptions?: Omit<Partial<ListPayload>, "resolvedList">): void;
32
+ export declare function expectSingleObjectCallAndClear<T extends ObjectTypeDefinition>(subFn: MockedObject<Observer<ObjectPayload | undefined>>, object: Osdk.Instance<T>, status?: Status): void;
33
+ export declare function waitForCall(subFn: Mock<(e: any) => void> | MockedObject<Observer<any>>, times?: number): Promise<void>;
34
+ export declare function expectNoMoreCalls(observer: MockedObject<Observer<any>>): void;
35
+ export declare function mockSingleSubCallback(): MockedObject<Observer<ObjectPayload | undefined>> & {
30
36
  expectLoadingAndLoaded: (q: {
31
37
  loading?: unknown
32
38
  loaded: unknown
33
39
  }) => Promise<void>
34
40
  };
35
- export declare function mockListSubCallback(): Mock<(x: ListPayload | undefined) => void>;
41
+ export declare function mockObserver<T>(): MockedObject<Observer<T>>;
42
+ export declare function mockListSubCallback(): MockedObject<Observer<ListPayload | undefined>>;
36
43
  export declare function cacheEntryContaining(x: Partial<Entry<any>>): Entry<any>;
37
44
  export declare function objectPayloadContaining(x: Partial<ObjectPayload>): ObjectPayload;
38
45
  export declare function listPayloadContaining(x: Partial<ListPayload>): ListPayload;
@@ -47,4 +54,27 @@ declare module "vitest" {
47
54
  interface Assertion<T = any> extends CustomMatchers<T> {}
48
55
  interface AsymmetricMatchersContaining extends CustomAsymmetricMatchers {}
49
56
  }
57
+ /**
58
+ * Updates the internal state of a list and will create a new internal query if needed.
59
+ *
60
+ * Helper method only for tests right now. May be removed later.
61
+ *
62
+ * @param apiName
63
+ * @param where
64
+ * @param orderBy
65
+ * @param objects
66
+ * @param param4
67
+ * @param opts
68
+ */
69
+ export declare function updateList<T extends ObjectTypeDefinition | InterfaceDefinition>(store: Store, { type, where, orderBy }: {
70
+ type: Pick<T, "apiName" | "type">
71
+ where: WhereClause<T>
72
+ orderBy: OrderBy<T>
73
+ }, objects: ObjectHolder[] | Osdk.Instance<T>[], { optimisticId }?: {
74
+ optimisticId?: OptimisticId
75
+ }, opts?: ListQueryOptions): void;
76
+ export declare function getObject(store: Store, type: string, pk: number): ObjectHolder | undefined;
77
+ export declare function updateObject<T extends ObjectOrInterfaceDefinition>(store: Store, value: Osdk.Instance<T>, { optimisticId }?: {
78
+ optimisticId?: OptimisticId
79
+ }): Osdk.Instance<T>;
50
80
  export {};
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAEE,oBACA,6BAEA,sBACA,MAEA,YACA,mBACK,WAAY;AAEnB,cAAc,uBAAuB,SAAU;AAG/C,cAAc,YAAY,QAAS;AAGnC,cAAc,cAAc,iBAAkB;AAE9C,cAAqB,cAAc,iBAAkB;AACrD,cAAc,mBAAmB,mBAAoB;AACrD,cAAc,qBAAqB,qBAAsB;AACzD,cAAc,QAAQ,sBAAsB,wBAAyB;AACrE,cAAc,aAAa,YAAa;AAIxC,iBAAiB,iBAAiB;CAChC,QAAQ,KAAK,UAAU;CAEvB,2BAA2B,gBAAgB,QAAQ;CAEnD,mBAAmB,UAAU,sBAC3BA,2CACG,gBACH,QACE,KAAK,SAAS;CAIlB,8BAA8B,gBAC5B,KAAK,SAAS,yCAAyC,CAAE;CAG3D,oBACE,UAAU,sBAEVC,WAAW;EACT,OAAO;EACP,SAAS,eAAe,QAAQ;CACjC,MACE,gBACH,WAAW,QAAQ,KAAK,SAAS;AAEpC;AAcD,OAAO,iBAAS,iBACdC,UAAU,qBACVC,UAAU;CAAE;CAAgB;AAAoB,IAC/C;AA+DH,OAAO,iBAAS,0BAA0B;AAoJ1C,OAAO,iBAAS,gBAcQC,GAAG,mBAAiB;AAM5C,OAAO,iBAAS,6BAA6B,UAAU,sBACrDC,OAAO,MAAMC,GAAG,mCAChBC,cAAc,KAAK,SAAS,MAC5BC,iBAAgB,KAAK,QAAQ,cAAc;AAc7C,OAAO,iBAAS,+BAA+B,UAAU,sBACvDC,OAAO,MAAMC,GAAG,qCAChBC,QAAQ,KAAK,SAAS,IACtBC,SAAS;AAWX,OAAO,iBAAe,YACpBC,OAAO,MAAMC,kBACbC,iBACC;AAiBH,OAAO,iBAAS,yBACZ,MACCL,GAAG,sCAEJ;CAGA,yBAAyBM,GAAG;EAC1B;EACA;CACD,MAAK;AACP;AAmDH,OAAO,iBAAS,uBAAuB,MACpCC,GAAG;AAON,OAAO,iBAAS,qBAAqBC,GAAG,QAAQ,cAAc;AAoB9D,OAAO,iBAAS,wBACdC,GAAG,QAAQ,iBACV;AASH,OAAO,iBAAS,sBACdC,GAAG,QAAQ,eACV;AAWH,OAAO,iBAAS;UAWN,eAAe,SAAS;CAChC,kBAAkBC,cAAc;AACjC;UAES,yBAAyB,SAAS;CAC1C,kBAAkBA,cAAc;AACjC;eAEc,SAAS;WACZ,UAAU,iBAAiB,eAAe,GAAG,CAAE;WAC/C,qCAAqC,yBAAyB,CAAE;AAC3E","names":["expectedId?: string | number | boolean","expected?: {\n where: WhereClause<any>;\n orderBy: Record<string, \"asc\" | \"desc\" | undefined>;\n }","bindings: Record<string, any>","options?: { level?: string; msgPrefix?: string }","x: Unsubscribable","subFn: Mock<(e: ListPayload | undefined) => void>","e: ListPayload | undefined","resolvedList: Osdk.Instance<T>[]","payloadOptions: Omit<Partial<ListPayload>, \"resolvedList\">","subFn: Mock<(e: ObjectPayload | undefined) => void>","e: ObjectPayload | undefined","object: Osdk.Instance<T>","status?: Status","subFn: Mock<(e: any) => void>","e: any","times: number","q: {\n loading?: unknown;\n loaded: unknown;\n }","x: ListPayload | undefined","x: Partial<Entry<any>>","x: Partial<ObjectPayload>","x: Partial<ListPayload>","n: number"],"sources":["../../../../src/observable/internal/testUtils.ts"],"version":3,"file":"testUtils.d.ts"}
1
+ {"mappings":"AAgBA,cAEE,oBACA,qBACA,6BAEA,sBACA,MAEA,YACA,mBACK,WAAY;AAEnB,cAAc,uBAAuB,SAAU;AAE/C,cAAc,gBAAgB,MAAO;AAErC,cAAc,MAAM,oBAAoB,QAAS;AAGjD,cAAc,cAAc,iBAAkB;AAE9C,cAAqB,cAAc,iBAAkB;AACrD,cAAc,oBAAoB,uDAAwD;AAC1F,cAAc,mBAAmB,mBAAoB;AACrD,cAAc,qBAAqB,qBAAsB;AACzD,cAAc,SAAS,QAAQ,sBAAsB,wBAAyB;AAC9E,cAAc,aAAa,YAAa;AACxC,cAAc,wBAAwB,gBAAiB;AAGvD,cAAc,oBAAoB,mBAAoB;AACtD,cAAc,aAAa,YAAa;AAIxC,iBAAiB,iBAAiB;CAChC,QAAQ,KAAK,UAAU;CAEvB,2BAA2B,gBAAgB,QAAQ;CAEnD,mBAAmB,UAAU,sBAC3BA,2CACG,gBACH,QACE,KAAK,SAAS;CAIlB,8BAA8B,gBAC5B,MACI,KAAK,SAAS,yCAAyC,CAAE,KACzD;CAIN,oBACE,UAAU,sBAEVC,WAAW;EACT,OAAO;EACP,SAAS,eAAe,QAAQ;CACjC,MACE,gBACH,WAAW,QAAQ,KAAK,SAAS;AAEpC;AAcD,OAAO,iBAAS,iBACdC,UAAU,qBACVC,UAAU;CAAE;CAAgB;AAAoB,IAC/C;AA+DH,OAAO,iBAAS,0BAA0B;AA2J1C,OAAO,iBAAS,gBAcQC,GAAG,mBAAiB;AAM5C,OAAO,iBAAS,6BAA6B,UAAU,sBACrDC,OAAO,aAAa,SAAS,2BAC7BC,cAAc,iBAAiB,KAAK,SAAS,MAC7CC,iBAAgB,KAAK,QAAQ,cAAc;AAgB7C,OAAO,iBAAS,+BAA+B,UAAU,sBACvDC,OAAO,aAAa,SAAS,6BAC7BC,QAAQ,KAAK,SAAS,IACtBC,SAAS;AAWX,OAAO,iBAAe,YACpBC,OAAO,MAAMC,mBAAmB,aAAa,gBAC7CC,iBACC;AAiBH,OAAO,iBAAS,kBACdC,UAAU,aACR;AAUJ,OAAO,iBAAS,yBACZ,aACA,SAAS,8BAET;CAGA,yBAAyBC,GAAG;EAC1B;EACA;CACD,MAAK;AACP;AAmDH,OAAO,iBAAS,aAAa,MAAM,aAAa,SAAS;AAUzD,OAAO,iBAAS,uBAAuB,aACrC,SAAS;AAKX,OAAO,iBAAS,qBAAqBC,GAAG,QAAQ,cAAc;AAoB9D,OAAO,iBAAS,wBACdC,GAAG,QAAQ,iBACV;AASH,OAAO,iBAAS,sBACdC,GAAG,QAAQ,eACV;AAWH,OAAO,iBAAS;UAWN,eAAe,SAAS;CAChC,kBAAkBC,cAAc;AACjC;UAES,yBAAyB,SAAS;CAC1C,kBAAkBA,cAAc;AACjC;eAEc,SAAS;WACZ,UAAU,iBAAiB,eAAe,GAAG,CAAE;WAC/C,qCAAqC,yBAAyB,CAAE;AAC3E;;;;;;;;;;;;;AAcD,OAAO,iBAAS,WACd,UAAU,uBAAuB,qBAEjCC,OAAO,OACP,EACE,MACA,OACA,SAKD,EAJE;CACD,MAAM,KAAK,GAAG,YAAY;CAC1B,OAAO,YAAY;CACnB,SAAS,QAAQ;AAClB,GACDC,SAAS,iBAAiB,KAAK,SAAS,MACxC,EAAE,cAA+C,GAA/B;CAAE,eAAe;AAAc,GACjDC,OAAM;AAsBR,OAAO,iBAAS,UACdF,OAAO,OACPG,cACAC,aACC;AAKH,OAAO,iBAAS,aAAa,UAAU,6BACrCJ,OAAO,OACPK,OAAO,KAAK,SAAS,IACrB,EAAE,cAA+C,GAA/B;CAAE,eAAe;AAAc,IAChD,KAAK,SAAS","names":["expectedId?: string | number | boolean","expected?: {\n where: WhereClause<any>;\n orderBy: Record<string, \"asc\" | \"desc\" | undefined>;\n }","bindings: Record<string, any>","options?: { level?: string; msgPrefix?: string }","x: Unsubscribable","subFn: MockedObject<Observer<ListPayload | undefined>>","resolvedList: ObjectHolder[] | Osdk.Instance<T>[]","payloadOptions: Omit<Partial<ListPayload>, \"resolvedList\">","subFn: MockedObject<Observer<ObjectPayload | undefined>>","object: Osdk.Instance<T>","status?: Status","subFn: Mock<(e: any) => void> | MockedObject<Observer<any>>","e: any","times: number","observer: MockedObject<\n Observer<any>\n >","q: {\n loading?: unknown;\n loaded: unknown;\n }","x: Partial<Entry<any>>","x: Partial<ObjectPayload>","x: Partial<ListPayload>","n: number","store: Store","objects: ObjectHolder[] | Osdk.Instance<T>[]","opts: ListQueryOptions","type: string","pk: number","value: Osdk.Instance<T>"],"sources":["../../../../src/observable/internal/testUtils.ts"],"version":3,"file":"testUtils.d.ts"}
@@ -1,7 +1,4 @@
1
1
  export { augment } from "../object/fetchPage.js";
2
2
  export type { ActionSignatureFromDef } from "../actions/applyAction.js";
3
- export type { ListPayload } from "../observable/ListPayload.js";
4
- export type { ObjectPayload } from "../observable/ObjectPayload.js";
5
- export type { Unsubscribable } from "../observable/ObservableClient.js";
6
- export type { ObservableClient } from "../observable/ObservableClient.js";
7
3
  export { createObservableClient } from "../observable/ObservableClient.js";
4
+ export type { ObservableClient, ObserveObjectArgs, ObserveObjectsArgs, Observer, Unsubscribable } from "../observable/ObservableClient.js";
@@ -1 +1 @@
1
- {"mappings":"AAgBA,SAAS,eAAe;AAGxB,eAAc,8BAA8B;AAC5C,eAAc,mBAAmB;AACjC,eAAc,qBAAqB;AACnC,eAAc,sBAAsB;AACpC,eAAc,wBAAwB;AACtC,SAAS,8BAA8B","names":[],"sources":["../../../src/public/unstable-do-not-use.ts"],"version":3,"file":"unstable-do-not-use.d.ts"}
1
+ {"mappings":"AAgBA,SAAS,eAAe;AAGxB,eAAc,8BAA8B;AAC5C,SAAS,8BAA8B;AACvC,eACE,kBACA,mBACA,oBACA,UACA,sBACK","names":[],"sources":["../../../src/public/unstable-do-not-use.ts"],"version":3,"file":"unstable-do-not-use.d.ts"}