@venizia/ardor-admin 0.4.8-0 → 0.4.8-2

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 (90) hide show
  1. package/README.md +8 -4
  2. package/dist/common/locales/en.d.ts +1 -0
  3. package/dist/common/locales/en.js +1 -0
  4. package/dist/common/locales/vi.d.ts +1 -0
  5. package/dist/common/locales/vi.js +1 -0
  6. package/dist/common/merge.d.ts +11 -0
  7. package/dist/common/merge.js +25 -0
  8. package/dist/common/types.d.ts +29 -2
  9. package/dist/components/application.d.ts +7 -0
  10. package/dist/components/application.js +7 -0
  11. package/dist/components/resolve.d.ts +1 -0
  12. package/dist/components/resolve.js +1 -0
  13. package/dist/features/feature.d.ts +4 -0
  14. package/dist/features/feature.js +1 -0
  15. package/dist/features/messages.js +3 -4
  16. package/dist/hooks/use-document-title.d.ts +4 -0
  17. package/dist/hooks/use-features.js +2 -2
  18. package/dist/hooks/use-notify-error.d.ts +4 -0
  19. package/dist/hooks/use-notify-error.js +4 -0
  20. package/dist/hooks/use-refresh-token.d.ts +4 -0
  21. package/dist/hooks/use-refresh-token.js +4 -0
  22. package/dist/hooks/use-request-header-locale.d.ts +8 -1
  23. package/dist/hooks/use-request-header-locale.js +4 -0
  24. package/dist/hooks/use-translate.d.ts +20 -1
  25. package/dist/hooks/use-translate.js +5 -10
  26. package/dist/providers/auth.d.ts +55 -1
  27. package/dist/providers/auth.js +54 -1
  28. package/dist/providers/count-rest-data.d.ts +8 -0
  29. package/dist/providers/count-rest-data.js +8 -0
  30. package/dist/providers/i18n.d.ts +22 -2
  31. package/dist/providers/i18n.js +28 -5
  32. package/dist/providers/list-filter.d.ts +6 -0
  33. package/dist/providers/list-filter.js +7 -8
  34. package/dist/providers/rest-data.d.ts +63 -1
  35. package/dist/providers/rest-data.js +74 -8
  36. package/package.json +14 -16
  37. package/dist/common/index.d.ts.map +0 -1
  38. package/dist/common/index.js.map +0 -1
  39. package/dist/common/locales/en.d.ts.map +0 -1
  40. package/dist/common/locales/en.js.map +0 -1
  41. package/dist/common/locales/index.d.ts.map +0 -1
  42. package/dist/common/locales/index.js.map +0 -1
  43. package/dist/common/locales/vi.d.ts.map +0 -1
  44. package/dist/common/locales/vi.js.map +0 -1
  45. package/dist/common/types.d.ts.map +0 -1
  46. package/dist/common/types.js.map +0 -1
  47. package/dist/components/application.d.ts.map +0 -1
  48. package/dist/components/application.js.map +0 -1
  49. package/dist/components/index.d.ts.map +0 -1
  50. package/dist/components/index.js.map +0 -1
  51. package/dist/components/resolve.d.ts.map +0 -1
  52. package/dist/components/resolve.js.map +0 -1
  53. package/dist/features/feature.d.ts.map +0 -1
  54. package/dist/features/feature.js.map +0 -1
  55. package/dist/features/index.d.ts.map +0 -1
  56. package/dist/features/index.js.map +0 -1
  57. package/dist/features/messages.d.ts.map +0 -1
  58. package/dist/features/messages.js.map +0 -1
  59. package/dist/hooks/index.d.ts.map +0 -1
  60. package/dist/hooks/index.js.map +0 -1
  61. package/dist/hooks/use-document-title.d.ts.map +0 -1
  62. package/dist/hooks/use-document-title.js.map +0 -1
  63. package/dist/hooks/use-features.d.ts.map +0 -1
  64. package/dist/hooks/use-features.js.map +0 -1
  65. package/dist/hooks/use-html-lang.d.ts.map +0 -1
  66. package/dist/hooks/use-html-lang.js.map +0 -1
  67. package/dist/hooks/use-notify-error.d.ts.map +0 -1
  68. package/dist/hooks/use-notify-error.js.map +0 -1
  69. package/dist/hooks/use-refresh-token.d.ts.map +0 -1
  70. package/dist/hooks/use-refresh-token.js.map +0 -1
  71. package/dist/hooks/use-request-header-locale.d.ts.map +0 -1
  72. package/dist/hooks/use-request-header-locale.js.map +0 -1
  73. package/dist/hooks/use-translate.d.ts.map +0 -1
  74. package/dist/hooks/use-translate.js.map +0 -1
  75. package/dist/index.d.ts.map +0 -1
  76. package/dist/index.js.map +0 -1
  77. package/dist/providers/auth.d.ts.map +0 -1
  78. package/dist/providers/auth.js.map +0 -1
  79. package/dist/providers/count-rest-data.d.ts.map +0 -1
  80. package/dist/providers/count-rest-data.js.map +0 -1
  81. package/dist/providers/i18n-sources.d.ts.map +0 -1
  82. package/dist/providers/i18n-sources.js.map +0 -1
  83. package/dist/providers/i18n.d.ts.map +0 -1
  84. package/dist/providers/i18n.js.map +0 -1
  85. package/dist/providers/index.d.ts.map +0 -1
  86. package/dist/providers/index.js.map +0 -1
  87. package/dist/providers/list-filter.d.ts.map +0 -1
  88. package/dist/providers/list-filter.js.map +0 -1
  89. package/dist/providers/rest-data.d.ts.map +0 -1
  90. package/dist/providers/rest-data.js.map +0 -1
