@prismicio/e2e-tests-utils 1.18.0 → 1.19.0-pr.37.21fc0dd

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 (159) hide show
  1. package/README.md +24 -27
  2. package/dist/_virtual/_rolldown/runtime.cjs +23 -0
  3. package/dist/clients/apiClient.cjs +38 -38
  4. package/dist/clients/apiClient.cjs.map +1 -1
  5. package/dist/clients/apiClient.d.cts +30 -0
  6. package/dist/clients/apiClient.d.cts.map +1 -0
  7. package/dist/clients/apiClient.d.ts +23 -23
  8. package/dist/clients/apiClient.d.ts.map +1 -0
  9. package/dist/clients/apiClient.js +38 -38
  10. package/dist/clients/apiClient.js.map +1 -1
  11. package/dist/clients/assetApi.cjs +81 -93
  12. package/dist/clients/assetApi.cjs.map +1 -1
  13. package/dist/clients/assetApi.d.cts +105 -0
  14. package/dist/clients/assetApi.d.cts.map +1 -0
  15. package/dist/clients/assetApi.d.ts +96 -97
  16. package/dist/clients/assetApi.d.ts.map +1 -0
  17. package/dist/clients/assetApi.js +79 -91
  18. package/dist/clients/assetApi.js.map +1 -1
  19. package/dist/clients/authenticationApi.cjs +66 -73
  20. package/dist/clients/authenticationApi.cjs.map +1 -1
  21. package/dist/clients/authenticationApi.d.cts +20 -0
  22. package/dist/clients/authenticationApi.d.cts.map +1 -0
  23. package/dist/clients/authenticationApi.d.ts +18 -13
  24. package/dist/clients/authenticationApi.d.ts.map +1 -0
  25. package/dist/clients/authenticationApi.js +65 -72
  26. package/dist/clients/authenticationApi.js.map +1 -1
  27. package/dist/clients/contentApi.cjs +94 -103
  28. package/dist/clients/contentApi.cjs.map +1 -1
  29. package/dist/clients/contentApi.d.cts +116 -0
  30. package/dist/clients/contentApi.d.cts.map +1 -0
  31. package/dist/clients/contentApi.d.ts +102 -98
  32. package/dist/clients/contentApi.d.ts.map +1 -0
  33. package/dist/clients/contentApi.js +94 -103
  34. package/dist/clients/contentApi.js.map +1 -1
  35. package/dist/clients/coreApi.cjs +154 -145
  36. package/dist/clients/coreApi.cjs.map +1 -1
  37. package/dist/clients/coreApi.d.cts +142 -0
  38. package/dist/clients/coreApi.d.cts.map +1 -0
  39. package/dist/clients/coreApi.d.ts +131 -109
  40. package/dist/clients/coreApi.d.ts.map +1 -0
  41. package/dist/clients/coreApi.js +153 -144
  42. package/dist/clients/coreApi.js.map +1 -1
  43. package/dist/clients/customTypesApi.cjs +90 -99
  44. package/dist/clients/customTypesApi.cjs.map +1 -1
  45. package/dist/clients/customTypesApi.d.cts +46 -0
  46. package/dist/clients/customTypesApi.d.cts.map +1 -0
  47. package/dist/clients/customTypesApi.d.ts +45 -45
  48. package/dist/clients/customTypesApi.d.ts.map +1 -0
  49. package/dist/clients/customTypesApi.js +87 -98
  50. package/dist/clients/customTypesApi.js.map +1 -1
  51. package/dist/clients/integrationFields.cjs +96 -87
  52. package/dist/clients/integrationFields.cjs.map +1 -1
  53. package/dist/clients/integrationFields.d.cts +30 -0
  54. package/dist/clients/integrationFields.d.cts.map +1 -0
  55. package/dist/clients/integrationFields.d.ts +27 -22
  56. package/dist/clients/integrationFields.d.ts.map +1 -0
  57. package/dist/clients/integrationFields.js +93 -86
  58. package/dist/clients/integrationFields.js.map +1 -1
  59. package/dist/clients/manageV2.cjs +154 -171
  60. package/dist/clients/manageV2.cjs.map +1 -1
  61. package/dist/clients/manageV2.d.cts +105 -0
  62. package/dist/clients/manageV2.d.cts.map +1 -0
  63. package/dist/clients/manageV2.d.ts +103 -111
  64. package/dist/clients/manageV2.d.ts.map +1 -0
  65. package/dist/clients/manageV2.js +149 -169
  66. package/dist/clients/manageV2.js.map +1 -1
  67. package/dist/clients/migrationApi.cjs +37 -36
  68. package/dist/clients/migrationApi.cjs.map +1 -1
  69. package/dist/clients/migrationApi.d.cts +48 -0
  70. package/dist/clients/migrationApi.d.cts.map +1 -0
  71. package/dist/clients/migrationApi.d.ts +45 -39
  72. package/dist/clients/migrationApi.d.ts.map +1 -0
  73. package/dist/clients/migrationApi.js +35 -34
  74. package/dist/clients/migrationApi.js.map +1 -1
  75. package/dist/clients/wroom.cjs +101 -122
  76. package/dist/clients/wroom.cjs.map +1 -1
  77. package/dist/clients/wroom.d.cts +48 -0
  78. package/dist/clients/wroom.d.cts.map +1 -0
  79. package/dist/clients/wroom.d.ts +46 -47
  80. package/dist/clients/wroom.d.ts.map +1 -0
  81. package/dist/clients/wroom.js +99 -122
  82. package/dist/clients/wroom.js.map +1 -1
  83. package/dist/index.cjs +13 -15
  84. package/dist/index.d.cts +8 -0
  85. package/dist/index.d.ts +8 -7
  86. package/dist/index.js +5 -14
  87. package/dist/managers/repositories.cjs +159 -169
  88. package/dist/managers/repositories.cjs.map +1 -1
  89. package/dist/managers/repositories.d.cts +67 -0
  90. package/dist/managers/repositories.d.cts.map +1 -0
  91. package/dist/managers/repositories.d.ts +56 -63
  92. package/dist/managers/repositories.d.ts.map +1 -0
  93. package/dist/managers/repositories.js +148 -159
  94. package/dist/managers/repositories.js.map +1 -1
  95. package/dist/managers/repository.cjs +592 -616
  96. package/dist/managers/repository.cjs.map +1 -1
  97. package/dist/managers/repository.d.cts +339 -0
  98. package/dist/managers/repository.d.cts.map +1 -0
  99. package/dist/managers/repository.d.ts +334 -307
  100. package/dist/managers/repository.d.ts.map +1 -0
  101. package/dist/managers/repository.js +592 -616
  102. package/dist/managers/repository.js.map +1 -1
  103. package/dist/types.d.cts +41 -0
  104. package/dist/types.d.cts.map +1 -0
  105. package/dist/types.d.ts +35 -37
  106. package/dist/types.d.ts.map +1 -0
  107. package/dist/utils/cookies.cjs +19 -17
  108. package/dist/utils/cookies.cjs.map +1 -1
  109. package/dist/utils/cookies.js +20 -18
  110. package/dist/utils/cookies.js.map +1 -1
  111. package/dist/utils/envVariableManager.cjs +33 -34
  112. package/dist/utils/envVariableManager.cjs.map +1 -1
  113. package/dist/utils/envVariableManager.js +34 -35
  114. package/dist/utils/envVariableManager.js.map +1 -1
  115. package/dist/utils/log.cjs +18 -19
  116. package/dist/utils/log.cjs.map +1 -1
  117. package/dist/utils/log.js +18 -21
  118. package/dist/utils/log.js.map +1 -1
  119. package/dist/utils/random.cjs +13 -6
  120. package/dist/utils/random.cjs.map +1 -1
  121. package/dist/utils/random.js +13 -6
  122. package/dist/utils/random.js.map +1 -1
  123. package/dist/utils/strings.cjs +13 -7
  124. package/dist/utils/strings.cjs.map +1 -1
  125. package/dist/utils/strings.js +14 -8
  126. package/dist/utils/strings.js.map +1 -1
  127. package/dist/utils/urls.cjs +21 -10
  128. package/dist/utils/urls.cjs.map +1 -1
  129. package/dist/utils/urls.js +22 -12
  130. package/dist/utils/urls.js.map +1 -1
  131. package/package.json +42 -67
  132. package/src/clients/apiClient.ts +16 -21
  133. package/src/clients/assetApi.ts +75 -82
  134. package/src/clients/authenticationApi.ts +54 -27
  135. package/src/clients/contentApi.ts +111 -129
  136. package/src/clients/coreApi.ts +165 -117
  137. package/src/clients/customTypesApi.ts +54 -74
  138. package/src/clients/integrationFields.ts +59 -74
  139. package/src/clients/manageV2.ts +72 -96
  140. package/src/clients/migrationApi.ts +35 -39
  141. package/src/clients/wroom.ts +42 -56
  142. package/src/index.ts +7 -7
  143. package/src/managers/repositories.ts +85 -108
  144. package/src/managers/repository.ts +394 -368
  145. package/src/types.ts +31 -31
  146. package/src/utils/cookies.ts +8 -8
  147. package/src/utils/envVariableManager.ts +15 -15
  148. package/src/utils/log.ts +17 -21
  149. package/src/utils/random.ts +5 -6
  150. package/src/utils/strings.ts +7 -9
  151. package/src/utils/urls.ts +10 -12
  152. package/dist/index.cjs.map +0 -1
  153. package/dist/index.js.map +0 -1
  154. package/dist/utils/cookies.d.ts +0 -8
  155. package/dist/utils/envVariableManager.d.ts +0 -16
  156. package/dist/utils/log.d.ts +0 -5
  157. package/dist/utils/random.d.ts +0 -8
  158. package/dist/utils/strings.d.ts +0 -11
  159. package/dist/utils/urls.d.ts +0 -16
