@scalar/workspace-store 0.40.0 → 0.40.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @scalar/workspace-store
2
2
 
3
+ ## 0.40.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#8424](https://github.com/scalar/scalar/pull/8424): feat: export XScalarCredentialsLocation
8
+ - [#8445](https://github.com/scalar/scalar/pull/8445): fix: generate unique id for models
9
+
3
10
  ## 0.40.0
4
11
 
5
12
  ### Minor Changes
@@ -61,7 +61,7 @@ const getNavigationOptions = (documentName, options) => {
61
61
  name: props.name
62
62
  })}`;
63
63
  }
64
- return `${prefixTag}model/${slug(props.name)}`;
64
+ return `${prefixTag}model/${slug(props.name, true)}`;
65
65
  }
66
66
  if (props.type === "example") {
67
67
  return `${props.parentId}/example/${slug(props.name)}`;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/navigation/get-navigation-options.ts"],
4
- "sourcesContent": ["import type { ApiReferenceConfigurationRaw } from '@scalar/types/api-reference'\nimport { slug } from 'github-slugger'\n\nimport type { TraverseSpecOptions } from '@/navigation/types'\nimport type { IdGenerator } from '@/schemas/navigation'\n\nexport type NavigationOptions =\n | Partial<\n Pick<\n ApiReferenceConfigurationRaw,\n | 'generateHeadingSlug'\n | 'generateTagSlug'\n | 'generateOperationSlug'\n | 'generateWebhookSlug'\n | 'generateModelSlug'\n | 'operationsSorter'\n | 'tagsSorter'\n | 'hideModels'\n >\n >\n | undefined\n\n/**\n * Returns options for traversing an OpenAPI document, allowing customization of\n * how IDs and slugs are generated for tags, headings, models, operations, and webhooks.\n * The returned options can be influenced by the provided DocumentConfiguration\n */\nexport const getNavigationOptions = (documentName: string, options?: NavigationOptions): TraverseSpecOptions => {\n const generateId: IdGenerator = (props) => {\n const documentId = `${slug(documentName)}`\n\n // -------- Default text id generation logic --------\n if (props.type === 'text') {\n if (options?.generateHeadingSlug) {\n return options?.generateHeadingSlug({ slug: props.slug })\n }\n\n if (props.slug) {\n return `${documentId}/description/${props.slug}`\n }\n\n return `${documentId}/`\n }\n\n // -------- Default tag id generation logic --------\n if (props.type === 'tag') {\n if (options?.generateTagSlug) {\n return `${documentId}/tag/${options.generateTagSlug(props.tag)}`\n }\n\n return `${documentId}/tag/${slug(props.tag.name ?? '')}`\n }\n\n // -------- Default operation id generation logic --------\n if (props.type === 'operation') {\n const prefixTag = props.parentTag\n ? `${generateId({\n type: 'tag',\n tag: props.parentTag.tag,\n parentId: props.parentTag.id,\n })}/`\n : `${documentId}/`\n\n if (options?.generateOperationSlug) {\n return `${prefixTag}${options.generateOperationSlug({\n path: props.path,\n operationId: props.operation.operationId,\n method: props.method.toUpperCase(),\n summary: props.operation.summary,\n })}`\n }\n\n return `${prefixTag}${props.method.toUpperCase()}${props.path}`\n }\n\n // -------- Default webhook id generation logic --------\n if (props.type === 'webhook') {\n const prefixTag = props.parentTag\n ? `${generateId({\n type: 'tag',\n parentId: props.parentTag.id,\n tag: props.parentTag.tag,\n })}/`\n : `${documentId}/`\n\n if (options?.generateWebhookSlug) {\n return `${prefixTag}webhook/${options.generateWebhookSlug({\n name: props.name,\n method: props.method?.toUpperCase(),\n })}`\n }\n\n return `${prefixTag}webhook/${props.method?.toUpperCase()}/${slug(props.name)}`\n }\n\n // -------- Default model id generation logic --------\n if (props.type === 'model') {\n if (!props.name) {\n return `${documentId}/models`\n }\n\n const prefixTag = props.parentTag\n ? `${generateId({\n type: 'tag',\n parentId: props.parentTag.id,\n tag: props.parentTag.tag,\n })}/`\n : `${documentId}/`\n\n if (options?.generateModelSlug) {\n return `${prefixTag}model/${options.generateModelSlug({\n name: props.name,\n })}`\n }\n\n return `${prefixTag}model/${slug(props.name)}`\n }\n\n if (props.type === 'example') {\n return `${props.parentId}/example/${slug(props.name)}`\n }\n\n if (props.type === 'document') {\n // -------- Default document id generation logic --------\n return documentId\n }\n\n console.warn('[WARNING]: unhandled id generation for navigation item:', props)\n return 'unknown-id'\n }\n\n return {\n hideModels: options?.hideModels ?? false,\n operationsSorter: options?.operationsSorter,\n tagsSorter: options?.tagsSorter,\n generateId,\n }\n}\n"],
5
- "mappings": "AACA,SAAS,YAAY;AA0Bd,MAAM,uBAAuB,CAAC,cAAsB,YAAqD;AAC9G,QAAM,aAA0B,CAAC,UAAU;AACzC,UAAM,aAAa,GAAG,KAAK,YAAY,CAAC;AAGxC,QAAI,MAAM,SAAS,QAAQ;AACzB,UAAI,SAAS,qBAAqB;AAChC,eAAO,SAAS,oBAAoB,EAAE,MAAM,MAAM,KAAK,CAAC;AAAA,MAC1D;AAEA,UAAI,MAAM,MAAM;AACd,eAAO,GAAG,UAAU,gBAAgB,MAAM,IAAI;AAAA,MAChD;AAEA,aAAO,GAAG,UAAU;AAAA,IACtB;AAGA,QAAI,MAAM,SAAS,OAAO;AACxB,UAAI,SAAS,iBAAiB;AAC5B,eAAO,GAAG,UAAU,QAAQ,QAAQ,gBAAgB,MAAM,GAAG,CAAC;AAAA,MAChE;AAEA,aAAO,GAAG,UAAU,QAAQ,KAAK,MAAM,IAAI,QAAQ,EAAE,CAAC;AAAA,IACxD;AAGA,QAAI,MAAM,SAAS,aAAa;AAC9B,YAAM,YAAY,MAAM,YACpB,GAAG,WAAW;AAAA,QACZ,MAAM;AAAA,QACN,KAAK,MAAM,UAAU;AAAA,QACrB,UAAU,MAAM,UAAU;AAAA,MAC5B,CAAC,CAAC,MACF,GAAG,UAAU;AAEjB,UAAI,SAAS,uBAAuB;AAClC,eAAO,GAAG,SAAS,GAAG,QAAQ,sBAAsB;AAAA,UAClD,MAAM,MAAM;AAAA,UACZ,aAAa,MAAM,UAAU;AAAA,UAC7B,QAAQ,MAAM,OAAO,YAAY;AAAA,UACjC,SAAS,MAAM,UAAU;AAAA,QAC3B,CAAC,CAAC;AAAA,MACJ;AAEA,aAAO,GAAG,SAAS,GAAG,MAAM,OAAO,YAAY,CAAC,GAAG,MAAM,IAAI;AAAA,IAC/D;AAGA,QAAI,MAAM,SAAS,WAAW;AAC5B,YAAM,YAAY,MAAM,YACpB,GAAG,WAAW;AAAA,QACZ,MAAM;AAAA,QACN,UAAU,MAAM,UAAU;AAAA,QAC1B,KAAK,MAAM,UAAU;AAAA,MACvB,CAAC,CAAC,MACF,GAAG,UAAU;AAEjB,UAAI,SAAS,qBAAqB;AAChC,eAAO,GAAG,SAAS,WAAW,QAAQ,oBAAoB;AAAA,UACxD,MAAM,MAAM;AAAA,UACZ,QAAQ,MAAM,QAAQ,YAAY;AAAA,QACpC,CAAC,CAAC;AAAA,MACJ;AAEA,aAAO,GAAG,SAAS,WAAW,MAAM,QAAQ,YAAY,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC;AAAA,IAC/E;AAGA,QAAI,MAAM,SAAS,SAAS;AAC1B,UAAI,CAAC,MAAM,MAAM;AACf,eAAO,GAAG,UAAU;AAAA,MACtB;AAEA,YAAM,YAAY,MAAM,YACpB,GAAG,WAAW;AAAA,QACZ,MAAM;AAAA,QACN,UAAU,MAAM,UAAU;AAAA,QAC1B,KAAK,MAAM,UAAU;AAAA,MACvB,CAAC,CAAC,MACF,GAAG,UAAU;AAEjB,UAAI,SAAS,mBAAmB;AAC9B,eAAO,GAAG,SAAS,SAAS,QAAQ,kBAAkB;AAAA,UACpD,MAAM,MAAM;AAAA,QACd,CAAC,CAAC;AAAA,MACJ;AAEA,aAAO,GAAG,SAAS,SAAS,KAAK,MAAM,IAAI,CAAC;AAAA,IAC9C;AAEA,QAAI,MAAM,SAAS,WAAW;AAC5B,aAAO,GAAG,MAAM,QAAQ,YAAY,KAAK,MAAM,IAAI,CAAC;AAAA,IACtD;AAEA,QAAI,MAAM,SAAS,YAAY;AAE7B,aAAO;AAAA,IACT;AAEA,YAAQ,KAAK,2DAA2D,KAAK;AAC7E,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,YAAY,SAAS,cAAc;AAAA,IACnC,kBAAkB,SAAS;AAAA,IAC3B,YAAY,SAAS;AAAA,IACrB;AAAA,EACF;AACF;",
4
+ "sourcesContent": ["import type { ApiReferenceConfigurationRaw } from '@scalar/types/api-reference'\nimport { slug } from 'github-slugger'\n\nimport type { TraverseSpecOptions } from '@/navigation/types'\nimport type { IdGenerator } from '@/schemas/navigation'\n\nexport type NavigationOptions =\n | Partial<\n Pick<\n ApiReferenceConfigurationRaw,\n | 'generateHeadingSlug'\n | 'generateTagSlug'\n | 'generateOperationSlug'\n | 'generateWebhookSlug'\n | 'generateModelSlug'\n | 'operationsSorter'\n | 'tagsSorter'\n | 'hideModels'\n >\n >\n | undefined\n\n/**\n * Returns options for traversing an OpenAPI document, allowing customization of\n * how IDs and slugs are generated for tags, headings, models, operations, and webhooks.\n * The returned options can be influenced by the provided DocumentConfiguration\n */\nexport const getNavigationOptions = (documentName: string, options?: NavigationOptions): TraverseSpecOptions => {\n const generateId: IdGenerator = (props) => {\n const documentId = `${slug(documentName)}`\n\n // -------- Default text id generation logic --------\n if (props.type === 'text') {\n if (options?.generateHeadingSlug) {\n return options?.generateHeadingSlug({ slug: props.slug })\n }\n\n if (props.slug) {\n return `${documentId}/description/${props.slug}`\n }\n\n return `${documentId}/`\n }\n\n // -------- Default tag id generation logic --------\n if (props.type === 'tag') {\n if (options?.generateTagSlug) {\n return `${documentId}/tag/${options.generateTagSlug(props.tag)}`\n }\n\n return `${documentId}/tag/${slug(props.tag.name ?? '')}`\n }\n\n // -------- Default operation id generation logic --------\n if (props.type === 'operation') {\n const prefixTag = props.parentTag\n ? `${generateId({\n type: 'tag',\n tag: props.parentTag.tag,\n parentId: props.parentTag.id,\n })}/`\n : `${documentId}/`\n\n if (options?.generateOperationSlug) {\n return `${prefixTag}${options.generateOperationSlug({\n path: props.path,\n operationId: props.operation.operationId,\n method: props.method.toUpperCase(),\n summary: props.operation.summary,\n })}`\n }\n\n return `${prefixTag}${props.method.toUpperCase()}${props.path}`\n }\n\n // -------- Default webhook id generation logic --------\n if (props.type === 'webhook') {\n const prefixTag = props.parentTag\n ? `${generateId({\n type: 'tag',\n parentId: props.parentTag.id,\n tag: props.parentTag.tag,\n })}/`\n : `${documentId}/`\n\n if (options?.generateWebhookSlug) {\n return `${prefixTag}webhook/${options.generateWebhookSlug({\n name: props.name,\n method: props.method?.toUpperCase(),\n })}`\n }\n\n return `${prefixTag}webhook/${props.method?.toUpperCase()}/${slug(props.name)}`\n }\n\n // -------- Default model id generation logic --------\n if (props.type === 'model') {\n if (!props.name) {\n return `${documentId}/models`\n }\n\n const prefixTag = props.parentTag\n ? `${generateId({\n type: 'tag',\n parentId: props.parentTag.id,\n tag: props.parentTag.tag,\n })}/`\n : `${documentId}/`\n\n if (options?.generateModelSlug) {\n return `${prefixTag}model/${options.generateModelSlug({\n name: props.name,\n })}`\n }\n\n return `${prefixTag}model/${slug(props.name, true)}`\n }\n\n if (props.type === 'example') {\n return `${props.parentId}/example/${slug(props.name)}`\n }\n\n if (props.type === 'document') {\n // -------- Default document id generation logic --------\n return documentId\n }\n\n console.warn('[WARNING]: unhandled id generation for navigation item:', props)\n return 'unknown-id'\n }\n\n return {\n hideModels: options?.hideModels ?? false,\n operationsSorter: options?.operationsSorter,\n tagsSorter: options?.tagsSorter,\n generateId,\n }\n}\n"],
5
+ "mappings": "AACA,SAAS,YAAY;AA0Bd,MAAM,uBAAuB,CAAC,cAAsB,YAAqD;AAC9G,QAAM,aAA0B,CAAC,UAAU;AACzC,UAAM,aAAa,GAAG,KAAK,YAAY,CAAC;AAGxC,QAAI,MAAM,SAAS,QAAQ;AACzB,UAAI,SAAS,qBAAqB;AAChC,eAAO,SAAS,oBAAoB,EAAE,MAAM,MAAM,KAAK,CAAC;AAAA,MAC1D;AAEA,UAAI,MAAM,MAAM;AACd,eAAO,GAAG,UAAU,gBAAgB,MAAM,IAAI;AAAA,MAChD;AAEA,aAAO,GAAG,UAAU;AAAA,IACtB;AAGA,QAAI,MAAM,SAAS,OAAO;AACxB,UAAI,SAAS,iBAAiB;AAC5B,eAAO,GAAG,UAAU,QAAQ,QAAQ,gBAAgB,MAAM,GAAG,CAAC;AAAA,MAChE;AAEA,aAAO,GAAG,UAAU,QAAQ,KAAK,MAAM,IAAI,QAAQ,EAAE,CAAC;AAAA,IACxD;AAGA,QAAI,MAAM,SAAS,aAAa;AAC9B,YAAM,YAAY,MAAM,YACpB,GAAG,WAAW;AAAA,QACZ,MAAM;AAAA,QACN,KAAK,MAAM,UAAU;AAAA,QACrB,UAAU,MAAM,UAAU;AAAA,MAC5B,CAAC,CAAC,MACF,GAAG,UAAU;AAEjB,UAAI,SAAS,uBAAuB;AAClC,eAAO,GAAG,SAAS,GAAG,QAAQ,sBAAsB;AAAA,UAClD,MAAM,MAAM;AAAA,UACZ,aAAa,MAAM,UAAU;AAAA,UAC7B,QAAQ,MAAM,OAAO,YAAY;AAAA,UACjC,SAAS,MAAM,UAAU;AAAA,QAC3B,CAAC,CAAC;AAAA,MACJ;AAEA,aAAO,GAAG,SAAS,GAAG,MAAM,OAAO,YAAY,CAAC,GAAG,MAAM,IAAI;AAAA,IAC/D;AAGA,QAAI,MAAM,SAAS,WAAW;AAC5B,YAAM,YAAY,MAAM,YACpB,GAAG,WAAW;AAAA,QACZ,MAAM;AAAA,QACN,UAAU,MAAM,UAAU;AAAA,QAC1B,KAAK,MAAM,UAAU;AAAA,MACvB,CAAC,CAAC,MACF,GAAG,UAAU;AAEjB,UAAI,SAAS,qBAAqB;AAChC,eAAO,GAAG,SAAS,WAAW,QAAQ,oBAAoB;AAAA,UACxD,MAAM,MAAM;AAAA,UACZ,QAAQ,MAAM,QAAQ,YAAY;AAAA,QACpC,CAAC,CAAC;AAAA,MACJ;AAEA,aAAO,GAAG,SAAS,WAAW,MAAM,QAAQ,YAAY,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC;AAAA,IAC/E;AAGA,QAAI,MAAM,SAAS,SAAS;AAC1B,UAAI,CAAC,MAAM,MAAM;AACf,eAAO,GAAG,UAAU;AAAA,MACtB;AAEA,YAAM,YAAY,MAAM,YACpB,GAAG,WAAW;AAAA,QACZ,MAAM;AAAA,QACN,UAAU,MAAM,UAAU;AAAA,QAC1B,KAAK,MAAM,UAAU;AAAA,MACvB,CAAC,CAAC,MACF,GAAG,UAAU;AAEjB,UAAI,SAAS,mBAAmB;AAC9B,eAAO,GAAG,SAAS,SAAS,QAAQ,kBAAkB;AAAA,UACpD,MAAM,MAAM;AAAA,QACd,CAAC,CAAC;AAAA,MACJ;AAEA,aAAO,GAAG,SAAS,SAAS,KAAK,MAAM,MAAM,IAAI,CAAC;AAAA,IACpD;AAEA,QAAI,MAAM,SAAS,WAAW;AAC5B,aAAO,GAAG,MAAM,QAAQ,YAAY,KAAK,MAAM,IAAI,CAAC;AAAA,IACtD;AAEA,QAAI,MAAM,SAAS,YAAY;AAE7B,aAAO;AAAA,IACT;AAEA,YAAQ,KAAK,2DAA2D,KAAK;AAC7E,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,YAAY,SAAS,cAAc;AAAA,IACnC,kBAAkB,SAAS;AAAA,IAC3B,YAAY,SAAS;AAAA,IACrB;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,2 +1,3 @@
1
+ export type { XScalarCredentialsLocation } from './x-scalar-credentials-location.js';
1
2
  export type { XScalarAuthUrl, XScalarSecretClientId, XScalarSecretClientSecret, XScalarSecretHTTP, XScalarSecretRedirectUri, XScalarSecretRefreshToken, XScalarSecretToken, XScalarTokenUrl, } from './x-scalar-security-secrets.js';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/schemas/extensions/security/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,GAChB,MAAM,6BAA6B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/schemas/extensions/security/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AACjF,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,GAChB,MAAM,6BAA6B,CAAA"}
package/package.json CHANGED
@@ -16,7 +16,7 @@
16
16
  "openapi",
17
17
  "scalar"
18
18
  ],
19
- "version": "0.40.0",
19
+ "version": "0.40.1",
20
20
  "engines": {
21
21
  "node": ">=22"
22
22
  },
@@ -138,13 +138,13 @@
138
138
  "type-fest": "^5.3.1",
139
139
  "vue": "^3.5.26",
140
140
  "yaml": "^2.8.0",
141
- "@scalar/code-highlight": "0.3.0",
142
141
  "@scalar/helpers": "0.4.1",
142
+ "@scalar/code-highlight": "0.3.0",
143
+ "@scalar/json-magic": "0.12.3",
143
144
  "@scalar/object-utils": "1.3.2",
144
145
  "@scalar/openapi-upgrader": "0.2.0",
145
146
  "@scalar/snippetz": "0.7.4",
146
- "@scalar/types": "0.7.3",
147
- "@scalar/json-magic": "0.12.3"
147
+ "@scalar/types": "0.7.3"
148
148
  },
149
149
  "devDependencies": {
150
150
  "@google-cloud/storage": "7.16.0",