@salesforce/b2c-tooling-sdk 2.5.0 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/docs/schema.d.ts +1 -1
- package/dist/esm/docs/schema.js +29 -27
- package/dist/esm/docs/schema.js.map +1 -1
- package/dist/esm/docs/types.d.ts +1 -1
- package/dist/esm/scapi/index.d.ts +2 -0
- package/dist/esm/scapi/index.js +1 -0
- package/dist/esm/scapi/index.js.map +1 -1
- package/dist/esm/scapi/runtime.js +16 -0
- package/dist/esm/scapi/runtime.js.map +1 -1
- package/dist/esm/scapi/search.d.ts +25 -0
- package/dist/esm/scapi/search.js +88 -0
- package/dist/esm/scapi/search.js.map +1 -0
- package/dist/esm/scapi/worker-source.js +8 -2
- package/dist/esm/scapi/worker-source.js.map +1 -1
- package/package.json +1 -2
|
@@ -40,7 +40,7 @@ export declare function readSchemaByQuery(query: string): {
|
|
|
40
40
|
*
|
|
41
41
|
* @param query - The search query string to match against schema IDs
|
|
42
42
|
* @param limit - Maximum number of results to return (default: 20)
|
|
43
|
-
* @returns Array of schema search results with relevance scores,
|
|
43
|
+
* @returns Array of schema search results with relevance scores, best match first (higher scores indicate better matches)
|
|
44
44
|
*
|
|
45
45
|
* @example
|
|
46
46
|
* ```typescript
|
package/dist/esm/docs/schema.js
CHANGED
|
@@ -5,11 +5,12 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import * as fs from 'node:fs';
|
|
7
7
|
import * as path from 'node:path';
|
|
8
|
-
import
|
|
8
|
+
import { createRankedIndex } from '../search/ranking.js';
|
|
9
9
|
import { XSD_DATA_DIR } from './types.js';
|
|
10
|
-
// Lazy-loaded index and
|
|
10
|
+
// Lazy-loaded index and search instance
|
|
11
11
|
let schemaIndex = null;
|
|
12
|
-
let
|
|
12
|
+
let searchInstance = null;
|
|
13
|
+
const entryById = new Map();
|
|
13
14
|
/**
|
|
14
15
|
* Load the schema index from disk.
|
|
15
16
|
*/
|
|
@@ -20,22 +21,30 @@ function loadIndex() {
|
|
|
20
21
|
const indexPath = path.join(XSD_DATA_DIR, 'index.json');
|
|
21
22
|
const content = fs.readFileSync(indexPath, 'utf-8');
|
|
22
23
|
schemaIndex = JSON.parse(content);
|
|
24
|
+
for (const entry of schemaIndex.entries)
|
|
25
|
+
entryById.set(entry.id, entry);
|
|
23
26
|
return schemaIndex;
|
|
24
27
|
}
|
|
25
28
|
/**
|
|
26
|
-
* Get or create the
|
|
29
|
+
* Get or create the search instance over schema IDs.
|
|
27
30
|
*/
|
|
28
|
-
function
|
|
29
|
-
if (
|
|
30
|
-
return
|
|
31
|
+
function getSearch() {
|
|
32
|
+
if (searchInstance) {
|
|
33
|
+
return searchInstance;
|
|
31
34
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
searchInstance = createRankedIndex(loadIndex().entries.map((entry) => ({ id: entry.id, title: entry.id })));
|
|
36
|
+
return searchInstance;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Rank schema IDs for a query. IDs are compound words ("giftcertificate"), so the query is also tried with
|
|
40
|
+
* separators removed; "gift certificate" and "gift-certificate" both match.
|
|
41
|
+
*/
|
|
42
|
+
function rankSchemas(query, limit) {
|
|
43
|
+
const compact = query.toLowerCase().replaceAll(/[^a-z\d]+/g, '');
|
|
44
|
+
return getSearch()
|
|
45
|
+
.search({ combineWith: 'OR', queries: compact ? [query, compact] : [query] }, { fuzzy: (term) => (term.length > 3 ? 0.25 : false) })
|
|
46
|
+
.slice(0, limit)
|
|
47
|
+
.map((result) => ({ entry: entryById.get(result.id), score: result.score }));
|
|
39
48
|
}
|
|
40
49
|
/**
|
|
41
50
|
* List all available schema entries.
|
|
@@ -83,22 +92,20 @@ export function readSchemaByQuery(query) {
|
|
|
83
92
|
return exactMatch;
|
|
84
93
|
}
|
|
85
94
|
// Try fuzzy search
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
if (results.length === 0) {
|
|
95
|
+
const [bestMatch] = rankSchemas(query, 1);
|
|
96
|
+
if (!bestMatch) {
|
|
89
97
|
return null;
|
|
90
98
|
}
|
|
91
|
-
const
|
|
92
|
-
const filePath = path.join(XSD_DATA_DIR, bestMatch.item.filePath);
|
|
99
|
+
const filePath = path.join(XSD_DATA_DIR, bestMatch.entry.filePath);
|
|
93
100
|
const content = fs.readFileSync(filePath, 'utf-8');
|
|
94
|
-
return { entry: bestMatch.
|
|
101
|
+
return { entry: bestMatch.entry, content, path: filePath };
|
|
95
102
|
}
|
|
96
103
|
/**
|
|
97
104
|
* Search schemas by fuzzy query.
|
|
98
105
|
*
|
|
99
106
|
* @param query - The search query string to match against schema IDs
|
|
100
107
|
* @param limit - Maximum number of results to return (default: 20)
|
|
101
|
-
* @returns Array of schema search results with relevance scores,
|
|
108
|
+
* @returns Array of schema search results with relevance scores, best match first (higher scores indicate better matches)
|
|
102
109
|
*
|
|
103
110
|
* @example
|
|
104
111
|
* ```typescript
|
|
@@ -107,11 +114,6 @@ export function readSchemaByQuery(query) {
|
|
|
107
114
|
* ```
|
|
108
115
|
*/
|
|
109
116
|
export function searchSchemas(query, limit = 20) {
|
|
110
|
-
|
|
111
|
-
const results = fuse.search(query, { limit });
|
|
112
|
-
return results.map((result) => ({
|
|
113
|
-
entry: result.item,
|
|
114
|
-
score: result.score ?? 0,
|
|
115
|
-
}));
|
|
117
|
+
return rankSchemas(query, limit);
|
|
116
118
|
}
|
|
117
119
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/docs/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/docs/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/docs/types.d.ts
CHANGED
|
@@ -158,6 +158,6 @@ export interface SchemaIndex {
|
|
|
158
158
|
export interface SchemaSearchResult {
|
|
159
159
|
/** The matching schema entry */
|
|
160
160
|
entry: SchemaEntry;
|
|
161
|
-
/**
|
|
161
|
+
/** Relevance score; higher is better */
|
|
162
162
|
score: number;
|
|
163
163
|
}
|
|
@@ -10,6 +10,8 @@ export type { ScapiLiveSchemaCacheOptions, ScapiLiveSchemaLoadOptions, ScapiLive
|
|
|
10
10
|
export { ScapiShopperSessions } from './shopper.js';
|
|
11
11
|
export type { ScapiShopperAuth, ScapiShopperConfig } from './shopper.js';
|
|
12
12
|
export { runScapiCode } from './runtime.js';
|
|
13
|
+
export { createScapiOperationSearch, scapiFullPath, searchScapiOperations } from './search.js';
|
|
14
|
+
export type { ScapiOperationMatch, ScapiOperationSearchOptions } from './search.js';
|
|
13
15
|
export { createScapiAuth } from './auth-primitives.js';
|
|
14
16
|
export type { ScapiCodeOptions, ScapiRuntimeControl } from './runtime.js';
|
|
15
17
|
export { loadBuiltinScapiSnippets, loadScapiSnippets, saveScapiSnippet, getScapiSnippetDirectory, initializeScapiSnippetStore, } from './snippets.js';
|
package/dist/esm/scapi/index.js
CHANGED
|
@@ -10,6 +10,7 @@ export { isRemoteScapiSchema, loadLocalScapiSchemas, loadScapiSchemaOverrides }
|
|
|
10
10
|
export { SCAPI_SCHEMA_EXPANSIONS, SCAPI_STANDARD_SCHEMA_EXPAND, normalizeScapiSchemaExpand, scapiExpandIncludes, isFullScapiExpand, scapiSchemaExpandFor, findBundledScapiSchema, listBundledScapiSchemas, fetchScapiSchemaWithFallback, listScapiSchemasWithFallback, } from './schema-source.js';
|
|
11
11
|
export { ScapiShopperSessions } from './shopper.js';
|
|
12
12
|
export { runScapiCode } from './runtime.js';
|
|
13
|
+
export { createScapiOperationSearch, scapiFullPath, searchScapiOperations } from './search.js';
|
|
13
14
|
export { createScapiAuth } from './auth-primitives.js';
|
|
14
15
|
export { loadBuiltinScapiSnippets, loadScapiSnippets, saveScapiSnippet, getScapiSnippetDirectory, initializeScapiSnippetStore, } from './snippets.js';
|
|
15
16
|
export { createScapiRequest } from './request.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scapi/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6HAA6H;AAC7H,OAAO,EAAC,gBAAgB,EAAE,kBAAkB,EAAE,qBAAqB,EAAC,MAAM,cAAc,CAAC;AAEzF,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,GACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAC,mBAAmB,EAAE,qBAAqB,EAAE,wBAAwB,EAAC,MAAM,YAAY,CAAC;AAEhG,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,0BAA0B,EAC1B,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAW5B,OAAO,EAAC,oBAAoB,EAAC,MAAM,cAAc,CAAC;AAElD,OAAO,EAAC,YAAY,EAAC,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAErD,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAC,kBAAkB,EAAC,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAC,gBAAgB,EAAE,eAAe,EAAC,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scapi/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6HAA6H;AAC7H,OAAO,EAAC,gBAAgB,EAAE,kBAAkB,EAAE,qBAAqB,EAAC,MAAM,cAAc,CAAC;AAEzF,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,GACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAC,mBAAmB,EAAE,qBAAqB,EAAE,wBAAwB,EAAC,MAAM,YAAY,CAAC;AAEhG,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,0BAA0B,EAC1B,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAW5B,OAAO,EAAC,oBAAoB,EAAC,MAAM,cAAc,CAAC;AAElD,OAAO,EAAC,YAAY,EAAC,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAC,0BAA0B,EAAE,aAAa,EAAE,qBAAqB,EAAC,MAAM,aAAa,CAAC;AAE7F,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAErD,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAC,kBAAkB,EAAC,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAC,gBAAgB,EAAE,eAAe,EAAC,MAAM,qBAAqB,CAAC"}
|
|
@@ -7,6 +7,7 @@ import { spawn } from 'node:child_process';
|
|
|
7
7
|
import { getLogger } from '../logging/logger.js';
|
|
8
8
|
import { SCAPI_WORKER_SOURCE } from './worker-source.js';
|
|
9
9
|
import { describeScapiSchemas } from './authentication.js';
|
|
10
|
+
import { createScapiOperationSearch } from './search.js';
|
|
10
11
|
import { createScapiSnippetResolver, loadBuiltinScapiSnippets } from './snippets.js';
|
|
11
12
|
/** Execute one JavaScript async function in a disposable Node process. */
|
|
12
13
|
export async function runScapiCode(options) {
|
|
@@ -17,6 +18,8 @@ export async function runScapiCode(options) {
|
|
|
17
18
|
throw new Error('SCAPI_EXECUTION_CANCELLED');
|
|
18
19
|
const documents = describeScapiSchemas(options.documents ?? [], options.authType);
|
|
19
20
|
const resolveSnippet = createScapiSnippetResolver(options.snippets ?? loadBuiltinScapiSnippets());
|
|
21
|
+
// Built on first spec.search so runs that only filter spec.paths pay nothing.
|
|
22
|
+
let searchOperations;
|
|
20
23
|
if (options.authType && !documents.length)
|
|
21
24
|
throw new Error(`No ${options.authType} operations match this search. Omit authType to inspect all authentication requirements.`);
|
|
22
25
|
return new Promise((resolve, reject) => {
|
|
@@ -33,6 +36,7 @@ export async function runScapiCode(options) {
|
|
|
33
36
|
let calls = 0;
|
|
34
37
|
let active = 0;
|
|
35
38
|
let snippetCalls = 0;
|
|
39
|
+
let searchCalls = 0;
|
|
36
40
|
let outcome;
|
|
37
41
|
const finish = (value, error) => {
|
|
38
42
|
if (settled)
|
|
@@ -110,6 +114,18 @@ export async function runScapiCode(options) {
|
|
|
110
114
|
}
|
|
111
115
|
return;
|
|
112
116
|
}
|
|
117
|
+
if (message.type === 'search') {
|
|
118
|
+
try {
|
|
119
|
+
if (++searchCalls > 50)
|
|
120
|
+
throw new Error('SCAPI_SEARCH_LIMIT: at most 50 spec.search calls per execution.');
|
|
121
|
+
searchOperations ??= createScapiOperationSearch(documents);
|
|
122
|
+
reply(searchOperations(String(message.query ?? ''), message.options));
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
reply(undefined, error instanceof Error ? error.message : String(error));
|
|
126
|
+
}
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
113
129
|
if (message.type !== 'request' && message.type !== 'auth')
|
|
114
130
|
return;
|
|
115
131
|
if (message.type === 'auth' ? !options.auth : !options.request)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/scapi/runtime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/scapi/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type ScapiSchemaDocument } from './catalog.js';
|
|
2
|
+
/** One ranked operation; `path` and `method` index `spec.paths` directly. */
|
|
3
|
+
export interface ScapiOperationMatch {
|
|
4
|
+
api: string;
|
|
5
|
+
method: string;
|
|
6
|
+
path: string;
|
|
7
|
+
operationId?: string;
|
|
8
|
+
summary?: string;
|
|
9
|
+
score: number;
|
|
10
|
+
/** Older versions of the same API that declare this operation; only the newest is returned. */
|
|
11
|
+
otherVersions?: string[];
|
|
12
|
+
}
|
|
13
|
+
export interface ScapiOperationSearchOptions {
|
|
14
|
+
/** Maximum matches to return. Defaults to 10, capped at 50. */
|
|
15
|
+
limit?: number;
|
|
16
|
+
}
|
|
17
|
+
/** Code-mode paths are prefixed with the API id; custom API contracts omit their organization segment. */
|
|
18
|
+
export declare function scapiFullPath(document: ScapiSchemaDocument, path: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* Rank operations by summary, operationId, tags, path and description so prose such as "gift certificate balance"
|
|
21
|
+
* finds operations a regex over ids would miss. Versions of one API collapse into the newest.
|
|
22
|
+
*/
|
|
23
|
+
export declare function createScapiOperationSearch(documents: readonly ScapiSchemaDocument[]): (query: string, options?: ScapiOperationSearchOptions) => ScapiOperationMatch[];
|
|
24
|
+
/** One-off ranking over a document set; reuse {@link createScapiOperationSearch} for repeated queries. */
|
|
25
|
+
export declare function searchScapiOperations(documents: readonly ScapiSchemaDocument[], query: string, options?: ScapiOperationSearchOptions): ScapiOperationMatch[];
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025, Salesforce, Inc.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2
|
|
4
|
+
* For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { createRankedIndex } from '../search/ranking.js';
|
|
7
|
+
import { SCAPI_METHODS } from './catalog.js';
|
|
8
|
+
/** Code-mode paths are prefixed with the API id; custom API contracts omit their organization segment. */
|
|
9
|
+
export function scapiFullPath(document, path) {
|
|
10
|
+
return `/${document.entry.id}${document.entry.apiFamily === 'custom' ? '/organizations/{organizationId}' : ''}${path}`;
|
|
11
|
+
}
|
|
12
|
+
const words = (value) => value
|
|
13
|
+
.replaceAll(/([a-z\d])([A-Z])/g, '$1 $2')
|
|
14
|
+
.replaceAll(/[{}/_.-]+/g, ' ')
|
|
15
|
+
.trim();
|
|
16
|
+
// Some summaries run to paragraphs; spec.paths keeps the full text.
|
|
17
|
+
const brief = (value) => {
|
|
18
|
+
const text = value.replaceAll(/\s+/g, ' ').trim();
|
|
19
|
+
return text.length > 200 ? `${text.slice(0, 199)}…` : text;
|
|
20
|
+
};
|
|
21
|
+
const versionNumber = (version) => Number.parseInt(version.replaceAll(/\D+/g, ''), 10) || 0;
|
|
22
|
+
/**
|
|
23
|
+
* Rank operations by summary, operationId, tags, path and description so prose such as "gift certificate balance"
|
|
24
|
+
* finds operations a regex over ids would miss. Versions of one API collapse into the newest.
|
|
25
|
+
*/
|
|
26
|
+
export function createScapiOperationSearch(documents) {
|
|
27
|
+
const operations = new Map();
|
|
28
|
+
for (const document of documents) {
|
|
29
|
+
const { apiFamily, apiName, apiVersion } = document.entry;
|
|
30
|
+
for (const [path, item] of Object.entries(document.schema.paths ?? {})) {
|
|
31
|
+
for (const method of SCAPI_METHODS) {
|
|
32
|
+
const operation = item[method];
|
|
33
|
+
if (!operation)
|
|
34
|
+
continue;
|
|
35
|
+
const key = `${apiFamily}/${apiName}|${method}|${path}`;
|
|
36
|
+
const existing = operations.get(key);
|
|
37
|
+
if (existing && versionNumber(existing.apiVersion) >= versionNumber(apiVersion)) {
|
|
38
|
+
existing.otherVersions.push(apiVersion);
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
operations.set(key, {
|
|
42
|
+
api: document.entry.id,
|
|
43
|
+
method,
|
|
44
|
+
path: scapiFullPath(document, path),
|
|
45
|
+
operationId: operation.operationId,
|
|
46
|
+
summary: operation.summary,
|
|
47
|
+
description: operation.description ?? '',
|
|
48
|
+
tags: operation.tags ?? [],
|
|
49
|
+
apiVersion,
|
|
50
|
+
otherVersions: existing ? [...existing.otherVersions, existing.apiVersion] : [],
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const index = createRankedIndex([...operations].map(([key, operation]) => ({
|
|
56
|
+
id: key,
|
|
57
|
+
title: [operation.summary, operation.operationId && words(operation.operationId)].filter(Boolean).join(' '),
|
|
58
|
+
headings: words(operation.path),
|
|
59
|
+
keywords: [operation.operationId ?? '', ...operation.tags, words(operation.api)],
|
|
60
|
+
summary: operation.description,
|
|
61
|
+
})));
|
|
62
|
+
return (query, options = {}) => {
|
|
63
|
+
const limit = Math.min(Math.max(Math.trunc(options.limit ?? 10), 1), 50);
|
|
64
|
+
if (!query.trim())
|
|
65
|
+
return [];
|
|
66
|
+
return (index
|
|
67
|
+
// Short terms such as "get" or "id" fuzz into noise; fuzz only distinctive words.
|
|
68
|
+
.search(query, { fuzzy: (term) => (term.length > 4 ? 0.2 : false) })
|
|
69
|
+
.slice(0, limit)
|
|
70
|
+
.map((result) => {
|
|
71
|
+
const { api, method, path, operationId, summary, otherVersions } = operations.get(result.id);
|
|
72
|
+
return {
|
|
73
|
+
api,
|
|
74
|
+
method,
|
|
75
|
+
path,
|
|
76
|
+
...(operationId === undefined ? {} : { operationId }),
|
|
77
|
+
...(summary === undefined ? {} : { summary: brief(summary) }),
|
|
78
|
+
score: Math.round(result.score * 100) / 100,
|
|
79
|
+
...(otherVersions.length > 0 ? { otherVersions: otherVersions.sort() } : {}),
|
|
80
|
+
};
|
|
81
|
+
}));
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/** One-off ranking over a document set; reuse {@link createScapiOperationSearch} for repeated queries. */
|
|
85
|
+
export function searchScapiOperations(documents, query, options) {
|
|
86
|
+
return createScapiOperationSearch(documents)(query, options);
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/scapi/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,10 +56,16 @@ process.on('message', async message => {
|
|
|
56
56
|
}
|
|
57
57
|
const outlined = message.detail === 'outline';
|
|
58
58
|
const resolveDetail = (value, api) => outlined ? outline(resolve(value, api)) : resolve(value, api);
|
|
59
|
-
const
|
|
59
|
+
const call = (fields) => new Promise((resolve, reject) => {
|
|
60
|
+
const id = ++sequence;
|
|
61
|
+
pending.set(id, {resolve, reject});
|
|
62
|
+
send({...fields, id});
|
|
63
|
+
});
|
|
64
|
+
const search = (query, options = {}) => call({type:'search', query: String(query ?? ''), options: {limit: options?.limit}});
|
|
65
|
+
const specData = {apis: documents.map(d => d.entry), paths: {}, resolve: resolveDetail, search};
|
|
60
66
|
const spec = new Proxy(specData, {get(target, key, receiver) {
|
|
61
67
|
if (typeof key === 'symbol' || key in target || key === 'then' || key === 'toJSON') return Reflect.get(target, key, receiver);
|
|
62
|
-
throw new Error('SCAPI_SPEC_UNKNOWN_MEMBER: spec.' + key + ' does not exist. spec has only apis (array of API entries), paths ({[fullPath]: {[method]: operation}})
|
|
68
|
+
throw new Error('SCAPI_SPEC_UNKNOWN_MEMBER: spec.' + key + ' does not exist. spec has only apis (array of API entries), paths ({[fullPath]: {[method]: operation}}), resolve(value, apiId) and search(query, {limit}). Rank operations with await spec.search("gift certificate balance") or list them with Object.entries(spec.paths).');
|
|
63
69
|
}});
|
|
64
70
|
for (const {entry, schema} of documents) {
|
|
65
71
|
for (const [path, item] of Object.entries(schema.paths || {})) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-source.js","sourceRoot":"","sources":["../../../src/scapi/worker-source.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,qGAAqG;AACrG,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"worker-source.js","sourceRoot":"","sources":["../../../src/scapi/worker-source.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,qGAAqG;AACrG,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2H5C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/b2c-tooling-sdk",
|
|
3
3
|
"description": "Core tooling library for Salesforce B2C Commerce CLI",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.6.0",
|
|
5
5
|
"author": "Charles Lavery",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"repository": "SalesforceCommerceCloud/b2c-developer-tooling",
|
|
@@ -252,7 +252,6 @@
|
|
|
252
252
|
"chokidar": "5.0.0",
|
|
253
253
|
"cliui": "9.0.1",
|
|
254
254
|
"ejs": "3.1.10",
|
|
255
|
-
"fuse.js": "7.1.0",
|
|
256
255
|
"glob": "13.0.0",
|
|
257
256
|
"i18next": "25.7.4",
|
|
258
257
|
"jiti": "2.6.1",
|