@umbraco/playwright-testhelpers 1.0.21 → 2.0.0-beta

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 (103) hide show
  1. package/dist/lib/helpers/ApiHelpers.d.ts +31 -40
  2. package/dist/lib/helpers/ApiHelpers.js +64 -100
  3. package/dist/lib/helpers/ApiHelpers.js.map +1 -1
  4. package/dist/lib/helpers/DataTypeApiHelper.d.ts +28 -0
  5. package/dist/lib/helpers/DataTypeApiHelper.js +194 -0
  6. package/dist/lib/helpers/DataTypeApiHelper.js.map +1 -0
  7. package/dist/lib/helpers/DictionaryApiHelper.d.ts +19 -0
  8. package/dist/lib/helpers/DictionaryApiHelper.js +103 -0
  9. package/dist/lib/helpers/DictionaryApiHelper.js.map +1 -0
  10. package/dist/lib/helpers/{FolderApiHelper.d.ts → DocumentApiHelper.d.ts} +1 -2
  11. package/dist/lib/helpers/DocumentApiHelper.js +11 -0
  12. package/dist/lib/helpers/DocumentApiHelper.js.map +1 -0
  13. package/dist/lib/helpers/LanguageApiHelper.d.ts +12 -0
  14. package/dist/lib/helpers/LanguageApiHelper.js +71 -0
  15. package/dist/lib/helpers/LanguageApiHelper.js.map +1 -0
  16. package/dist/lib/helpers/PackageApiHelper.d.ts +9 -4
  17. package/dist/lib/helpers/PackageApiHelper.js +86 -24
  18. package/dist/lib/helpers/PackageApiHelper.js.map +1 -1
  19. package/dist/lib/helpers/PartialViewApiHelper.d.ts +12 -4
  20. package/dist/lib/helpers/PartialViewApiHelper.js +101 -23
  21. package/dist/lib/helpers/PartialViewApiHelper.js.map +1 -1
  22. package/dist/lib/helpers/RelationType.d.ts +14 -0
  23. package/dist/lib/helpers/RelationType.js +94 -0
  24. package/dist/lib/helpers/RelationType.js.map +1 -0
  25. package/dist/lib/helpers/ScriptApiHelper.d.ts +12 -6
  26. package/dist/lib/helpers/ScriptApiHelper.js +101 -35
  27. package/dist/lib/helpers/ScriptApiHelper.js.map +1 -1
  28. package/dist/lib/helpers/StylesheetApiHelper.d.ts +13 -2
  29. package/dist/lib/helpers/StylesheetApiHelper.js +113 -12
  30. package/dist/lib/helpers/StylesheetApiHelper.js.map +1 -1
  31. package/dist/lib/helpers/TelemetryDataApiHelper.d.ts +7 -0
  32. package/dist/lib/helpers/TelemetryDataApiHelper.js +22 -0
  33. package/dist/lib/helpers/TelemetryDataApiHelper.js.map +1 -0
  34. package/dist/lib/helpers/TemplateApiHelper.d.ts +16 -0
  35. package/dist/lib/helpers/TemplateApiHelper.js +104 -0
  36. package/dist/lib/helpers/TemplateApiHelper.js.map +1 -0
  37. package/dist/lib/helpers/TemporaryFileApiHelper.d.ts +10 -0
  38. package/dist/lib/helpers/TemporaryFileApiHelper.js +50 -0
  39. package/dist/lib/helpers/TemporaryFileApiHelper.js.map +1 -0
  40. package/dist/lib/helpers/UiHelpers.d.ts +1 -33
  41. package/dist/lib/helpers/UiHelpers.js +0 -196
  42. package/dist/lib/helpers/UiHelpers.js.map +1 -1
  43. package/dist/lib/helpers/UserApiHelper.d.ts +16 -5
  44. package/dist/lib/helpers/UserApiHelper.js +115 -44
  45. package/dist/lib/helpers/UserApiHelper.js.map +1 -1
  46. package/dist/lib/helpers/UserGroupApiHelper.d.ts +8 -2
  47. package/dist/lib/helpers/UserGroupApiHelper.js +66 -15
  48. package/dist/lib/helpers/UserGroupApiHelper.js.map +1 -1
  49. package/dist/lib/helpers/index.d.ts +1 -3
  50. package/dist/lib/helpers/index.js +3 -7
  51. package/dist/lib/helpers/index.js.map +1 -1
  52. package/dist/tsconfig.tsbuildinfo +1 -1
  53. package/package.json +3 -3
  54. package/dist/lib/helpers/ConstantHelper.d.ts +0 -40
  55. package/dist/lib/helpers/ConstantHelper.js +0 -45
  56. package/dist/lib/helpers/ConstantHelper.js.map +0 -1
  57. package/dist/lib/helpers/ContentApiHelper.d.ts +0 -12
  58. package/dist/lib/helpers/ContentApiHelper.js +0 -126
  59. package/dist/lib/helpers/ContentApiHelper.js.map +0 -1
  60. package/dist/lib/helpers/DatatypeApiHelper.d.ts +0 -8
  61. package/dist/lib/helpers/DatatypeApiHelper.js +0 -42
  62. package/dist/lib/helpers/DatatypeApiHelper.js.map +0 -1
  63. package/dist/lib/helpers/DocumentTypeApiHelper.d.ts +0 -8
  64. package/dist/lib/helpers/DocumentTypeApiHelper.js +0 -52
  65. package/dist/lib/helpers/DocumentTypeApiHelper.js.map +0 -1
  66. package/dist/lib/helpers/DomainApiHelper.d.ts +0 -7
  67. package/dist/lib/helpers/DomainApiHelper.js +0 -31
  68. package/dist/lib/helpers/DomainApiHelper.js.map +0 -1
  69. package/dist/lib/helpers/FolderApiHelper.js +0 -16
  70. package/dist/lib/helpers/FolderApiHelper.js.map +0 -1
  71. package/dist/lib/helpers/JsonHelper.d.ts +0 -12
  72. package/dist/lib/helpers/JsonHelper.js +0 -29
  73. package/dist/lib/helpers/JsonHelper.js.map +0 -1
  74. package/dist/lib/helpers/LanguagesApiHelper.d.ts +0 -10
  75. package/dist/lib/helpers/LanguagesApiHelper.js +0 -67
  76. package/dist/lib/helpers/LanguagesApiHelper.js.map +0 -1
  77. package/dist/lib/helpers/MacroApiHelper.d.ts +0 -9
  78. package/dist/lib/helpers/MacroApiHelper.js +0 -56
  79. package/dist/lib/helpers/MacroApiHelper.js.map +0 -1
  80. package/dist/lib/helpers/MediaApiHelper.d.ts +0 -75
  81. package/dist/lib/helpers/MediaApiHelper.js +0 -267
  82. package/dist/lib/helpers/MediaApiHelper.js.map +0 -1
  83. package/dist/lib/helpers/MediaTypeApiHelper.d.ts +0 -7
  84. package/dist/lib/helpers/MediaTypeApiHelper.js +0 -29
  85. package/dist/lib/helpers/MediaTypeApiHelper.js.map +0 -1
  86. package/dist/lib/helpers/MemberApiHelper.d.ts +0 -6
  87. package/dist/lib/helpers/MemberApiHelper.js +0 -22
  88. package/dist/lib/helpers/MemberApiHelper.js.map +0 -1
  89. package/dist/lib/helpers/MemberGroupApiHelper.d.ts +0 -6
  90. package/dist/lib/helpers/MemberGroupApiHelper.js +0 -25
  91. package/dist/lib/helpers/MemberGroupApiHelper.js.map +0 -1
  92. package/dist/lib/helpers/MemberTypeApiHelper.d.ts +0 -6
  93. package/dist/lib/helpers/MemberTypeApiHelper.js +0 -28
  94. package/dist/lib/helpers/MemberTypeApiHelper.js.map +0 -1
  95. package/dist/lib/helpers/RelationTypeApiHelper.d.ts +0 -6
  96. package/dist/lib/helpers/RelationTypeApiHelper.js +0 -28
  97. package/dist/lib/helpers/RelationTypeApiHelper.js.map +0 -1
  98. package/dist/lib/helpers/TemplatesApiHelper.d.ts +0 -8
  99. package/dist/lib/helpers/TemplatesApiHelper.js +0 -47
  100. package/dist/lib/helpers/TemplatesApiHelper.js.map +0 -1
  101. package/dist/lib/helpers/TranslationApiHelper.d.ts +0 -6
  102. package/dist/lib/helpers/TranslationApiHelper.js +0 -25
  103. package/dist/lib/helpers/TranslationApiHelper.js.map +0 -1
