@khester/create-dynamics-app 2.6.2 → 2.6.3
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.
- package/dist/artifacts/registry.d.ts.map +1 -1
- package/dist/artifacts/registry.js +8 -0
- package/dist/artifacts/registry.js.map +1 -1
- package/dist/artifacts/types.d.ts +16 -0
- package/dist/artifacts/types.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/injectSharedModules.d.ts +21 -0
- package/dist/injectSharedModules.d.ts.map +1 -0
- package/dist/injectSharedModules.js +84 -0
- package/dist/injectSharedModules.js.map +1 -0
- package/package.json +1 -1
- package/templates/{grid-starter/src/core/services → _shared/dataverse-seam}/FetchApiService.ts +3 -8
- package/templates/{grid-starter/src/core/services → _shared/dataverse-seam}/IApiService.ts +16 -8
- package/templates/{react-custom-page/src/core/services → _shared/dataverse-seam}/XrmApiService.ts +6 -17
- package/templates/grid-starter/src/core/services/MockApiService.ts +0 -4
- package/templates/react-custom-page/src/core/services/MockApiService.ts +0 -4
- package/templates/grid-starter/src/core/services/XrmApiService.ts +0 -135
- package/templates/react-custom-page/src/core/services/FetchApiService.ts +0 -117
- package/templates/react-custom-page/src/core/services/IApiService.ts +0 -37
- package/templates/react-custom-page/src/core/services/ServiceFactory.ts +0 -58
- package/templates/react-custom-page/src/core/services/crudLogging.ts +0 -52
- /package/templates/{grid-starter/src/core/services → _shared/dataverse-seam}/ServiceFactory.ts +0 -0
- /package/templates/{grid-starter/src/core/services → _shared/dataverse-seam}/crudLogging.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/artifacts/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAGlB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAoJpB;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/artifacts/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAGlB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAoJpB;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,kBAAkB,EA2TzC,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAEtE;AAED,wBAAgB,kBAAkB,IAAI,kBAAkB,EAAE,CAEzD;AAED;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAI1E,CAAC"}
|
|
@@ -148,6 +148,10 @@ export const ARTIFACTS = [
|
|
|
148
148
|
// starter, not a --from-design target. Inject only the token dev-tool (Azure CLI →
|
|
149
149
|
// .env) for the token-proxy dev mode; the Vite config reads DYNAMICS_URL/TOKEN.
|
|
150
150
|
devTools: ['token'],
|
|
151
|
+
// The IApiService/ServiceFactory data-access seam is shared (single-source in
|
|
152
|
+
// templates/_shared/dataverse-seam) and copied in at scaffold time; only the
|
|
153
|
+
// page-specific MockApiService stays in the template body.
|
|
154
|
+
sharedModules: ['dataverse-seam'],
|
|
151
155
|
prompts: [],
|
|
152
156
|
templateVersion: '3.0.0',
|
|
153
157
|
available: true,
|
|
@@ -164,6 +168,10 @@ export const ARTIFACTS = [
|
|
|
164
168
|
// dev-tool drives the token-proxy.
|
|
165
169
|
supportsLibraryChoice: false,
|
|
166
170
|
devTools: ['token'],
|
|
171
|
+
// Same shared data-access seam as react-custom-page (single-source in
|
|
172
|
+
// templates/_shared/dataverse-seam); only its grid-specific MockApiService
|
|
173
|
+
// seed stays in the template body.
|
|
174
|
+
sharedModules: ['dataverse-seam'],
|
|
167
175
|
prompts: [],
|
|
168
176
|
// @dataverse-kit/grid-kit (and its @khester/* deps) are published, so an end
|
|
169
177
|
// user's post-scaffold `npm i` resolves the template's pinned semver ranges.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/artifacts/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/artifacts/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,15 @@ export type ComponentLibrary = 'fluent-v8' | 'fluent-v9';
|
|
|
13
13
|
export type ExportTarget = 'web-resource' | 'pcf' | 'static-web-app';
|
|
14
14
|
/** Dev-tools that `injectDevTools` (Phase A) can wire into a generated project. */
|
|
15
15
|
export type DevToolId = 'token' | 'serve' | 'codegen' | 'smoke';
|
|
16
|
+
/**
|
|
17
|
+
* Reusable source modules `injectSharedModules` copies from `templates/_shared/`
|
|
18
|
+
* into a generated project (Goal-4b inc4). Unlike dev-tools (which land under
|
|
19
|
+
* `tools/`), these are application source — e.g. `dataverse-seam` is the
|
|
20
|
+
* host-portable IApiService/ServiceFactory data-access seam shared verbatim by
|
|
21
|
+
* the custom-page + host-swap templates, kept single-source in the repo so the
|
|
22
|
+
* copies cannot drift.
|
|
23
|
+
*/
|
|
24
|
+
export type SharedModuleId = 'dataverse-seam';
|
|
16
25
|
/** The full set of artifact ids the unified CLI will produce. */
|
|
17
26
|
export type ArtifactId = 'react-custom-page' | 'power-pages' | 'pcf-field' | 'pcf-dataset' | 'grid-customizer' | 'grid-starter' | 'web-resource' | 'dialog-form' | 'teams-app' | 'static-web-app' | 'starter-page';
|
|
18
27
|
/**
|
|
@@ -82,6 +91,13 @@ export interface ArtifactDescriptor {
|
|
|
82
91
|
supportsComponents?: boolean;
|
|
83
92
|
/** Dev-tools injected into the generated project (Phase A). */
|
|
84
93
|
devTools: DevToolId[];
|
|
94
|
+
/**
|
|
95
|
+
* Reusable source modules copied from `templates/_shared/` into the generated
|
|
96
|
+
* project (Goal-4b inc4) — e.g. `['dataverse-seam']` pulls the shared
|
|
97
|
+
* IApiService/ServiceFactory data-access seam into `src/core/services/`.
|
|
98
|
+
* Absent = none.
|
|
99
|
+
*/
|
|
100
|
+
sharedModules?: SharedModuleId[];
|
|
85
101
|
/** Artifact-specific prompts → substitution variables. */
|
|
86
102
|
prompts: PromptSpec[];
|
|
87
103
|
/** export-engine target for the from-design path (Phase B); omitted = no from-design. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/artifacts/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/artifacts/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,6 +7,7 @@ import fs from 'fs-extra';
|
|
|
7
7
|
import { copyTemplate } from './utils/copyTemplate.js';
|
|
8
8
|
import { applyTemplatePlan } from './templatePlan.js';
|
|
9
9
|
import { injectDevTools, applyConditionalDeps } from './injectDevTools.js';
|
|
10
|
+
import { injectSharedModules } from './injectSharedModules.js';
|
|
10
11
|
import { scaffoldFromDesign, supportsFromDesign } from './fromDesign.js';
|
|
11
12
|
import { updatePackageJson } from './utils/updatePackageJson.js';
|
|
12
13
|
import { installDependencies } from './utils/installDependencies.js';
|
|
@@ -127,6 +128,7 @@ program
|
|
|
127
128
|
// (a second, incompatible token chain) on top. Blank starters get the dev-tools.
|
|
128
129
|
if (!options.fromDesign) {
|
|
129
130
|
await injectDevTools(projectPath, descriptor.devTools);
|
|
131
|
+
await injectSharedModules(projectPath, descriptor.sharedModules);
|
|
130
132
|
if (vars)
|
|
131
133
|
await applyConditionalDeps(projectPath, descriptor, vars);
|
|
132
134
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { SharedModuleId } from './artifacts/types.js';
|
|
2
|
+
interface PackageJson {
|
|
3
|
+
dependencies?: Record<string, string>;
|
|
4
|
+
devDependencies?: Record<string, string>;
|
|
5
|
+
[key: string]: unknown;
|
|
6
|
+
}
|
|
7
|
+
export interface SharedModulePlan {
|
|
8
|
+
pkg: PackageJson;
|
|
9
|
+
filesToCopy: Array<{
|
|
10
|
+
from: string;
|
|
11
|
+
to: string;
|
|
12
|
+
}>;
|
|
13
|
+
/** Dependency names added or version-bumped (for assertions/logging). */
|
|
14
|
+
addedDeps: string[];
|
|
15
|
+
}
|
|
16
|
+
/** Pure: compute the merged package.json + file-copy plan. No IO. */
|
|
17
|
+
export declare function planSharedModules(pkg: PackageJson, moduleIds: SharedModuleId[]): SharedModulePlan;
|
|
18
|
+
/** Impure: apply the shared-module plan to a generated project. */
|
|
19
|
+
export declare function injectSharedModules(projectPath: string, moduleIds: SharedModuleId[] | undefined): Promise<void>;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=injectSharedModules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injectSharedModules.d.ts","sourceRoot":"","sources":["../src/injectSharedModules.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAiC3D,UAAU,WAAW;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,WAAW,CAAC;IACjB,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,yEAAyE;IACzE,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,qEAAqE;AACrE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,gBAAgB,CA4BjG;AAED,mEAAmE;AACnE,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,cAAc,EAAE,GAAG,SAAS,GACtC,OAAO,CAAC,IAAI,CAAC,CAkBf"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inject the shared SOURCE modules an artifact declares (`descriptor.sharedModules`)
|
|
3
|
+
* into a generated project: copy each module's files from `templates/_shared/<...>`
|
|
4
|
+
* and merge any runtime deps the module needs into package.json (Goal-4b inc4).
|
|
5
|
+
*
|
|
6
|
+
* This is the source-module sibling of `injectDevTools`. The difference: dev-tools
|
|
7
|
+
* land under `tools/` and may skip-on-script-collision; shared modules are
|
|
8
|
+
* application source (e.g. the host-portable `dataverse-seam` → `src/core/services/`)
|
|
9
|
+
* kept single-source in the repo so the per-template copies cannot drift. Each
|
|
10
|
+
* module self-declares its deps (e.g. the seam's `@khester/reusable-components`
|
|
11
|
+
* logger) so any template that pulls it is automatically wired.
|
|
12
|
+
*/
|
|
13
|
+
import fs from 'fs-extra';
|
|
14
|
+
import path from 'path';
|
|
15
|
+
import { fileURLToPath } from 'url';
|
|
16
|
+
import { pickHigherRange } from './injectDevTools.js';
|
|
17
|
+
const sharedRoot = fileURLToPath(new URL('../templates/_shared', import.meta.url));
|
|
18
|
+
/** The dataverse-seam files (kept verbatim in `_shared/dataverse-seam/`). */
|
|
19
|
+
const DATAVERSE_SEAM_FILES = [
|
|
20
|
+
'IApiService.ts',
|
|
21
|
+
'ServiceFactory.ts',
|
|
22
|
+
'XrmApiService.ts',
|
|
23
|
+
'FetchApiService.ts',
|
|
24
|
+
'crudLogging.ts',
|
|
25
|
+
];
|
|
26
|
+
const SHARED_MODULES = {
|
|
27
|
+
'dataverse-seam': {
|
|
28
|
+
// The seam's only runtime dep (logger + withCrudLog). Pinned to the current
|
|
29
|
+
// fixed publish (0.1.4 was a broken/empty publish, now npm-deprecated);
|
|
30
|
+
// pickHigherRange dedupes against templates that already bake it.
|
|
31
|
+
dependencies: { '@khester/reusable-components': '0.1.5' },
|
|
32
|
+
files: DATAVERSE_SEAM_FILES.map((f) => ({
|
|
33
|
+
from: `dataverse-seam/${f}`,
|
|
34
|
+
to: `src/core/services/${f}`,
|
|
35
|
+
})),
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
/** Pure: compute the merged package.json + file-copy plan. No IO. */
|
|
39
|
+
export function planSharedModules(pkg, moduleIds) {
|
|
40
|
+
const out = JSON.parse(JSON.stringify(pkg));
|
|
41
|
+
out.dependencies = out.dependencies || {};
|
|
42
|
+
out.devDependencies = out.devDependencies || {};
|
|
43
|
+
const filesToCopy = [];
|
|
44
|
+
const addedDeps = [];
|
|
45
|
+
for (const id of moduleIds) {
|
|
46
|
+
const mod = SHARED_MODULES[id];
|
|
47
|
+
if (!mod)
|
|
48
|
+
continue;
|
|
49
|
+
for (const [dep, ver] of Object.entries(mod.dependencies || {})) {
|
|
50
|
+
out.dependencies[dep] = out.dependencies[dep]
|
|
51
|
+
? pickHigherRange(out.dependencies[dep], ver)
|
|
52
|
+
: ver;
|
|
53
|
+
addedDeps.push(dep);
|
|
54
|
+
}
|
|
55
|
+
for (const [dep, ver] of Object.entries(mod.devDependencies || {})) {
|
|
56
|
+
out.devDependencies[dep] = out.devDependencies[dep]
|
|
57
|
+
? pickHigherRange(out.devDependencies[dep], ver)
|
|
58
|
+
: ver;
|
|
59
|
+
addedDeps.push(dep);
|
|
60
|
+
}
|
|
61
|
+
for (const f of mod.files)
|
|
62
|
+
filesToCopy.push(f);
|
|
63
|
+
}
|
|
64
|
+
return { pkg: out, filesToCopy, addedDeps };
|
|
65
|
+
}
|
|
66
|
+
/** Impure: apply the shared-module plan to a generated project. */
|
|
67
|
+
export async function injectSharedModules(projectPath, moduleIds) {
|
|
68
|
+
if (!moduleIds || moduleIds.length === 0)
|
|
69
|
+
return;
|
|
70
|
+
const pkgPath = path.join(projectPath, 'package.json');
|
|
71
|
+
const pkg = (await fs.pathExists(pkgPath)) ? (await fs.readJson(pkgPath)) : {};
|
|
72
|
+
const plan = planSharedModules(pkg, moduleIds);
|
|
73
|
+
for (const f of plan.filesToCopy) {
|
|
74
|
+
await fs.ensureDir(path.dirname(path.join(projectPath, f.to)));
|
|
75
|
+
await fs.copy(path.join(sharedRoot, f.from), path.join(projectPath, f.to), {
|
|
76
|
+
overwrite: true,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
// Merge the modules' declared deps into the project's package.json (if present).
|
|
80
|
+
if (await fs.pathExists(pkgPath)) {
|
|
81
|
+
await fs.writeJson(pkgPath, plan.pkg, { spaces: 2 });
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=injectSharedModules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injectSharedModules.js","sourceRoot":"","sources":["../src/injectSharedModules.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/templates/{grid-starter/src/core/services → _shared/dataverse-seam}/FetchApiService.ts
RENAMED
|
@@ -103,14 +103,9 @@ export class FetchApiService implements IApiService {
|
|
|
103
103
|
});
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
data: { file: file.name },
|
|
110
|
-
});
|
|
111
|
-
return "";
|
|
112
|
-
}
|
|
113
|
-
|
|
106
|
+
// Token-proxy dev mode does not implement associate (no live writes needed in
|
|
107
|
+
// the proxy workflow); the no-op satisfies the interface. The signature is
|
|
108
|
+
// intentionally parameterless — fewer params is assignable to the contract.
|
|
114
109
|
async associateRecord(): Promise<void> {
|
|
115
110
|
logger.warn("associateRecord not implemented", { source: "FetchApiService" });
|
|
116
111
|
}
|
|
@@ -4,6 +4,12 @@
|
|
|
4
4
|
//
|
|
5
5
|
// Entities are addressed by their Web API ENTITY SET name (plural, e.g.
|
|
6
6
|
// "accounts"), used consistently for reads and writes across all three services.
|
|
7
|
+
//
|
|
8
|
+
// Shape note: this is the host-portable "{entities}" seam shared across the
|
|
9
|
+
// custom-page + host-swap templates (Goal-4b). It is intentionally a small,
|
|
10
|
+
// UI-component-facing contract — a strict subset of the canonical
|
|
11
|
+
// @dataverse-kit/api-service surface in method names/semantics, so a host can
|
|
12
|
+
// later swap in a canonical-backed implementation with minimal rework.
|
|
7
13
|
export interface IApiService {
|
|
8
14
|
/** Update a record. `record` contains only the changed attributes. */
|
|
9
15
|
updateRecord(entity: string, id: string, record: any): Promise<any>;
|
|
@@ -23,15 +29,17 @@ export interface IApiService {
|
|
|
23
29
|
/** Execute a custom API / unbound function or action. */
|
|
24
30
|
executeRequest(requestName: string, requestData: any): Promise<any>;
|
|
25
31
|
|
|
26
|
-
/**
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
32
|
+
/**
|
|
33
|
+
* Associate two records via a collection-valued relationship navigation
|
|
34
|
+
* property. `related` identifies the target by its entity SET name + id — the
|
|
35
|
+
* object form (not positional args) mirrors the canonical
|
|
36
|
+
* @dataverse-kit/api-service signature and guards against transposing the
|
|
37
|
+
* related set/id.
|
|
38
|
+
*/
|
|
30
39
|
associateRecord(
|
|
31
|
-
|
|
32
|
-
|
|
40
|
+
entity: string,
|
|
41
|
+
id: string,
|
|
33
42
|
relationshipName: string,
|
|
34
|
-
|
|
35
|
-
relatedEntityId: string,
|
|
43
|
+
related: { entitySetName: string; id: string },
|
|
36
44
|
): Promise<void>;
|
|
37
45
|
}
|
package/templates/{react-custom-page/src/core/services → _shared/dataverse-seam}/XrmApiService.ts
RENAMED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { IApiService } from "./IApiService";
|
|
2
2
|
import { logCrud } from "./crudLogging";
|
|
3
|
-
import { logger } from "@khester/reusable-components";
|
|
4
3
|
|
|
5
4
|
/**
|
|
6
5
|
* Production API service for a model-driven custom page. Every call hits the
|
|
@@ -100,21 +99,20 @@ export class XrmApiService implements IApiService {
|
|
|
100
99
|
}
|
|
101
100
|
|
|
102
101
|
async associateRecord(
|
|
103
|
-
|
|
104
|
-
|
|
102
|
+
entity: string,
|
|
103
|
+
id: string,
|
|
105
104
|
relationshipName: string,
|
|
106
|
-
|
|
107
|
-
relatedEntityId: string,
|
|
105
|
+
related: { entitySetName: string; id: string },
|
|
108
106
|
): Promise<void> {
|
|
109
107
|
return logCrud(
|
|
110
|
-
{ op: "ASSOCIATE", entity
|
|
108
|
+
{ op: "ASSOCIATE", entity, id },
|
|
111
109
|
async () => {
|
|
112
|
-
const url = `${this.clientUrl()}/api/data/v9.2/${
|
|
110
|
+
const url = `${this.clientUrl()}/api/data/v9.2/${entity}(${id})/${relationshipName}/$ref`;
|
|
113
111
|
const response = await fetch(url, {
|
|
114
112
|
method: "POST",
|
|
115
113
|
headers: this.headers(),
|
|
116
114
|
body: JSON.stringify({
|
|
117
|
-
"@odata.id": `${this.clientUrl()}/api/data/v9.2/${
|
|
115
|
+
"@odata.id": `${this.clientUrl()}/api/data/v9.2/${related.entitySetName}(${related.id})`,
|
|
118
116
|
}),
|
|
119
117
|
});
|
|
120
118
|
if (!response.ok) {
|
|
@@ -123,13 +121,4 @@ export class XrmApiService implements IApiService {
|
|
|
123
121
|
},
|
|
124
122
|
);
|
|
125
123
|
}
|
|
126
|
-
|
|
127
|
-
async uploadFile(file: File): Promise<string> {
|
|
128
|
-
// Stub — wire up to your file/notes/blob strategy as needed.
|
|
129
|
-
logger.warn("uploadFile not implemented", {
|
|
130
|
-
source: "XrmApiService",
|
|
131
|
-
data: { file: file.name },
|
|
132
|
-
});
|
|
133
|
-
return "";
|
|
134
|
-
}
|
|
135
124
|
}
|
|
@@ -59,10 +59,6 @@ export class MockApiService implements IApiService {
|
|
|
59
59
|
return logCrud({ op: "EXECUTE", entity: requestName }, async () => ({}));
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
async uploadFile(): Promise<string> {
|
|
63
|
-
return "";
|
|
64
|
-
}
|
|
65
|
-
|
|
66
62
|
associateRecord(entityName: string, entityId: string): Promise<void> {
|
|
67
63
|
return logCrud(
|
|
68
64
|
{ op: "ASSOCIATE", entity: entityName, id: entityId },
|
|
@@ -60,10 +60,6 @@ export class MockApiService implements IApiService {
|
|
|
60
60
|
return logCrud({ op: "EXECUTE", entity: requestName }, async () => ({}));
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
async uploadFile(): Promise<string> {
|
|
64
|
-
return "";
|
|
65
|
-
}
|
|
66
|
-
|
|
67
63
|
associateRecord(entityName: string, entityId: string): Promise<void> {
|
|
68
64
|
return logCrud(
|
|
69
65
|
{ op: "ASSOCIATE", entity: entityName, id: entityId },
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { IApiService } from "./IApiService";
|
|
2
|
-
import { logCrud } from "./crudLogging";
|
|
3
|
-
import { logger } from "@khester/reusable-components";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Production API service for a model-driven custom page. Every call hits the
|
|
7
|
-
* Dataverse Web API on the same origin (the hosting org authenticates the
|
|
8
|
-
* request via its session), addressing entities by their SET name (e.g.
|
|
9
|
-
* "accounts") so reads and writes use one consistent identifier.
|
|
10
|
-
*/
|
|
11
|
-
export class XrmApiService implements IApiService {
|
|
12
|
-
private Xrm: any;
|
|
13
|
-
|
|
14
|
-
constructor(Xrm: any) {
|
|
15
|
-
if (!Xrm) throw new Error("Xrm object is required");
|
|
16
|
-
this.Xrm = Xrm;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
private clientUrl(): string {
|
|
20
|
-
return this.Xrm.Page.context.getClientUrl();
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
private headers(): HeadersInit {
|
|
24
|
-
return {
|
|
25
|
-
"OData-MaxVersion": "4.0",
|
|
26
|
-
"OData-Version": "4.0",
|
|
27
|
-
"Content-Type": "application/json; charset=utf-8",
|
|
28
|
-
Accept: "application/json",
|
|
29
|
-
Prefer: 'odata.include-annotations="*"',
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
retrieveMultipleRecords(
|
|
34
|
-
entity: string,
|
|
35
|
-
fetchXml: string,
|
|
36
|
-
): Promise<{ entities: any[] }> {
|
|
37
|
-
return logCrud(
|
|
38
|
-
{ op: "READ", entity, resultCount: (r) => r?.entities?.length },
|
|
39
|
-
async () => {
|
|
40
|
-
const url = `${this.clientUrl()}/api/data/v9.2/${entity}?fetchXml=${encodeURIComponent(fetchXml)}`;
|
|
41
|
-
const response = await fetch(url, { method: "GET", headers: this.headers() });
|
|
42
|
-
if (!response.ok) throw await response.json();
|
|
43
|
-
const data = await response.json();
|
|
44
|
-
return { entities: data.value ?? [] };
|
|
45
|
-
},
|
|
46
|
-
);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
createRecord(entity: string, record: any): Promise<any> {
|
|
50
|
-
return logCrud({ op: "CREATE", entity, resultId: (r) => r?.id }, async () => {
|
|
51
|
-
const url = `${this.clientUrl()}/api/data/v9.2/${entity}`;
|
|
52
|
-
const response = await fetch(url, {
|
|
53
|
-
method: "POST",
|
|
54
|
-
headers: this.headers(),
|
|
55
|
-
body: JSON.stringify(record),
|
|
56
|
-
});
|
|
57
|
-
if (!response.ok) throw await response.json();
|
|
58
|
-
const uri = response.headers.get("OData-EntityId");
|
|
59
|
-
const match = uri ? /\(([^)]+)\)/.exec(uri) : null;
|
|
60
|
-
return { id: match ? match[1] : null };
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
updateRecord(entity: string, id: string, record: any): Promise<any> {
|
|
65
|
-
return logCrud({ op: "UPDATE", entity, id }, async () => {
|
|
66
|
-
const cleanId = id.replace(/[{}]/g, "");
|
|
67
|
-
const url = `${this.clientUrl()}/api/data/v9.2/${entity}(${cleanId})`;
|
|
68
|
-
const response = await fetch(url, {
|
|
69
|
-
method: "PATCH",
|
|
70
|
-
headers: this.headers(),
|
|
71
|
-
body: JSON.stringify(record),
|
|
72
|
-
});
|
|
73
|
-
if (!response.ok) throw await response.json();
|
|
74
|
-
return { success: true };
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
deleteRecord(entity: string, id: string): Promise<void> {
|
|
79
|
-
return logCrud({ op: "DELETE", entity, id }, async () => {
|
|
80
|
-
const cleanId = id.replace(/[{}]/g, "");
|
|
81
|
-
const url = `${this.clientUrl()}/api/data/v9.2/${entity}(${cleanId})`;
|
|
82
|
-
const response = await fetch(url, { method: "DELETE", headers: this.headers() });
|
|
83
|
-
if (!response.ok) throw await response.json();
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
executeRequest(requestName: string, requestData: any): Promise<any> {
|
|
88
|
-
return logCrud({ op: "EXECUTE", entity: requestName }, async () => {
|
|
89
|
-
const { getMetadata: _getMetadata, ...payload } = requestData ?? {};
|
|
90
|
-
const url = `${this.clientUrl()}/api/data/v9.2/${requestName}`;
|
|
91
|
-
const response = await fetch(url, {
|
|
92
|
-
method: "POST",
|
|
93
|
-
headers: this.headers(),
|
|
94
|
-
body: JSON.stringify(payload),
|
|
95
|
-
});
|
|
96
|
-
if (!response.ok) throw await response.json();
|
|
97
|
-
const text = await response.text();
|
|
98
|
-
return text ? JSON.parse(text) : null;
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
async associateRecord(
|
|
103
|
-
entityName: string,
|
|
104
|
-
entityId: string,
|
|
105
|
-
relationshipName: string,
|
|
106
|
-
relatedEntityName: string,
|
|
107
|
-
relatedEntityId: string,
|
|
108
|
-
): Promise<void> {
|
|
109
|
-
return logCrud(
|
|
110
|
-
{ op: "ASSOCIATE", entity: entityName, id: entityId },
|
|
111
|
-
async () => {
|
|
112
|
-
const url = `${this.clientUrl()}/api/data/v9.2/${entityName}(${entityId})/${relationshipName}/$ref`;
|
|
113
|
-
const response = await fetch(url, {
|
|
114
|
-
method: "POST",
|
|
115
|
-
headers: this.headers(),
|
|
116
|
-
body: JSON.stringify({
|
|
117
|
-
"@odata.id": `${this.clientUrl()}/api/data/v9.2/${relatedEntityName}(${relatedEntityId})`,
|
|
118
|
-
}),
|
|
119
|
-
});
|
|
120
|
-
if (!response.ok) {
|
|
121
|
-
throw new Error(`associateRecord failed (${response.status})`);
|
|
122
|
-
}
|
|
123
|
-
},
|
|
124
|
-
);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
async uploadFile(file: File): Promise<string> {
|
|
128
|
-
// Stub — wire up to your file/notes/blob strategy as needed.
|
|
129
|
-
logger.warn("uploadFile not implemented", {
|
|
130
|
-
source: "XrmApiService",
|
|
131
|
-
data: { file: file.name },
|
|
132
|
-
});
|
|
133
|
-
return "";
|
|
134
|
-
}
|
|
135
|
-
}
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import { IApiService } from "./IApiService";
|
|
2
|
-
import { logCrud } from "./crudLogging";
|
|
3
|
-
import { logger } from "@khester/reusable-components";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Dev API service for token-proxy mode (`npm run dev` with DYNAMICS_URL set).
|
|
7
|
-
* Requests go to the SAME-ORIGIN path /api/data/v9.2/... and the Vite dev proxy
|
|
8
|
-
* (vite.config.ts) injects the `Authorization: Bearer` header server-side — the
|
|
9
|
-
* token is never read by, or bundled into, the client.
|
|
10
|
-
*/
|
|
11
|
-
export class FetchApiService implements IApiService {
|
|
12
|
-
constructor(private baseUrl = "") {}
|
|
13
|
-
|
|
14
|
-
private headers(): HeadersInit {
|
|
15
|
-
return {
|
|
16
|
-
"Content-Type": "application/json; charset=utf-8",
|
|
17
|
-
Accept: "application/json",
|
|
18
|
-
"OData-Version": "4.0",
|
|
19
|
-
"OData-MaxVersion": "4.0",
|
|
20
|
-
Prefer: 'odata.include-annotations="*"',
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
retrieveMultipleRecords(
|
|
25
|
-
entity: string,
|
|
26
|
-
fetchXml: string,
|
|
27
|
-
): Promise<{ entities: any[] }> {
|
|
28
|
-
return logCrud(
|
|
29
|
-
{ op: "READ", entity, resultCount: (r) => r?.entities?.length },
|
|
30
|
-
async () => {
|
|
31
|
-
const url = `${this.baseUrl}/api/data/v9.2/${entity}?fetchXml=${encodeURIComponent(fetchXml)}`;
|
|
32
|
-
const response = await fetch(url, { method: "GET", headers: this.headers() });
|
|
33
|
-
if (!response.ok) {
|
|
34
|
-
const body = await response.text().catch(() => "");
|
|
35
|
-
throw new Error(`API error ${response.status}: ${response.statusText}${body ? ` — ${body}` : ""}`);
|
|
36
|
-
}
|
|
37
|
-
const data = await response.json();
|
|
38
|
-
return { entities: data.value ?? [] };
|
|
39
|
-
},
|
|
40
|
-
);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
createRecord(entity: string, record: any): Promise<any> {
|
|
44
|
-
return logCrud({ op: "CREATE", entity, resultId: (r) => r?.id }, async () => {
|
|
45
|
-
const url = `${this.baseUrl}/api/data/v9.2/${entity}`;
|
|
46
|
-
const response = await fetch(url, {
|
|
47
|
-
method: "POST",
|
|
48
|
-
headers: this.headers(),
|
|
49
|
-
body: JSON.stringify(record),
|
|
50
|
-
});
|
|
51
|
-
if (!response.ok) {
|
|
52
|
-
const body = await response.text().catch(() => "");
|
|
53
|
-
throw new Error(`Create failed ${response.status}: ${body}`);
|
|
54
|
-
}
|
|
55
|
-
const entityId = response.headers.get("OData-EntityId");
|
|
56
|
-
const match = entityId ? /\(([^)]+)\)/.exec(entityId) : null;
|
|
57
|
-
return match ? { id: match[1] } : response.json().catch(() => ({}));
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
updateRecord(entity: string, id: string, record: any): Promise<any> {
|
|
62
|
-
return logCrud({ op: "UPDATE", entity, id }, async () => {
|
|
63
|
-
const cleanId = id.replace(/[{}]/g, "");
|
|
64
|
-
const url = `${this.baseUrl}/api/data/v9.2/${entity}(${cleanId})`;
|
|
65
|
-
const response = await fetch(url, {
|
|
66
|
-
method: "PATCH",
|
|
67
|
-
headers: this.headers(),
|
|
68
|
-
body: JSON.stringify(record),
|
|
69
|
-
});
|
|
70
|
-
if (!response.ok) {
|
|
71
|
-
const body = await response.text().catch(() => "");
|
|
72
|
-
throw new Error(`Update failed ${response.status}: ${body}`);
|
|
73
|
-
}
|
|
74
|
-
return { success: true };
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
deleteRecord(entity: string, id: string): Promise<void> {
|
|
79
|
-
return logCrud({ op: "DELETE", entity, id }, async () => {
|
|
80
|
-
const cleanId = id.replace(/[{}]/g, "");
|
|
81
|
-
const url = `${this.baseUrl}/api/data/v9.2/${entity}(${cleanId})`;
|
|
82
|
-
const response = await fetch(url, { method: "DELETE", headers: this.headers() });
|
|
83
|
-
if (!response.ok) {
|
|
84
|
-
const body = await response.text().catch(() => "");
|
|
85
|
-
throw new Error(`Delete failed ${response.status}: ${body}`);
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
executeRequest(requestName: string, requestData: any): Promise<any> {
|
|
91
|
-
return logCrud({ op: "EXECUTE", entity: requestName }, async () => {
|
|
92
|
-
const url = `${this.baseUrl}/api/data/v9.2/${requestName}`;
|
|
93
|
-
const response = await fetch(url, {
|
|
94
|
-
method: "POST",
|
|
95
|
-
headers: this.headers(),
|
|
96
|
-
body: JSON.stringify(requestData),
|
|
97
|
-
});
|
|
98
|
-
if (!response.ok) {
|
|
99
|
-
const body = await response.text().catch(() => "");
|
|
100
|
-
throw new Error(`Execute failed ${response.status}: ${body}`);
|
|
101
|
-
}
|
|
102
|
-
return response.json().catch(() => ({}));
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
async uploadFile(file: File): Promise<string> {
|
|
107
|
-
logger.warn("uploadFile not implemented", {
|
|
108
|
-
source: "FetchApiService",
|
|
109
|
-
data: { file: file.name },
|
|
110
|
-
});
|
|
111
|
-
return "";
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
async associateRecord(): Promise<void> {
|
|
115
|
-
logger.warn("associateRecord not implemented", { source: "FetchApiService" });
|
|
116
|
-
}
|
|
117
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
// The single data-access contract for the page. Three implementations satisfy
|
|
2
|
-
// it — MockApiService (offline), FetchApiService (token-proxy dev), and
|
|
3
|
-
// XrmApiService (production) — and ServiceFactory picks one per environment.
|
|
4
|
-
//
|
|
5
|
-
// Entities are addressed by their Web API ENTITY SET name (plural, e.g.
|
|
6
|
-
// "accounts"), used consistently for reads and writes across all three services.
|
|
7
|
-
export interface IApiService {
|
|
8
|
-
/** Update a record. `record` contains only the changed attributes. */
|
|
9
|
-
updateRecord(entity: string, id: string, record: any): Promise<any>;
|
|
10
|
-
|
|
11
|
-
/** Create a record; resolves to `{ id }`. */
|
|
12
|
-
createRecord(entity: string, record: any): Promise<any>;
|
|
13
|
-
|
|
14
|
-
/** Delete a record. */
|
|
15
|
-
deleteRecord(entity: string, id: string): Promise<void>;
|
|
16
|
-
|
|
17
|
-
/** Retrieve records via a FetchXML query. */
|
|
18
|
-
retrieveMultipleRecords(
|
|
19
|
-
entity: string,
|
|
20
|
-
fetchXml: string,
|
|
21
|
-
): Promise<{ entities: any[] }>;
|
|
22
|
-
|
|
23
|
-
/** Execute a custom API / unbound function or action. */
|
|
24
|
-
executeRequest(requestName: string, requestData: any): Promise<any>;
|
|
25
|
-
|
|
26
|
-
/** Upload a file and return its URL. */
|
|
27
|
-
uploadFile(file: File): Promise<string>;
|
|
28
|
-
|
|
29
|
-
/** Associate two records via a relationship. */
|
|
30
|
-
associateRecord(
|
|
31
|
-
entityName: string,
|
|
32
|
-
entityId: string,
|
|
33
|
-
relationshipName: string,
|
|
34
|
-
relatedEntityName: string,
|
|
35
|
-
relatedEntityId: string,
|
|
36
|
-
): Promise<void>;
|
|
37
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { IApiService } from "./IApiService";
|
|
2
|
-
import { MockApiService } from "./MockApiService";
|
|
3
|
-
import { XrmApiService } from "./XrmApiService";
|
|
4
|
-
import { FetchApiService } from "./FetchApiService";
|
|
5
|
-
import { logger } from "@khester/reusable-components";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Single decision point for which IApiService the page talks to.
|
|
9
|
-
*
|
|
10
|
-
* Priority:
|
|
11
|
-
* 1. localhost + VITE_USE_PROXY → FetchApiService (real Dataverse via the Vite proxy)
|
|
12
|
-
* 2. localhost (no proxy) → injected mock, or MockApiService by default
|
|
13
|
-
* 3. deployed + Xrm context → XrmApiService
|
|
14
|
-
*/
|
|
15
|
-
export class ServiceFactory {
|
|
16
|
-
public static isMockEnvironment: boolean =
|
|
17
|
-
window.location.hostname === "localhost" ||
|
|
18
|
-
window.location.hostname === "127.0.0.1";
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Token-proxy dev mode. `vite.config.ts` sets `import.meta.env.VITE_USE_PROXY`
|
|
22
|
-
* to a boolean — true when DYNAMICS_URL is configured — and proxies
|
|
23
|
-
* /api/data/* to Dataverse with a server-side bearer token. Truthiness check
|
|
24
|
-
* (NOT `=== 'true'`): the `define` value is a real boolean, not a string.
|
|
25
|
-
*/
|
|
26
|
-
public static isTokenMode = !!import.meta.env.VITE_USE_PROXY;
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* @param Xrm The Xrm context (required when deployed). Resolve it from
|
|
30
|
-
* `window.parent?.Xrm ?? window.Xrm` in App.tsx.
|
|
31
|
-
* @param createMock Optional factory for a domain-specific mock. Used ONLY in
|
|
32
|
-
* mock mode (after the token-mode check), so a token session
|
|
33
|
-
* still talks to the real org. Defaults to MockApiService.
|
|
34
|
-
*/
|
|
35
|
-
public static createApiService(
|
|
36
|
-
Xrm?: any,
|
|
37
|
-
createMock?: () => IApiService,
|
|
38
|
-
): IApiService {
|
|
39
|
-
if (ServiceFactory.isMockEnvironment && ServiceFactory.isTokenMode) {
|
|
40
|
-
logger.info("Token mode — using FetchApiService via proxy", {
|
|
41
|
-
source: "ServiceFactory",
|
|
42
|
-
});
|
|
43
|
-
return new FetchApiService();
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
if (ServiceFactory.isMockEnvironment) {
|
|
47
|
-
logger.info("Mock mode — using MockApiService", {
|
|
48
|
-
source: "ServiceFactory",
|
|
49
|
-
});
|
|
50
|
-
return (createMock ?? (() => new MockApiService()))();
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
if (!Xrm) {
|
|
54
|
-
throw new Error("Xrm object is required in a non-mock environment.");
|
|
55
|
-
}
|
|
56
|
-
return new XrmApiService(Xrm);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
// Binds the generic `withCrudLog` wrapper (from @khester/reusable-components) to
|
|
2
|
-
// the Dataverse error shapes thrown by the IApiService implementations, so each
|
|
3
|
-
// service method can be instrumented with a single `logCrud(meta, fn)` call.
|
|
4
|
-
//
|
|
5
|
-
// `parseServiceError` lives here (app/template code), not in the library — the
|
|
6
|
-
// library's logger stays backend-agnostic and the app injects this parser.
|
|
7
|
-
|
|
8
|
-
import { withCrudLog, type CrudMeta } from "@khester/reusable-components";
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Extract a numeric status + human message from the error shapes the services
|
|
12
|
-
* throw: an `Error("… 400: <body>")` whose body may embed a Dataverse error
|
|
13
|
-
* JSON blob, or a plain `json.error` object with a CDS InnerError message.
|
|
14
|
-
*/
|
|
15
|
-
function parseServiceError(err: unknown): { status?: number; message?: string } {
|
|
16
|
-
if (err && typeof err === "object" && !(err instanceof Error)) {
|
|
17
|
-
const obj = err as Record<string, unknown>;
|
|
18
|
-
const inner = obj["@Microsoft.PowerApps.CDS.InnerError.Message"];
|
|
19
|
-
const message =
|
|
20
|
-
(typeof inner === "string" && inner) ||
|
|
21
|
-
(typeof obj.message === "string" && obj.message) ||
|
|
22
|
-
undefined;
|
|
23
|
-
const status = typeof obj.status === "number" ? obj.status : undefined;
|
|
24
|
-
return { status, message: message || undefined };
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
if (err instanceof Error) {
|
|
28
|
-
const statusMatch = err.message.match(/\b(\d{3})\b/);
|
|
29
|
-
const status = statusMatch ? Number(statusMatch[1]) : undefined;
|
|
30
|
-
|
|
31
|
-
const jsonStart = err.message.indexOf("{");
|
|
32
|
-
if (jsonStart !== -1) {
|
|
33
|
-
try {
|
|
34
|
-
const parsed = JSON.parse(err.message.substring(jsonStart));
|
|
35
|
-
const inner =
|
|
36
|
-
parsed?.error?.["@Microsoft.PowerApps.CDS.InnerError.Message"];
|
|
37
|
-
const message = inner || parsed?.error?.message || err.message;
|
|
38
|
-
return { status, message };
|
|
39
|
-
} catch {
|
|
40
|
-
// not JSON — fall through to the raw message
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
return { status, message: err.message };
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return { message: String(err) };
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/** Run a CRUD operation, emitting one structured `[CRUD] …` log line for it. */
|
|
50
|
-
export function logCrud<T>(meta: CrudMeta, fn: () => Promise<T>): Promise<T> {
|
|
51
|
-
return withCrudLog(meta, fn, { parseError: parseServiceError });
|
|
52
|
-
}
|
/package/templates/{grid-starter/src/core/services → _shared/dataverse-seam}/ServiceFactory.ts
RENAMED
|
File without changes
|
|
File without changes
|