@@ -0,0 +1,116 @@
1
+ import { AuthenticatedApiClient } from "./apiClient.cjs";
2
+ import { APIResponse } from "@playwright/test";
3
+
4
+ //#region src/clients/contentApi.d.ts
5
+ interface ContentApiError {
6
+ type: string;
7
+ message: string;
8
+ }
9
+ interface ContentApiSearchResponse {
10
+ page: number;
11
+ results_per_page: number;
12
+ results_size: number;
13
+ total_results_size: number;
14
+ total_pages: number;
15
+ next_page: string | null;
16
+ prev_page: string | null;
17
+ results: ContentApiDocument[];
18
+ }
19
+ interface ContentApiDocument {
20
+ id: string;
21
+ uid: string | null;
22
+ url: string | null;
23
+ type: string;
24
+ href: string;
25
+ tags: string[];
26
+ first_publication_date: string;
27
+ last_publication_date: string;
28
+ slugs: string[];
29
+ linked_documents: unknown[];
30
+ lang: string;
31
+ alternate_languages: ContentApiAlternateLanguage[];
32
+ data: Record<string, any>;
33
+ }
34
+ interface ContentApiGraphQLResponse {
35
+ data: Record<string, any>;
36
+ errors?: {
37
+ message: string;
38
+ locations: any;
39
+ }[];
40
+ }
41
+ interface ContentApiRef {
42
+ id: string;
43
+ ref: string;
44
+ label: string;
45
+ isMasterRef?: boolean;
46
+ scheduledAt?: number | undefined;
47
+ }
48
+ interface ContentApiAlternateLanguage {
49
+ id: string;
50
+ type: string;
51
+ lang: string;
52
+ uid?: string;
53
+ }
54
+ type SearchQueryParams = {
55
+ ref?: string;
56
+ query?: string;
57
+ q?: string;
58
+ graphQuery?: string;
59
+ fetchLinks?: string;
60
+ orderings?: string;
61
+ pageSize?: number;
62
+ page?: number;
63
+ lang?: string;
64
+ after?: string;
65
+ routes?: string;
66
+ };
67
+ type ApiVersions = "v1" | "v2";
68
+ /**
69
+ * Client to query the Prismic content api. Uses Playwright to benefit from network request traces
70
+ * in your reports. See api docs: https://prismic.io/docs/rest-api-technical-reference
71
+ */
72
+ declare class ContentApiClient extends AuthenticatedApiClient {
73
+ private version;
74
+ private accessToken;
75
+ /**
76
+ * @example
77
+ * To instantiate the class:
78
+ *
79
+ * ```js
80
+ * new ContentApiClient("https://my-repo.cdn.prismic.io", {
81
+ * version: "v2",
82
+ * accessToken: "my-secret-token",
83
+ * });
84
+ * ```
85
+ *
86
+ * @param baseURL - The api base URL like https://my-repo.cdn.prismic.io
87
+ * @param config - Optional configuration
88
+ *
89
+ * - {@link config.version}: Api version, default is "v2"
90
+ * - {@link config.accessToken}: Access token for the content api -
91
+ * https://prismic.io/docs/access-token
92
+ */
93
+ constructor(baseURL: string, config?: {
94
+ version?: ApiVersions;
95
+ accessToken?: string;
96
+ });
97
+ get(path: string, params?: SearchQueryParams, headers?: Record<string, string>): Promise<APIResponse>;
98
+ getAsJson<T>(url: string, params?: SearchQueryParams, headers?: Record<string, string>): Promise<T>;
99
+ /** Query the graphql api - https://prismic.io/docs/graphql-technical-reference */
100
+ graphql(ref: string, query: string): Promise<ContentApiGraphQLResponse>;
101
+ getRefs(): Promise<ContentApiRef[]>;
102
+ getMasterRef(): Promise<string>;
103
+ getRefByReleaseID(releaseID: string): Promise<string>;
104
+ /** Search documents from the `/api/v<version>/documents/search` endpoint. */
105
+ search(filters?: SearchQueryParams): Promise<ContentApiSearchResponse>;
106
+ /**
107
+ * Search for a single document by its it, using the `/api/v<version>/documents/search` endpoint
108
+ * and a default filter.
109
+ */
110
+ searchByID(id: string, filters?: SearchQueryParams): Promise<ContentApiSearchResponse>;
111
+ /** Retrieve a single document or undefined if not found. */
112
+ getDocumentByID(id: string, filters?: SearchQueryParams): Promise<ContentApiDocument | undefined>;
113
+ }
114
+ //#endregion
115
+ export { ContentApiClient, ContentApiDocument, ContentApiError, ContentApiGraphQLResponse, ContentApiRef, ContentApiSearchResponse };
116
+ //# sourceMappingURL=contentApi.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contentApi.d.cts","names":[],"sources":["../../src/clients/contentApi.ts"],"mappings":";;;;UAIiB,eAAA;EAChB,IAAA;EACA,OAAO;AAAA;AAAA,UAES,wBAAA;EAChB,IAAA;EACA,gBAAA;EACA,YAAA;EACA,kBAAA;EACA,WAAA;EACA,SAAA;EACA,SAAA;EACA,OAAA,EAAS,kBAAkB;AAAA;AAAA,UAGX,kBAAA;EAChB,EAAA;EACA,GAAA;EACA,GAAA;EACA,IAAA;EACA,IAAA;EACA,IAAA;EACA,sBAAA;EACA,qBAAA;EACA,KAAA;EACA,gBAAA;EACA,IAAA;EACA,mBAAA,EAAqB,2BAAA;EAErB,IAAA,EAAM,MAAM;AAAA;AAAA,UAGI,yBAAA;EAEhB,IAAA,EAAM,MAAM;EAEZ,MAAA;IAAW,OAAA;IAAiB,SAAA;EAAA;AAAA;AAAA,UAGZ,aAAA;EAChB,EAAA;EACA,GAAA;EACA,KAAA;EACA,WAAA;EACA,WAAA;AAAA;AAAA,UAGS,2BAAA;EACT,EAAA;EACA,IAAA;EACA,IAAA;EACA,GAAA;AAAA;AAAA,KAmBI,iBAAA;EACJ,GAAA;EACA,KAAA;EACA,CAAA;EACA,UAAA;EACA,UAAA;EACA,SAAA;EACA,QAAA;EACA,IAAA;EACA,IAAA;EACA,KAAA;EACA,MAAA;AAAA;AAAA,KAGI,WAAA;;AAxCO;AACX;;cA6CY,gBAAA,SAAyB,sBAAA;EAAA,QAC7B,OAAA;EAAA,QACA,WAAA;EA3CR;;;;AAEG;AAAA;;;;;;;;;;;;;cA6DS,OAAA,UAAiB,MAAA;IAAU,OAAA,GAAU,WAAA;IAAa,WAAA;EAAA;EASxD,GAAA,CACL,IAAA,UACA,MAAA,GAAS,iBAAA,EACT,OAAA,GAAU,MAAA,mBACR,OAAA,CAAQ,WAAA;EAYL,SAAA,IACL,GAAA,UACA,MAAA,GAAS,iBAAA,EACT,OAAA,GAAU,MAAA,mBACR,OAAA,CAAQ,CAAA;;EAOL,OAAA,CAAQ,GAAA,UAAa,KAAA,WAAgB,OAAA,CAAQ,yBAAA;EAI7C,OAAA,IAAW,OAAA,CAAQ,aAAA;EAMnB,YAAA,IAAgB,OAAA;EAWhB,iBAAA,CAAkB,SAAA,WAAoB,OAAA;EA/Ef;EA0FvB,MAAA,CAAO,OAAA,GAAU,iBAAA,GAAoB,OAAA,CAAQ,wBAAA;EAzDzC;;;;EAyEJ,UAAA,CAAW,EAAA,UAAY,OAAA,GAAU,iBAAA,GAAoB,OAAA,CAAQ,wBAAA;EAxDxD;EA6DL,eAAA,CACL,EAAA,UACA,OAAA,GAAU,iBAAA,GACR,OAAA,CAAQ,kBAAA;AAAA"}
@@ -1,112 +1,116 @@
1
+ import { AuthenticatedApiClient } from "./apiClient.js";
1
2
  import { APIResponse } from "@playwright/test";
