@opentabs-dev/shared 0.0.23 → 0.0.24
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/constants.d.ts +30 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +42 -0
- package/dist/constants.js.map +1 -1
- package/dist/index.d.ts +10 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -4
- package/dist/index.js.map +1 -1
- package/dist/manifest.d.ts +8 -1
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +7 -9
- package/dist/manifest.js.map +1 -1
- package/package.json +1 -1
package/dist/constants.d.ts
CHANGED
|
@@ -21,6 +21,36 @@ export declare const getConfigPath: () => string;
|
|
|
21
21
|
export declare const getExtensionDir: () => string;
|
|
22
22
|
/** Returns the path to the server log file (~/.opentabs/server.log). */
|
|
23
23
|
export declare const getLogFilePath: () => string;
|
|
24
|
+
/** npm scope for official first-party OpenTabs plugins */
|
|
25
|
+
export declare const OFFICIAL_SCOPE = "@opentabs-dev";
|
|
26
|
+
/** Prefix for opentabs plugin npm package names */
|
|
27
|
+
export declare const PLUGIN_PREFIX = "opentabs-plugin-";
|
|
28
|
+
/**
|
|
29
|
+
* Resolve all possible npm package names for a given plugin shorthand.
|
|
30
|
+
*
|
|
31
|
+
* Returns candidates in priority order (official first, then community unscoped).
|
|
32
|
+
* Already-qualified names (scoped or full `opentabs-plugin-*`) return as-is.
|
|
33
|
+
*
|
|
34
|
+
* Examples:
|
|
35
|
+
* "slack" → ["@opentabs-dev/opentabs-plugin-slack", "opentabs-plugin-slack"]
|
|
36
|
+
* "opentabs-plugin-slack" → ["opentabs-plugin-slack"]
|
|
37
|
+
* "@opentabs-dev/opentabs-plugin-slack"→ ["@opentabs-dev/opentabs-plugin-slack"]
|
|
38
|
+
* "@myorg/opentabs-plugin-jira" → ["@myorg/opentabs-plugin-jira"]
|
|
39
|
+
*/
|
|
40
|
+
export declare const resolvePluginPackageCandidates: (name: string) => string[];
|
|
41
|
+
/**
|
|
42
|
+
* Normalize a shorthand plugin name to its full npm package name.
|
|
43
|
+
*
|
|
44
|
+
* Shorthand names expand to the official scoped package first. Already-qualified
|
|
45
|
+
* names (scoped or prefixed with `opentabs-plugin-`) pass through unchanged.
|
|
46
|
+
*
|
|
47
|
+
* Examples:
|
|
48
|
+
* "slack" → "@opentabs-dev/opentabs-plugin-slack"
|
|
49
|
+
* "opentabs-plugin-slack" → "opentabs-plugin-slack"
|
|
50
|
+
* "@opentabs-dev/opentabs-plugin-slack" → "@opentabs-dev/opentabs-plugin-slack"
|
|
51
|
+
* "@myorg/opentabs-plugin-jira" → "@myorg/opentabs-plugin-jira"
|
|
52
|
+
*/
|
|
53
|
+
export declare const normalizePluginName: (name: string) => string;
|
|
24
54
|
/** Generate a 256-bit cryptographic random secret as a 64-character hex string. */
|
|
25
55
|
export declare const generateSecret: () => string;
|
|
26
56
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,yDAAyD;AACzD,eAAO,MAAM,YAAY,OAAO,CAAC;AAMjC,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAElD,sDAAsD;AACtD,eAAO,MAAM,2BAA2B,wBAAwB,CAAC;AAEjE,wFAAwF;AACxF,eAAO,MAAM,cAAc,eAAe,CAAC;AAM3C;uFACuF;AACvF,eAAO,MAAM,YAAY,QAAO,MAAqE,CAAC;AAEtG,mEAAmE;AACnE,eAAO,MAAM,aAAa,QAAO,MAA6C,CAAC;AAE/E,gFAAgF;AAChF,eAAO,MAAM,eAAe,QAAO,MAA2C,CAAC;AAE/E,wEAAwE;AACxE,eAAO,MAAM,cAAc,QAAO,MAA4C,CAAC;AAM/E,mFAAmF;AACnF,eAAO,MAAM,cAAc,QAAO,MAIjC,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,yDAAyD;AACzD,eAAO,MAAM,YAAY,OAAO,CAAC;AAMjC,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAElD,sDAAsD;AACtD,eAAO,MAAM,2BAA2B,wBAAwB,CAAC;AAEjE,wFAAwF;AACxF,eAAO,MAAM,cAAc,eAAe,CAAC;AAM3C;uFACuF;AACvF,eAAO,MAAM,YAAY,QAAO,MAAqE,CAAC;AAEtG,mEAAmE;AACnE,eAAO,MAAM,aAAa,QAAO,MAA6C,CAAC;AAE/E,gFAAgF;AAChF,eAAO,MAAM,eAAe,QAAO,MAA2C,CAAC;AAE/E,wEAAwE;AACxE,eAAO,MAAM,cAAc,QAAO,MAA4C,CAAC;AAM/E,0DAA0D;AAC1D,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAE9C,mDAAmD;AACnD,eAAO,MAAM,aAAa,qBAAqB,CAAC;AAEhD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,8BAA8B,GAAI,MAAM,MAAM,KAAG,MAAM,EAInE,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,KAAG,MAGlD,CAAC;AAMF,mFAAmF;AACnF,eAAO,MAAM,cAAc,QAAO,MAIjC,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -33,6 +33,48 @@ export const getExtensionDir = () => join(getConfigDir(), 'extension');
|
|
|
33
33
|
/** Returns the path to the server log file (~/.opentabs/server.log). */
|
|
34
34
|
export const getLogFilePath = () => join(getConfigDir(), 'server.log');
|
|
35
35
|
// ---------------------------------------------------------------------------
|
|
36
|
+
// Plugin naming conventions
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
/** npm scope for official first-party OpenTabs plugins */
|
|
39
|
+
export const OFFICIAL_SCOPE = '@opentabs-dev';
|
|
40
|
+
/** Prefix for opentabs plugin npm package names */
|
|
41
|
+
export const PLUGIN_PREFIX = 'opentabs-plugin-';
|
|
42
|
+
/**
|
|
43
|
+
* Resolve all possible npm package names for a given plugin shorthand.
|
|
44
|
+
*
|
|
45
|
+
* Returns candidates in priority order (official first, then community unscoped).
|
|
46
|
+
* Already-qualified names (scoped or full `opentabs-plugin-*`) return as-is.
|
|
47
|
+
*
|
|
48
|
+
* Examples:
|
|
49
|
+
* "slack" → ["@opentabs-dev/opentabs-plugin-slack", "opentabs-plugin-slack"]
|
|
50
|
+
* "opentabs-plugin-slack" → ["opentabs-plugin-slack"]
|
|
51
|
+
* "@opentabs-dev/opentabs-plugin-slack"→ ["@opentabs-dev/opentabs-plugin-slack"]
|
|
52
|
+
* "@myorg/opentabs-plugin-jira" → ["@myorg/opentabs-plugin-jira"]
|
|
53
|
+
*/
|
|
54
|
+
export const resolvePluginPackageCandidates = (name) => {
|
|
55
|
+
if (name.startsWith('@'))
|
|
56
|
+
return [name];
|
|
57
|
+
if (name.startsWith(PLUGIN_PREFIX))
|
|
58
|
+
return [name];
|
|
59
|
+
return [`${OFFICIAL_SCOPE}/${PLUGIN_PREFIX}${name}`, `${PLUGIN_PREFIX}${name}`];
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Normalize a shorthand plugin name to its full npm package name.
|
|
63
|
+
*
|
|
64
|
+
* Shorthand names expand to the official scoped package first. Already-qualified
|
|
65
|
+
* names (scoped or prefixed with `opentabs-plugin-`) pass through unchanged.
|
|
66
|
+
*
|
|
67
|
+
* Examples:
|
|
68
|
+
* "slack" → "@opentabs-dev/opentabs-plugin-slack"
|
|
69
|
+
* "opentabs-plugin-slack" → "opentabs-plugin-slack"
|
|
70
|
+
* "@opentabs-dev/opentabs-plugin-slack" → "@opentabs-dev/opentabs-plugin-slack"
|
|
71
|
+
* "@myorg/opentabs-plugin-jira" → "@myorg/opentabs-plugin-jira"
|
|
72
|
+
*/
|
|
73
|
+
export const normalizePluginName = (name) => {
|
|
74
|
+
const candidates = resolvePluginPackageCandidates(name);
|
|
75
|
+
return candidates[0] ?? `${OFFICIAL_SCOPE}/${PLUGIN_PREFIX}${name}`;
|
|
76
|
+
};
|
|
77
|
+
// ---------------------------------------------------------------------------
|
|
36
78
|
// Cryptography
|
|
37
79
|
// ---------------------------------------------------------------------------
|
|
38
80
|
/** Generate a 256-bit cryptographic random secret as a 64-character hex string. */
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,yDAAyD;AACzD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AAEjC,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E,+EAA+E;AAC/E,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAElD,sDAAsD;AACtD,MAAM,CAAC,MAAM,2BAA2B,GAAG,qBAAqB,CAAC;AAEjE,wFAAwF;AACxF,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC;AAE3C,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E;uFACuF;AACvF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAW,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AAEtG,mEAAmE;AACnE,MAAM,CAAC,MAAM,aAAa,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,aAAa,CAAC,CAAC;AAE/E,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,WAAW,CAAC,CAAC;AAE/E,wEAAwE;AACxE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,YAAY,CAAC,CAAC;AAE/E,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,mFAAmF;AACnF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAW,EAAE;IACzC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1E,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,yDAAyD;AACzD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AAEjC,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E,+EAA+E;AAC/E,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAElD,sDAAsD;AACtD,MAAM,CAAC,MAAM,2BAA2B,GAAG,qBAAqB,CAAC;AAEjE,wFAAwF;AACxF,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC;AAE3C,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E;uFACuF;AACvF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAW,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AAEtG,mEAAmE;AACnE,MAAM,CAAC,MAAM,aAAa,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,aAAa,CAAC,CAAC;AAE/E,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,WAAW,CAAC,CAAC;AAE/E,wEAAwE;AACxE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,YAAY,CAAC,CAAC;AAE/E,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAE9E,0DAA0D;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC;AAE9C,mDAAmD;AACnD,MAAM,CAAC,MAAM,aAAa,GAAG,kBAAkB,CAAC;AAEhD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,IAAY,EAAY,EAAE;IACvE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,cAAc,IAAI,aAAa,GAAG,IAAI,EAAE,EAAE,GAAG,aAAa,GAAG,IAAI,EAAE,CAAC,CAAC;AAClF,CAAC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAU,EAAE;IAC1D,MAAM,UAAU,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,cAAc,IAAI,aAAa,GAAG,IAAI,EAAE,CAAC;AACtE,CAAC,CAAC;AAEF,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,mFAAmF;AACnF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAW,EAAE;IACzC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1E,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export { atomicWrite, isWindows, platformExec, safeChmod } from './cross-platform.js';
|
|
9
9
|
export { toErrorMessage } from './error.js';
|
|
10
|
-
export { DEFAULT_PORT, ADAPTER_FILENAME, ADAPTER_SOURCE_MAP_FILENAME, TOOLS_FILENAME, getConfigDir, getConfigPath, getExtensionDir, getLogFilePath, generateSecret, } from './constants.js';
|
|
10
|
+
export { DEFAULT_PORT, ADAPTER_FILENAME, ADAPTER_SOURCE_MAP_FILENAME, TOOLS_FILENAME, getConfigDir, getConfigPath, getExtensionDir, getLogFilePath, generateSecret, OFFICIAL_SCOPE, PLUGIN_PREFIX, normalizePluginName, resolvePluginPackageCandidates, } from './constants.js';
|
|
11
11
|
export { type Ok, type Err, type Result, ok, err, isOk, isErr, unwrap, unwrapOr, mapResult } from './result.js';
|
|
12
|
-
export { parsePluginPackageJson } from './manifest.js';
|
|
12
|
+
export { parsePluginPackageJson, isValidPluginPackageName } from './manifest.js';
|
|
13
13
|
export type { PluginOpentabsField, PluginPackageJson } from './manifest.js';
|
|
14
14
|
/** Tab state for a plugin */
|
|
15
15
|
export type TabState = 'closed' | 'unavailable' | 'ready';
|
|
@@ -243,7 +243,14 @@ export interface PluginUninstallParams {
|
|
|
243
243
|
export declare const BLOCKED_URL_SCHEMES: readonly string[];
|
|
244
244
|
/** Check if a URL uses a blocked scheme. Returns true if the URL is dangerous or unparseable. */
|
|
245
245
|
export declare const isBlockedUrlScheme: (url: string) => boolean;
|
|
246
|
-
/**
|
|
246
|
+
/**
|
|
247
|
+
* Matches paths to exclude when copying the browser extension to ~/.opentabs/extension/.
|
|
248
|
+
*
|
|
249
|
+
* Excluded categories:
|
|
250
|
+
* - Directories: node_modules, src, .git, .storybook, storybook-static
|
|
251
|
+
* - File patterns: tsconfig*, build-*.ts
|
|
252
|
+
* - Root-level metadata: package.json, CLAUDE.md
|
|
253
|
+
*/
|
|
247
254
|
export declare const EXTENSION_COPY_EXCLUDE_PATTERN: RegExp;
|
|
248
255
|
/** Regex for valid plugin names: lowercase alphanumeric with hyphens */
|
|
249
256
|
export declare const NAME_REGEX: RegExp;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAMtF,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAM5C,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,2BAA2B,EAC3B,cAAc,EACd,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EACd,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -16,7 +16,7 @@ export { toErrorMessage } from './error.js';
|
|
|
16
16
|
// ---------------------------------------------------------------------------
|
|
17
17
|
// Shared constants — port, filenames, config paths, crypto
|
|
18
18
|
// ---------------------------------------------------------------------------
|
|
19
|
-
export { DEFAULT_PORT, ADAPTER_FILENAME, ADAPTER_SOURCE_MAP_FILENAME, TOOLS_FILENAME, getConfigDir, getConfigPath, getExtensionDir, getLogFilePath, generateSecret, } from './constants.js';
|
|
19
|
+
export { DEFAULT_PORT, ADAPTER_FILENAME, ADAPTER_SOURCE_MAP_FILENAME, TOOLS_FILENAME, getConfigDir, getConfigPath, getExtensionDir, getLogFilePath, generateSecret, OFFICIAL_SCOPE, PLUGIN_PREFIX, normalizePluginName, resolvePluginPackageCandidates, } from './constants.js';
|
|
20
20
|
// ---------------------------------------------------------------------------
|
|
21
21
|
// Result type — structured error handling
|
|
22
22
|
// ---------------------------------------------------------------------------
|
|
@@ -24,7 +24,7 @@ export { ok, err, isOk, isErr, unwrap, unwrapOr, mapResult } from './result.js';
|
|
|
24
24
|
// ---------------------------------------------------------------------------
|
|
25
25
|
// Plugin package.json manifest — new plugin metadata format
|
|
26
26
|
// ---------------------------------------------------------------------------
|
|
27
|
-
export { parsePluginPackageJson } from './manifest.js';
|
|
27
|
+
export { parsePluginPackageJson, isValidPluginPackageName } from './manifest.js';
|
|
28
28
|
// ---------------------------------------------------------------------------
|
|
29
29
|
// Security constants — shared between MCP server and Chrome extension
|
|
30
30
|
// ---------------------------------------------------------------------------
|
|
@@ -47,8 +47,15 @@ export const isBlockedUrlScheme = (url) => {
|
|
|
47
47
|
return true;
|
|
48
48
|
}
|
|
49
49
|
};
|
|
50
|
-
/**
|
|
51
|
-
|
|
50
|
+
/**
|
|
51
|
+
* Matches paths to exclude when copying the browser extension to ~/.opentabs/extension/.
|
|
52
|
+
*
|
|
53
|
+
* Excluded categories:
|
|
54
|
+
* - Directories: node_modules, src, .git, .storybook, storybook-static
|
|
55
|
+
* - File patterns: tsconfig*, build-*.ts
|
|
56
|
+
* - Root-level metadata: package.json, CLAUDE.md
|
|
57
|
+
*/
|
|
58
|
+
export const EXTENSION_COPY_EXCLUDE_PATTERN = /(?:^|[\\/])(?:node_modules|src|\.git|\.storybook|storybook-static)(?:[\\/]|$)|(?:^|[\\/])tsconfig[^/\\]*|(?:^|[\\/])build-[^/\\]*\.ts$|(?:^|[\\/])package\.json$|(?:^|[\\/])CLAUDE\.md$/;
|
|
52
59
|
// ---------------------------------------------------------------------------
|
|
53
60
|
// Plugin name validation
|
|
54
61
|
// ---------------------------------------------------------------------------
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEtF,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,8EAA8E;AAC9E,2DAA2D;AAC3D,8EAA8E;AAE9E,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,2BAA2B,EAC3B,cAAc,EACd,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EACd,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/manifest.d.ts
CHANGED
|
@@ -19,6 +19,13 @@ interface PluginPackageJson {
|
|
|
19
19
|
readonly main: string;
|
|
20
20
|
readonly opentabs: PluginOpentabsField;
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Validate that a package name matches the opentabs plugin naming convention.
|
|
24
|
+
*
|
|
25
|
+
* Accepts `opentabs-plugin-<name>` (unscoped) and `@scope/opentabs-plugin-<name>` (scoped).
|
|
26
|
+
* The name portion after the prefix must be non-empty.
|
|
27
|
+
*/
|
|
28
|
+
declare const isValidPluginPackageName: (name: string) => boolean;
|
|
22
29
|
/**
|
|
23
30
|
* Parse and validate a raw JSON object as a PluginPackageJson.
|
|
24
31
|
*
|
|
@@ -27,6 +34,6 @@ interface PluginPackageJson {
|
|
|
27
34
|
* Returns a Result with the validated PluginPackageJson or a descriptive error.
|
|
28
35
|
*/
|
|
29
36
|
declare const parsePluginPackageJson: (json: unknown, sourcePath: string) => Result<PluginPackageJson, string>;
|
|
30
|
-
export { parsePluginPackageJson };
|
|
37
|
+
export { parsePluginPackageJson, isValidPluginPackageName };
|
|
31
38
|
export type { PluginOpentabsField, PluginPackageJson };
|
|
32
39
|
//# sourceMappingURL=manifest.d.ts.map
|
package/dist/manifest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,uEAAuE;AACvE,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,iEAAiE;AACjE,UAAU,iBAAiB;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;CACxC;
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,uEAAuE;AACvE,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,iEAAiE;AACjE,UAAU,iBAAiB;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;CACxC;AAED;;;;;GAKG;AACH,QAAA,MAAM,wBAAwB,GAAI,MAAM,MAAM,KAAG,OAKhD,CAAC;AAEF;;;;;;GAMG;AACH,QAAA,MAAM,sBAAsB,GAAI,MAAM,OAAO,EAAE,YAAY,MAAM,KAAG,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAoEnG,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,CAAC;AAC5D,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC"}
|
package/dist/manifest.js
CHANGED
|
@@ -7,18 +7,16 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { err, ok } from './result.js';
|
|
9
9
|
/**
|
|
10
|
-
* Validate a
|
|
11
|
-
*
|
|
10
|
+
* Validate that a package name matches the opentabs plugin naming convention.
|
|
11
|
+
*
|
|
12
|
+
* Accepts `opentabs-plugin-<name>` (unscoped) and `@scope/opentabs-plugin-<name>` (scoped).
|
|
13
|
+
* The name portion after the prefix must be non-empty.
|
|
12
14
|
*/
|
|
13
15
|
const isValidPluginPackageName = (name) => {
|
|
14
|
-
if (name.startsWith('opentabs-plugin-'))
|
|
15
|
-
return true;
|
|
16
16
|
if (name.startsWith('@')) {
|
|
17
|
-
|
|
18
|
-
if (parts.length === 2 && (parts[1] ?? '').startsWith('opentabs-plugin-'))
|
|
19
|
-
return true;
|
|
17
|
+
return /^@[^/]+\/opentabs-plugin-.+$/.test(name);
|
|
20
18
|
}
|
|
21
|
-
return
|
|
19
|
+
return name.startsWith('opentabs-plugin-') && name.length > 'opentabs-plugin-'.length;
|
|
22
20
|
};
|
|
23
21
|
/**
|
|
24
22
|
* Parse and validate a raw JSON object as a PluginPackageJson.
|
|
@@ -84,5 +82,5 @@ const parsePluginPackageJson = (json, sourcePath) => {
|
|
|
84
82
|
},
|
|
85
83
|
});
|
|
86
84
|
};
|
|
87
|
-
export { parsePluginPackageJson };
|
|
85
|
+
export { parsePluginPackageJson, isValidPluginPackageName };
|
|
88
86
|
//# sourceMappingURL=manifest.js.map
|
package/dist/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAkBtC
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|