@@ -1,55 +1,46 @@
1
1
  import { Page } from "@playwright/test";
2
- import { DocumentTypeApiHelper } from "./DocumentTypeApiHelper";
3
- import { TemplatesApiHelper } from "./TemplatesApiHelper";
4
- import { ContentApiHelper } from "./ContentApiHelper";
5
- import { LanguagesApiHelper } from "./LanguagesApiHelper";
6
- import { UserApiHelper } from "./UserApiHelper";
2
+ import { ReportHelper } from "./ReportHelper";
3
+ import { TelemetryDataApiHelper } from "./TelemetryDataApiHelper";
4
+ import { LanguagesApiHelper } from "./LanguageApiHelper";
5
+ import { DictionaryApiHelper } from "./DictionaryApiHelper";
6
+ import { RelationTypeApiHelper } from "./RelationType";
7
7
  import { UserGroupApiHelper } from "./UserGroupApiHelper";
8
- import { MacroApiHelper } from "./MacroApiHelper";
9
- import { MediaTypeApiHelper } from "./MediaTypeApiHelper";
10
- import { MemberTypeApiHelper } from "./MemberTypeApiHelper";
11
- import { DatatypeApiHelper } from "./DatatypeApiHelper";
12
- import { StylesheetApiHelper } from "./StylesheetApiHelper";
8
+ import { TemplateApiHelper } from "./TemplateApiHelper";
9
+ import { AliasHelper } from "./AliasHelper";
10
+ import { DataTypeApiHelper } from "./DataTypeApiHelper";
11
+ import { UserApiHelper } from "./UserApiHelper";
12
+ import { TemporaryFileApiHelper } from "./TemporaryFileApiHelper";
13
+ import { DocumentApiHelper } from "./DocumentApiHelper";
14
+ import { PackageApiHelper } from "./PackageApiHelper";
13
15
  import { ScriptApiHelper } from "./ScriptApiHelper";
14
16
  import { PartialViewApiHelper } from "./PartialViewApiHelper";
15
- import { RelationTypeApiHelper } from "./RelationTypeApiHelper";
16
- import { PackageApiHelper } from "./PackageApiHelper";
17
- import { MemberApiHelper } from "./MemberApiHelper";
18
- import { MemberGroupApiHelper } from "./MemberGroupApiHelper";
19
- import { MediaApiHelper } from "./MediaApiHelper";
20
- import { DomainApiHelper } from "./DomainApiHelper";
21
- import { TranslationApiHelper } from "./TranslationApiHelper";
22
- import { ReportHelper } from "./ReportHelper";
17
+ import { StylesheetApiHelper } from "./StylesheetApiHelper";
23
18
  export declare class ApiHelpers {
24
19
  baseUrl: string;
25
- content: ContentApiHelper;
26
- dataTypes: DatatypeApiHelper;
27
- documentTypes: DocumentTypeApiHelper;
28
- languages: LanguagesApiHelper;
29
- macros: MacroApiHelper;
30
- mediaTypes: MediaTypeApiHelper;
31
- memberGroups: MemberGroupApiHelper;
32
- members: MemberApiHelper;
33
- memberTypes: MemberTypeApiHelper;
34
- packages: PackageApiHelper;
35
20
  page: Page;
36
- partialViews: PartialViewApiHelper;
37
- relationTypes: RelationTypeApiHelper;
38
- scripts: ScriptApiHelper;
39
- stylesheets: StylesheetApiHelper;
40
- templates: TemplatesApiHelper;
41
- userGroups: UserGroupApiHelper;
42
- users: UserApiHelper;
43
- media: MediaApiHelper;
44
- domain: DomainApiHelper;
45
- translation: TranslationApiHelper;
21
+ alias: AliasHelper;
46
22
  report: ReportHelper;
23
+ telemetry: TelemetryDataApiHelper;
24
+ language: LanguagesApiHelper;
25
+ dictionary: DictionaryApiHelper;
26
+ relationType: RelationTypeApiHelper;
27
+ userGroup: UserGroupApiHelper;
28
+ template: TemplateApiHelper;
29
+ dataType: DataTypeApiHelper;
30
+ user: UserApiHelper;
31
+ temporaryFile: TemporaryFileApiHelper;
32
+ document: DocumentApiHelper;
33
+ package: PackageApiHelper;
34
+ script: ScriptApiHelper;
35
+ partialView: PartialViewApiHelper;
36
+ stylesheet: StylesheetApiHelper;
47
37
  constructor(page: Page);
48
- getCsrfToken(): Promise<string>;
38
+ getBearerToken(): Promise<any>;
49
39
  get(url: string, params?: {
50
40
  [key: string]: string | number | boolean;
51
41
  }): Promise<import("playwright-core").APIResponse>;
52
42
  saveCodeFile(codeFile: any): Promise<import("playwright-core").APIResponse | undefined>;
53
43
  post(url: string, data?: object): Promise<import("playwright-core").APIResponse>;
54
- login(skipCheckTours?: boolean): Promise<void>;
44
+ delete(url: string, data?: object): Promise<import("playwright-core").APIResponse>;
45
+ put(url: string, data?: object): Promise<import("playwright-core").APIResponse>;
55
46
  }
