@shrkcrft/inspector 0.1.0-alpha.1 → 0.1.0-alpha.11
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/README.md +1 -1
- package/dist/adoption-state.js +1 -1
- package/dist/agent-brief.d.ts.map +1 -1
- package/dist/agent-brief.js +59 -10
- package/dist/agent-task-prep.d.ts.map +1 -1
- package/dist/agent-task-prep.js +1 -3
- package/dist/ai-readiness.d.ts +84 -9
- package/dist/ai-readiness.d.ts.map +1 -1
- package/dist/ai-readiness.js +161 -30
- package/dist/apply-dispatch-trace.d.ts +1 -2
- package/dist/apply-dispatch-trace.d.ts.map +1 -1
- package/dist/apply-dispatch-trace.js +0 -9
- package/dist/area-explore.d.ts.map +1 -1
- package/dist/area-explore.js +1 -5
- package/dist/area-map.d.ts +0 -19
- package/dist/area-map.d.ts.map +1 -1
- package/dist/area-map.js +0 -27
- package/dist/ci-permissions-fix.d.ts +1 -1
- package/dist/ci-permissions-fix.d.ts.map +1 -1
- package/dist/ci-permissions-fix.js +1 -182
- package/dist/code-intelligence-doctor.d.ts +21 -0
- package/dist/code-intelligence-doctor.d.ts.map +1 -0
- package/dist/code-intelligence-doctor.js +965 -0
- package/dist/compliance-profiles.js +1 -1
- package/dist/construct-adoption-diff.d.ts.map +1 -1
- package/dist/construct-adoption-diff.js +2 -1
- package/dist/construct-adoption.d.ts.map +1 -1
- package/dist/construct-adoption.js +10 -11
- package/dist/construct-inference.d.ts.map +1 -1
- package/dist/construct-inference.js +2 -1
- package/dist/construct-registry.d.ts.map +1 -1
- package/dist/construct-registry.js +2 -10
- package/dist/contract-template-registry.d.ts.map +1 -1
- package/dist/contract-template-registry.js +2 -10
- package/dist/convention-registry.d.ts.map +1 -1
- package/dist/convention-registry.js +2 -10
- package/dist/decision-records.d.ts.map +1 -1
- package/dist/decision-records.js +2 -9
- package/dist/demo-script.d.ts +0 -1
- package/dist/demo-script.d.ts.map +1 -1
- package/dist/demo-script.js +0 -43
- package/dist/docs-check.js +1 -1
- package/dist/drift-baseline.d.ts.map +1 -1
- package/dist/drift-baseline.js +5 -2
- package/dist/feedback-ingestion.d.ts.map +1 -1
- package/dist/feedback-ingestion.js +2 -16
- package/dist/git-helpers.d.ts +0 -12
- package/dist/git-helpers.d.ts.map +1 -1
- package/dist/git-helpers.js +0 -63
- package/dist/helper-registry.d.ts +27 -54
- package/dist/helper-registry.d.ts.map +1 -1
- package/dist/helper-registry.js +16 -517
- package/dist/impact-analysis.d.ts.map +1 -1
- package/dist/impact-analysis.js +4 -5
- package/dist/impact-render.d.ts.map +1 -1
- package/dist/impact-render.js +0 -9
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/ingest-drafts.js +8 -4
- package/dist/migration-profile-registry.d.ts.map +1 -1
- package/dist/migration-profile-registry.js +2 -10
- package/dist/monorepo-onboarding.js +2 -2
- package/dist/onboarding-drafts.d.ts +0 -14
- package/dist/onboarding-drafts.d.ts.map +1 -1
- package/dist/onboarding-drafts.js +5 -39
- package/dist/onboarding-report.d.ts.map +1 -1
- package/dist/onboarding-report.js +5 -1
- package/dist/onboarding.d.ts +1 -1
- package/dist/onboarding.d.ts.map +1 -1
- package/dist/onboarding.js +5 -64
- package/dist/ownership.js +2 -10
- package/dist/pack-contributions-inventory.d.ts +0 -1
- package/dist/pack-contributions-inventory.d.ts.map +1 -1
- package/dist/pack-contributions-inventory.js +0 -24
- package/dist/pack-helper-registry.d.ts.map +1 -1
- package/dist/pack-helper-registry.js +2 -10
- package/dist/pack-release-check.d.ts.map +1 -1
- package/dist/pack-release-check.js +4 -11
- package/dist/pack-signature-status.d.ts.map +1 -1
- package/dist/pack-signature-status.js +0 -1
- package/dist/pack-symbol-compat.d.ts +4 -17
- package/dist/pack-symbol-compat.d.ts.map +1 -1
- package/dist/pack-symbol-compat.js +7 -155
- package/dist/pack-test-runner.js +2 -10
- package/dist/plan-simulation.d.ts.map +1 -1
- package/dist/plan-simulation.js +3 -20
- package/dist/playbook-registry.d.ts.map +1 -1
- package/dist/playbook-registry.js +2 -10
- package/dist/policy-engine.d.ts.map +1 -1
- package/dist/policy-engine.js +3 -11
- package/dist/policy-test.js +3 -11
- package/dist/product-coherence.js +5 -5
- package/dist/profile-registry.d.ts +0 -1
- package/dist/profile-registry.d.ts.map +1 -1
- package/dist/profile-registry.js +4 -32
- package/dist/quality-baseline.d.ts.map +1 -1
- package/dist/quality-baseline.js +3 -1
- package/dist/ranker-explainability.d.ts.map +1 -1
- package/dist/ranker-explainability.js +3 -9
- package/dist/registration-hint-registry.d.ts.map +1 -1
- package/dist/registration-hint-registry.js +2 -10
- package/dist/release-readiness.js +5 -5
- package/dist/reposet.js +1 -1
- package/dist/repository-knowledge-model.d.ts +1 -1
- package/dist/repository-knowledge-model.d.ts.map +1 -1
- package/dist/review-packet-v2.d.ts.map +1 -1
- package/dist/review-packet-v2.js +3 -13
- package/dist/rule-scaffold.d.ts.map +1 -1
- package/dist/rule-scaffold.js +12 -4
- package/dist/scaffold-patterns.js +2 -10
- package/dist/search-tuning-registry.d.ts.map +1 -1
- package/dist/search-tuning-registry.js +2 -10
- package/dist/self-config-doctor-v2.d.ts +1 -1
- package/dist/self-config-doctor-v2.d.ts.map +1 -1
- package/dist/self-config-doctor-v2.js +6 -10
- package/dist/self-config-doctor.d.ts.map +1 -1
- package/dist/self-config-doctor.js +7 -13
- package/dist/sharkcraft-inspector.d.ts.map +1 -1
- package/dist/sharkcraft-inspector.js +9 -0
- package/dist/start-here.d.ts +1 -1
- package/dist/start-here.js +1 -1
- package/dist/synthesize-from-onboarding.d.ts +68 -0
- package/dist/synthesize-from-onboarding.d.ts.map +1 -0
- package/dist/synthesize-from-onboarding.js +508 -0
- package/dist/task-packet.d.ts +13 -0
- package/dist/task-packet.d.ts.map +1 -1
- package/dist/task-packet.js +46 -5
- package/dist/task-ranker.d.ts.map +1 -1
- package/dist/task-ranker.js +1 -31
- package/dist/task-routing-hint-registry.d.ts.map +1 -1
- package/dist/task-routing-hint-registry.js +2 -10
- package/dist/test-runner.d.ts.map +1 -1
- package/dist/test-runner.js +12 -17
- package/dist/universal-search.d.ts +0 -1
- package/dist/universal-search.d.ts.map +1 -1
- package/dist/universal-search.js +0 -12
- package/dist/upgrade-advisor.js +1 -1
- package/package.json +22 -21
- package/dist/onboarding-drafts-merge.d.ts +0 -71
- package/dist/onboarding-drafts-merge.d.ts.map +0 -1
- package/dist/onboarding-drafts-merge.js +0 -174
- package/dist/plugin-lifecycle-profile-registry.d.ts +0 -52
- package/dist/plugin-lifecycle-profile-registry.d.ts.map +0 -1
- package/dist/plugin-lifecycle-profile-registry.js +0 -202
- package/dist/plugin-lifecycle.d.ts +0 -132
- package/dist/plugin-lifecycle.d.ts.map +0 -1
- package/dist/plugin-lifecycle.js +0 -477
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack-helper-registry.d.ts","sourceRoot":"","sources":["../src/pack-helper-registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pack-helper-registry.d.ts","sourceRoot":"","sources":["../src/pack-helper-registry.ts"],"names":[],"mappings":"AAOA,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE,eAAO,MAAM,2BAA2B,uCAAuC,CAAC;AAEhF,oBAAY,gBAAgB;IAC1B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AA4BD,wBAAsB,eAAe,CACnC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC;IAAE,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAAC,MAAM,EAAE,SAAS,sBAAsB,EAAE,CAAA;CAAE,CAAC,CAoF9F;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAGtC;AAED,wBAAsB,cAAc,CAClC,UAAU,EAAE,qBAAqB,EACjC,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAGlC;AAED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,SAAS,sBAAsB,EAAE,CAAC,CAG5C"}
|
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
|
|
2
|
-
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
|
3
|
-
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
|
4
|
-
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
|
5
|
-
});
|
|
6
|
-
}
|
|
7
|
-
return path;
|
|
8
|
-
};
|
|
9
1
|
/**
|
|
10
2
|
* Pack helper registry. Loads pack-contributed and locally-configured
|
|
11
3
|
* helpers via `helperFiles[]`. Engine still ships its profile-driven generic
|
|
@@ -13,8 +5,8 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
13
5
|
*/
|
|
14
6
|
import { existsSync } from 'node:fs';
|
|
15
7
|
import * as nodePath from 'node:path';
|
|
16
|
-
import { pathToFileURL } from 'node:url';
|
|
17
8
|
import { validatePackHelper } from '@shrkcrft/plugin-api';
|
|
9
|
+
import { importModuleViaLoader } from '@shrkcrft/core';
|
|
18
10
|
export const PACK_HELPER_REGISTRY_SCHEMA = 'sharkcraft.pack-helper-registry/v1';
|
|
19
11
|
export var PackHelperSource;
|
|
20
12
|
(function (PackHelperSource) {
|
|
@@ -23,7 +15,7 @@ export var PackHelperSource;
|
|
|
23
15
|
PackHelperSource["Fixture"] = "fixture";
|
|
24
16
|
})(PackHelperSource || (PackHelperSource = {}));
|
|
25
17
|
async function importDefault(file) {
|
|
26
|
-
const mod = (await
|
|
18
|
+
const mod = (await importModuleViaLoader(file));
|
|
27
19
|
if (Array.isArray(mod.default))
|
|
28
20
|
return mod.default;
|
|
29
21
|
if (mod.default && typeof mod.default === 'object')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack-release-check.d.ts","sourceRoot":"","sources":["../src/pack-release-check.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pack-release-check.d.ts","sourceRoot":"","sources":["../src/pack-release-check.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,yBAAyB,qCAAqC,CAAC;AAE5E,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,yBAAyB,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACzC,MAAM,EAAE,OAAO,CAAC;CACjB;AA6ED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgLtF"}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
|
|
2
|
-
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
|
3
|
-
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
|
4
|
-
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
|
5
|
-
});
|
|
6
|
-
}
|
|
7
|
-
return path;
|
|
8
|
-
};
|
|
9
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
10
2
|
import * as nodePath from 'node:path';
|
|
11
3
|
import { validatePackManifest } from '@shrkcrft/plugin-api';
|
|
4
|
+
import { importModuleViaLoader } from '@shrkcrft/core';
|
|
12
5
|
export const PACK_RELEASE_CHECK_SCHEMA = 'sharkcraft.pack-release-check/v1';
|
|
13
6
|
function findManifest(packPath) {
|
|
14
7
|
const pkgFile = nodePath.join(packPath, 'package.json');
|
|
@@ -33,7 +26,7 @@ async function loadManifest(file) {
|
|
|
33
26
|
return JSON.parse(readFileSync(file, 'utf8'));
|
|
34
27
|
}
|
|
35
28
|
const { pathToFileURL } = await import('node:url');
|
|
36
|
-
const mod = (await
|
|
29
|
+
const mod = (await importModuleViaLoader(file));
|
|
37
30
|
return mod.default ?? mod.manifest ?? null;
|
|
38
31
|
}
|
|
39
32
|
catch {
|
|
@@ -206,7 +199,7 @@ export async function runPackReleaseCheck(packPath) {
|
|
|
206
199
|
if (/\.(ts|js|mjs|cjs)$/.test(rel)) {
|
|
207
200
|
try {
|
|
208
201
|
const { pathToFileURL } = await import('node:url');
|
|
209
|
-
await
|
|
202
|
+
await importModuleViaLoader(full);
|
|
210
203
|
}
|
|
211
204
|
catch (e) {
|
|
212
205
|
const message = e.message;
|
|
@@ -235,7 +228,7 @@ export async function runPackReleaseCheck(packPath) {
|
|
|
235
228
|
findings.push({
|
|
236
229
|
code: 'unsigned-manifest',
|
|
237
230
|
severity: 'warning',
|
|
238
|
-
message: 'Manifest has no HMAC signature.
|
|
231
|
+
message: 'Manifest has no HMAC signature. Consumers who run `shrk packs verify` will see signature status "missing-signature".',
|
|
239
232
|
suggestedFix: 'Run `shrk packs sign <manifest.ts> --output ...signed.json` with SHARKCRAFT_PACK_SECRET set.',
|
|
240
233
|
suggestedCommand: 'shrk packs sign ' + manifestFile + ' --verify-after-sign',
|
|
241
234
|
file: manifestFile,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack-signature-status.d.ts","sourceRoot":"","sources":["../src/pack-signature-status.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,4BAA4B,wCAAwC,CAAC;AAElF,oBAAY,uBAAuB;IACjC,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,EAAE,OAAO,4BAA4B,CAAC;IACrD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,sEAAsE;QACtE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;
|
|
1
|
+
{"version":3,"file":"pack-signature-status.d.ts","sourceRoot":"","sources":["../src/pack-signature-status.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,4BAA4B,wCAAwC,CAAC;AAElF,oBAAY,uBAAuB;IACjC,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,EAAE,OAAO,4BAA4B,CAAC;IACrD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,sEAAsE;QACtE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AA+BD,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,qBAAqB,GAChC,0BAA0B,CA6F5B;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,yBAAyB,GACjC,OAAO,GACP,UAAU,GACV,OAAO,GACP,SAAS,GACT,gBAAgB,GAChB,cAAc,GACd,SAAS,CAAC;AAEd,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,MAAM,EAAE,sCAAsC,CAAC;IACxD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,0BAA0B,EAAE,CAAC;CACvD;AAED,MAAM,WAAW,kCAAkC;IACjD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,qBAAqB,EACjC,OAAO,GAAE,kCAAuC,GAC/C,2BAA2B,CA6D7B"}
|
|
@@ -6,16 +6,10 @@
|
|
|
6
6
|
* and reports which symbols the pack uses that the consumer's plugin-api
|
|
7
7
|
* does not export.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* `
|
|
12
|
-
*
|
|
13
|
-
* `exports.X = …`) still use the regex scanner, since those shapes don't
|
|
14
|
-
* surface as `ExportDeclaration` nodes in the AST.
|
|
15
|
-
*
|
|
16
|
-
* `mode: 'fast'` falls back to the legacy regex-only scanner — useful
|
|
17
|
-
* when the typescript module can't be loaded or when speed matters more
|
|
18
|
-
* than completeness.
|
|
9
|
+
* This is intentionally a regex/structural parser — we do not depend on
|
|
10
|
+
* the TypeScript compiler. The goal is to catch the dominant failure
|
|
11
|
+
* mode (`Export named 'X' not found in module '@shrkcrft/plugin-api'`)
|
|
12
|
+
* before publish, not to be a full module-graph analyser.
|
|
19
13
|
*/
|
|
20
14
|
export declare const PACK_SYMBOL_COMPAT_SCHEMA = "sharkcraft.pack-symbol-compat/v1";
|
|
21
15
|
export interface IPluginApiImport {
|
|
@@ -56,18 +50,11 @@ export interface IPackSymbolCompatReport {
|
|
|
56
50
|
/** Files inspected when collecting available symbols. */
|
|
57
51
|
filesInspected: readonly string[];
|
|
58
52
|
}
|
|
59
|
-
export type PackSymbolCompatMode = 'ts' | 'fast';
|
|
60
53
|
export interface IPackSymbolCompatInput {
|
|
61
54
|
packPath: string;
|
|
62
55
|
consumerRoot?: string | null;
|
|
63
56
|
/** Scan dist/*.js patterns even when TS source is present. */
|
|
64
57
|
distAware?: boolean;
|
|
65
|
-
/**
|
|
66
|
-
* `'ts'` (default) walks ESM exports with the TypeScript compiler API and
|
|
67
|
-
* follows `export * from` chains transitively. `'fast'` uses the legacy
|
|
68
|
-
* regex-only scanner.
|
|
69
|
-
*/
|
|
70
|
-
mode?: PackSymbolCompatMode;
|
|
71
58
|
}
|
|
72
59
|
export declare function checkPackSymbolCompat(input: IPackSymbolCompatInput): IPackSymbolCompatReport;
|
|
73
60
|
//# sourceMappingURL=pack-symbol-compat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack-symbol-compat.d.ts","sourceRoot":"","sources":["../src/pack-symbol-compat.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"pack-symbol-compat.d.ts","sourceRoot":"","sources":["../src/pack-symbol-compat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,eAAO,MAAM,yBAAyB,qCAAqC,CAAC;AAE5E,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,wBAAwB;IACvC,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAC9F,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE7D,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,OAAO,yBAAyB,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,mBAAmB,EAAE,uBAAuB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,WAAW,CAAC;IACtG,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC9C,6EAA6E;IAC7E,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,+BAA+B;IAC/B,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACrC,6CAA6C;IAC7C,UAAU,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,uCAAuC;IACvC,UAAU,EAAE,oBAAoB,CAAC;IACjC,qCAAqC;IACrC,UAAU,EAAE,oBAAoB,CAAC;IACjC,yDAAyD;IACzD,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAgPD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,8DAA8D;IAC9D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAUD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,sBAAsB,GAC5B,uBAAuB,CAqGzB"}
|
|
@@ -6,20 +6,13 @@
|
|
|
6
6
|
* and reports which symbols the pack uses that the consumer's plugin-api
|
|
7
7
|
* does not export.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* `
|
|
12
|
-
*
|
|
13
|
-
* `exports.X = …`) still use the regex scanner, since those shapes don't
|
|
14
|
-
* surface as `ExportDeclaration` nodes in the AST.
|
|
15
|
-
*
|
|
16
|
-
* `mode: 'fast'` falls back to the legacy regex-only scanner — useful
|
|
17
|
-
* when the typescript module can't be loaded or when speed matters more
|
|
18
|
-
* than completeness.
|
|
9
|
+
* This is intentionally a regex/structural parser — we do not depend on
|
|
10
|
+
* the TypeScript compiler. The goal is to catch the dominant failure
|
|
11
|
+
* mode (`Export named 'X' not found in module '@shrkcrft/plugin-api'`)
|
|
12
|
+
* before publish, not to be a full module-graph analyser.
|
|
19
13
|
*/
|
|
20
14
|
import { existsSync, readFileSync, readdirSync, statSync } from 'node:fs';
|
|
21
15
|
import * as nodePath from 'node:path';
|
|
22
|
-
import * as ts from 'typescript';
|
|
23
16
|
export const PACK_SYMBOL_COMPAT_SCHEMA = 'sharkcraft.pack-symbol-compat/v1';
|
|
24
17
|
const NAMED_IMPORT_RE = /^\s*import\s*(?:type\s+)?\{([^}]+)\}\s*from\s*['"]@shrkcrft\/plugin-api['"]/;
|
|
25
18
|
const DEFAULT_IMPORT_RE = /^\s*import\s+(\w+)\s*(?:,\s*\{([^}]+)\})?\s*from\s*['"]@shrkcrft\/plugin-api['"]/;
|
|
@@ -200,112 +193,6 @@ const EXPORT_NAMED_RE = /^\s*export\s+(?:async\s+)?(?:declare\s+)?(?:function|cl
|
|
|
200
193
|
const EXPORT_BLOCK_RE = /^\s*export\s*\{([^}]+)\}/;
|
|
201
194
|
const RE_EXPORT_RE = /^\s*export\s*\*\s+from\s*['"]([^'"]+)['"]/;
|
|
202
195
|
const RE_EXPORT_NAMED_RE = /^\s*export\s*\{([^}]+)\}\s*from\s*['"]([^'"]+)['"]/;
|
|
203
|
-
function scriptKindFor(file) {
|
|
204
|
-
if (file.endsWith('.tsx'))
|
|
205
|
-
return ts.ScriptKind.TSX;
|
|
206
|
-
if (file.endsWith('.jsx'))
|
|
207
|
-
return ts.ScriptKind.JSX;
|
|
208
|
-
if (file.endsWith('.js') || file.endsWith('.mjs') || file.endsWith('.cjs'))
|
|
209
|
-
return ts.ScriptKind.JS;
|
|
210
|
-
return ts.ScriptKind.TS;
|
|
211
|
-
}
|
|
212
|
-
function hasExportModifier(node) {
|
|
213
|
-
const modifiers = (ts.canHaveModifiers(node) ? ts.getModifiers(node) : undefined) ?? [];
|
|
214
|
-
return modifiers.some((m) => m.kind === ts.SyntaxKind.ExportKeyword);
|
|
215
|
-
}
|
|
216
|
-
function collectBindingNames(name, out) {
|
|
217
|
-
if (ts.isIdentifier(name)) {
|
|
218
|
-
out.add(name.text);
|
|
219
|
-
return;
|
|
220
|
-
}
|
|
221
|
-
if (ts.isObjectBindingPattern(name) || ts.isArrayBindingPattern(name)) {
|
|
222
|
-
for (const element of name.elements) {
|
|
223
|
-
if (ts.isBindingElement(element)) {
|
|
224
|
-
collectBindingNames(element.name, out);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* Walk ESM exports of `file` using the TypeScript compiler API, following
|
|
231
|
-
* `export * from` re-exports transitively. CJS-specific shapes are NOT
|
|
232
|
-
* resolved here — call {@link collectJsExports} alongside for those.
|
|
233
|
-
*
|
|
234
|
-
* Returns an empty set on parse failure so callers can union with the
|
|
235
|
-
* regex fallback.
|
|
236
|
-
*/
|
|
237
|
-
function collectExportsTs(file, visited) {
|
|
238
|
-
if (visited.has(file))
|
|
239
|
-
return new Set();
|
|
240
|
-
visited.add(file);
|
|
241
|
-
const out = new Set();
|
|
242
|
-
let body;
|
|
243
|
-
try {
|
|
244
|
-
body = readFileSync(file, 'utf8');
|
|
245
|
-
}
|
|
246
|
-
catch {
|
|
247
|
-
return out;
|
|
248
|
-
}
|
|
249
|
-
let source;
|
|
250
|
-
try {
|
|
251
|
-
source = ts.createSourceFile(file, body, ts.ScriptTarget.Latest, /*setParentNodes*/ false, scriptKindFor(file));
|
|
252
|
-
}
|
|
253
|
-
catch {
|
|
254
|
-
return out;
|
|
255
|
-
}
|
|
256
|
-
for (const stmt of source.statements) {
|
|
257
|
-
if (ts.isExportDeclaration(stmt)) {
|
|
258
|
-
const moduleSpec = stmt.moduleSpecifier && ts.isStringLiteral(stmt.moduleSpecifier) ? stmt.moduleSpecifier.text : null;
|
|
259
|
-
if (!stmt.exportClause) {
|
|
260
|
-
// `export * from '...'` — recurse through the barrel.
|
|
261
|
-
if (moduleSpec) {
|
|
262
|
-
const target = resolveRelative(file, moduleSpec);
|
|
263
|
-
if (target) {
|
|
264
|
-
for (const sym of collectExportsTs(target, visited))
|
|
265
|
-
out.add(sym);
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
continue;
|
|
269
|
-
}
|
|
270
|
-
if (ts.isNamedExports(stmt.exportClause)) {
|
|
271
|
-
for (const spec of stmt.exportClause.elements) {
|
|
272
|
-
out.add(spec.name.text);
|
|
273
|
-
}
|
|
274
|
-
continue;
|
|
275
|
-
}
|
|
276
|
-
if (ts.isNamespaceExport(stmt.exportClause)) {
|
|
277
|
-
// `export * as ns from '...'` — the namespace itself is the export.
|
|
278
|
-
out.add(stmt.exportClause.name.text);
|
|
279
|
-
continue;
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
else if (ts.isFunctionDeclaration(stmt) && stmt.name && hasExportModifier(stmt)) {
|
|
283
|
-
out.add(stmt.name.text);
|
|
284
|
-
}
|
|
285
|
-
else if (ts.isClassDeclaration(stmt) && stmt.name && hasExportModifier(stmt)) {
|
|
286
|
-
out.add(stmt.name.text);
|
|
287
|
-
}
|
|
288
|
-
else if (ts.isInterfaceDeclaration(stmt) && hasExportModifier(stmt)) {
|
|
289
|
-
out.add(stmt.name.text);
|
|
290
|
-
}
|
|
291
|
-
else if (ts.isTypeAliasDeclaration(stmt) && hasExportModifier(stmt)) {
|
|
292
|
-
out.add(stmt.name.text);
|
|
293
|
-
}
|
|
294
|
-
else if (ts.isEnumDeclaration(stmt) && hasExportModifier(stmt)) {
|
|
295
|
-
out.add(stmt.name.text);
|
|
296
|
-
}
|
|
297
|
-
else if (ts.isModuleDeclaration(stmt) && stmt.name && hasExportModifier(stmt)) {
|
|
298
|
-
if (ts.isIdentifier(stmt.name))
|
|
299
|
-
out.add(stmt.name.text);
|
|
300
|
-
}
|
|
301
|
-
else if (ts.isVariableStatement(stmt) && hasExportModifier(stmt)) {
|
|
302
|
-
for (const decl of stmt.declarationList.declarations) {
|
|
303
|
-
collectBindingNames(decl.name, out);
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
return out;
|
|
308
|
-
}
|
|
309
196
|
function collectExports(file, visited) {
|
|
310
197
|
if (visited.has(file))
|
|
311
198
|
return new Set();
|
|
@@ -359,33 +246,18 @@ function resolveRelative(fromFile, rel) {
|
|
|
359
246
|
return null;
|
|
360
247
|
const base = nodePath.resolve(nodePath.dirname(fromFile), rel);
|
|
361
248
|
const candidates = [
|
|
362
|
-
base, // Verbatim with extension (e.g. './foo.ts' under NodeNext).
|
|
363
249
|
base + '.ts',
|
|
364
250
|
base + '.tsx',
|
|
365
|
-
base + '.d.ts',
|
|
366
|
-
base + '.mts',
|
|
367
|
-
base + '.cts',
|
|
368
251
|
base + '.js',
|
|
369
252
|
base + '.mjs',
|
|
370
253
|
base + '.cjs',
|
|
371
254
|
nodePath.join(base, 'index.ts'),
|
|
372
255
|
nodePath.join(base, 'index.tsx'),
|
|
373
|
-
nodePath.join(base, 'index.d.ts'),
|
|
374
|
-
nodePath.join(base, 'index.mts'),
|
|
375
256
|
nodePath.join(base, 'index.js'),
|
|
376
|
-
nodePath.join(base, 'index.mjs'),
|
|
377
257
|
];
|
|
378
|
-
for (const c of candidates)
|
|
379
|
-
if (existsSync(c))
|
|
380
|
-
|
|
381
|
-
if (statSync(c).isFile())
|
|
382
|
-
return c;
|
|
383
|
-
}
|
|
384
|
-
catch {
|
|
385
|
-
continue;
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
}
|
|
258
|
+
for (const c of candidates)
|
|
259
|
+
if (existsSync(c))
|
|
260
|
+
return c;
|
|
389
261
|
return null;
|
|
390
262
|
}
|
|
391
263
|
function confidenceFor(mode, count) {
|
|
@@ -406,25 +278,9 @@ export function checkPackSymbolCompat(input) {
|
|
|
406
278
|
const filesInspected = [];
|
|
407
279
|
let availableSet = new Set();
|
|
408
280
|
let usedMode = resolved.sourceMode;
|
|
409
|
-
const useTs = (input.mode ?? 'ts') === 'ts';
|
|
410
281
|
if (resolved.source.length > 0) {
|
|
411
282
|
if (resolved.sourceMode === 'dist-js') {
|
|
412
|
-
// CJS shapes only show up in the regex scanner; ESM shapes show up
|
|
413
|
-
// in either. Union the two so a bundle that mixes both is covered.
|
|
414
283
|
availableSet = collectJsExports(resolved.source);
|
|
415
|
-
if (useTs) {
|
|
416
|
-
for (const sym of collectExportsTs(resolved.source, new Set()))
|
|
417
|
-
availableSet.add(sym);
|
|
418
|
-
}
|
|
419
|
-
filesInspected.push(resolved.source);
|
|
420
|
-
}
|
|
421
|
-
else if (useTs) {
|
|
422
|
-
availableSet = collectExportsTs(resolved.source, new Set());
|
|
423
|
-
// Fallback union — if the TS walker returns nothing (parse failure),
|
|
424
|
-
// we still want a best-effort symbol list from the regex scanner.
|
|
425
|
-
if (availableSet.size === 0) {
|
|
426
|
-
availableSet = collectExports(resolved.source, new Set());
|
|
427
|
-
}
|
|
428
284
|
filesInspected.push(resolved.source);
|
|
429
285
|
}
|
|
430
286
|
else {
|
|
@@ -443,10 +299,6 @@ export function checkPackSymbolCompat(input) {
|
|
|
443
299
|
const full = nodePath.join(distDir, entry);
|
|
444
300
|
for (const s of collectJsExports(full))
|
|
445
301
|
availableSet.add(s);
|
|
446
|
-
if (useTs) {
|
|
447
|
-
for (const s of collectExportsTs(full, new Set()))
|
|
448
|
-
availableSet.add(s);
|
|
449
|
-
}
|
|
450
302
|
filesInspected.push(full);
|
|
451
303
|
}
|
|
452
304
|
if (resolved.sourceMode === 'declaration')
|
package/dist/pack-test-runner.js
CHANGED
|
@@ -13,19 +13,11 @@
|
|
|
13
13
|
* `mustNotIncludeIds`, optionally capping the token budget.
|
|
14
14
|
* 4. Emits a structured diagnostic report.
|
|
15
15
|
*/
|
|
16
|
-
var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
|
|
17
|
-
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
|
18
|
-
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
|
19
|
-
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
return path;
|
|
23
|
-
};
|
|
24
16
|
import { existsSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
25
17
|
import { join } from 'node:path';
|
|
26
|
-
import { pathToFileURL } from 'node:url';
|
|
27
18
|
import { inspectSharkcraft } from "./sharkcraft-inspector.js";
|
|
28
19
|
import { buildTaskPacket } from "./task-packet.js";
|
|
20
|
+
import { importModuleViaLoader } from '@shrkcrft/core';
|
|
29
21
|
export function definePackTest(t) {
|
|
30
22
|
return t;
|
|
31
23
|
}
|
|
@@ -43,7 +35,7 @@ function findTestsFile(packPath) {
|
|
|
43
35
|
return null;
|
|
44
36
|
}
|
|
45
37
|
async function loadTestCases(file) {
|
|
46
|
-
const mod = (await
|
|
38
|
+
const mod = (await importModuleViaLoader(file));
|
|
47
39
|
const list = mod.default ?? mod.tests ?? [];
|
|
48
40
|
return [...list];
|
|
49
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-simulation.d.ts","sourceRoot":"","sources":["../src/plan-simulation.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"plan-simulation.d.ts","sourceRoot":"","sources":["../src/plan-simulation.ts"],"names":[],"mappings":"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"}
|
package/dist/plan-simulation.js
CHANGED
|
@@ -318,26 +318,9 @@ export async function simulatePlan(inspection, planPath, options = {}) {
|
|
|
318
318
|
relativePath: c.relativePath,
|
|
319
319
|
sizeBytes: Number(c.sizeBytes ?? 0),
|
|
320
320
|
}));
|
|
321
|
-
// Marker-driven detection.
|
|
322
|
-
//
|
|
323
|
-
|
|
324
|
-
const baseKeyTableMarkers = ['PluginKey', 'pluginKeys'];
|
|
325
|
-
const profileKeyMarkers = [];
|
|
326
|
-
try {
|
|
327
|
-
const { listPluginLifecycleProfiles } = await import("./plugin-lifecycle-profile-registry.js");
|
|
328
|
-
const profiles = await listPluginLifecycleProfiles(inspection);
|
|
329
|
-
for (const entry of profiles) {
|
|
330
|
-
if (entry.profile.keyTable?.path) {
|
|
331
|
-
const base = entry.profile.keyTable.path.split('/').pop()?.replace(/\.\w+$/, '');
|
|
332
|
-
if (base)
|
|
333
|
-
profileKeyMarkers.push(base);
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
catch {
|
|
338
|
-
// best-effort
|
|
339
|
-
}
|
|
340
|
-
const KEY_TABLE_MARKERS = [...baseKeyTableMarkers, ...profileKeyMarkers];
|
|
321
|
+
// Marker-driven detection. Generic naming conventions for common
|
|
322
|
+
// pack-owned regions; the engine ships only these defaults.
|
|
323
|
+
const KEY_TABLE_MARKERS = ['Keys', 'keys'];
|
|
341
324
|
const EVENT_REGISTRY_MARKERS = ['EventRegistry', 'EVENTS', 'eventRegistry', 'events.ts'];
|
|
342
325
|
const TOKEN_REGISTRY_MARKERS = ['TokenRegistry', 'TOKENS', 'tokenRegistry', 'tokens.ts'];
|
|
343
326
|
const maxDiffLines = options.maxDiffLines ?? 80;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playbook-registry.d.ts","sourceRoot":"","sources":["../src/playbook-registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"playbook-registry.d.ts","sourceRoot":"","sources":["../src/playbook-registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE,eAAO,MAAM,wBAAwB,oCAAoC,CAAC;AAE1E,MAAM,WAAW,SAAU,SAAQ,cAAc;IAC/C,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAmCD,wBAAsB,aAAa,CACjC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAiD/B;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,qBAAqB,GAAG,SAAS,SAAS,EAAE,CAGrF;AAED,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAExF;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAChC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,SAAS,GAAG,gBAAgB,CAWlE;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,SAAS,EAAE,EAC/B,IAAI,EAAE,MAAM,GACX,SAAS,uBAAuB,EAAE,CA+BpC"}
|
|
@@ -1,18 +1,10 @@
|
|
|
1
|
-
var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
|
|
2
|
-
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
|
3
|
-
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
|
4
|
-
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
|
5
|
-
});
|
|
6
|
-
}
|
|
7
|
-
return path;
|
|
8
|
-
};
|
|
9
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
10
2
|
import * as nodePath from 'node:path';
|
|
11
|
-
import {
|
|
3
|
+
import { importModuleViaLoader } from '@shrkcrft/core';
|
|
12
4
|
export const PLAYBOOK_REGISTRY_SCHEMA = 'sharkcraft.playbook-registry/v1';
|
|
13
5
|
const CACHE = new Map();
|
|
14
6
|
async function importDefault(file) {
|
|
15
|
-
const mod = (await
|
|
7
|
+
const mod = (await importModuleViaLoader(file));
|
|
16
8
|
if (Array.isArray(mod.default))
|
|
17
9
|
return mod.default;
|
|
18
10
|
if (mod.default && typeof mod.default === 'object')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-engine.d.ts","sourceRoot":"","sources":["../src/policy-engine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"policy-engine.d.ts","sourceRoot":"","sources":["../src/policy-engine.ts"],"names":[],"mappings":"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"}
|
package/dist/policy-engine.js
CHANGED
|
@@ -1,16 +1,8 @@
|
|
|
1
|
-
var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
|
|
2
|
-
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
|
3
|
-
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
|
4
|
-
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
|
5
|
-
});
|
|
6
|
-
}
|
|
7
|
-
return path;
|
|
8
|
-
};
|
|
9
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
10
2
|
import * as nodePath from 'node:path';
|
|
11
|
-
import { pathToFileURL } from 'node:url';
|
|
12
3
|
import { evaluateBoundaries, loadTsconfigPaths, scanImports } from '@shrkcrft/boundaries';
|
|
13
4
|
import { impactFor, loadOwnershipRules } from "./ownership.js";
|
|
5
|
+
import { importModuleViaLoader } from '@shrkcrft/core';
|
|
14
6
|
export const POLICY_REPORT_SCHEMA = 'sharkcraft.policy-report/v1';
|
|
15
7
|
export var PolicySeverity;
|
|
16
8
|
(function (PolicySeverity) {
|
|
@@ -192,7 +184,7 @@ export async function evaluatePolicy(inspection, input = {}) {
|
|
|
192
184
|
if (!existsSync(full))
|
|
193
185
|
continue;
|
|
194
186
|
try {
|
|
195
|
-
const mod = (await
|
|
187
|
+
const mod = (await importModuleViaLoader(full));
|
|
196
188
|
const decls = mod.default ?? mod.policyChecks ?? [];
|
|
197
189
|
for (const d of decls) {
|
|
198
190
|
runDecl(d, {
|
|
@@ -250,7 +242,7 @@ export async function evaluatePolicy(inspection, input = {}) {
|
|
|
250
242
|
if (!existsSync(full))
|
|
251
243
|
continue;
|
|
252
244
|
try {
|
|
253
|
-
const mod = (await
|
|
245
|
+
const mod = (await importModuleViaLoader(full));
|
|
254
246
|
const decls = mod.default ?? mod.policyChecks ?? [];
|
|
255
247
|
for (const d of decls) {
|
|
256
248
|
runDecl(d, {
|
package/dist/policy-test.js
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
|
-
var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
|
|
2
|
-
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
|
3
|
-
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
|
4
|
-
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
|
5
|
-
});
|
|
6
|
-
}
|
|
7
|
-
return path;
|
|
8
|
-
};
|
|
9
1
|
import { createHash } from 'node:crypto';
|
|
10
2
|
import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from 'node:fs';
|
|
11
3
|
import * as nodePath from 'node:path';
|
|
12
|
-
import {
|
|
4
|
+
import { importModuleViaLoader } from '@shrkcrft/core';
|
|
13
5
|
import { evaluatePolicy, PolicySeverity, } from "./policy-engine.js";
|
|
14
6
|
export const POLICY_TEST_SCHEMA = 'sharkcraft.policy-test/v1';
|
|
15
7
|
export const POLICY_SNAPSHOT_SCHEMA = 'sharkcraft.policy-snapshot/v1';
|
|
@@ -60,7 +52,7 @@ async function loadLocalPolicyChecks(inspection, localFiles) {
|
|
|
60
52
|
if (!existsSync(file))
|
|
61
53
|
continue;
|
|
62
54
|
try {
|
|
63
|
-
const mod = (await
|
|
55
|
+
const mod = (await importModuleViaLoader(file));
|
|
64
56
|
const decls = mod.default ?? mod.policyChecks ?? [];
|
|
65
57
|
for (const d of decls)
|
|
66
58
|
out.push({ check: d, sourceFile: file, isLocal: true });
|
|
@@ -77,7 +69,7 @@ async function loadLocalPolicyChecks(inspection, localFiles) {
|
|
|
77
69
|
if (!existsSync(file))
|
|
78
70
|
continue;
|
|
79
71
|
try {
|
|
80
|
-
const mod = (await
|
|
72
|
+
const mod = (await importModuleViaLoader(file));
|
|
81
73
|
const decls = mod.default ?? mod.policyChecks ?? [];
|
|
82
74
|
for (const d of decls)
|
|
83
75
|
out.push({ check: d, sourceFile: file, isLocal: false });
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* - README links to release notes / limitations / external quickstart.
|
|
10
10
|
* - docs/commands-taxonomy.md presence (when expected).
|
|
11
11
|
* - docs/public-alpha-checklist.md mentions final validation gates.
|
|
12
|
-
* - docs/releases/0.1.0-alpha.
|
|
12
|
+
* - docs/releases/0.1.0-alpha.2.md states "not production stable" or equivalent.
|
|
13
13
|
*
|
|
14
14
|
* `--strict` converts warnings to errors.
|
|
15
15
|
*
|
|
@@ -21,7 +21,7 @@ export const PRODUCT_COHERENCE_SCHEMA = 'sharkcraft.product-coherence/v1';
|
|
|
21
21
|
const REQUIRED_DOCS = [
|
|
22
22
|
'README.md',
|
|
23
23
|
'docs/safety-model.md',
|
|
24
|
-
'docs/releases/0.1.0-alpha.
|
|
24
|
+
'docs/releases/0.1.0-alpha.2.md',
|
|
25
25
|
'docs/public-alpha-limitations.md',
|
|
26
26
|
'docs/external-repo-quickstart.md',
|
|
27
27
|
'CHANGELOG.md',
|
|
@@ -38,7 +38,7 @@ const README_RECOMMENDED_LINKS = [
|
|
|
38
38
|
{
|
|
39
39
|
phrase: /docs\/releases\/[^\s\)]+|release[-\s]?notes/i,
|
|
40
40
|
id: 'readme-link-release-notes',
|
|
41
|
-
message: 'README should link to release notes (e.g. docs/releases/0.1.0-alpha.
|
|
41
|
+
message: 'README should link to release notes (e.g. docs/releases/0.1.0-alpha.2.md).',
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
44
|
phrase: /docs\/public[-\s]?alpha[-\s]?limitations/i,
|
|
@@ -77,14 +77,14 @@ function checkChangelog(root, findings) {
|
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
function checkReleaseNotes(root, findings) {
|
|
80
|
-
const rel = readFileText(root, 'docs/releases/0.1.0-alpha.
|
|
80
|
+
const rel = readFileText(root, 'docs/releases/0.1.0-alpha.2.md');
|
|
81
81
|
if (!rel)
|
|
82
82
|
return;
|
|
83
83
|
if (!/not\s+production[-\s]?stable|public[-\s]?alpha|preview|early[-\s]?stage/i.test(rel)) {
|
|
84
84
|
findings.push({
|
|
85
85
|
id: 'release-notes-stability-disclaimer',
|
|
86
86
|
severity: 'warning',
|
|
87
|
-
message: 'docs/releases/0.1.0-alpha.
|
|
87
|
+
message: 'docs/releases/0.1.0-alpha.2.md should state the release is not production-stable (or equivalent).',
|
|
88
88
|
});
|
|
89
89
|
}
|
|
90
90
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { ISharkcraftInspection } from './sharkcraft-inspector.js';
|
|
2
2
|
export declare const PROFILE_REGISTRY_SCHEMA = "sharkcraft.profile-registry/v1";
|
|
3
3
|
export declare enum ProfileKind {
|
|
4
|
-
PluginLifecycle = "plugin-lifecycle",
|
|
5
4
|
Migration = "migration"
|
|
6
5
|
}
|
|
7
6
|
export declare enum ProfileSource {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-registry.d.ts","sourceRoot":"","sources":["../src/profile-registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"profile-registry.d.ts","sourceRoot":"","sources":["../src/profile-registry.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AAExE,oBAAY,WAAW;IACrB,SAAS,cAAc;CAExB;AAED,oBAAY,aAAa;IACvB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC;IACT,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAClC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAC;CAC1C,CAAC,CAsCD;AAED,wBAAsB,YAAY,CAChC,UAAU,EAAE,qBAAqB,EACjC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,WAAW,CAAA;CAAO,GACnC,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAInC;AAED,wBAAsB,WAAW,CAC/B,UAAU,EAAE,qBAAqB,EACjC,EAAE,EAAE,MAAM,EACV,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAK/B;AAED,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAAC,CAG3C"}
|