nimbu-js-sdk 2.0.0-beta.2 → 2.0.0-beta.4

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 (101) hide show
  1. package/README.md +15 -8
  2. package/dist/index.d.ts +56 -25
  3. package/dist/internal.d.ts +7 -2
  4. package/dist/nimbu-js-sdk.cjs.development.js +8157 -7540
  5. package/dist/nimbu-js-sdk.cjs.development.js.map +1 -1
  6. package/dist/nimbu-js-sdk.cjs.production.min.js +1 -1
  7. package/dist/nimbu-js-sdk.cjs.production.min.js.map +1 -1
  8. package/dist/nimbu-js-sdk.esm.js +8152 -7542
  9. package/dist/nimbu-js-sdk.esm.js.map +1 -1
  10. package/dist/nimbu-js-sdk.umd.development.js +18570 -0
  11. package/dist/nimbu-js-sdk.umd.development.js.map +1 -0
  12. package/dist/nimbu-js-sdk.umd.production.min.js +2 -0
  13. package/dist/nimbu-js-sdk.umd.production.min.js.map +1 -0
  14. package/dist/nimbu.js +18573 -0
  15. package/dist/nimbu.min.js +5 -0
  16. package/dist/sdk/acl.d.ts +3 -2
  17. package/dist/sdk/api.d.ts +12 -12
  18. package/dist/sdk/atomic-json.d.ts +4 -0
  19. package/dist/sdk/atomic.d.ts +0 -41
  20. package/dist/sdk/collection.d.ts +10 -3
  21. package/dist/sdk/config.d.ts +8 -8
  22. package/dist/sdk/coupon.d.ts +1 -1
  23. package/dist/sdk/current-session.d.ts +2 -0
  24. package/dist/sdk/customer-sessions.d.ts +1 -1
  25. package/dist/sdk/customer.d.ts +18 -5
  26. package/dist/sdk/default-storages.d.ts +5 -0
  27. package/dist/sdk/device.d.ts +2 -1
  28. package/dist/sdk/file.d.ts +1 -1
  29. package/dist/sdk/gallery-image.d.ts +2 -1
  30. package/dist/sdk/gallery.d.ts +25 -1
  31. package/dist/sdk/initialize.d.ts +6 -0
  32. package/dist/sdk/object-factory.d.ts +7 -0
  33. package/dist/sdk/object.d.ts +24 -2
  34. package/dist/sdk/order.d.ts +1 -1
  35. package/dist/sdk/page.d.ts +16 -4
  36. package/dist/sdk/product-aggregate.d.ts +3 -4
  37. package/dist/sdk/product-factory.d.ts +2 -0
  38. package/dist/sdk/product.d.ts +3 -1
  39. package/dist/sdk/query-factory.d.ts +3 -0
  40. package/dist/sdk/query.d.ts +3 -1
  41. package/dist/sdk/relation.d.ts +20 -1
  42. package/dist/sdk/requests.d.ts +2 -1
  43. package/dist/sdk/role.d.ts +4 -1
  44. package/dist/sdk/select-option-list.d.ts +3 -1
  45. package/dist/sdk/state-mutations.d.ts +2 -1
  46. package/dist/sdk/state.d.ts +2 -1
  47. package/dist/sdk/storage-types.d.ts +17 -0
  48. package/dist/sdk/storage.d.ts +2 -18
  49. package/dist/sdk/version.d.ts +1 -0
  50. package/dist/utils/array-contains-object.d.ts +1 -2
  51. package/dist/utils/sdk-type-guards.d.ts +18 -0
  52. package/dist/utils/task-queue.d.ts +1 -1
  53. package/dist/utils/types.d.ts +6 -1
  54. package/package.json +24 -10
  55. package/react-native.js +6 -0
  56. package/src/index.ts +83 -11
  57. package/src/internal.ts +8 -4
  58. package/src/sdk/acl.ts +27 -15
  59. package/src/sdk/api.ts +3 -2
  60. package/src/sdk/atomic-json.ts +51 -0
  61. package/src/sdk/atomic.ts +8 -330
  62. package/src/sdk/collection.ts +87 -54
  63. package/src/sdk/config.ts +23 -92
  64. package/src/sdk/coupon.ts +1 -1
  65. package/src/sdk/current-session.ts +7 -0
  66. package/src/sdk/customer-sessions.ts +45 -18
  67. package/src/sdk/customer.ts +108 -61
  68. package/src/sdk/default-storages.ts +103 -0
  69. package/src/sdk/device.ts +2 -1
  70. package/src/sdk/file.ts +3 -1
  71. package/src/sdk/functions.ts +3 -2
  72. package/src/sdk/gallery-image.ts +3 -1
  73. package/src/sdk/gallery.ts +186 -47
  74. package/src/sdk/initialize.ts +75 -0
  75. package/src/sdk/object-factory.ts +16 -0
  76. package/src/sdk/object.ts +195 -34
  77. package/src/sdk/order.ts +7 -3
  78. package/src/sdk/page.ts +181 -154
  79. package/src/sdk/product-aggregate.ts +4 -2
  80. package/src/sdk/product-factory.ts +9 -0
  81. package/src/sdk/product.ts +7 -1
  82. package/src/sdk/push.ts +2 -1
  83. package/src/sdk/query-factory.ts +11 -0
  84. package/src/sdk/query.ts +21 -17
  85. package/src/sdk/relation.ts +152 -1
  86. package/src/sdk/requests.ts +25 -17
  87. package/src/sdk/role.ts +4 -1
  88. package/src/sdk/select-option-list.ts +6 -1
  89. package/src/sdk/state-mutations.ts +14 -19
  90. package/src/sdk/state.ts +2 -1
  91. package/src/sdk/storage-types.ts +19 -0
  92. package/src/sdk/storage.ts +6 -112
  93. package/src/sdk/version.ts +1 -0
  94. package/src/utils/array-contains-object.ts +8 -3
  95. package/src/utils/decode.ts +14 -17
  96. package/src/utils/encode.ts +8 -23
  97. package/src/utils/sdk-type-guards.ts +92 -0
  98. package/src/utils/task-queue.ts +1 -1
  99. package/src/utils/traverse.ts +3 -1
  100. package/src/utils/types.ts +6 -1
  101. package/src/utils/unique.ts +3 -2