@@ -1,86 +1,70 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ApiHelpers = void 0;
4
- const test_1 = require("@playwright/test");
5
- const DocumentTypeApiHelper_1 = require("./DocumentTypeApiHelper");
6
- const JsonHelper_1 = require("./JsonHelper");
7
- const TemplatesApiHelper_1 = require("./TemplatesApiHelper");
8
4
  const umbraco_config_1 = require("../../umbraco.config");
9
- const ContentApiHelper_1 = require("./ContentApiHelper");
10
- const LanguagesApiHelper_1 = require("./LanguagesApiHelper");
11
- const UserApiHelper_1 = require("./UserApiHelper");
5
+ const ReportHelper_1 = require("./ReportHelper");
6
+ const TelemetryDataApiHelper_1 = require("./TelemetryDataApiHelper");
7
+ const LanguageApiHelper_1 = require("./LanguageApiHelper");
8
+ const DictionaryApiHelper_1 = require("./DictionaryApiHelper");
9
+ const RelationType_1 = require("./RelationType");
12
10
  const UserGroupApiHelper_1 = require("./UserGroupApiHelper");
13
- const MacroApiHelper_1 = require("./MacroApiHelper");
14
- const MediaTypeApiHelper_1 = require("./MediaTypeApiHelper");
15
- const MemberTypeApiHelper_1 = require("./MemberTypeApiHelper");
16
- const DatatypeApiHelper_1 = require("./DatatypeApiHelper");
17
- const StylesheetApiHelper_1 = require("./StylesheetApiHelper");
11
+ const TemplateApiHelper_1 = require("./TemplateApiHelper");
12
+ const AliasHelper_1 = require("./AliasHelper");
13
+ const DataTypeApiHelper_1 = require("./DataTypeApiHelper");
14
+ const UserApiHelper_1 = require("./UserApiHelper");
15
+ const TemporaryFileApiHelper_1 = require("./TemporaryFileApiHelper");
16
+ const DocumentApiHelper_1 = require("./DocumentApiHelper");
17
+ const PackageApiHelper_1 = require("./PackageApiHelper");
18
18
  const ScriptApiHelper_1 = require("./ScriptApiHelper");
19
19
  const PartialViewApiHelper_1 = require("./PartialViewApiHelper");