@@ -1,6 +1,14 @@
1
1
  import { RequestMethods, RequestTypes } from '@venizia/ardor-kernel';
2
2
  import { DefaultRestDataProvider } from './rest-data.js';
3
+ /**
4
+ * A `DefaultRestDataProvider` whose list reads take their `total` from the count route
5
+ * (`GET /{resource}/count` with the same `where`) instead of the `Content-Range` header.
6
+ */
3
7
  export class CountRestDataProvider extends DefaultRestDataProvider {
8
+ /**
9
+ * Sends the list GET and the count GET together; `total` is the count's `count`, or `0` when the
10
+ * count answers none. Rejects when either request rejects.
11
+ */
4
12
  requestList(opts) {
5
13
  const { resource, queryKey, filter } = opts;
6
14
  // The base class reads the rows and keeps the route's list extras as `meta.extra`.
@@ -7,6 +7,26 @@ import { LocaleSources } from './i18n-sources.js';
7
7
  /**
8
8
  * The options hold data (`i18nSources`, `languages`); the hooks are `resolveInitialLocale` and
9
9
  * `composeMessages`, each taking one `opts` object.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * import { configuration, CoreBindings, englishMessages, provide, vietnameseMessages } from '@venizia/ardor';
14
+ *
15
+ * @configuration()
16
+ * export class I18nConfiguration {
17
+ * @provide({ key: CoreBindings.I18N_PROVIDER_OPTIONS })
18
+ * options() {
19
+ * return {
20
+ * languages: [{ locale: 'en', name: 'English' }, { locale: 'vi', name: 'Tieng Viet' }],
21
+ * i18nSources: {
22
+ * en: englishMessages,
23
+ * // A loader runs the first time the locale is used, such as () => import('./vi').
24
+ * vi: async () => vietnameseMessages,
25
+ * },
26
+ * };
27
+ * }
28
+ * }
29
+ * ```
10
30
  */
11
31
  export declare class DefaultI18nProvider extends BaseProvider<I18nProvider> {
12
32
  protected i18nProviderOptions: II18nProviderOptions;
@@ -15,8 +35,8 @@ export declare class DefaultI18nProvider extends BaseProvider<I18nProvider> {
15
35
  constructor(i18nProviderOptions: II18nProviderOptions, features?: Array<TFeature>);
16
36
  /**
17
37
  * The locale the admin starts in: the browser's language when it is one of `locales`, else `en`.
18
- * Read when the provider is built, not when the module is imported, and not at all outside a
19
- * browser.
38
+ * Read when the provider is built, not when the module is imported. Without a `navigator` the
39
+ * language is `en-US`.
20
40
  */
21
41
  protected resolveInitialLocale(opts: {
22
42
  locales: Array<string>;
@@ -12,15 +12,35 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  };
13
13
  var DefaultI18nProvider_1;
14
14
  import { inject } from '@venizia/ignis-inversion';
15
- import merge from 'lodash/merge.js';
16
15
  import polyglotI18nProvider from 'ra-i18n-polyglot';
17
16
  import { BaseProvider, CoreBindings } from '@venizia/ardor-kernel';
18
17
  import { englishMessages } from '../common/locales/index.js';
18
+ import { deepMerge } from '../common/merge.js';
19
19
  import { FeatureMessages } from '../features/messages.js';
20
20
  import { LazyLocales, LocaleSources } from './i18n-sources.js';
21
21
  /**
22
22
  * The options hold data (`i18nSources`, `languages`); the hooks are `resolveInitialLocale` and
23
23
  * `composeMessages`, each taking one `opts` object.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * import { configuration, CoreBindings, englishMessages, provide, vietnameseMessages } from '@venizia/ardor';
28
+ *
29
+ * @configuration()
30
+ * export class I18nConfiguration {
31
+ * @provide({ key: CoreBindings.I18N_PROVIDER_OPTIONS })
32
+ * options() {
33
+ * return {
34
+ * languages: [{ locale: 'en', name: 'English' }, { locale: 'vi', name: 'Tieng Viet' }],
35
+ * i18nSources: {
36
+ * en: englishMessages,
37
+ * // A loader runs the first time the locale is used, such as () => import('./vi').
38
+ * vi: async () => vietnameseMessages,
39
+ * },
40
+ * };
41
+ * }
42
+ * }
43
+ * ```
24
44
  */
25
45
  let DefaultI18nProvider = DefaultI18nProvider_1 = class DefaultI18nProvider extends BaseProvider {
26
46
  constructor(i18nProviderOptions, features = []) {
@@ -34,8 +54,8 @@ let DefaultI18nProvider = DefaultI18nProvider_1 = class DefaultI18nProvider exte
34
54
  }
35
55
  /**
36
56
  * The locale the admin starts in: the browser's language when it is one of `locales`, else `en`.
37
- * Read when the provider is built, not when the module is imported, and not at all outside a
38
- * browser.
57
+ * Read when the provider is built, not when the module is imported. Without a `navigator` the
58
+ * language is `en-US`.
39
59
  */
40
60
  resolveInitialLocale(opts) {
41
61
  const browserLanguage = typeof navigator === 'undefined' ? undefined : navigator.language;
@@ -49,8 +69,11 @@ let DefaultI18nProvider = DefaultI18nProvider_1 = class DefaultI18nProvider exte
49
69
  */
50
70
  composeMessages(opts) {
51
71
  const source = this.localeSources.readNow({ locale: opts.locale });
52
- // lodash `merge` loses the message type; every source is a (partial) set of messages.
53
- return merge({}, opts.messages, source ?? englishMessages);
72
+ // A merge of (partial) message sets is a set of messages, which a merge that takes any object
73
+ // cannot say in its type: the assertion is here, where the sources are known, not inside it.
74
+ return deepMerge({
75
+ sources: [opts.messages, source ?? englishMessages],
76
+ });
54
77
  }
55
78
  value(_container) {
56
79
  const { languages = [{ locale: 'en', name: 'English' }] } = this.i18nProviderOptions;
@@ -4,16 +4,22 @@ import { type ICustomParams } from '@venizia/ardor-kernel';
4
4
  /** The IGNIS filter a list request sends. Any other key of the list params is a filter key too. */
5
5
  export interface IListFilter {
6
6
  where: Record<string, unknown>;
7
+ /** Each entry is `'<field> <ASC|DESC>'`. */
7
8
  order?: Array<string>;
8
9
  limit?: number;
10
+ /** IGNIS's offset; `ListFilterBuilder.build` sets this one. */
9
11
  skip?: number;
12
+ /** An alias of `skip`. */
10
13
  offset?: number;
11
14
  include?: unknown;
12
15
  fields?: unknown;
16
+ /** Not part of the filter sent: `ListFilterBuilder.build` moves it into the query string. */
13
17
  params?: Record<string, unknown>;
18
+ /** Lifts `limit` and `skip`: the list is not paginated. */
14
19
  noLimit?: boolean;
15
20
  [key: string]: unknown;
16
21
  }
22
+ /** Builds the filter, query and extras of a list request from react-admin's list params. */
17
23
  export declare class ListFilterBuilder {
18
24
  /** `filter.params` as the keys of the query string, as a copy. */
19
25
  static extractQueryParams(opts: {
@@ -1,5 +1,5 @@
1
- import omit from 'lodash/omit.js';
2
1
  import { ValueUtility } from '@venizia/ardor-kernel';
2
+ /** Builds the filter, query and extras of a list request from react-admin's list params. */
3
3
  export class ListFilterBuilder {
4
4
  /** `filter.params` as the keys of the query string, as a copy. */
5
5
  static extractQueryParams(opts) {
@@ -18,13 +18,12 @@ export class ListFilterBuilder {
18
18
  filter = { ...filterInput, where: { ...filterInput.where } };
19
19
  }
20
20
  else {
21
- filter['where'] = {
22
- ...omit(filterInput, ['include', 'params', 'noLimit', 'fields']),
23
- };
24
- filter['include'] = filterInput?.include;
25
- filter['fields'] = filterInput?.fields;
26
- filter['params'] = filterInput?.params;
27
- filter['noLimit'] = filterInput?.noLimit;
21
+ const { include, fields, params, noLimit, ...where } = filterInput ?? {};
22
+ filter['where'] = where;
23
+ filter['include'] = include;
24
+ filter['fields'] = fields;
25
+ filter['params'] = params;
26
+ filter['noLimit'] = noLimit;
28
27
  }
29
28
  if (sort?.field) {
30
29
  filter['order'] = [`${sort.field} ${sort.order}`];
@@ -4,10 +4,38 @@ import { BaseProvider, DefaultNetworkRequestService, type IApplicationInfo, type
4
4
  import type { TExtraRequest } from '@venizia/ignis-kernel/repository';
5
5
  import type { IDataProvider, IRestRequestOptions } from '../common/index.js';
6
6
  import { type IListFilter } from './list-filter.js';
7
+ /**
8
+ * The react-admin data provider over an IGNIS REST API. Each method takes one `opts` object
9
+ * (`{ resource, params }`) and resolves the result react-admin expects; it rejects with the error
10
+ * the network service throws (a non-2xx response, an empty base URL, an auth failure that cannot be
11
+ * recovered). A subclass overrides the protected hooks (`createNetworkService`, `buildListFilter`,
12
+ * `requestList`).
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * import { type BaseArdorApplication, configuration, CoreBindings, DefaultRestDataProvider, inject, provide } from '@venizia/ardor';
17
+ *
18
+ * @configuration()
19
+ * export class DataConfiguration {
20
+ * constructor(@inject({ key: CoreBindings.APPLICATION_INSTANCE }) private readonly application: BaseArdorApplication) {}
21
+ *
22
+ * @provide({ key: CoreBindings.REST_DATA_PROVIDER_OPTIONS })
23
+ * options() {
24
+ * return { url: '/api', noAuthPaths: ['/auth/sign-in'] };
25
+ * }
26
+ *
27
+ * @provide({ key: CoreBindings.DEFAULT_REST_DATA_PROVIDER })
28
+ * dataProvider() {
29
+ * return this.application.instantiate(DefaultRestDataProvider).value(this.application);
30
+ * }
31
+ * }
32
+ * ```
33
+ */
7
34
  export declare class DefaultRestDataProvider<TResource extends string = string> extends BaseProvider<IDataProvider<TResource>> {
8
35
  protected restDataProviderOptions: IRestDataProviderOptions;
9
36
  protected applicationInfo: IApplicationInfo;
10
37
  private cachedNetworkService?;
38
+ private authService?;
11
39
  constructor(restDataProviderOptions: IRestDataProviderOptions, applicationInfo: IApplicationInfo);
12
40
  /**
13
41
  * Builds the network service this provider sends through. Override it to return a subclass of
@@ -16,6 +44,7 @@ export declare class DefaultRestDataProvider<TResource extends string = string>
16
44
  */
17
45
  protected createNetworkService(): DefaultNetworkRequestService;
18
46
  protected get networkService(): DefaultNetworkRequestService;
47
+ /** The network service every request of this provider goes through; built on first use. */
19
48
  getNetworkService(): DefaultNetworkRequestService;
20
49
  /**
21
50
  * The ids a bulk write touched, read from the affected rows the server answers (not the ids asked
@@ -69,44 +98,77 @@ export declare class DefaultRestDataProvider<TResource extends string = string>
69
98
  filename?: string;
70
99
  contentDisposition?: string;
71
100
  }>;
101
+ /**
102
+ * `GET /{resource}` with the filter built from the list params in the query. Resolves the rows and
103
+ * `total` (the `Content-Range` total, else the page's row count), plus `meta.extra` when a route
104
+ * answered extras.
105
+ */
72
106
  getList<RecordType extends RaRecord = RaRecord>(opts: {
73
107
  resource: TResource;
74
108
  params: GetListParams & QueryFunctionContext & ICustomParams;
75
109
  }): Promise<GetListResult<RecordType>>;
110
+ /**
111
+ * `GET /{resource}/{id}`, with `params.meta.filter` as the query filter. Resolves `{ data }`.
112
+ */
76
113
  getOne<RecordType extends RaRecord = RaRecord>(opts: {
77
114
  resource: TResource;
78
115
  params: GetOneParams<RecordType> & QueryFunctionContext & ICustomParams;
79
116
  }): Promise<GetOneResult<RecordType>>;
117
+ /**
118
+ * `GET /{resource}` with the ids in `filter.where.id.inq`, merged into `params.meta.filter`.
119
+ * Resolves `{ data }`.
120
+ */
80
121
  getMany<RecordType extends RaRecord = RaRecord>(opts: {
81
122
  resource: TResource;
82
123
  params: GetManyParams<RecordType> & QueryFunctionContext & ICustomParams;
83
124
  }): Promise<GetManyResult<RecordType>>;
125
+ /**
126
+ * As `getList`, with `filter.where[target] = id`. Resolves the rows and `total`.
127
+ */
84
128
  getManyReference<RecordType extends RaRecord = RaRecord>(opts: {
85
129
  resource: TResource;
86
130
  params: GetManyReferenceParams & QueryFunctionContext & ICustomParams;
87
131
  }): Promise<GetManyReferenceResult<RecordType>>;
132
+ /** `PATCH /{resource}/{id}` with `params.data` as the body. Resolves `{ data }`. */
88
133
  update<RecordType extends RaRecord = RaRecord>(opts: {
89
134
  resource: TResource;
90
135
  params: UpdateParams;
91
136
  }): Promise<UpdateResult<RecordType>>;
137
+ /**
138
+ * `PATCH /{resource}` with `{ ...params.data, where: { id: { inq: ids } } }` as the body. Resolves
139
+ * `{ data }`, the ids of the rows the server answered (`undefined` when the answer is not a row
140
+ * array). Rejects when `ids` is empty or `params.data` has a `where` field, before any request.
141
+ */
92
142
  updateMany<RecordType extends RaRecord = RaRecord>(opts: {
93
143
  resource: TResource;
94
144
  params: UpdateManyParams;
95
145
  }): Promise<UpdateManyResult<RecordType>>;
146
+ /** `POST /{resource}` with `params.data` as the body. Resolves `{ data }`, the created record. */
96
147
  create<RecordType extends Omit<RaRecord, 'id'> = Omit<RaRecord, 'id'>, ResultRecordType extends RaRecord = RecordType & {
97
148
  id: Identifier;
98
149
  }>(opts: {
99
150
  resource: TResource;
100
151
  params: CreateParams;
101
152
  }): Promise<CreateResult<ResultRecordType>>;
153
+ /** `DELETE /{resource}/{id}`. Resolves `{ data }`, the record the server answered. */
102
154
  delete<RecordType extends RaRecord = RaRecord>(opts: {
103
155
  resource: TResource;
104
156
  params: DeleteParams<RecordType>;
105
157
  }): Promise<DeleteResult<RecordType>>;
158
+ /**
159
+ * `DELETE /{resource}` with `{ where: { id: { inq: ids } } }` as the body. Resolves `{ data }`, the
160
+ * ids of the rows the server answered (`undefined` when the answer is not a row array). Rejects
161
+ * when `ids` is empty, before any request.
162
+ */
106
163
  deleteMany<RecordType extends RaRecord = RaRecord>(opts: {
107
164
  resource: TResource;
108
165
  params: DeleteManyParams<RecordType>;
109
166
  }): Promise<DeleteManyResult<RecordType>>;
167
+ /**
168
+ * Sends `params.method` to `/{resource}` with the provider's headers and auth; `requestType`
169
+ * defaults to `RequestTypes.SEND`. Resolves the response read by that type. Rejects when
170
+ * `params.method` is missing, before any request.
171
+ */
110
172
  send<TResult = unknown>(opts: {
111
173
  resource: TResource;
112
174
  params: ISendParams;
@@ -115,6 +177,6 @@ export declare class DefaultRestDataProvider<TResource extends string = string>
115
177
  * react-admin's data provider contract takes positional arguments, `(resource, params)`: the one
116
178
  * place this class does not take an `opts` object. Each method hands them to the `opts` method.
117
179
  */
118
- value(_container: Container): IDataProvider<TResource>;
180
+ value(container: Container): IDataProvider<TResource>;
119
181
  }
120
182
  //# sourceMappingURL=rest-data.d.ts.map
@@ -12,9 +12,35 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  };
13
13
  var DefaultRestDataProvider_1;
14
14
  import { getError, inject } from '@venizia/ignis-inversion';
15
- import omit from 'lodash/omit.js';
16
15
  import { BaseProvider, CoreBindings, DefaultNetworkRequestService, ValueUtility, NetworkHeaders, RequestCountData, RequestMethods, RequestTypes, } from '@venizia/ardor-kernel';
17
16
  import { ListFilterBuilder } from './list-filter.js';
17
+ /**
18
+ * The react-admin data provider over an IGNIS REST API. Each method takes one `opts` object
19
+ * (`{ resource, params }`) and resolves the result react-admin expects; it rejects with the error
20
+ * the network service throws (a non-2xx response, an empty base URL, an auth failure that cannot be
21
+ * recovered). A subclass overrides the protected hooks (`createNetworkService`, `buildListFilter`,
22
+ * `requestList`).
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * import { type BaseArdorApplication, configuration, CoreBindings, DefaultRestDataProvider, inject, provide } from '@venizia/ardor';
27
+ *
28
+ * @configuration()
29
+ * export class DataConfiguration {
30
+ * constructor(@inject({ key: CoreBindings.APPLICATION_INSTANCE }) private readonly application: BaseArdorApplication) {}
31
+ *
32
+ * @provide({ key: CoreBindings.REST_DATA_PROVIDER_OPTIONS })
33
+ * options() {
34
+ * return { url: '/api', noAuthPaths: ['/auth/sign-in'] };
35
+ * }
36
+ *
37
+ * @provide({ key: CoreBindings.DEFAULT_REST_DATA_PROVIDER })
38
+ * dataProvider() {
39
+ * return this.application.instantiate(DefaultRestDataProvider).value(this.application);
40
+ * }
41
+ * }
42
+ * ```
43
+ */
18
44
  let DefaultRestDataProvider = DefaultRestDataProvider_1 = class DefaultRestDataProvider extends BaseProvider {
19
45
  constructor(restDataProviderOptions, applicationInfo) {
20
46
  super({ scope: DefaultRestDataProvider_1.name });
@@ -34,12 +60,14 @@ let DefaultRestDataProvider = DefaultRestDataProvider_1 = class DefaultRestDataP
34
60
  noAuthPathRegex: this.restDataProviderOptions.noAuthPathRegex,
35
61
  headers: this.restDataProviderOptions.headers,
36
62
  authRecovery: this.restDataProviderOptions.authRecovery,
63
+ authService: this.authService,
37
64
  });
38
65
  }
39
66
  get networkService() {
40
67
  this.cachedNetworkService ??= this.createNetworkService();
41
68
  return this.cachedNetworkService;
42
69
  }
70
+ /** The network service every request of this provider goes through; built on first use. */
43
71
  getNetworkService() {
44
72
  return this.networkService;
45
73
  }
@@ -112,6 +140,11 @@ let DefaultRestDataProvider = DefaultRestDataProvider_1 = class DefaultRestDataP
112
140
  return answered ? { ...rest, meta: { extra: answered } } : rest;
113
141
  });
114
142
  }
143
+ /**
144
+ * `GET /{resource}` with the filter built from the list params in the query. Resolves the rows and
145
+ * `total` (the `Content-Range` total, else the page's row count), plus `meta.extra` when a route
146
+ * answered extras.
147
+ */
115
148
  async getList(opts) {
116
149
  const { resource, params } = opts;
117
150
  const { filter, queryKey, extra } = this.buildListFilter({ params });
@@ -123,22 +156,29 @@ let DefaultRestDataProvider = DefaultRestDataProvider_1 = class DefaultRestDataP
123
156
  extra,
124
157
  });
125
158
  }
159
+ /**
160
+ * `GET /{resource}/{id}`, with `params.meta.filter` as the query filter. Resolves `{ data }`.
161
+ */
126
162
  async getOne(opts) {
127
163
  const { resource, params } = opts;
128
- const filter = params?.meta?.filter ?? {};
129
- const queryKey = ListFilterBuilder.extractQueryParams({ params: filter?.params });
164
+ const { params: filterParams, ...filter } = params?.meta?.filter ?? {};
165
+ const queryKey = ListFilterBuilder.extractQueryParams({ params: filterParams });
130
166
  return this.request({
131
167
  resource,
132
168
  type: RequestTypes.GET_ONE,
133
169
  method: RequestMethods.GET,
134
170
  paths: [resource, `${params.id}`],
135
- query: { ...queryKey, filter: { ...omit(filter, 'params') } },
171
+ query: { ...queryKey, filter },
136
172
  });
137
173
  }
174
+ /**
175
+ * `GET /{resource}` with the ids in `filter.where.id.inq`, merged into `params.meta.filter`.
176
+ * Resolves `{ data }`.
177
+ */
138
178
  async getMany(opts) {
139
179
  const { resource, params } = opts;
140
- const filter = params?.meta?.filter ?? {};
141
- const queryKey = ListFilterBuilder.extractQueryParams({ params: filter?.params });
180
+ const { params: filterParams, ...filter } = params?.meta?.filter ?? {};
181
+ const queryKey = ListFilterBuilder.extractQueryParams({ params: filterParams });
142
182
  // Always the GET, under the controller's own `find()`, so its scoping applies. A very long id
143
183
  // list answers 414/431.
144
184
  return this.request({
@@ -148,12 +188,15 @@ let DefaultRestDataProvider = DefaultRestDataProvider_1 = class DefaultRestDataP
148
188
  query: {
149
189
  ...queryKey,
150
190
  filter: {
151
- ...omit(filter, 'params'),
191
+ ...filter,
152
192
  where: { ...filter?.where, id: { inq: params.ids } },
153
193
  },
154
194
  },
155
195
  });
156
196
  }
197
+ /**
198
+ * As `getList`, with `filter.where[target] = id`. Resolves the rows and `total`.
199
+ */
157
200
  async getManyReference(opts) {
158
201
  const { resource, params } = opts;
159
202
  const { target, id, ...listParams } = params;
@@ -167,6 +210,7 @@ let DefaultRestDataProvider = DefaultRestDataProvider_1 = class DefaultRestDataP
167
210
  extra,
168
211
  });
169
212
  }
213
+ /** `PATCH /{resource}/{id}` with `params.data` as the body. Resolves `{ data }`. */
170
214
  async update(opts) {
171
215
  const { resource, params } = opts;
172
216
  return this.request({
@@ -177,6 +221,11 @@ let DefaultRestDataProvider = DefaultRestDataProvider_1 = class DefaultRestDataP
177
221
  body: params.data,
178
222
  });
179
223
  }
224
+ /**
225
+ * `PATCH /{resource}` with `{ ...params.data, where: { id: { inq: ids } } }` as the body. Resolves
226
+ * `{ data }`, the ids of the rows the server answered (`undefined` when the answer is not a row
227
+ * array). Rejects when `ids` is empty or `params.data` has a `where` field, before any request.
228
+ */
180
229
  async updateMany(opts) {
181
230
  const { resource, params } = opts;
182
231
  const { ids, data } = params;
@@ -199,6 +248,7 @@ let DefaultRestDataProvider = DefaultRestDataProvider_1 = class DefaultRestDataP
199
248
  return { data: this.toAffectedIds({ rows: result.data }) };
200
249
  });
201
250
  }
251
+ /** `POST /{resource}` with `params.data` as the body. Resolves `{ data }`, the created record. */
202
252
  async create(opts) {
203
253
  const { resource, params } = opts;
204
254
  return this.request({
@@ -208,6 +258,7 @@ let DefaultRestDataProvider = DefaultRestDataProvider_1 = class DefaultRestDataP
208
258
  body: params.data,
209
259
  });
210
260
  }
261
+ /** `DELETE /{resource}/{id}`. Resolves `{ data }`, the record the server answered. */
211
262
  async delete(opts) {
212
263
  const { resource, params } = opts;
213
264
  return this.request({
@@ -217,6 +268,11 @@ let DefaultRestDataProvider = DefaultRestDataProvider_1 = class DefaultRestDataP
217
268
  paths: [resource, `${params.id}`],
218
269
  });
219
270
  }
271
+ /**
272
+ * `DELETE /{resource}` with `{ where: { id: { inq: ids } } }` as the body. Resolves `{ data }`, the
273
+ * ids of the rows the server answered (`undefined` when the answer is not a row array). Rejects
274
+ * when `ids` is empty, before any request.
275
+ */
220
276
  async deleteMany(opts) {
221
277
  const { resource, params } = opts;
222
278
  const { ids } = params;
@@ -233,6 +289,11 @@ let DefaultRestDataProvider = DefaultRestDataProvider_1 = class DefaultRestDataP
233
289
  return { data: this.toAffectedIds({ rows: result.data }) };
234
290
  });
235
291
  }
292
+ /**
293
+ * Sends `params.method` to `/{resource}` with the provider's headers and auth; `requestType`
294
+ * defaults to `RequestTypes.SEND`. Resolves the response read by that type. Rejects when
295
+ * `params.method` is missing, before any request.
296
+ */
236
297
  async send(opts) {
237
298
  const { resource, params } = opts;
238
299
  if (!params?.method) {
@@ -257,7 +318,12 @@ let DefaultRestDataProvider = DefaultRestDataProvider_1 = class DefaultRestDataP
257
318
  * react-admin's data provider contract takes positional arguments, `(resource, params)`: the one
258
319
  * place this class does not take an `opts` object. Each method hands them to the `opts` method.
259
320
  */
260
- value(_container) {
321
+ value(container) {
322
+ // Read here, not injected: a subclass with its own constructor rarely forwards a further argument.
323
+ this.authService = container.get({
324
+ key: CoreBindings.DEFAULT_AUTH_SERVICE,
325
+ isOptional: true,
326
+ });
261
327
  return {
262
328
  getList: (resource, params) => {
263
329
  return this.getList({ resource, params });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@venizia/ardor-admin",
3
- "version": "0.4.8-0",
3
+ "version": "0.4.8-2",
4
4
  "description": "ARDOR react-admin adapter - the REST data provider, auth provider and i18n provider wired through IGNIS inversion, the ArdorApplication root component, the translate and notify hooks, and the English and Vietnamese message bundles.",
5
5
  "keywords": [
6
6
  "admin",
@@ -37,6 +37,7 @@
37
37
  "LICENSE.md",
38
38
  "dist",
39
39
  "!/**/__tests__",
40
+ "!**/*.map",
40
41
  "!**/*.tsbuildinfo"
41
42
  ],
42
43
  "type": "module",
@@ -60,9 +61,8 @@
60
61
  "prepublishOnly": "make rebuild"
61
62
  },
62
63
  "dependencies": {
63
- "@venizia/ardor-kernel": "0.4.8-0",
64
- "@venizia/ardor-react": "0.4.8-0",
65
- "lodash": "^4.18.1"
64
+ "@venizia/ardor-kernel": "0.4.8-2",
65
+ "@venizia/ardor-react": "0.4.8-2"
66
66
  },
67
67
  "devDependencies": {
68
68
  "@happy-dom/global-registrator": "^21.0.4",
@@ -71,13 +71,12 @@
71
71
  "@tanstack/react-query": "^5.104.5",
72
72
  "@testing-library/react": "^16.3.3",
73
73
  "@types/bun": "^1.4.3",
74
- "@types/lodash": "^4.17.27",
75
74
  "@types/react": "^19",
76
- "@venizia/dev-configs": "^0.4.7",
77
- "@venizia/ignis-filter": "^0.4.6",
78
- "@venizia/ignis-helpers": "^0.4.7",
79
- "@venizia/ignis-inversion": "^0.4.6",
80
- "@venizia/ignis-kernel": "^0.4.7",
75
+ "@venizia/dev-configs": "^0.4.8-1",
76
+ "@venizia/ignis-filter": "^0.4.7-1",
77
+ "@venizia/ignis-helpers": "^0.4.8-1",
78
+ "@venizia/ignis-inversion": "^0.4.7-1",
79
+ "@venizia/ignis-kernel": "^0.4.8-1",
81
80
  "eslint": "^10.13.0",
82
81
  "oxlint": "1.89.0",
83
82
  "oxlint-tsgolint": "7.0.2004",
@@ -95,10 +94,10 @@
95
94
  "peerDependencies": {
96
95
  "@reduxjs/toolkit": ">=2.13.0",
97
96
  "@tanstack/react-query": ">=5.104.5",
98
- "@venizia/ignis-filter": "^0.4.6",
99
- "@venizia/ignis-helpers": "^0.4.7",
100
- "@venizia/ignis-inversion": "^0.4.6",
101
- "@venizia/ignis-kernel": "^0.4.7",
97
+ "@venizia/ignis-filter": "^0.4.7-1",
98
+ "@venizia/ignis-helpers": "^0.4.8-1",
99
+ "@venizia/ignis-inversion": "^0.4.7-1",
100
+ "@venizia/ignis-kernel": "^0.4.8-1",
102
101
  "ra-core": ">=5.15.5",
103
102
  "ra-i18n-polyglot": ">=5.15.5",
104
103
  "react": ">=19.3.1",
@@ -118,7 +117,6 @@
118
117
  "@venizia/ardor-react",
119
118
  "@venizia/ignis-filter",
120
119
  "@venizia/ignis-inversion",
121
- "lodash",
122
120
  "ra-core",
123
121
  "ra-i18n-polyglot",
124
122
  "react",
@@ -126,7 +124,7 @@
126
124
  "react-redux",
127
125
  "react-router-dom"
128
126
  ],
129
- "limit": "10.65 KB"
127
+ "limit": "10850 B"
130
128
  }
131
129
  ],
132
130
  "engines": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/common/locales/en.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmN3B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"en.js","sourceRoot":"","sources":["../../../src/common/locales/en.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/locales/index.ts"],"names":[],"mappings":"AAAA,cAAc,MAAM,CAAC;AACrB,cAAc,MAAM,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/locales/index.ts"],"names":[],"mappings":"AAAA,cAAc,MAAM,CAAC;AACrB,cAAc,MAAM,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"vi.d.ts","sourceRoot":"","sources":["../../../src/common/locales/vi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,eAAO,MAAM,kBAAkB,EAAE,mBAmNhC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"vi.js","sourceRoot":"","sources":["../../../src/common/locales/vi.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/components/application.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAiFpD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAyDnD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"application.js","sourceRoot":"","sources":["../../src/components/application.tsx"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}