package/README.md CHANGED
@@ -4,20 +4,27 @@ The SDK for building Javascript apps on top of Nimbu
4
4
 
5
5
  ## Development
6
6
 
7
- 1. Run `yarn install`
8
- 2. Start the webpack dev server with `yarn run start`
9
- 3. Visit http://localhost:8080/ (will open automatically)
10
- 4. Play around in the console
7
+ 1. Run `pnpm install`
8
+ 2. Run `pnpm test --ci --coverage --maxWorkers=2`
9
+ 3. Run `pnpm build`
10
+ 4. Run `pnpm size`
11
+ 5. Run `pnpm package-smoke`
11
12
 
12
13
  ## Releasing
13
14
 
14
- 1. Run `yarn run build`
15
+ 1. Use Node 22 or newer.
16
+ 2. Run `pnpm lint`
17
+ 3. Run `pnpm test --ci --coverage --maxWorkers=2`
18
+ 4. Run `pnpm build`
19
+ 5. Run `pnpm size`
20
+ 6. Run `pnpm package-smoke`
15
21
 
16
- The files for distribution are placed in `dist`
22
+ The package entrypoints and browser bundles are placed in `dist`. The tracked
23
+ browser files are `dist/nimbu.js` and `dist/nimbu.min.js`.
17
24
 
18
25
  ## Version 0.5.2
19
26
 
20
- The build system has switched to `webpack` for version 1.0.0. A copy of the last
27
+ The build system switched to `webpack` for version 1.0.0. A copy of the last
21
28
  release before that (0.5.2) is available in the `build` directory.
22
29
 
23
30
  ## Breaking changes
@@ -47,6 +54,6 @@ to `Nimbu.initialize()`, so you know it already :-)
47
54
 
48
55
  ### Nimbu.initialize
49
56
 
50
- `Nimbu.initialize` now returns a `Nimbu.Future` that resolves when all
57
+ `Nimbu.initialize` returns a `Promise` that resolves when all
51
58
  initialization is finished. You should wait for it to resolve before using the
52
59
  SDK.