20
- const RelationTypeApiHelper_1 = require("./RelationTypeApiHelper");
21
- const PackageApiHelper_1 = require("./PackageApiHelper");
22
- const MemberApiHelper_1 = require("./MemberApiHelper");
23
- const MemberGroupApiHelper_1 = require("./MemberGroupApiHelper");
24
- const MediaApiHelper_1 = require("./MediaApiHelper");
25
- const DomainApiHelper_1 = require("./DomainApiHelper");
26
- const TranslationApiHelper_1 = require("./TranslationApiHelper");
27
- const ReportHelper_1 = require("./ReportHelper");
20
+ const StylesheetApiHelper_1 = require("./StylesheetApiHelper");
28
21
  class ApiHelpers {
29
22
  baseUrl = umbraco_config_1.umbracoConfig.environment.baseUrl;
30
- content;
31
- dataTypes;
32
- documentTypes;
33
- languages;
34
- macros;
35
- mediaTypes;
36
- memberGroups;
37
- members;
38
- memberTypes;
39
- packages;
40
23
  page;
41
- partialViews;
42
- relationTypes;
43
- scripts;
44
- stylesheets;
45
- templates;
46
- userGroups;
47
- users;
48
- media;
49
- domain;
50
- translation;
24
+ alias;
51
25
  report;
26
+ telemetry;
27
+ language;
28
+ dictionary;
29
+ relationType;
30
+ userGroup;
31
+ template;
32
+ dataType;
33
+ user;
34
+ temporaryFile;
35
+ document;
36
+ package;
37
+ script;
38
+ partialView;
39
+ stylesheet;
52
40
  constructor(page) {
53
- this.content = new ContentApiHelper_1.ContentApiHelper(this);
54
- this.dataTypes = new DatatypeApiHelper_1.DatatypeApiHelper(this);
55
- this.documentTypes = new DocumentTypeApiHelper_1.DocumentTypeApiHelper(this);
56
- this.languages = new LanguagesApiHelper_1.LanguagesApiHelper(this);
57
- this.macros = new MacroApiHelper_1.MacroApiHelper(this);
58
- this.mediaTypes = new MediaTypeApiHelper_1.MediaTypeApiHelper(this);
59
- this.memberGroups = new MemberGroupApiHelper_1.MemberGroupApiHelper(this);
60
- this.members = new MemberApiHelper_1.MemberApiHelper(this);
61
- this.memberTypes = new MemberTypeApiHelper_1.MemberTypeApiHelper(this);
62
- this.packages = new PackageApiHelper_1.PackageApiHelper(this);
63
41
  this.page = page;
64
- this.partialViews = new PartialViewApiHelper_1.PartialViewApiHelper(this);
65
- this.relationTypes = new RelationTypeApiHelper_1.RelationTypeApiHelper(this);
66
- this.scripts = new ScriptApiHelper_1.ScriptApiHelper(this);
67
- this.stylesheets = new StylesheetApiHelper_1.StylesheetApiHelper(this);
68
- this.templates = new TemplatesApiHelper_1.TemplatesApiHelper(this);
69
- this.userGroups = new UserGroupApiHelper_1.UserGroupApiHelper(this);
70
- this.users = new UserApiHelper_1.UserApiHelper(this);
71
- this.media = new MediaApiHelper_1.MediaApiHelper(this);
72
- this.domain = new DomainApiHelper_1.DomainApiHelper(this);
73
- this.translation = new TranslationApiHelper_1.TranslationApiHelper(this);
42
+ this.alias = new AliasHelper_1.AliasHelper();
74
43
  this.report = new ReportHelper_1.ReportHelper(this);
44
+ this.telemetry = new TelemetryDataApiHelper_1.TelemetryDataApiHelper(this);
45
+ this.language = new LanguageApiHelper_1.LanguagesApiHelper(this);
46
+ this.dictionary = new DictionaryApiHelper_1.DictionaryApiHelper(this);
47
+ this.relationType = new RelationType_1.RelationTypeApiHelper(this);
48
+ this.userGroup = new UserGroupApiHelper_1.UserGroupApiHelper(this);
49
+ this.template = new TemplateApiHelper_1.TemplateApiHelper(this);
50
+ this.dataType = new DataTypeApiHelper_1.DataTypeApiHelper(this);
51
+ this.user = new UserApiHelper_1.UserApiHelper(this);
52
+ this.temporaryFile = new TemporaryFileApiHelper_1.TemporaryFileApiHelper(this);
53
+ this.document = new DocumentApiHelper_1.DocumentApiHelper(this);
54
+ this.package = new PackageApiHelper_1.PackageApiHelper(this);
55
+ this.script = new ScriptApiHelper_1.ScriptApiHelper(this);
56
+ this.partialView = new PartialViewApiHelper_1.PartialViewApiHelper(this);
57
+ this.stylesheet = new StylesheetApiHelper_1.StylesheetApiHelper(this);
75
58
  }
76
- async getCsrfToken() {
77
- return (await this.page.context().cookies()).filter(x => x.name === 'UMB-XSRF-TOKEN')[0].value;
59
+ async getBearerToken() {
60
+ let someStorage = await this.page.context().storageState();
61
+ let someObject = JSON.parse(someStorage.origins[0].localStorage[0].value);
62
+ return someObject.access_token;
78
63
  }
79
64
  async get(url, params) {
80
- const csrf = await this.getCsrfToken();
81
65
  const options = {
82
66
  headers: {
83
- 'X-UMB-XSRF-TOKEN': csrf
67
+ 'Authorization': `Bearer ` + await this.getBearerToken(),
84
68
  },
85
69
  params: params,
86
70
  ignoreHTTPSErrors: true
@@ -94,54 +78,34 @@ class ApiHelpers {
94
78
  return await this.post(umbraco_config_1.umbracoConfig.environment.baseUrl + '/umbraco/backoffice/UmbracoApi/CodeFile/PostSave', codeFile);
95
79
  }
96
80
  async post(url, data) {
97
- const csrf = await this.getCsrfToken();
98
81
  const options = {
99
82
  headers: {
100
- 'X-UMB-XSRF-TOKEN': csrf
83
+ 'Authorization': `Bearer ` + await this.getBearerToken(),
101
84
  },
102
85
  data: data,
103
86
  ignoreHTTPSErrors: true
104
87
  };
105
88
  return await this.page.request.post(url, options);
106
89
  }
107
- async login(skipCheckTours = false) {
108
- await this.page.request.post(umbraco_config_1.umbracoConfig.environment.baseUrl + '/umbraco/backoffice/UmbracoApi/Authentication/PostLogin', {
90
+ async delete(url, data) {
91
+ const options = {
109
92
  headers: {
110
- contentType: 'application/json'
93
+ 'Authorization': `Bearer ` + await this.getBearerToken(),
111
94
  },
112
- data: {
113
- username: umbraco_config_1.umbracoConfig.user.login,
114
- password: umbraco_config_1.umbracoConfig.user.password,
95
+ data: data,
96
+ ignoreHTTPSErrors: true
97
+ };
98
+ return await this.page.request.delete(url, options);
99
+ }
100
+ async put(url, data) {
101
+ const options = {
102
+ headers: {
103
+ 'Authorization': `Bearer ` + await this.getBearerToken(),
115
104
  },
105
+ data: data,
116
106
  ignoreHTTPSErrors: true
117
- });
118
- if (!skipCheckTours) {
119
- await this.page.goto(umbraco_config_1.umbracoConfig.environment.baseUrl + '/umbraco');
120
- let toursClosed = false;
121
- let response = await this.get(umbraco_config_1.umbracoConfig.environment.baseUrl + "/umbraco/backoffice/UmbracoApi/CurrentUser/GetUserTours");
122
- const getUserToursBody = await JsonHelper_1.JsonHelper.getBody(response);
123
- let umbEmailMarketingDisabled = false;
124
- if (getUserToursBody == null || getUserToursBody.length === 0) {
125
- // If length == 0, then the user has not disabled any tours => Tours will be shown
126
- toursClosed = true;
127
- }
128
- else {
129
- for (const userTourBody of getUserToursBody) {
130
- if (userTourBody.alias === 'umbEmailMarketing') {
131
- umbEmailMarketingDisabled = userTourBody.disabled;
132
- }
133
- if (userTourBody.disabled !== true) {
134
- toursClosed = true;
135
- }
136
- }
137
- }
138
- if (toursClosed || umbEmailMarketingDisabled === false) {
139
- // @ts-ignore
140
- let tourSteps = await this.page.locator('.umb-tour-step', { timeout: 60000 }); // We now due to the api calls this will be shown, but slow computers can take a while
141
- await (0, test_1.expect)(tourSteps).toBeVisible({ timeout: 60000 });
142
- await this.page.click('.umb-tour-step__close');
143
- }
144
- }
107
+ };
108
+ return await this.page.request.put(url, options);
145
109
  }
146
110
  }
147
111
  exports.ApiHelpers = ApiHelpers;
@@ -1 +1 @@
1
- {"version":3,"file":"ApiHelpers.js","sourceRoot":"","sources":["../../../lib/helpers/ApiHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, expect} from \"@playwright/test\"\nimport {DocumentTypeApiHelper} from \"./DocumentTypeApiHelper\";\nimport {JsonHelper} from './JsonHelper';\nimport {TemplatesApiHelper} from \"./TemplatesApiHelper\";\nimport {umbracoConfig} from \"../../umbraco.config\";\nimport {ContentApiHelper} from \"./ContentApiHelper\";\nimport {LanguagesApiHelper} from \"./LanguagesApiHelper\";\nimport {UserApiHelper} from \"./UserApiHelper\";\nimport {UserGroupApiHelper} from \"./UserGroupApiHelper\";\nimport {MacroApiHelper} from \"./MacroApiHelper\";\nimport {MediaTypeApiHelper} from \"./MediaTypeApiHelper\";\nimport {MemberTypeApiHelper} from \"./MemberTypeApiHelper\";\nimport {DatatypeApiHelper} from \"./DatatypeApiHelper\";\nimport {StylesheetApiHelper} from \"./StylesheetApiHelper\";\nimport {ScriptApiHelper} from \"./ScriptApiHelper\";\nimport {PartialViewApiHelper} from \"./PartialViewApiHelper\";\nimport {RelationTypeApiHelper} from \"./RelationTypeApiHelper\";\nimport {PackageApiHelper} from \"./PackageApiHelper\";\nimport {MemberApiHelper} from \"./MemberApiHelper\";\nimport {MemberGroupApiHelper} from \"./MemberGroupApiHelper\";\nimport {MediaApiHelper} from \"./MediaApiHelper\";\nimport {DomainApiHelper} from \"./DomainApiHelper\";\nimport {TranslationApiHelper} from \"./TranslationApiHelper\";\nimport {ReportHelper} from \"./ReportHelper\";\n\nexport class ApiHelpers {\n baseUrl: string = umbracoConfig.environment.baseUrl;\n content: ContentApiHelper;\n dataTypes: DatatypeApiHelper;\n documentTypes: DocumentTypeApiHelper;\n languages: LanguagesApiHelper;\n macros: MacroApiHelper;\n mediaTypes: MediaTypeApiHelper;\n memberGroups: MemberGroupApiHelper;\n members: MemberApiHelper;\n memberTypes: MemberTypeApiHelper;\n packages: PackageApiHelper;\n page: Page;\n partialViews: PartialViewApiHelper;\n relationTypes: RelationTypeApiHelper;\n scripts: ScriptApiHelper;\n stylesheets: StylesheetApiHelper;\n templates: TemplatesApiHelper;\n userGroups: UserGroupApiHelper;\n users: UserApiHelper;\n media: MediaApiHelper;\n domain: DomainApiHelper;\n translation: TranslationApiHelper;\n report: ReportHelper;\n\n constructor(page: Page) {\n this.content = new ContentApiHelper(this);\n this.dataTypes = new DatatypeApiHelper(this);\n this.documentTypes = new DocumentTypeApiHelper(this);\n this.languages = new LanguagesApiHelper(this);\n this.macros = new MacroApiHelper(this);\n this.mediaTypes = new MediaTypeApiHelper(this);\n this.memberGroups = new MemberGroupApiHelper(this);\n this.members = new MemberApiHelper(this);\n this.memberTypes = new MemberTypeApiHelper(this);\n this.packages = new PackageApiHelper(this);\n this.page = page;\n this.partialViews = new PartialViewApiHelper(this);\n this.relationTypes = new RelationTypeApiHelper(this);\n this.scripts = new ScriptApiHelper(this);\n this.stylesheets = new StylesheetApiHelper(this);\n this.templates = new TemplatesApiHelper(this);\n this.userGroups = new UserGroupApiHelper(this);\n this.users = new UserApiHelper(this);\n this.media = new MediaApiHelper(this);\n this.domain = new DomainApiHelper(this);\n this.translation = new TranslationApiHelper(this);\n this.report = new ReportHelper(this);\n }\n\n async getCsrfToken() {\n return (await this.page.context().cookies()).filter(x => x.name === 'UMB-XSRF-TOKEN')[0].value;\n }\n\n async get(url: string, params?: { [key: string]: string | number | boolean; }) {\n const csrf = await this.getCsrfToken();\n const options = {\n headers: {\n 'X-UMB-XSRF-TOKEN': csrf\n },\n params: params,\n ignoreHTTPSErrors: true\n }\n return this.page.request.get(url, options);\n }\n \n async saveCodeFile(codeFile){\n if (codeFile == null) {\n return;\n }\n \n return await this.post(umbracoConfig.environment.baseUrl + '/umbraco/backoffice/UmbracoApi/CodeFile/PostSave', codeFile)\n }\n\n async post(url: string, data?: object) {\n const csrf = await this.getCsrfToken();\n const options = {\n headers: {\n 'X-UMB-XSRF-TOKEN': csrf\n },\n data: data,\n ignoreHTTPSErrors: true\n }\n return await this.page.request.post(url, options);\n }\n\n async login(skipCheckTours: boolean = false) {\n await this.page.request.post(umbracoConfig.environment.baseUrl + '/umbraco/backoffice/UmbracoApi/Authentication/PostLogin', {\n headers: {\n contentType: 'application/json'\n },\n data: {\n username: umbracoConfig.user.login,\n password: umbracoConfig.user.password,\n },\n ignoreHTTPSErrors: true\n });\n\n if (!skipCheckTours) {\n await this.page.goto(umbracoConfig.environment.baseUrl + '/umbraco');\n let toursClosed = false;\n let response = await this.get(umbracoConfig.environment.baseUrl + \"/umbraco/backoffice/UmbracoApi/CurrentUser/GetUserTours\");\n const getUserToursBody = await JsonHelper.getBody(response);\n let umbEmailMarketingDisabled = false;\n if (getUserToursBody == null || getUserToursBody.length === 0) {\n // If length == 0, then the user has not disabled any tours => Tours will be shown\n toursClosed = true;\n } else {\n for (const userTourBody of getUserToursBody) {\n if (userTourBody.alias === 'umbEmailMarketing') {\n umbEmailMarketingDisabled = userTourBody.disabled;\n }\n if (userTourBody.disabled !== true) {\n toursClosed = true;\n }\n }\n }\n if (toursClosed || umbEmailMarketingDisabled === false) {\n // @ts-ignore\n let tourSteps = await this.page.locator('.umb-tour-step', {timeout: 60000}); // We now due to the api calls this will be shown, but slow computers can take a while\n await expect(tourSteps).toBeVisible({timeout: 60000});\n await this.page.click('.umb-tour-step__close');\n }\n }\n\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"ApiHelpers.js","sourceRoot":"","sources":["../../../lib/helpers/ApiHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page} from \"@playwright/test\"\nimport {umbracoConfig} from \"../../umbraco.config\";\nimport {ReportHelper} from \"./ReportHelper\";\nimport {TelemetryDataApiHelper} from \"./TelemetryDataApiHelper\";\nimport {LanguagesApiHelper} from \"./LanguageApiHelper\";\nimport {DictionaryApiHelper} from \"./DictionaryApiHelper\";\nimport {RelationTypeApiHelper} from \"./RelationType\";\nimport {UserGroupApiHelper} from \"./UserGroupApiHelper\";\nimport {TemplateApiHelper} from \"./TemplateApiHelper\";\nimport {AliasHelper} from \"./AliasHelper\";\nimport {DataTypeApiHelper} from \"./DataTypeApiHelper\";\nimport {UserApiHelper} from \"./UserApiHelper\";\nimport {TemporaryFileApiHelper} from \"./TemporaryFileApiHelper\";\nimport {DocumentApiHelper} from \"./DocumentApiHelper\";\nimport {PackageApiHelper} from \"./PackageApiHelper\";\nimport {ScriptApiHelper} from \"./ScriptApiHelper\";\nimport {PartialViewApiHelper} from \"./PartialViewApiHelper\";\nimport {StylesheetApiHelper} from \"./StylesheetApiHelper\";\n\nexport class ApiHelpers {\n baseUrl: string = umbracoConfig.environment.baseUrl;\n page: Page;\n alias: AliasHelper;\n report: ReportHelper;\n telemetry: TelemetryDataApiHelper;\n language: LanguagesApiHelper;\n dictionary: DictionaryApiHelper;\n relationType: RelationTypeApiHelper;\n userGroup: UserGroupApiHelper;\n template: TemplateApiHelper;\n dataType: DataTypeApiHelper;\n user: UserApiHelper;\n temporaryFile: TemporaryFileApiHelper;\n document: DocumentApiHelper;\n package: PackageApiHelper;\n script: ScriptApiHelper;\n partialView: PartialViewApiHelper;\n stylesheet: StylesheetApiHelper;\n\n constructor(page: Page) {\n this.page = page;\n this.alias = new AliasHelper();\n this.report = new ReportHelper(this);\n this.telemetry = new TelemetryDataApiHelper(this);\n this.language = new LanguagesApiHelper(this);\n this.dictionary = new DictionaryApiHelper(this);\n this.relationType = new RelationTypeApiHelper(this);\n this.userGroup = new UserGroupApiHelper(this);\n this.template = new TemplateApiHelper(this);\n this.dataType = new DataTypeApiHelper(this);\n this.user = new UserApiHelper(this);\n this.temporaryFile = new TemporaryFileApiHelper(this);\n this.document = new DocumentApiHelper(this);\n this.package = new PackageApiHelper(this);\n this.script = new ScriptApiHelper(this);\n this.partialView = new PartialViewApiHelper(this);\n this.stylesheet = new StylesheetApiHelper(this);\n } \n async getBearerToken(){\n\n let someStorage = await this.page.context().storageState();\n let someObject = JSON.parse(someStorage.origins[0].localStorage[0].value);\n return someObject.access_token;\n }\n\n async get(url: string, params?: { [key: string]: string | number | boolean; }) {\n const options = {\n headers: {\n 'Authorization' : `Bearer ` + await this.getBearerToken(),\n },\n params: params,\n ignoreHTTPSErrors: true\n }\n return this.page.request.get(url, options);\n }\n\n async saveCodeFile(codeFile) {\n if (codeFile == null) {\n return;\n }\n\n return await this.post(umbracoConfig.environment.baseUrl + '/umbraco/backoffice/UmbracoApi/CodeFile/PostSave', codeFile);\n }\n\n async post(url: string, data?: object) {\n const options = {\n headers: {\n 'Authorization' : `Bearer ` + await this.getBearerToken(),\n },\n data: data,\n ignoreHTTPSErrors: true\n }\n return await this.page.request.post(url, options);\n }\n\n async delete(url: string, data?: object) {\n const options = {\n headers: {\n 'Authorization' : `Bearer ` + await this.getBearerToken(),\n },\n data: data,\n ignoreHTTPSErrors: true\n }\n return await this.page.request.delete(url, options);\n }\n\n async put(url: string, data?: object) {\n const options = {\n headers: {\n 'Authorization' : `Bearer ` + await this.getBearerToken(),\n },\n data: data,\n ignoreHTTPSErrors: true\n }\n return await this.page.request.put(url, options);\n }\n}\n\n"]}
@@ -0,0 +1,28 @@
1
+ import { ApiHelpers } from "./ApiHelpers";
2
+ export declare class DataTypeApiHelper {
3
+ api: ApiHelpers;
4
+ constructor(api: ApiHelpers);
5
+ ensureDataTypeNameNotExistsAtRoot(name: string): Promise<void | import("playwright-core").APIResponse | null>;
6
+ getDataTypeById(id: string): Promise<any>;
7
+ getDataTypeByNameAtRoot(name: string): Promise<any>;
8
+ createDataType(name: string, propertyEditorAlias: string, values: {
9
+ alias: string;
10
+ value: string;
11
+ }[], parentId?: string, propertyEditorUiAlias?: string): Promise<import("playwright-core").APIResponse>;
12
+ updateDataTypeById(id: string, dataType: any): Promise<import("playwright-core").APIResponse>;
13
+ deleteDataTypeById(id: string): Promise<import("playwright-core").APIResponse>;
14
+ deleteDataTypeByNameAtRoot(name: string): Promise<import("playwright-core").APIResponse | null>;
15
+ getDataTypeItemsByIds(ids: string[]): Promise<any>;
16
+ getAllDataTypesAtRoot(): Promise<any>;
17
+ doesDataTypeWithNameExistAtRoot(name: string): Promise<boolean>;
18
+ moveDataTypeToFolderById(dataTypeId: string, folderId: string): Promise<import("playwright-core").APIResponse>;
19
+ copyDataTypeToFolderById(dataTypeId: string, folderId: string): Promise<import("playwright-core").APIResponse>;
20
+ getDataTypeFolderById(id: string): Promise<any>;
21
+ getDataTypeFolderByName(name: string): Promise<any>;
22
+ createDataTypeFolder(name: string, parentId?: string): Promise<import("playwright-core").APIResponse>;
23
+ updateDataTypeFolderById(id: string, dataTypeFolder: any): Promise<import("playwright-core").APIResponse>;
24
+ deleteDataTypeFolderById(id: string): Promise<import("playwright-core").APIResponse>;
25
+ deleteDataTypeFolderByName(name: string): Promise<import("playwright-core").APIResponse | null>;
26
+ getDataTypeChildrenById(id: string): Promise<any>;
27
+ recurseFolderChildren(id: string): Promise<void>;
28
+ }
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DataTypeApiHelper = void 0;
4
+ class DataTypeApiHelper {
5
+ api;
6
+ constructor(api) {
7
+ this.api = api;
8
+ }
9
+ async ensureDataTypeNameNotExistsAtRoot(name) {
10
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');
11
+ const json = await response.json();
12
+ for (const sb of json.items) {
13
+ if (sb.name === name) {
14
+ if (sb.isFolder == false) {
15
+ return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + sb.id);
16
+ }
17
+ else {
18
+ if (sb.hasChildren == true) {
19
+ return await this.recurseFolderChildren(sb.id);
20
+ }
21
+ else {
22
+ return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + sb.id);
23
+ }
24
+ }
25
+ }
26
+ }
27
+ return null;
28
+ }
29
+ async getDataTypeById(id) {
30
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);
31
+ const json = await response.json();
32
+ if (json !== null) {
33
+ return json;
34
+ }
35
+ return null;
36
+ }
37
+ async getDataTypeByNameAtRoot(name) {
38
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');
39
+ const json = await response.json();
40
+ for (const sb of json.items) {
41
+ if (sb.name === name) {
42
+ if (sb.id !== null) {
43
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + sb.id);
44
+ return response.json();
45
+ }
46
+ }
47
+ }
48
+ return null;
49
+ }
50
+ async createDataType(name, propertyEditorAlias, values, parentId, propertyEditorUiAlias) {
51
+ const dataType = {
52
+ "name": name,
53
+ "propertyEditorAlias": propertyEditorAlias,
54
+ "propertyEditorUiAlias": propertyEditorUiAlias,
55
+ "values": values,
56
+ "parentId": parentId
57
+ };
58
+ return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type', dataType);
59
+ }
60
+ async updateDataTypeById(id, dataType) {
61
+ return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id, dataType);
62
+ }
63
+ async deleteDataTypeById(id) {
64
+ return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);
65
+ }
66
+ async deleteDataTypeByNameAtRoot(name) {
67
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');
68
+ const json = await response.json();
69
+ for (const sb of json.items) {
70
+ if (sb.name === name) {
71
+ if (sb.id !== null) {
72
+ return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + sb.id);
73
+ }
74
+ }
75
+ }
76
+ return null;
77
+ }
78
+ async getDataTypeItemsByIds(ids) {
79
+ let idArray = 'id=' + ids[0];
80
+ let i;
81
+ for (i = 1; i < ids.length; ++i) {
82
+ idArray += '&id=' + ids[i];
83
+ }
84
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/item?' + idArray);
85
+ const json = await response.json();
86
+ if (json !== null) {
87
+ return json;
88
+ }
89
+ return null;
90
+ }
91
+ async getAllDataTypesAtRoot() {
92
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');
93
+ const json = await response.json();
94
+ if (json !== null) {
95
+ return json;
96
+ }
97
+ return null;
98
+ }
99
+ async doesDataTypeWithNameExistAtRoot(name) {
100
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');
101
+ const json = await response.json();
102
+ for (const sb of json.items) {
103
+ if (sb.name === name) {
104
+ return true;
105
+ }
106
+ }
107
+ return false;
108
+ }
109
+ async moveDataTypeToFolderById(dataTypeId, folderId) {
110
+ const folderIdBody = {
111
+ "targetId": folderId
112
+ };
113
+ return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + dataTypeId + '/move', folderIdBody);
114
+ }
115
+ async copyDataTypeToFolderById(dataTypeId, folderId) {
116
+ const folderIdBody = {
117
+ "targetId": folderId
118
+ };
119
+ return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + dataTypeId + '/copy', folderIdBody);
120
+ }
121
+ // FOLDER
122
+ async getDataTypeFolderById(id) {
123
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);
124
+ return await response.json();
125
+ }
126
+ async getDataTypeFolderByName(name) {
127
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=true');
128
+ const json = await response.json();
129
+ for (const sb of json.items) {
130
+ if (sb.name === name) {
131
+ if (sb.id !== null) {
132
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + sb.id);
133
+ return response.json();
134
+ }
135
+ }
136
+ }
137
+ return null;
138
+ }
139
+ async createDataTypeFolder(name, parentId) {
140
+ const folderData = {
141
+ "name": name,
142
+ "parentId": parentId
143
+ };
144
+ return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder', folderData);
145
+ }
146
+ async updateDataTypeFolderById(id, dataTypeFolder) {
147
+ return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id, dataTypeFolder);
148
+ }
149
+ async deleteDataTypeFolderById(id) {
150
+ return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);
151
+ }
152
+ async deleteDataTypeFolderByName(name) {
153
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=true');
154
+ const json = await response.json();
155
+ for (const sb of json.items) {
156
+ if (sb.name === name) {
157
+ if (sb.id !== null) {
158
+ return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + sb.id);
159
+ }
160
+ }
161
+ }
162
+ return null;
163
+ }
164
+ async getDataTypeChildrenById(id) {
165
+ const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/children?parentId=' + id + '&skip=0&take=100&foldersOnly=false');
166
+ const json = await response.json();
167
+ if (json !== null) {
168
+ return json;
169
+ }
170
+ return null;
171
+ }
172
+ async recurseFolderChildren(id) {
173
+ const parentDataType = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/children?parentId=' + id + '&skip=0&take=10000');
174
+ const itemsJson = await parentDataType.json();
175
+ for (const child of itemsJson.items) {
176
+ if (child.path !== null) {
177
+ if (child.isFolder == true) {
178
+ if (child.hasChildren == true) {
179
+ await this.recurseFolderChildren(child.path);
180
+ }
181
+ else {
182
+ await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + child.id);
183
+ }
184
+ }
185
+ else {
186
+ await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + child.id);
187
+ }
188
+ }
189
+ }
190
+ await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);
191
+ }
192
+ }
193
+ exports.DataTypeApiHelper = DataTypeApiHelper;
194
+ //# sourceMappingURL=DataTypeApiHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTypeApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DataTypeApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class DataTypeApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureDataTypeNameNotExistsAtRoot(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.isFolder == false) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + sb.id);\n } else {\n if (sb.hasChildren == true) {\n return await this.recurseFolderChildren(sb.id);\n } else {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + sb.id);\n }\n }\n }\n }\n return null;\n }\n\n async getDataTypeById(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getDataTypeByNameAtRoot(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + sb.id);\n return response.json();\n }\n }\n }\n return null;\n }\n\n async createDataType(name: string, propertyEditorAlias: string, values: { alias: string; value: string; }[], parentId?: string, propertyEditorUiAlias?: string) {\n const dataType = {\n \"name\": name,\n \"propertyEditorAlias\": propertyEditorAlias,\n \"propertyEditorUiAlias\": propertyEditorUiAlias,\n \"values\": values,\n \"parentId\": parentId\n };\n\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type', dataType);\n }\n\n async updateDataTypeById(id: string, dataType) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id, dataType);\n }\n\n async deleteDataTypeById(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);\n }\n\n async deleteDataTypeByNameAtRoot(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + sb.id);\n }\n }\n }\n return null;\n }\n\n async getDataTypeItemsByIds(ids: string[]) {\n let idArray = 'id=' + ids[0];\n let i: number;\n\n for (i = 1; i < ids.length; ++i) {\n idArray += '&id=' + ids[i];\n }\n\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/item?' + idArray);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getAllDataTypesAtRoot() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async doesDataTypeWithNameExistAtRoot(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n return true;\n }\n }\n return false;\n }\n\n async moveDataTypeToFolderById(dataTypeId: string, folderId: string) {\n const folderIdBody = {\n \"targetId\": folderId\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + dataTypeId + '/move', folderIdBody);\n }\n\n async copyDataTypeToFolderById(dataTypeId: string, folderId: string) {\n const folderIdBody = {\n \"targetId\": folderId\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + dataTypeId + '/copy', folderIdBody);\n }\n\n // FOLDER\n async getDataTypeFolderById(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);\n return await response.json();\n }\n\n async getDataTypeFolderByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=true');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + sb.id);\n return response.json();\n }\n }\n }\n return null;\n }\n\n async createDataTypeFolder(name: string, parentId?: string) {\n const folderData = {\n \"name\": name,\n \"parentId\": parentId\n };\n\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder', folderData);\n }\n\n async updateDataTypeFolderById(id: string, dataTypeFolder) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id, dataTypeFolder);\n }\n\n async deleteDataTypeFolderById(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);\n }\n\n async deleteDataTypeFolderByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=true');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + sb.id);\n }\n }\n }\n return null;\n }\n\n async getDataTypeChildrenById(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/children?parentId=' + id + '&skip=0&take=100&foldersOnly=false');\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async recurseFolderChildren(id: string) {\n const parentDataType = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/children?parentId=' + id + '&skip=0&take=10000');\n const itemsJson = await parentDataType.json();\n\n for (const child of itemsJson.items) {\n if (child.path !== null) {\n if (child.isFolder == true) {\n if (child.hasChildren == true) {\n await this.recurseFolderChildren(child.path);\n } else {\n await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + child.id);\n }\n } else {\n await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + child.id);\n }\n }\n }\n await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);\n }\n}"]}
@@ -0,0 +1,19 @@
1
+ import { ApiHelpers } from "./ApiHelpers";
2
+ export declare class DictionaryApiHelper {
3
+ api: ApiHelpers;
4
+ constructor(api: ApiHelpers);
5
+ ensureDictionaryNameNotExists(name: string): Promise<import("playwright-core").APIResponse | null>;
6
+ getDictionaryById(id: string): Promise<any>;
7
+ getDictionaryByName(name: string): Promise<any>;
8
+ createDictionary(name: string, translations?: {
9
+ isoCode: string;
10
+ translation: string;
11
+ }[], parentId?: string): Promise<import("playwright-core").APIResponse>;
12
+ deleteDictionaryById(id: string): Promise<import("playwright-core").APIResponse>;
13
+ deleteDictionaryByName(name: string): Promise<import("playwright-core").APIResponse | null>;
14
+ updateDictionaryById(id: string, dictionary: object): Promise<import("playwright-core").APIResponse>;
15
+ doesDictionaryWithNameExists(name: string): Promise<boolean>;
16
+ getDictionaryChildrenById(id: string): Promise<any>;
17
+ getDictionaryItemsByIds(ids: string[]): Promise<any>;
18
+ getAllDictionariesAtRoot(): Promise<import("playwright-core").APIResponse>;
19
+ }