@scalar/workspace-store 0.38.1 → 0.39.1

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 (78) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dist/entities/auth/index.d.ts.map +1 -1
  3. package/dist/entities/auth/index.js +13 -21
  4. package/dist/entities/auth/index.js.map +2 -2
  5. package/dist/entities/auth/schema.d.ts +210 -0
  6. package/dist/entities/auth/schema.d.ts.map +1 -1
  7. package/dist/events/definitions/operation.d.ts +13 -0
  8. package/dist/events/definitions/operation.d.ts.map +1 -1
  9. package/dist/events/definitions/ui.d.ts +11 -2
  10. package/dist/events/definitions/ui.d.ts.map +1 -1
  11. package/dist/events/old-definitions.d.ts +1 -1
  12. package/dist/events/old-definitions.d.ts.map +1 -1
  13. package/dist/events/old-definitions.js.map +1 -1
  14. package/dist/helpers/detect-changes-proxy.d.ts +5 -2
  15. package/dist/helpers/detect-changes-proxy.d.ts.map +1 -1
  16. package/dist/helpers/detect-changes-proxy.js +7 -0
  17. package/dist/helpers/detect-changes-proxy.js.map +2 -2
  18. package/dist/mutators/document.d.ts.map +1 -1
  19. package/dist/mutators/document.js +2 -2
  20. package/dist/mutators/document.js.map +2 -2
  21. package/dist/mutators/environment.d.ts +7 -0
  22. package/dist/mutators/environment.d.ts.map +1 -1
  23. package/dist/mutators/environment.js.map +2 -2
  24. package/dist/mutators/index.d.ts +2 -0
  25. package/dist/mutators/index.d.ts.map +1 -1
  26. package/dist/mutators/operation/helpers/sync-path-parameters.d.ts +43 -7
  27. package/dist/mutators/operation/helpers/sync-path-parameters.d.ts.map +1 -1
  28. package/dist/mutators/operation/helpers/sync-path-parameters.js +30 -25
  29. package/dist/mutators/operation/helpers/sync-path-parameters.js.map +2 -2
  30. package/dist/mutators/operation/index.d.ts +1 -0
  31. package/dist/mutators/operation/index.d.ts.map +1 -1
  32. package/dist/mutators/operation/index.js +2 -0
  33. package/dist/mutators/operation/index.js.map +2 -2
  34. package/dist/mutators/operation/operation.d.ts +12 -0
  35. package/dist/mutators/operation/operation.d.ts.map +1 -1
  36. package/dist/mutators/operation/operation.js +62 -4
  37. package/dist/mutators/operation/operation.js.map +2 -2
  38. package/dist/mutators/tabs.d.ts.map +1 -1
  39. package/dist/mutators/tabs.js +3 -3
  40. package/dist/mutators/tabs.js.map +2 -2
  41. package/dist/navigation/helpers/traverse-document.d.ts.map +1 -1
  42. package/dist/navigation/helpers/traverse-document.js +2 -1
  43. package/dist/navigation/helpers/traverse-document.js.map +2 -2
  44. package/dist/plugins/bundler/index.d.ts.map +1 -1
  45. package/dist/plugins/bundler/index.js +29 -25
  46. package/dist/plugins/bundler/index.js.map +3 -3
  47. package/dist/plugins/client/persistence.d.ts.map +1 -1
  48. package/dist/plugins/client/persistence.js +28 -1
  49. package/dist/plugins/client/persistence.js.map +2 -2
  50. package/dist/schemas/extensions/security/index.d.ts +1 -1
  51. package/dist/schemas/extensions/security/index.d.ts.map +1 -1
  52. package/dist/schemas/extensions/security/x-scalar-security-secrets.d.ts +32 -0
  53. package/dist/schemas/extensions/security/x-scalar-security-secrets.d.ts.map +1 -1
  54. package/dist/schemas/extensions/security/x-scalar-security-secrets.js +9 -1
  55. package/dist/schemas/extensions/security/x-scalar-security-secrets.js.map +2 -2
  56. package/dist/schemas/inmemory-workspace.d.ts +94 -0
  57. package/dist/schemas/inmemory-workspace.d.ts.map +1 -1
  58. package/dist/schemas/reference-config/index.d.ts +26 -0
  59. package/dist/schemas/reference-config/index.d.ts.map +1 -1
  60. package/dist/schemas/reference-config/settings.d.ts +26 -0
  61. package/dist/schemas/reference-config/settings.d.ts.map +1 -1
  62. package/dist/schemas/v3.1/strict/oauth-flow.d.ts +18 -1
  63. package/dist/schemas/v3.1/strict/oauth-flow.d.ts.map +1 -1
  64. package/dist/schemas/v3.1/strict/oauth-flow.js +7 -1
  65. package/dist/schemas/v3.1/strict/oauth-flow.js.map +2 -2
  66. package/dist/schemas/v3.1/strict/oauthflows.d.ts +16 -0
  67. package/dist/schemas/v3.1/strict/oauthflows.d.ts.map +1 -1
  68. package/dist/schemas/v3.1/strict/openapi-document.d.ts +1000 -90
  69. package/dist/schemas/v3.1/strict/openapi-document.d.ts.map +1 -1
  70. package/dist/schemas/v3.1/strict/schema.d.ts +13 -0
  71. package/dist/schemas/v3.1/strict/schema.d.ts.map +1 -1
  72. package/dist/schemas/v3.1/strict/schema.js +3 -1
  73. package/dist/schemas/v3.1/strict/schema.js.map +2 -2
  74. package/dist/schemas/workspace.d.ts +78 -0
  75. package/dist/schemas/workspace.d.ts.map +1 -1
  76. package/dist/workspace-plugin.d.ts +6 -0
  77. package/dist/workspace-plugin.d.ts.map +1 -1
  78. package/package.json +6 -6