package/dist/index.d.ts CHANGED
@@ -1,53 +1,80 @@
1
- import { NimbuACL, NimbuAPI, NimbuCloud, NimbuCollection, NimbuCoupon, NimbuCustomer, NimbuDevice, NimbuFile, NimbuGallery, NimbuGalleryImage, NimbuObject, NimbuOrder, NimbuPage, NimbuProduct, NimbuProductAggregate, NimbuPush, NimbuQuery, NimbuRelation, NimbuRole, NimbuSelectOption, NimbuSelectOptionList, NimbuError, IAjax, IStorage, ChannelConfig, Select, MultiSelect } from './internal';
1
+ import { AtomicAdd, AtomicAddUnique, AtomicGallery, AtomicIncrement, AtomicRelation, AtomicRemove, AtomicRemoveFile, AtomicSet, AtomicUnset, NimbuACL, NimbuAPI, NimbuAtomic, NimbuCloud, NimbuCollection, NimbuCoupon, NimbuCustomer, NimbuDevice, NimbuFile, NimbuGallery, NimbuGalleryImage, NimbuObject, NimbuOrder, NimbuPage, NimbuProduct, NimbuProductAggregate, NimbuPush, NimbuQuery, NimbuRelation, NimbuRole, NimbuSelectOption, NimbuSelectOptionList, NimbuError, atomicFromJSON } from './internal';
2
+ import type { ChannelConfig, Select, MultiSelect } from './internal';
3
+ import _ from 'underscore';
4
+ declare const Atomic: typeof NimbuAtomic & {
5
+ Set: typeof AtomicSet;
6
+ Unset: typeof AtomicUnset;
7
+ Increment: typeof AtomicIncrement;
8
+ Add: typeof AtomicAdd;
9
+ AddUnique: typeof AtomicAddUnique;
10
+ Remove: typeof AtomicRemove;
11
+ Relation: typeof AtomicRelation;
12
+ RemoveFile: typeof AtomicRemoveFile;
13
+ Gallery: typeof AtomicGallery;
14
+ _decode: typeof atomicFromJSON;
15
+ };
2
16
  declare const Nimbu: {
3
17
  VERSION: string;
18
+ _: _.UnderscoreStatic;
4
19
  ACL: typeof NimbuACL;
5
20
  API: {
6
- get: <T extends Record<string, any>>(path: string, options?: import("./internal").APIRequestOptions | undefined) => Promise<import("./internal").AjaxResponse<T>>;
7
- post: <T_1 extends Record<string, any>>(path: string, data: any, options?: import("./internal").APIRequestOptions | undefined) => Promise<import("./internal").AjaxResponse<T_1>>;
8
- put: <T_2 extends Record<string, any>>(path: string, data: any, options?: import("./internal").APIRequestOptions | undefined) => Promise<import("./internal").AjaxResponse<T_2>>;
9
- patch: <T_3 extends Record<string, any>>(path: string, data: any, options?: import("./internal").APIRequestOptions | undefined) => Promise<import("./internal").AjaxResponse<T_3>>;
10
- delete: (path: string, options?: import("./internal").APIRequestOptions | undefined) => Promise<import("./internal").AjaxResponse<Record<string, any>>>;
11
- request: <T_4 extends Record<string, any>>(method: string, path: string, data: any, options?: import("./internal").APIRequestOptions) => Promise<import("./internal").AjaxResponse<T_4>>;
21
+ get: <T extends Record<string, any>>(path: string, options?: import("./internal").APIRequestOptions | undefined) => Promise<T>;
22
+ post: <T_1 extends Record<string, any>>(path: string, data: any, options?: import("./internal").APIRequestOptions | undefined) => Promise<T_1>;
23
+ put: <T_2 extends Record<string, any>>(path: string, data: any, options?: import("./internal").APIRequestOptions | undefined) => Promise<T_2>;
24
+ patch: <T_3 extends Record<string, any>>(path: string, data: any, options?: import("./internal").APIRequestOptions | undefined) => Promise<T_3>;
25
+ delete: (path: string, options?: import("./internal").APIRequestOptions | undefined) => Promise<Record<string, any>>;
26
+ request: <T_4 extends Record<string, any>>(method: string, path: string, data: any, options?: import("./internal").APIRequestOptions) => Promise<T_4>;
27
+ };
28
+ Atomic: typeof NimbuAtomic & {
29
+ Set: typeof AtomicSet;
30
+ Unset: typeof AtomicUnset;
31
+ Increment: typeof AtomicIncrement;
32
+ Add: typeof AtomicAdd;
33
+ AddUnique: typeof AtomicAddUnique;
34
+ Remove: typeof AtomicRemove;
35
+ Relation: typeof AtomicRelation;
36
+ RemoveFile: typeof AtomicRemoveFile;
37
+ Gallery: typeof AtomicGallery;
38
+ _decode: typeof atomicFromJSON;
12
39
  };
13
40
  Cloud: {
14
41
  run: <T_5 extends Record<string, any> = any>(name: string, data: any) => Promise<T_5>;
15
42
  };
16
43
  Config: {
17
44
  get<U extends ChannelConfig = ChannelConfig, K extends keyof {
18
- Ajax?: IAjax | undefined;
45
+ Ajax?: import("./internal").IAjax | undefined;
19
46
  endpoint: string;
20
47
  isNode: boolean;
21
48
  OAuth2Manager?: import("./internal").OAuth2 | undefined;
22
49
  SessionManager?: import("./internal").ISessionManager<U> | undefined;
23
50
  StateManager?: import("./internal").IStateManager | undefined;
24
- Storage?: IStorage | undefined;
51
+ Storage?: import("./internal").IStorage | undefined;
25
52
  useACL: boolean;
26
53
  useSSO: boolean;
27
54
  version: string;
28
55
  accessToken?: string | undefined;
29
56
  installationId?: string | undefined;
30
57
  } = never, T_6 extends boolean = false>(key: K, allowNull?: T_6): T_6 extends true ? {
31
- Ajax?: IAjax | undefined;
58
+ Ajax?: import("./internal").IAjax | undefined;
32
59
  endpoint: string;
33
60
  isNode: boolean;
34
61
  OAuth2Manager?: import("./internal").OAuth2 | undefined;
35
62
  SessionManager?: import("./internal").ISessionManager<ChannelConfig> | undefined;
36
63
  StateManager?: import("./internal").IStateManager | undefined;
37
- Storage?: IStorage | undefined;
64
+ Storage?: import("./internal").IStorage | undefined;
38
65
  useACL: boolean;
39
66
  useSSO: boolean;
40
67
  version: string;
41
68
  accessToken?: string | undefined;
42
69
  installationId?: string | undefined;
43
70
  }[K] | undefined : {
44
- Ajax?: IAjax | undefined;
71
+ Ajax?: import("./internal").IAjax | undefined;
45
72
  endpoint: string;
46
73
  isNode: boolean;
47
74
  OAuth2Manager?: import("./internal").OAuth2 | undefined;
48
75
  SessionManager?: import("./internal").ISessionManager<ChannelConfig> | undefined;
49
76
  StateManager?: import("./internal").IStateManager | undefined;
50
- Storage?: IStorage | undefined;
77
+ Storage?: import("./internal").IStorage | undefined;
51
78
  useACL: boolean;
52
79
  useSSO: boolean;
53
80
  version: string;
@@ -55,26 +82,26 @@ declare const Nimbu: {
55
82
  installationId?: string | undefined;
56
83
  }[K];
57
84
  set<K_1 extends keyof {
58
- Ajax?: IAjax | undefined;
85
+ Ajax?: import("./internal").IAjax | undefined;
59
86
  endpoint: string;
60
87
  isNode: boolean;
61
88
  OAuth2Manager?: import("./internal").OAuth2 | undefined;
62
89
  SessionManager?: import("./internal").ISessionManager<ChannelConfig> | undefined;
63
90
  StateManager?: import("./internal").IStateManager | undefined;
64
- Storage?: IStorage | undefined;
91
+ Storage?: import("./internal").IStorage | undefined;
65
92
  useACL: boolean;
66
93
  useSSO: boolean;
67
94
  version: string;
68
95
  accessToken?: string | undefined;
69
96
  installationId?: string | undefined;
70
97
  }>(key: K_1, value: {
71
- Ajax?: IAjax | undefined;
98
+ Ajax?: import("./internal").IAjax | undefined;
72
99
  endpoint: string;
73
100
  isNode: boolean;
74
101
  OAuth2Manager?: import("./internal").OAuth2 | undefined;
75
102
  SessionManager?: import("./internal").ISessionManager<ChannelConfig> | undefined;
76
103
  StateManager?: import("./internal").IStateManager | undefined;
77
- Storage?: IStorage | undefined;
104
+ Storage?: import("./internal").IStorage | undefined;
78
105
  useACL: boolean;
79
106
  useSSO: boolean;
80
107
  version: string;
@@ -95,12 +122,12 @@ declare const Nimbu: {
95
122
  readonly initialized: boolean;
96
123
  get installationId(): string | undefined;
97
124
  set installationId(value: string);
98
- readonly ajax: IAjax;
99
- setAjax(fn: IAjax): void;
125
+ readonly ajax: import("./internal").IAjax;
126
+ setAjax(fn: import("./internal").IAjax): void;
100
127
  setStateManager(manager: import("./internal").IStateManager): void;
101
128
  getStateManager(): import("./internal").IStateManager;
102
- setStorage(storage: IStorage): void;
103
- getStorage(): IStorage;
129
+ setStorage(storage: import("./internal").IStorage): void;
130
+ getStorage(): import("./internal").IStorage;
104
131
  setSessionManager<T_7 extends ChannelConfig>(manager: import("./internal").ISessionManager<T_7>): void;
105
132
  getSessionManager<T_8 extends ChannelConfig>(): import("./internal").ISessionManager<T_8>;
106
133
  };
@@ -135,10 +162,14 @@ declare const Nimbu: {
135
162
  Role: typeof NimbuRole;
136
163
  SelectOption: typeof NimbuSelectOption;
137
164
  SelectOptionList: typeof NimbuSelectOptionList;
138
- setAjax: (fn: IAjax) => void;
139
- setStorage: (storage: IStorage) => void;
165
+ setAjax: (fn: import("./internal").IAjax) => void;
166
+ setStorage: (storage: import("./internal").IStorage) => void;
167
+ setStorageEngine: (storage: import("./internal").IStorage) => void;
140
168
  useACL: () => void;
141
- useSSO: (sso: boolean) => boolean;
169
+ useSSO: (sso?: boolean) => boolean;
142
170
  };
143
- export { ChannelConfig, Select, MultiSelect, NimbuACL, NimbuAPI, NimbuCloud, NimbuCollection, NimbuCoupon, NimbuCustomer, NimbuDevice, NimbuFile, NimbuGallery, NimbuGalleryImage, NimbuObject, NimbuOrder, NimbuPage, NimbuProduct, NimbuProductAggregate, NimbuPush, NimbuQuery, NimbuRelation, NimbuRole, NimbuSelectOption, NimbuSelectOptionList, NimbuError, };
171
+ export type { ChannelConfig, Select, MultiSelect };
172
+ export type { IStorage, SyncStorage, AsyncStorage, IAjax, RequestMethod, RequestOptions, IProgressHandler, IOptions, AjaxHeaders, AjaxResponse, ISetOptions, IGetOptions, ICommonFields, Reference, NimbuObjectLike, PersistedNimbuCustomer, NimbuGalleryImageJSON, AuthOptions, InitialOAuth2AccessToken, APIRequestOptions, NimbuQueryOptions, IStateManager, ILoginOptions, ISessionManager, AttributeMap, AtomicsMap, ObjectCache, State, ObjectIdentifier, EncodeOptions, } from './internal';
173
+ export { Atomic, NimbuAtomic, NimbuACL, NimbuAPI, NimbuCloud, NimbuCollection, NimbuCoupon, NimbuCustomer, NimbuDevice, NimbuFile, NimbuGallery, NimbuGalleryImage, NimbuObject, NimbuOrder, NimbuPage, NimbuProduct, NimbuProductAggregate, NimbuPush, NimbuQuery, NimbuRelation, NimbuRole, NimbuSelectOption, NimbuSelectOptionList, NimbuError, };
174
+ export { OAuth2, TaskQueue, LocalStorage, MemoryStorage, BrowserSessionStorage } from './internal';
144
175
  export default Nimbu;
@@ -1,11 +1,14 @@
1
- export declare const VERSION = "2.0.0.alpha.2";
2
- export * from './utils/types';
1
+ export type * from './utils/types';
2
+ export type * from './sdk/storage-types';
3
+ export * from './sdk/version';
3
4
  export * from './sdk/object';
4
5
  export * from './sdk/atomic';
6
+ export * from './sdk/atomic-json';
5
7
  export * from './sdk/acl';
6
8
  export * from './sdk/api';
7
9
  export * from './sdk/collection';
8
10
  export * from './sdk/config';
11
+ export * from './sdk/initialize';
9
12
  export * from './sdk/coupon';
10
13
  export * from './sdk/customer';
11
14
  export * from './sdk/customer-sessions';
@@ -28,12 +31,14 @@ export * from './sdk/role';
28
31
  export * from './sdk/oauth2';
29
32
  export * from './sdk/select-option';
30
33
  export * from './sdk/select-option-list';
34
+ export * from './sdk/default-storages';
31
35
  export * from './sdk/storage';
32
36
  export * from './sdk/state';
33
37
  export * from './utils/array-contains-object';
34
38
  export * from './utils/decode';
35
39
  export * from './utils/encode';
36
40
  export * from './utils/promise-utils';
41
+ export * from './utils/sdk-type-guards';
37
42
  export * from './utils/traverse';
38
43
  export * from './utils/unique';
39
44
  export * from './utils/task-queue';