2
- import { AuthenticatedApiClient } from "./apiClient";
3
- export interface ContentApiError {
4
- type: string;
5
- message: string;
3
+
4
+ //#region src/clients/contentApi.d.ts
5
+ interface ContentApiError {
6
+ type: string;
7
+ message: string;
6
8
  }
7
- export interface ContentApiSearchResponse {
8
- page: number;
9
- results_per_page: number;
10
- results_size: number;
11
- total_results_size: number;
12
- total_pages: number;
13
- next_page: string | null;
14
- prev_page: string | null;
15
- results: ContentApiDocument[];
9
+ interface ContentApiSearchResponse {
10
+ page: number;
11
+ results_per_page: number;
12
+ results_size: number;
13
+ total_results_size: number;
14
+ total_pages: number;
15
+ next_page: string | null;
16
+ prev_page: string | null;
17
+ results: ContentApiDocument[];
16
18
  }
17
- export interface ContentApiDocument {
18
- id: string;
19
- uid: string | null;
20
- url: string | null;
21
- type: string;
22
- href: string;
23
- tags: string[];
24
- first_publication_date: string;
25
- last_publication_date: string;
26
- slugs: string[];
27
- linked_documents: unknown[];
28
- lang: string;
29
- alternate_languages: ContentApiAlternateLanguage[];
30
- data: Record<string, any>;
19
+ interface ContentApiDocument {
20
+ id: string;
21
+ uid: string | null;
22
+ url: string | null;
23
+ type: string;
24
+ href: string;
25
+ tags: string[];
26
+ first_publication_date: string;
27
+ last_publication_date: string;
28
+ slugs: string[];
29
+ linked_documents: unknown[];
30
+ lang: string;
31
+ alternate_languages: ContentApiAlternateLanguage[];
32
+ data: Record<string, any>;
31
33
  }
32
- export interface ContentApiGraphQLResponse {
33
- data: Record<string, any>;
34
- errors?: {
35
- message: string;
36
- locations: any;
37
- }[];
34
+ interface ContentApiGraphQLResponse {
35
+ data: Record<string, any>;
36
+ errors?: {
37
+ message: string;
38
+ locations: any;
39
+ }[];
38
40
  }
39
- export interface ContentApiRef {
40
- id: string;
41
- ref: string;
42
- label: string;
43
- isMasterRef?: boolean;
44
- scheduledAt?: number | undefined;
41
+ interface ContentApiRef {
42
+ id: string;
43
+ ref: string;
44
+ label: string;
45
+ isMasterRef?: boolean;
46
+ scheduledAt?: number | undefined;
45
47
  }
46
48
  interface ContentApiAlternateLanguage {
47
- id: string;
48
- type: string;
49
- lang: string;
50
- uid?: string;
49
+ id: string;
50
+ type: string;
51
+ lang: string;
52
+ uid?: string;
51
53
  }
52
54
  type SearchQueryParams = {
53
- ref?: string;
54
- query?: string;
55
- q?: string;
56
- graphQuery?: string;
57
- fetchLinks?: string;
58
- orderings?: string;
59
- pageSize?: number;
60
- page?: number;
61
- lang?: string;
62
- after?: string;
63
- routes?: string;
55
+ ref?: string;
56
+ query?: string;
57
+ q?: string;
58
+ graphQuery?: string;
59
+ fetchLinks?: string;
60
+ orderings?: string;
61
+ pageSize?: number;
62
+ page?: number;
63
+ lang?: string;
64
+ after?: string;
65
+ routes?: string;
64
66
  };
65
67
  type ApiVersions = "v1" | "v2";
66
68
  /**
67
- * Client to query the Prismic content api. Uses Playwright to benefit from
68
- * network request traces in your reports. See api docs:
69
- * https://prismic.io/docs/rest-api-technical-reference
69
+ * Client to query the Prismic content api. Uses Playwright to benefit from network request traces
70
+ * in your reports. See api docs: https://prismic.io/docs/rest-api-technical-reference
70
71
  */
71
- export declare class ContentApiClient extends AuthenticatedApiClient {
72
- private version;
73
- private accessToken;
74
- /**
75
- * @example To instantiate the class:
76
- *
77
- * ```js
78
- * new ContentApiClient("https://my-repo.cdn.prismic.io", {
79
- * version: "v2",
80
- * accessToken: "my-secret-token",
81
- * });
82
- * ```
83
- *
84
- * @param baseURL - the api base URL like https://my-repo.cdn.prismic.io
85
- * @param config - Optional configuration
86
- *
87
- * - {@link config.version}: Api version, default is "v2"
88
- * - {@link config.accessToken}: Access token for the content api -
89
- * https://prismic.io/docs/access-token
90
- */
91
- constructor(baseURL: string, config?: {
92
- version?: ApiVersions;
93
- accessToken?: string;
94
- });
95
- get(path: string, params?: SearchQueryParams, headers?: Record<string, string>): Promise<APIResponse>;
96
- getAsJson<T>(url: string, params?: SearchQueryParams, headers?: Record<string, string>): Promise<T>;
97
- /** Query the graphql api - https://prismic.io/docs/graphql-technical-reference */
98
- graphql(ref: string, query: string): Promise<ContentApiGraphQLResponse>;
99
- getRefs(): Promise<ContentApiRef[]>;
100
- getMasterRef(): Promise<string>;
101
- getRefByReleaseID(releaseID: string): Promise<string>;
102
- /** Search documents from the `/api/v<version>/documents/search` endpoint. */
103
- search(filters?: SearchQueryParams): Promise<ContentApiSearchResponse>;
104
- /**
105
- * Search for a single document by its it, using the
106
- * `/api/v<version>/documents/search` endpoint and a default filter.
107
- */
108
- searchByID(id: string, filters?: SearchQueryParams): Promise<ContentApiSearchResponse>;
109
- /** Retrieve a single document or undefined if not found. */
110
- getDocumentByID(id: string, filters?: SearchQueryParams): Promise<ContentApiDocument | undefined>;
72
+ declare class ContentApiClient extends AuthenticatedApiClient {
73
+ private version;
74
+ private accessToken;
75
+ /**
76
+ * @example
77
+ * To instantiate the class:
78
+ *
79
+ * ```js
80
+ * new ContentApiClient("https://my-repo.cdn.prismic.io", {
81
+ * version: "v2",
82
+ * accessToken: "my-secret-token",
83
+ * });
84
+ * ```
85
+ *
86
+ * @param baseURL - The api base URL like https://my-repo.cdn.prismic.io
87
+ * @param config - Optional configuration
88
+ *
89
+ * - {@link config.version}: Api version, default is "v2"
90
+ * - {@link config.accessToken}: Access token for the content api -
91
+ * https://prismic.io/docs/access-token
92
+ */
93
+ constructor(baseURL: string, config?: {
94
+ version?: ApiVersions;
95
+ accessToken?: string;
96
+ });
97
+ get(path: string, params?: SearchQueryParams, headers?: Record<string, string>): Promise<APIResponse>;
98
+ getAsJson<T>(url: string, params?: SearchQueryParams, headers?: Record<string, string>): Promise<T>;
99
+ /** Query the graphql api - https://prismic.io/docs/graphql-technical-reference */
100
+ graphql(ref: string, query: string): Promise<ContentApiGraphQLResponse>;
101
+ getRefs(): Promise<ContentApiRef[]>;
102
+ getMasterRef(): Promise<string>;
103
+ getRefByReleaseID(releaseID: string): Promise<string>;
104
+ /** Search documents from the `/api/v<version>/documents/search` endpoint. */
105
+ search(filters?: SearchQueryParams): Promise<ContentApiSearchResponse>;
106
+ /**
107
+ * Search for a single document by its it, using the `/api/v<version>/documents/search` endpoint
108
+ * and a default filter.
109
+ */
110
+ searchByID(id: string, filters?: SearchQueryParams): Promise<ContentApiSearchResponse>;
111
+ /** Retrieve a single document or undefined if not found. */
112
+ getDocumentByID(id: string, filters?: SearchQueryParams): Promise<ContentApiDocument | undefined>;
111
113
  }
112
- export {};
114
+ //#endregion
115
+ export { ContentApiClient, ContentApiDocument, ContentApiError, ContentApiGraphQLResponse, ContentApiRef, ContentApiSearchResponse };
116
+ //# sourceMappingURL=contentApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contentApi.d.ts","names":[],"sources":["../../src/clients/contentApi.ts"],"mappings":";;;;UAIiB,eAAA;EAChB,IAAA;EACA,OAAO;AAAA;AAAA,UAES,wBAAA;EAChB,IAAA;EACA,gBAAA;EACA,YAAA;EACA,kBAAA;EACA,WAAA;EACA,SAAA;EACA,SAAA;EACA,OAAA,EAAS,kBAAkB;AAAA;AAAA,UAGX,kBAAA;EAChB,EAAA;EACA,GAAA;EACA,GAAA;EACA,IAAA;EACA,IAAA;EACA,IAAA;EACA,sBAAA;EACA,qBAAA;EACA,KAAA;EACA,gBAAA;EACA,IAAA;EACA,mBAAA,EAAqB,2BAAA;EAErB,IAAA,EAAM,MAAM;AAAA;AAAA,UAGI,yBAAA;EAEhB,IAAA,EAAM,MAAM;EAEZ,MAAA;IAAW,OAAA;IAAiB,SAAA;EAAA;AAAA;AAAA,UAGZ,aAAA;EAChB,EAAA;EACA,GAAA;EACA,KAAA;EACA,WAAA;EACA,WAAA;AAAA;AAAA,UAGS,2BAAA;EACT,EAAA;EACA,IAAA;EACA,IAAA;EACA,GAAA;AAAA;AAAA,KAmBI,iBAAA;EACJ,GAAA;EACA,KAAA;EACA,CAAA;EACA,UAAA;EACA,UAAA;EACA,SAAA;EACA,QAAA;EACA,IAAA;EACA,IAAA;EACA,KAAA;EACA,MAAA;AAAA;AAAA,KAGI,WAAA;;AAxCO;AACX;;cA6CY,gBAAA,SAAyB,sBAAA;EAAA,QAC7B,OAAA;EAAA,QACA,WAAA;EA3CR;;;;AAEG;AAAA;;;;;;;;;;;;;cA6DS,OAAA,UAAiB,MAAA;IAAU,OAAA,GAAU,WAAA;IAAa,WAAA;EAAA;EASxD,GAAA,CACL,IAAA,UACA,MAAA,GAAS,iBAAA,EACT,OAAA,GAAU,MAAA,mBACR,OAAA,CAAQ,WAAA;EAYL,SAAA,IACL,GAAA,UACA,MAAA,GAAS,iBAAA,EACT,OAAA,GAAU,MAAA,mBACR,OAAA,CAAQ,CAAA;;EAOL,OAAA,CAAQ,GAAA,UAAa,KAAA,WAAgB,OAAA,CAAQ,yBAAA;EAI7C,OAAA,IAAW,OAAA,CAAQ,aAAA;EAMnB,YAAA,IAAgB,OAAA;EAWhB,iBAAA,CAAkB,SAAA,WAAoB,OAAA;EA/Ef;EA0FvB,MAAA,CAAO,OAAA,GAAU,iBAAA,GAAoB,OAAA,CAAQ,wBAAA;EAzDzC;;;;EAyEJ,UAAA,CAAW,EAAA,UAAY,OAAA,GAAU,iBAAA,GAAoB,OAAA,CAAQ,wBAAA;EAxDxD;EA6DL,eAAA,CACL,EAAA,UACA,OAAA,GAAU,iBAAA,GACR,OAAA,CAAQ,kBAAA;AAAA"}
@@ -1,105 +1,96 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => {
4
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
- return value;
6
- };
7
1
  import { AuthenticatedApiClient } from "./apiClient.js";
8
- class ContentApiClient extends AuthenticatedApiClient {
9
- /**
10
- * @example To instantiate the class:
11
- *
12
- * ```js
13
- * new ContentApiClient("https://my-repo.cdn.prismic.io", {
14
- * version: "v2",
15
- * accessToken: "my-secret-token",
16
- * });
17
- * ```
18
- *
19
- * @param baseURL - the api base URL like https://my-repo.cdn.prismic.io
20
- * @param config - Optional configuration
21
- *
22
- * - {@link config.version}: Api version, default is "v2"
23
- * - {@link config.accessToken}: Access token for the content api -
24
- * https://prismic.io/docs/access-token
25
- */
26
- constructor(baseURL, config = {}) {
27
- super(baseURL, config.accessToken || "");
28
- __publicField(this, "version");
29
- __publicField(this, "accessToken");
30
- this.version = config.version || "v2";
31
- this.accessToken = config.accessToken;
32
- }
33
- async get(path, params, headers) {
34
- const context = await this.getContext();
35
- const securityParams = {
36
- ...this.accessToken ? { access_token: this.accessToken } : {}
37
- };
38
- return context.get(path, {
39
- params: { ...securityParams, ...params },
40
- headers
41
- });
42
- }
43
- async getAsJson(url, params, headers) {
44
- const response = await this.get(url, params, headers);
45
- return response.json();
46
- }
47
- /** Query the graphql api - https://prismic.io/docs/graphql-technical-reference */
48
- async graphql(ref, query) {
49
- return this.getAsJson("graphql", { query }, { "Prismic-ref": ref });
50
- }
51
- async getRefs() {
52
- const data = await this.getAsJson(`api/${this.version}`);
53
- return data.refs;
54
- }
55
- async getMasterRef() {
56
- const refs = await this.getRefs();
57
- const masterRef = refs.find(({ isMasterRef }) => isMasterRef === true);
58
- if (!masterRef) {
59
- throw "No master ref found";
60
- }
61
- return masterRef.ref;
62
- }
63
- async getRefByReleaseID(releaseID) {
64
- const refs = await this.getRefs();
65
- const release = refs.find(({ id }) => id === releaseID);
66
- if (!release) {
67
- throw `No ref found for release ${releaseID}`;
68
- }
69
- return release.ref;
70
- }
71
- /** Search documents from the `/api/v<version>/documents/search` endpoint. */
72
- async search(filters) {
73
- let ref = filters == null ? void 0 : filters.ref;
74
- if (!ref) {
75
- ref = await this.getMasterRef();
76
- }
77
- return this.getAsJson(`api/${this.version}/documents/search`, {
78
- ...filters,
79
- ref
80
- });
81
- }
82
- /**
83
- * Search for a single document by its it, using the
84
- * `/api/v<version>/documents/search` endpoint and a default filter.
85
- */
86
- async searchByID(id, filters) {
87
- return this.search({ ...filters, q: `[[at(document.id, "${id}")]]` });
88
- }
89
- /** Retrieve a single document or undefined if not found. */
90
- async getDocumentByID(id, filters) {
91
- const data = await this.searchByID(id, filters);
92
- switch (data.results_size) {
93
- case 0:
94
- return;
95
- case 1:
96
- return data.results[0];
97
- default:
98
- throw new Error(`Too many documents returned with the same id ${id}`);
99
- }
100
- }
101
- }
102
- export {
103
- ContentApiClient
2
+ //#region src/clients/contentApi.ts
3
+ /**
4
+ * Client to query the Prismic content api. Uses Playwright to benefit from network request traces
5
+ * in your reports. See api docs: https://prismic.io/docs/rest-api-technical-reference
6
+ */
7
+ var ContentApiClient = class extends AuthenticatedApiClient {
8
+ version;
9
+ accessToken;
10
+ /**
11
+ * @example
12
+ * To instantiate the class:
13
+ *
14
+ * ```js
15
+ * new ContentApiClient("https://my-repo.cdn.prismic.io", {
16
+ * version: "v2",
17
+ * accessToken: "my-secret-token",
18
+ * });
19
+ * ```
20
+ *
21
+ * @param baseURL - The api base URL like https://my-repo.cdn.prismic.io
22
+ * @param config - Optional configuration
23
+ *
24
+ * - {@link config.version}: Api version, default is "v2"
25
+ * - {@link config.accessToken}: Access token for the content api -
26
+ * https://prismic.io/docs/access-token
27
+ */
28
+ constructor(baseURL, config = {}) {
29
+ super(baseURL, config.accessToken || "");
30
+ this.version = config.version || "v2";
31
+ this.accessToken = config.accessToken;
32
+ }
33
+ async get(path, params, headers) {
34
+ const context = await this.getContext();
35
+ const securityParams = this.accessToken ? { access_token: this.accessToken } : {};
36
+ return context.get(path, {
37
+ params: {
38
+ ...securityParams,
39
+ ...params
40
+ },
41
+ headers
42
+ });
43
+ }
44
+ async getAsJson(url, params, headers) {
45
+ return (await this.get(url, params, headers)).json();
46
+ }
47
+ /** Query the graphql api - https://prismic.io/docs/graphql-technical-reference */
48
+ async graphql(ref, query) {
49
+ return this.getAsJson("graphql", { query }, { "Prismic-ref": ref });
50
+ }
51
+ async getRefs() {
52
+ return (await this.getAsJson(`api/${this.version}`)).refs;
53
+ }
54
+ async getMasterRef() {
55
+ const masterRef = (await this.getRefs()).find(({ isMasterRef }) => isMasterRef === true);
56
+ if (!masterRef) throw "No master ref found";
57
+ return masterRef.ref;
58
+ }
59
+ async getRefByReleaseID(releaseID) {
60
+ const release = (await this.getRefs()).find(({ id }) => id === releaseID);
61
+ if (!release) throw `No ref found for release ${releaseID}`;
62
+ return release.ref;
63
+ }
64
+ /** Search documents from the `/api/v<version>/documents/search` endpoint. */
65
+ async search(filters) {
66
+ let ref = filters?.ref;
67
+ if (!ref) ref = await this.getMasterRef();
68
+ return this.getAsJson(`api/${this.version}/documents/search`, {
69
+ ...filters,
70
+ ref
71
+ });
72
+ }
73
+ /**
74
+ * Search for a single document by its it, using the `/api/v<version>/documents/search` endpoint
75
+ * and a default filter.
76
+ */
77
+ async searchByID(id, filters) {
78
+ return this.search({
79
+ ...filters,
80
+ q: `[[at(document.id, "${id}")]]`
81
+ });
82
+ }
83
+ /** Retrieve a single document or undefined if not found. */
84
+ async getDocumentByID(id, filters) {
85
+ const data = await this.searchByID(id, filters);
86
+ switch (data.results_size) {
87
+ case 0: return;
88
+ case 1: return data.results[0];
89
+ default: throw new Error(`Too many documents returned with the same id ${id}`);
90
+ }
91
+ }
104
92
  };
105
- //# sourceMappingURL=contentApi.js.map
93
+ //#endregion
94
+ export { ContentApiClient };
95
+
96
+ //# sourceMappingURL=contentApi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contentApi.js","sources":["../../../src/clients/contentApi.ts"],"sourcesContent":["import { APIResponse } from \"@playwright/test\";\n\nimport { AuthenticatedApiClient } from \"./apiClient\";\n\nexport interface ContentApiError {\n\ttype: string;\n\tmessage: string;\n}\nexport interface ContentApiSearchResponse {\n\tpage: number;\n\tresults_per_page: number;\n\tresults_size: number;\n\ttotal_results_size: number;\n\ttotal_pages: number;\n\tnext_page: string | null;\n\tprev_page: string | null;\n\tresults: ContentApiDocument[];\n}\n\nexport interface ContentApiDocument {\n\tid: string;\n\tuid: string | null;\n\turl: string | null;\n\ttype: string;\n\thref: string;\n\ttags: string[];\n\tfirst_publication_date: string;\n\tlast_publication_date: string;\n\tslugs: string[];\n\tlinked_documents: unknown[];\n\tlang: string;\n\talternate_languages: ContentApiAlternateLanguage[];\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tdata: Record<string, any>;\n}\n\nexport interface ContentApiGraphQLResponse {\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tdata: Record<string, any>;\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\terrors?: { message: string; locations: any }[];\n}\n\nexport interface ContentApiRef {\n\tid: string;\n\tref: string;\n\tlabel: string;\n\tisMasterRef?: boolean;\n\tscheduledAt?: number | undefined;\n}\n\ninterface ContentApiAlternateLanguage {\n\tid: string;\n\ttype: string;\n\tlang: string;\n\tuid?: string;\n}\n\ninterface ContentApiRepoConfigResponse {\n\trefs: ContentApiRef[];\n\tbookmarks: Record<string, unknown>;\n\ttypes: Record<string, string>;\n\tlanguages: {\n\t\tid: string;\n\t\tname: string;\n\t\tis_master: boolean;\n\t}[];\n\toauth_initiate: string;\n\toauth_token: string;\n\ttags: string[];\n\tlicense: string;\n\tversion: string;\n}\n\ntype SearchQueryParams = {\n\tref?: string;\n\tquery?: string;\n\tq?: string;\n\tgraphQuery?: string;\n\tfetchLinks?: string;\n\torderings?: string;\n\tpageSize?: number;\n\tpage?: number;\n\tlang?: string;\n\tafter?: string;\n\troutes?: string;\n};\n\ntype ApiVersions = \"v1\" | \"v2\";\n\n/**\n * Client to query the Prismic content api. Uses Playwright to benefit from\n * network request traces in your reports. See api docs:\n * https://prismic.io/docs/rest-api-technical-reference\n */\nexport class ContentApiClient extends AuthenticatedApiClient {\n\tprivate version: ApiVersions;\n\tprivate accessToken: string | undefined;\n\n\t/**\n\t * @example To instantiate the class:\n\t *\n\t * ```js\n\t * new ContentApiClient(\"https://my-repo.cdn.prismic.io\", {\n\t * \tversion: \"v2\",\n\t * \taccessToken: \"my-secret-token\",\n\t * });\n\t * ```\n\t *\n\t * @param baseURL - the api base URL like https://my-repo.cdn.prismic.io\n\t * @param config - Optional configuration\n\t *\n\t * - {@link config.version}: Api version, default is \"v2\"\n\t * - {@link config.accessToken}: Access token for the content api -\n\t * https://prismic.io/docs/access-token\n\t */\n\tconstructor(\n\t\tbaseURL: string,\n\t\tconfig: { version?: ApiVersions; accessToken?: string } = {},\n\t) {\n\t\t// Use an empty string as Authorization header in case it is already set globally in the project Playwright config file.\n\t\t// This is because the content api returns an error in case it gets an non-empty invalid Authorization\n\t\t// even though it actually checks authorization from the access_token query parameter.\n\t\tsuper(baseURL, config.accessToken || \"\");\n\t\tthis.version = config.version || \"v2\";\n\t\tthis.accessToken = config.accessToken;\n\t}\n\n\tasync get(\n\t\tpath: string,\n\t\tparams?: SearchQueryParams,\n\t\theaders?: Record<string, string>,\n\t): Promise<APIResponse> {\n\t\tconst context = await this.getContext();\n\t\tconst securityParams = {\n\t\t\t...(this.accessToken ? { access_token: this.accessToken } : {}),\n\t\t};\n\n\t\treturn context.get(path, {\n\t\t\tparams: { ...securityParams, ...params },\n\t\t\theaders,\n\t\t});\n\t}\n\n\tasync getAsJson<T>(\n\t\turl: string,\n\t\tparams?: SearchQueryParams,\n\t\theaders?: Record<string, string>,\n\t): Promise<T> {\n\t\tconst response = await this.get(url, params, headers);\n\n\t\treturn response.json() as T;\n\t}\n\n\t/** Query the graphql api - https://prismic.io/docs/graphql-technical-reference */\n\tasync graphql(\n\t\tref: string,\n\t\tquery: string,\n\t): Promise<ContentApiGraphQLResponse> {\n\t\treturn this.getAsJson<ContentApiGraphQLResponse>(\n\t\t\t\"graphql\",\n\t\t\t{ query },\n\t\t\t{ \"Prismic-ref\": ref },\n\t\t);\n\t}\n\n\tasync getRefs(): Promise<ContentApiRef[]> {\n\t\tconst data = await this.getAsJson<ContentApiRepoConfigResponse>(\n\t\t\t`api/${this.version}`,\n\t\t);\n\n\t\treturn data.refs;\n\t}\n\n\tasync getMasterRef(): Promise<string> {\n\t\tconst refs = await this.getRefs();\n\n\t\tconst masterRef = refs.find(({ isMasterRef }) => isMasterRef === true);\n\t\tif (!masterRef) {\n\t\t\tthrow \"No master ref found\";\n\t\t}\n\n\t\treturn masterRef.ref;\n\t}\n\n\tasync getRefByReleaseID(releaseID: string): Promise<string> {\n\t\tconst refs = await this.getRefs();\n\t\tconst release = refs.find(({ id }) => id === releaseID);\n\t\tif (!release) {\n\t\t\tthrow `No ref found for release ${releaseID}`;\n\t\t}\n\n\t\treturn release.ref;\n\t}\n\n\t/** Search documents from the `/api/v<version>/documents/search` endpoint. */\n\tasync search(filters?: SearchQueryParams): Promise<ContentApiSearchResponse> {\n\t\tlet ref = filters?.ref;\n\t\tif (!ref) {\n\t\t\tref = await this.getMasterRef();\n\t\t}\n\n\t\treturn this.getAsJson<ContentApiSearchResponse>(\n\t\t\t`api/${this.version}/documents/search`,\n\t\t\t{\n\t\t\t\t...filters,\n\t\t\t\tref,\n\t\t\t},\n\t\t);\n\t}\n\n\t/**\n\t * Search for a single document by its it, using the\n\t * `/api/v<version>/documents/search` endpoint and a default filter.\n\t */\n\tasync searchByID(\n\t\tid: string,\n\t\tfilters?: SearchQueryParams,\n\t): Promise<ContentApiSearchResponse> {\n\t\treturn this.search({ ...filters, q: `[[at(document.id, \"${id}\")]]` });\n\t}\n\n\t/** Retrieve a single document or undefined if not found. */\n\tasync getDocumentByID(\n\t\tid: string,\n\t\tfilters?: SearchQueryParams,\n\t): Promise<ContentApiDocument | undefined> {\n\t\tconst data = await this.searchByID(id, filters);\n\t\tswitch (data.results_size) {\n\t\t\tcase 0:\n\t\t\t\treturn;\n\t\t\tcase 1:\n\t\t\t\treturn data.results[0];\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Too many documents returned with the same id ${id}`);\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;;;;;AA+FM,MAAO,yBAAyB,uBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAqB3D,YACC,SACA,SAA0D,IAAE;AAKtD,UAAA,SAAS,OAAO,eAAe,EAAE;AA3BhC;AACA;AA2BF,SAAA,UAAU,OAAO,WAAW;AACjC,SAAK,cAAc,OAAO;AAAA,EAC3B;AAAA,EAEA,MAAM,IACL,MACA,QACA,SAAgC;AAE1B,UAAA,UAAU,MAAM,KAAK;AAC3B,UAAM,iBAAiB;AAAA,MACtB,GAAI,KAAK,cAAc,EAAE,cAAc,KAAK,YAAA,IAAgB;;AAGtD,WAAA,QAAQ,IAAI,MAAM;AAAA,MACxB,QAAQ,EAAE,GAAG,gBAAgB,GAAG,OAAQ;AAAA,MACxC;AAAA,IAAA,CACA;AAAA,EACF;AAAA,EAEA,MAAM,UACL,KACA,QACA,SAAgC;AAEhC,UAAM,WAAW,MAAM,KAAK,IAAI,KAAK,QAAQ,OAAO;AAEpD,WAAO,SAAS;EACjB;AAAA;AAAA,EAGA,MAAM,QACL,KACA,OAAa;AAEN,WAAA,KAAK,UACX,WACA,EAAE,SACF,EAAE,eAAe,IAAA,CAAK;AAAA,EAExB;AAAA,EAEA,MAAM,UAAO;AACZ,UAAM,OAAO,MAAM,KAAK,UACvB,OAAO,KAAK,OAAO,EAAE;AAGtB,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,MAAM,eAAY;AACX,UAAA,OAAO,MAAM,KAAK;AAElB,UAAA,YAAY,KAAK,KAAK,CAAC,EAAE,kBAAkB,gBAAgB,IAAI;AACrE,QAAI,CAAC,WAAW;AACT,YAAA;AAAA,IACP;AAEA,WAAO,UAAU;AAAA,EAClB;AAAA,EAEA,MAAM,kBAAkB,WAAiB;AAClC,UAAA,OAAO,MAAM,KAAK;AAClB,UAAA,UAAU,KAAK,KAAK,CAAC,EAAE,SAAS,OAAO,SAAS;AACtD,QAAI,CAAC,SAAS;AACb,YAAM,4BAA4B,SAAS;AAAA,IAC5C;AAEA,WAAO,QAAQ;AAAA,EAChB;AAAA;AAAA,EAGA,MAAM,OAAO,SAA2B;AACvC,QAAI,MAAM,mCAAS;AACnB,QAAI,CAAC,KAAK;AACH,YAAA,MAAM,KAAK;IAClB;AAEA,WAAO,KAAK,UACX,OAAO,KAAK,OAAO,qBACnB;AAAA,MACC,GAAG;AAAA,MACH;AAAA,IAAA,CACA;AAAA,EAEH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,WACL,IACA,SAA2B;AAEpB,WAAA,KAAK,OAAO,EAAE,GAAG,SAAS,GAAG,sBAAsB,EAAE,OAAA,CAAQ;AAAA,EACrE;AAAA;AAAA,EAGA,MAAM,gBACL,IACA,SAA2B;AAE3B,UAAM,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO;AAC9C,YAAQ,KAAK,cAAc;AAAA,MAC1B,KAAK;AACJ;AAAA,MACD,KAAK;AACG,eAAA,KAAK,QAAQ,CAAC;AAAA,MACtB;AACC,cAAM,IAAI,MAAM,gDAAgD,EAAE,EAAE;AAAA,IACtE;AAAA,EACD;AACA;"}
1
+ {"version":3,"file":"contentApi.js","names":[],"sources":["../../src/clients/contentApi.ts"],"sourcesContent":["import type { APIResponse } from \"@playwright/test\"\n\nimport { AuthenticatedApiClient } from \"./apiClient\"\n\nexport interface ContentApiError {\n\ttype: string\n\tmessage: string\n}\nexport interface ContentApiSearchResponse {\n\tpage: number\n\tresults_per_page: number\n\tresults_size: number\n\ttotal_results_size: number\n\ttotal_pages: number\n\tnext_page: string | null\n\tprev_page: string | null\n\tresults: ContentApiDocument[]\n}\n\nexport interface ContentApiDocument {\n\tid: string\n\tuid: string | null\n\turl: string | null\n\ttype: string\n\thref: string\n\ttags: string[]\n\tfirst_publication_date: string\n\tlast_publication_date: string\n\tslugs: string[]\n\tlinked_documents: unknown[]\n\tlang: string\n\talternate_languages: ContentApiAlternateLanguage[]\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tdata: Record<string, any>\n}\n\nexport interface ContentApiGraphQLResponse {\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tdata: Record<string, any>\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\terrors?: { message: string; locations: any }[]\n}\n\nexport interface ContentApiRef {\n\tid: string\n\tref: string\n\tlabel: string\n\tisMasterRef?: boolean\n\tscheduledAt?: number | undefined\n}\n\ninterface ContentApiAlternateLanguage {\n\tid: string\n\ttype: string\n\tlang: string\n\tuid?: string\n}\n\ninterface ContentApiRepoConfigResponse {\n\trefs: ContentApiRef[]\n\tbookmarks: Record<string, unknown>\n\ttypes: Record<string, string>\n\tlanguages: {\n\t\tid: string\n\t\tname: string\n\t\tis_master: boolean\n\t}[]\n\toauth_initiate: string\n\toauth_token: string\n\ttags: string[]\n\tlicense: string\n\tversion: string\n}\n\ntype SearchQueryParams = {\n\tref?: string\n\tquery?: string\n\tq?: string\n\tgraphQuery?: string\n\tfetchLinks?: string\n\torderings?: string\n\tpageSize?: number\n\tpage?: number\n\tlang?: string\n\tafter?: string\n\troutes?: string\n}\n\ntype ApiVersions = \"v1\" | \"v2\"\n\n/**\n * Client to query the Prismic content api. Uses Playwright to benefit from network request traces\n * in your reports. See api docs: https://prismic.io/docs/rest-api-technical-reference\n */\nexport class ContentApiClient extends AuthenticatedApiClient {\n\tprivate version: ApiVersions\n\tprivate accessToken: string | undefined\n\n\t/**\n\t * @example\n\t * \tTo instantiate the class:\n\t *\n\t * \t```js\n\t * \tnew ContentApiClient(\"https://my-repo.cdn.prismic.io\", {\n\t * \tversion: \"v2\",\n\t * \taccessToken: \"my-secret-token\",\n\t * \t});\n\t * \t```\n\t *\n\t * @param baseURL - The api base URL like https://my-repo.cdn.prismic.io\n\t * @param config - Optional configuration\n\t *\n\t * - {@link config.version}: Api version, default is \"v2\"\n\t * - {@link config.accessToken}: Access token for the content api -\n\t * https://prismic.io/docs/access-token\n\t */\n\tconstructor(baseURL: string, config: { version?: ApiVersions; accessToken?: string } = {}) {\n\t\t// Use an empty string as Authorization header in case it is already set globally in the project Playwright config file.\n\t\t// This is because the content api returns an error in case it gets an non-empty invalid Authorization\n\t\t// even though it actually checks authorization from the access_token query parameter.\n\t\tsuper(baseURL, config.accessToken || \"\")\n\t\tthis.version = config.version || \"v2\"\n\t\tthis.accessToken = config.accessToken\n\t}\n\n\tasync get(\n\t\tpath: string,\n\t\tparams?: SearchQueryParams,\n\t\theaders?: Record<string, string>,\n\t): Promise<APIResponse> {\n\t\tconst context = await this.getContext()\n\t\tconst securityParams = this.accessToken\n\t\t\t? { access_token: this.accessToken }\n\t\t\t: ({} as Record<string, never>)\n\n\t\treturn context.get(path, {\n\t\t\tparams: { ...securityParams, ...params },\n\t\t\theaders,\n\t\t})\n\t}\n\n\tasync getAsJson<T>(\n\t\turl: string,\n\t\tparams?: SearchQueryParams,\n\t\theaders?: Record<string, string>,\n\t): Promise<T> {\n\t\tconst response = await this.get(url, params, headers)\n\n\t\treturn response.json() as T\n\t}\n\n\t/** Query the graphql api - https://prismic.io/docs/graphql-technical-reference */\n\tasync graphql(ref: string, query: string): Promise<ContentApiGraphQLResponse> {\n\t\treturn this.getAsJson<ContentApiGraphQLResponse>(\"graphql\", { query }, { \"Prismic-ref\": ref })\n\t}\n\n\tasync getRefs(): Promise<ContentApiRef[]> {\n\t\tconst data = await this.getAsJson<ContentApiRepoConfigResponse>(`api/${this.version}`)\n\n\t\treturn data.refs\n\t}\n\n\tasync getMasterRef(): Promise<string> {\n\t\tconst refs = await this.getRefs()\n\n\t\tconst masterRef = refs.find(({ isMasterRef }) => isMasterRef === true)\n\t\tif (!masterRef) {\n\t\t\tthrow \"No master ref found\"\n\t\t}\n\n\t\treturn masterRef.ref\n\t}\n\n\tasync getRefByReleaseID(releaseID: string): Promise<string> {\n\t\tconst refs = await this.getRefs()\n\t\tconst release = refs.find(({ id }) => id === releaseID)\n\t\tif (!release) {\n\t\t\tthrow `No ref found for release ${releaseID}`\n\t\t}\n\n\t\treturn release.ref\n\t}\n\n\t/** Search documents from the `/api/v<version>/documents/search` endpoint. */\n\tasync search(filters?: SearchQueryParams): Promise<ContentApiSearchResponse> {\n\t\tlet ref = filters?.ref\n\t\tif (!ref) {\n\t\t\tref = await this.getMasterRef()\n\t\t}\n\n\t\treturn this.getAsJson<ContentApiSearchResponse>(`api/${this.version}/documents/search`, {\n\t\t\t...filters,\n\t\t\tref,\n\t\t})\n\t}\n\n\t/**\n\t * Search for a single document by its it, using the `/api/v<version>/documents/search` endpoint\n\t * and a default filter.\n\t */\n\tasync searchByID(id: string, filters?: SearchQueryParams): Promise<ContentApiSearchResponse> {\n\t\treturn this.search({ ...filters, q: `[[at(document.id, \"${id}\")]]` })\n\t}\n\n\t/** Retrieve a single document or undefined if not found. */\n\tasync getDocumentByID(\n\t\tid: string,\n\t\tfilters?: SearchQueryParams,\n\t): Promise<ContentApiDocument | undefined> {\n\t\tconst data = await this.searchByID(id, filters)\n\t\tswitch (data.results_size) {\n\t\t\tcase 0:\n\t\t\t\treturn\n\t\t\tcase 1:\n\t\t\t\treturn data.results[0]\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Too many documents returned with the same id ${id}`)\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;AA8FA,IAAa,mBAAb,cAAsC,uBAAuB;CAC5D;CACA;;;;;;;;;;;;;;;;;;;CAoBA,YAAY,SAAiB,SAA0D,CAAC,GAAG;EAI1F,MAAM,SAAS,OAAO,eAAe,EAAE;EACvC,KAAK,UAAU,OAAO,WAAW;EACjC,KAAK,cAAc,OAAO;CAC3B;CAEA,MAAM,IACL,MACA,QACA,SACuB;EACvB,MAAM,UAAU,MAAM,KAAK,WAAW;EACtC,MAAM,iBAAiB,KAAK,cACzB,EAAE,cAAc,KAAK,YAAY,IAChC,CAAC;EAEL,OAAO,QAAQ,IAAI,MAAM;GACxB,QAAQ;IAAE,GAAG;IAAgB,GAAG;GAAO;GACvC;EACD,CAAC;CACF;CAEA,MAAM,UACL,KACA,QACA,SACa;EAGb,QAAO,MAFgB,KAAK,IAAI,KAAK,QAAQ,OAAO,EAAA,CAEpC,KAAK;CACtB;;CAGA,MAAM,QAAQ,KAAa,OAAmD;EAC7E,OAAO,KAAK,UAAqC,WAAW,EAAE,MAAM,GAAG,EAAE,eAAe,IAAI,CAAC;CAC9F;CAEA,MAAM,UAAoC;EAGzC,QAAO,MAFY,KAAK,UAAwC,OAAO,KAAK,SAAS,EAAA,CAEzE;CACb;CAEA,MAAM,eAAgC;EAGrC,MAAM,aAAY,MAFC,KAAK,QAAQ,EAAA,CAET,MAAM,EAAE,kBAAkB,gBAAgB,IAAI;EACrE,IAAI,CAAC,WACJ,MAAM;EAGP,OAAO,UAAU;CAClB;CAEA,MAAM,kBAAkB,WAAoC;EAE3D,MAAM,WAAU,MADG,KAAK,QAAQ,EAAA,CACX,MAAM,EAAE,SAAS,OAAO,SAAS;EACtD,IAAI,CAAC,SACJ,MAAM,4BAA4B;EAGnC,OAAO,QAAQ;CAChB;;CAGA,MAAM,OAAO,SAAgE;EAC5E,IAAI,MAAM,SAAS;EACnB,IAAI,CAAC,KACJ,MAAM,MAAM,KAAK,aAAa;EAG/B,OAAO,KAAK,UAAoC,OAAO,KAAK,QAAQ,oBAAoB;GACvF,GAAG;GACH;EACD,CAAC;CACF;;;;;CAMA,MAAM,WAAW,IAAY,SAAgE;EAC5F,OAAO,KAAK,OAAO;GAAE,GAAG;GAAS,GAAG,sBAAsB,GAAG;EAAM,CAAC;CACrE;;CAGA,MAAM,gBACL,IACA,SAC0C;EAC1C,MAAM,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO;EAC9C,QAAQ,KAAK,cAAb;GACC,KAAK,GACJ;GACD,KAAK,GACJ,OAAO,KAAK,QAAQ;GACrB,SACC,MAAM,IAAI,MAAM,gDAAgD,IAAI;EACtE;CACD;AACD"}