package/CHANGELOG.md CHANGED
@@ -1,5 +1,44 @@
1
1
  # @scalar/workspace-store
2
2
 
3
+ ## 0.39.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#8393](https://github.com/scalar/scalar/pull/8393): fix: correctly update active tab on tab close event
8
+ - [#8403](https://github.com/scalar/scalar/pull/8403): Persist auth url and token url in local storage
9
+
10
+ #### Updated Dependencies
11
+
12
+ - **@scalar/snippetz@0.7.3**
13
+ - [#8404](https://github.com/scalar/scalar/pull/8404): Preserve duplicate query parameters in generated code snippets. php/guzzle: preserve duplicate query parameters as arrays.
14
+
15
+ ## 0.39.0
16
+
17
+ ### Minor Changes
18
+
19
+ - [#8349](https://github.com/scalar/scalar/pull/8349): feat: support operation example rename
20
+
21
+ ### Patch Changes
22
+
23
+ - [#8372](https://github.com/scalar/scalar/pull/8372): fix: avoid inlining $ref path parameters during path parameter sync
24
+ - [#8336](https://github.com/scalar/scalar/pull/8336): fix: sidebar title update and detect delete operaitons for proxy
25
+ - [#8253](https://github.com/scalar/scalar/pull/8253): feat(api-reference): support propertyNames enum for additionalProperties
26
+
27
+ #### Updated Dependencies
28
+
29
+ - **@scalar/helpers@0.4.0**
30
+ - [#8336](https://github.com/scalar/scalar/pull/8336): feat: support flushing any pending operations
31
+
32
+ - **@scalar/json-magic@0.12.2**
33
+
34
+ - **@scalar/object-utils@1.3.1**
35
+
36
+ - **@scalar/types@0.7.2**
37
+
38
+ - **@scalar/openapi-upgrader@0.2.0**
39
+
40
+ - **@scalar/snippetz@0.7.2**
41
+
3
42
  ## 0.38.1
4
43
 
5
44
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/entities/auth/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAG5C,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAA;AAM/B,YAAY,EACV,IAAI,EACJ,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,UAAU,CAAA;AAEjB;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB;;;;;OAKG;IACH,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,gBAAgB,GAAG,SAAS,CAAA;IAE1F;;;;OAIG;IACH,sBAAsB,EAAE,CACtB,OAAO,EACH;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAC1C;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAC1E,gBAAgB,GAAG,SAAS,CAAA;IAEjC;;;;OAIG;IACH,sBAAsB,EAAE,CACtB,OAAO,EACH;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAC1C;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAC7E,eAAe,EAAE,gBAAgB,KAC9B,IAAI,CAAA;IACT;;;OAGG;IACH,wBAAwB,EAAE,CACxB,OAAO,EACH;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAC1C;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAC1E,IAAI,CAAA;IACT;;;;;OAKG;IACH,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAA;IAEvG;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IAEpE;;;OAGG;IACH,iBAAiB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAA;IAEjD;;;OAGG;IACH,IAAI,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAA;IAElC;;;OAGG;IACH,MAAM,EAAE,MAAM,YAAY,CAAA;CAC3B,CAAA;AAED,KAAK,sBAAsB,GAAG;IAC5B,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAA;KAC9C,CAAA;CACF,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,YAAW,sBAA2B,KAAG,SA8GxE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/entities/auth/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAG5C,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAA;AAK/B,YAAY,EACV,IAAI,EACJ,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,UAAU,CAAA;AAEjB;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB;;;;;OAKG;IACH,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,gBAAgB,GAAG,SAAS,CAAA;IAE1F;;;;OAIG;IACH,sBAAsB,EAAE,CACtB,OAAO,EACH;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAC1C;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAC1E,gBAAgB,GAAG,SAAS,CAAA;IAEjC;;;;OAIG;IACH,sBAAsB,EAAE,CACtB,OAAO,EACH;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAC1C;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAC7E,eAAe,EAAE,gBAAgB,KAC9B,IAAI,CAAA;IACT;;;OAGG;IACH,wBAAwB,EAAE,CACxB,OAAO,EACH;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAC1C;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAC1E,IAAI,CAAA;IACT;;;;;OAKG;IACH,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAA;IAEvG;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IAEpE;;;OAGG;IACH,iBAAiB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAA;IAEjD;;;OAGG;IACH,IAAI,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAA;IAElC;;;OAGG;IACH,MAAM,EAAE,MAAM,YAAY,CAAA;CAC3B,CAAA;AAED,KAAK,sBAAsB,GAAG;IAC5B,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAA;KAC9C,CAAA;CACF,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,YAAW,sBAA2B,KAAG,SA0GxE,CAAA"}
@@ -4,7 +4,6 @@ import {
4
4
  DocumentAuthSchema,
5
5
  SecretsAuthUnionSchema
6
6
  } from "../../entities/auth/schema.js";
7
- import { createDetectChangesProxy } from "../../helpers/detect-changes-proxy.js";
8
7
  import { safeAssign } from "../../helpers/general.js";
9
8
  import { unpackProxyObject } from "../../helpers/unpack-proxy.js";
10
9
  import { coerceValue } from "../../schemas/typebox-coerce.js";
@@ -14,33 +13,19 @@ import {
14
13
  SecretsAuthSchema
15
14
  } from "./schema.js";
16
15
  const createAuthStore = ({ hooks } = {}) => {
17
- const auth = reactive(
18
- createDetectChangesProxy(
19
- {},
20
- {
21
- hooks: {
22
- onAfterChange: (path) => {
23
- if (path.length < 1) {
24
- return;
25
- }
26
- const [documentName] = path;
27
- if (typeof documentName !== "string") {
28
- return;
29
- }
30
- hooks?.onAuthChange?.(documentName);
31
- }
32
- }
33
- }
34
- )
35
- );
16
+ const auth = reactive({});
36
17
  const getAuthSecrets = (documentName, schemeName) => {
37
18
  return auth[documentName]?.secrets?.[schemeName];
38
19
  };
39
20
  const setAuthSecrets = (documentName, schemeName, data) => {
40
21
  auth[documentName] ||= { secrets: {}, selected: { document: void 0, path: void 0 } };
41
22
  auth[documentName].secrets[schemeName] = coerceValue(SecretsAuthUnionSchema, data);
23
+ hooks?.onAuthChange?.(documentName);
24
+ };
25
+ const clearAuthSecrets = (documentName, schemeName) => {
26
+ delete auth[documentName]?.secrets?.[schemeName];
27
+ hooks?.onAuthChange?.(documentName);
42
28
  };
43
- const clearAuthSecrets = (documentName, schemeName) => delete auth[documentName]?.secrets?.[schemeName];
44
29
  const getAuthSelectedSchemas = (payload) => {
45
30
  if (payload.type === "document") {
46
31
  return auth[payload.documentName]?.selected?.document;
@@ -63,6 +48,7 @@ const createAuthStore = ({ hooks } = {}) => {
63
48
  const pathAuth = documentAuth.selected.path[payload.path];
64
49
  pathAuth[payload.method] = selectedSchemes;
65
50
  }
51
+ hooks?.onAuthChange?.(payload.documentName);
66
52
  };
67
53
  const clearAuthSelectedSchemas = (payload) => {
68
54
  const documentAuth = auth[payload.documentName];
@@ -71,6 +57,7 @@ const createAuthStore = ({ hooks } = {}) => {
71
57
  }
72
58
  if (payload.type === "document") {
73
59
  delete documentAuth.selected.document;
60
+ hooks?.onAuthChange?.(payload.documentName);
74
61
  return;
75
62
  }
76
63
  preventPollution(payload.method);
@@ -80,12 +67,17 @@ const createAuthStore = ({ hooks } = {}) => {
80
67
  return;
81
68
  }
82
69
  delete pathAuth[payload.method];
70
+ hooks?.onAuthChange?.(payload.documentName);
83
71
  };
84
72
  const clearDocumentAuth = (documentName) => {
85
73
  delete auth[documentName];
74
+ hooks?.onAuthChange?.(documentName);
86
75
  };
87
76
  const load = (data) => {
88
77
  safeAssign(auth, coerceValue(DocumentAuthSchema, data));
78
+ Object.keys(data).forEach((documentName) => {
79
+ hooks?.onAuthChange?.(documentName);
80
+ });
89
81
  };
90
82
  const exportAuth = () => {
91
83
  return unpackProxyObject(auth);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/entities/auth/index.ts"],
4
- "sourcesContent": ["import { preventPollution } from '@scalar/helpers/object/prevent-pollution'\nimport type { PartialDeep } from 'type-fest'\nimport { reactive } from 'vue'\n\nimport {\n type DocumentAuth,\n DocumentAuthSchema,\n type SecretsAuthUnion,\n SecretsAuthUnionSchema,\n type SelectedSecurity,\n} from '@/entities/auth/schema'\nimport { createDetectChangesProxy } from '@/helpers/detect-changes-proxy'\nimport { safeAssign } from '@/helpers/general'\nimport { unpackProxyObject } from '@/helpers/unpack-proxy'\nimport { coerceValue } from '@/schemas/typebox-coerce'\n\nexport type {\n Auth,\n SecretsApiKey,\n SecretsAuth,\n SecretsAuthUnion,\n SecretsHttp,\n SecretsOAuth,\n SecretsOAuthFlows,\n SecretsOpenIdConnect,\n SelectedSecurity,\n} from './schema'\nexport {\n AuthSchema,\n OpenIDConnectSchema,\n SecretsAuthSchema,\n} from './schema'\n\n/**\n * Interface for the AuthStore used to manage authentication secrets and selection state.\n */\nexport type AuthStore = {\n /**\n * Retrieves the authentication secrets for a given document and security scheme.\n * @param documentName - Name/id of the OpenAPI document.\n * @param schemeName - Name of the security scheme.\n * @returns The authentication secrets, or undefined if not found.\n */\n getAuthSecrets: (documentName: string, schemeName: string) => SecretsAuthUnion | undefined\n\n /**\n * Retrieves the selected schemas for a given document or path.\n * @param payload - The payload to get the selected schemas for.\n * @returns The selected schemas, or undefined if not found.\n */\n getAuthSelectedSchemas: (\n payload:\n | { type: 'document'; documentName: string }\n | { type: 'operation'; documentName: string; path: string; method: string },\n ) => SelectedSecurity | undefined\n\n /**\n * Sets the selected schemas for a given document or path.\n * @param payload - The payload to set the selected schemas for.\n * @param selectedSchemes - The selected schemas to set.\n */\n setAuthSelectedSchemas: (\n payload:\n | { type: 'document'; documentName: string }\n | { type: 'operation'; documentName: string; path: string; method: string },\n selectedSchemes: SelectedSecurity,\n ) => void\n /**\n * Clears the selected schemas for a given document or path.\n * @param payload - The payload to clear the selected schemas for.\n */\n clearAuthSelectedSchemas: (\n payload:\n | { type: 'document'; documentName: string }\n | { type: 'operation'; documentName: string; path: string; method: string },\n ) => void\n /**\n * Sets the authentication secrets for a given document and security scheme.\n * @param documentName - Name/id of the OpenAPI document.\n * @param schemeName - Name of the security scheme.\n * @param auth - The secret/auth object to set.\n */\n setAuthSecrets: (documentName: string, schemeName: string, auth: PartialDeep<SecretsAuthUnion>) => void\n\n /**\n * Clears the authentication secrets for a given document and security scheme.\n * @param documentName - Name/id of the OpenAPI document.\n * @param schemeName - Name of the security scheme.\n */\n clearAuthSecrets: (documentName: string, schemeName: string) => void\n\n /**\n * Removes the authentication data for a given document.\n * @param documentName - Name/id of the OpenAPI document.\n */\n clearDocumentAuth: (documentName: string) => void\n\n /**\n * Loads authentication data into the store, replacing existing state.\n * @param data - A DocumentAuth object.\n */\n load: (data: DocumentAuth) => void\n\n /**\n * Exports the current authentication state as a plain (non-proxy) DocumentAuth object.\n * @returns The authentication state.\n */\n export: () => DocumentAuth\n}\n\ntype CreateAuthStoreOptions = {\n hooks?: {\n onAuthChange?: (documentName: string) => void\n }\n}\n\n/**\n * Factory function to create a new AuthStore instance.\n */\nexport const createAuthStore = ({ hooks }: CreateAuthStoreOptions = {}): AuthStore => {\n // Vue reactive object to hold all authentication state\n const auth = reactive<DocumentAuth>(\n createDetectChangesProxy(\n {},\n {\n hooks: {\n onAfterChange: (path) => {\n if (path.length < 1) {\n return\n }\n const [documentName] = path\n if (typeof documentName !== 'string') {\n return\n }\n hooks?.onAuthChange?.(documentName)\n },\n },\n },\n ),\n )\n\n const getAuthSecrets: AuthStore['getAuthSecrets'] = (documentName, schemeName) => {\n return auth[documentName]?.secrets?.[schemeName]\n }\n\n const setAuthSecrets: AuthStore['setAuthSecrets'] = (documentName, schemeName, data) => {\n auth[documentName] ||= { secrets: {}, selected: { document: undefined, path: undefined } }\n auth[documentName].secrets[schemeName] = coerceValue(SecretsAuthUnionSchema, data)\n }\n\n const clearAuthSecrets: AuthStore['clearAuthSecrets'] = (documentName, schemeName) =>\n delete auth[documentName]?.secrets?.[schemeName]\n\n const getAuthSelectedSchemas: AuthStore['getAuthSelectedSchemas'] = (payload) => {\n if (payload.type === 'document') {\n return auth[payload.documentName]?.selected?.document\n }\n return auth[payload.documentName]?.selected?.path?.[payload.path]?.[payload.method]\n }\n\n const setAuthSelectedSchemas: AuthStore['setAuthSelectedSchemas'] = (payload, selectedSchemes) => {\n auth[payload.documentName] ||= {\n secrets: {},\n selected: { document: undefined, path: undefined },\n }\n\n // TypeScript needs a non-null assertion here since we just ensured it exists\n const documentAuth = auth[payload.documentName]!\n\n if (payload.type === 'document') {\n documentAuth.selected.document = selectedSchemes\n } else {\n // Prevent assigning dangerous keys to the path items object\n preventPollution(payload.path)\n preventPollution(payload.method)\n\n documentAuth.selected.path ||= {}\n documentAuth.selected.path[payload.path] ||= {}\n const pathAuth = documentAuth.selected.path[payload.path]!\n pathAuth[payload.method] = selectedSchemes\n }\n }\n\n const clearAuthSelectedSchemas: AuthStore['clearAuthSelectedSchemas'] = (payload) => {\n const documentAuth = auth[payload.documentName]\n if (!documentAuth) {\n return\n }\n\n if (payload.type === 'document') {\n delete documentAuth.selected.document\n return\n }\n\n // Prevent altering dangerous keys to the path items object\n preventPollution(payload.method)\n preventPollution(payload.path)\n\n const pathAuth = documentAuth.selected.path?.[payload.path]\n if (!pathAuth) {\n return\n }\n\n delete pathAuth[payload.method]\n }\n\n const clearDocumentAuth: AuthStore['clearDocumentAuth'] = (documentName) => {\n delete auth[documentName]\n }\n\n const load: AuthStore['load'] = (data) => {\n safeAssign(auth, coerceValue(DocumentAuthSchema, data))\n }\n\n const exportAuth: AuthStore['export'] = () => {\n return unpackProxyObject(auth)\n }\n\n return {\n clearAuthSelectedSchemas,\n getAuthSecrets,\n setAuthSecrets,\n clearAuthSecrets,\n getAuthSelectedSchemas,\n setAuthSelectedSchemas,\n clearDocumentAuth,\n load,\n export: exportAuth,\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { preventPollution } from '@scalar/helpers/object/prevent-pollution'\nimport type { PartialDeep } from 'type-fest'\nimport { reactive } from 'vue'\n\nimport {\n type DocumentAuth,\n DocumentAuthSchema,\n type SecretsAuthUnion,\n SecretsAuthUnionSchema,\n type SelectedSecurity,\n} from '@/entities/auth/schema'\nimport { safeAssign } from '@/helpers/general'\nimport { unpackProxyObject } from '@/helpers/unpack-proxy'\nimport { coerceValue } from '@/schemas/typebox-coerce'\n\nexport type {\n Auth,\n SecretsApiKey,\n SecretsAuth,\n SecretsAuthUnion,\n SecretsHttp,\n SecretsOAuth,\n SecretsOAuthFlows,\n SecretsOpenIdConnect,\n SelectedSecurity,\n} from './schema'\nexport {\n AuthSchema,\n OpenIDConnectSchema,\n SecretsAuthSchema,\n} from './schema'\n\n/**\n * Interface for the AuthStore used to manage authentication secrets and selection state.\n */\nexport type AuthStore = {\n /**\n * Retrieves the authentication secrets for a given document and security scheme.\n * @param documentName - Name/id of the OpenAPI document.\n * @param schemeName - Name of the security scheme.\n * @returns The authentication secrets, or undefined if not found.\n */\n getAuthSecrets: (documentName: string, schemeName: string) => SecretsAuthUnion | undefined\n\n /**\n * Retrieves the selected schemas for a given document or path.\n * @param payload - The payload to get the selected schemas for.\n * @returns The selected schemas, or undefined if not found.\n */\n getAuthSelectedSchemas: (\n payload:\n | { type: 'document'; documentName: string }\n | { type: 'operation'; documentName: string; path: string; method: string },\n ) => SelectedSecurity | undefined\n\n /**\n * Sets the selected schemas for a given document or path.\n * @param payload - The payload to set the selected schemas for.\n * @param selectedSchemes - The selected schemas to set.\n */\n setAuthSelectedSchemas: (\n payload:\n | { type: 'document'; documentName: string }\n | { type: 'operation'; documentName: string; path: string; method: string },\n selectedSchemes: SelectedSecurity,\n ) => void\n /**\n * Clears the selected schemas for a given document or path.\n * @param payload - The payload to clear the selected schemas for.\n */\n clearAuthSelectedSchemas: (\n payload:\n | { type: 'document'; documentName: string }\n | { type: 'operation'; documentName: string; path: string; method: string },\n ) => void\n /**\n * Sets the authentication secrets for a given document and security scheme.\n * @param documentName - Name/id of the OpenAPI document.\n * @param schemeName - Name of the security scheme.\n * @param auth - The secret/auth object to set.\n */\n setAuthSecrets: (documentName: string, schemeName: string, auth: PartialDeep<SecretsAuthUnion>) => void\n\n /**\n * Clears the authentication secrets for a given document and security scheme.\n * @param documentName - Name/id of the OpenAPI document.\n * @param schemeName - Name of the security scheme.\n */\n clearAuthSecrets: (documentName: string, schemeName: string) => void\n\n /**\n * Removes the authentication data for a given document.\n * @param documentName - Name/id of the OpenAPI document.\n */\n clearDocumentAuth: (documentName: string) => void\n\n /**\n * Loads authentication data into the store, replacing existing state.\n * @param data - A DocumentAuth object.\n */\n load: (data: DocumentAuth) => void\n\n /**\n * Exports the current authentication state as a plain (non-proxy) DocumentAuth object.\n * @returns The authentication state.\n */\n export: () => DocumentAuth\n}\n\ntype CreateAuthStoreOptions = {\n hooks?: {\n onAuthChange?: (documentName: string) => void\n }\n}\n\n/**\n * Factory function to create a new AuthStore instance.\n */\nexport const createAuthStore = ({ hooks }: CreateAuthStoreOptions = {}): AuthStore => {\n // Vue reactive object to hold all authentication state\n const auth = reactive<DocumentAuth>({})\n\n const getAuthSecrets: AuthStore['getAuthSecrets'] = (documentName, schemeName) => {\n return auth[documentName]?.secrets?.[schemeName]\n }\n\n const setAuthSecrets: AuthStore['setAuthSecrets'] = (documentName, schemeName, data) => {\n auth[documentName] ||= { secrets: {}, selected: { document: undefined, path: undefined } }\n auth[documentName].secrets[schemeName] = coerceValue(SecretsAuthUnionSchema, data)\n\n hooks?.onAuthChange?.(documentName)\n }\n\n const clearAuthSecrets: AuthStore['clearAuthSecrets'] = (documentName, schemeName) => {\n delete auth[documentName]?.secrets?.[schemeName]\n hooks?.onAuthChange?.(documentName)\n }\n\n const getAuthSelectedSchemas: AuthStore['getAuthSelectedSchemas'] = (payload) => {\n if (payload.type === 'document') {\n return auth[payload.documentName]?.selected?.document\n }\n return auth[payload.documentName]?.selected?.path?.[payload.path]?.[payload.method]\n }\n\n const setAuthSelectedSchemas: AuthStore['setAuthSelectedSchemas'] = (payload, selectedSchemes) => {\n auth[payload.documentName] ||= {\n secrets: {},\n selected: { document: undefined, path: undefined },\n }\n\n // TypeScript needs a non-null assertion here since we just ensured it exists\n const documentAuth = auth[payload.documentName]!\n\n if (payload.type === 'document') {\n documentAuth.selected.document = selectedSchemes\n } else {\n // Prevent assigning dangerous keys to the path items object\n preventPollution(payload.path)\n preventPollution(payload.method)\n\n documentAuth.selected.path ||= {}\n documentAuth.selected.path[payload.path] ||= {}\n const pathAuth = documentAuth.selected.path[payload.path]!\n pathAuth[payload.method] = selectedSchemes\n }\n\n hooks?.onAuthChange?.(payload.documentName)\n }\n\n const clearAuthSelectedSchemas: AuthStore['clearAuthSelectedSchemas'] = (payload) => {\n const documentAuth = auth[payload.documentName]\n if (!documentAuth) {\n return\n }\n\n if (payload.type === 'document') {\n delete documentAuth.selected.document\n hooks?.onAuthChange?.(payload.documentName)\n return\n }\n\n // Prevent altering dangerous keys to the path items object\n preventPollution(payload.method)\n preventPollution(payload.path)\n\n const pathAuth = documentAuth.selected.path?.[payload.path]\n if (!pathAuth) {\n return\n }\n\n delete pathAuth[payload.method]\n hooks?.onAuthChange?.(payload.documentName)\n }\n\n const clearDocumentAuth: AuthStore['clearDocumentAuth'] = (documentName) => {\n delete auth[documentName]\n hooks?.onAuthChange?.(documentName)\n }\n\n const load: AuthStore['load'] = (data) => {\n safeAssign(auth, coerceValue(DocumentAuthSchema, data))\n\n // Trigger change events for all loaded documents\n Object.keys(data).forEach((documentName) => {\n hooks?.onAuthChange?.(documentName)\n })\n }\n\n const exportAuth: AuthStore['export'] = () => {\n return unpackProxyObject(auth)\n }\n\n return {\n clearAuthSelectedSchemas,\n getAuthSecrets,\n setAuthSecrets,\n clearAuthSecrets,\n getAuthSelectedSchemas,\n setAuthSelectedSchemas,\n clearDocumentAuth,\n load,\n export: exportAuth,\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }