@lesliechan721/aw-plugin-core 0.1.0-beta.1 → 0.1.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/aw-capabilities.d.ts +27 -0
  2. package/dist/aw-capabilities.js +106 -0
  3. package/dist/aw-capabilities.js.map +1 -0
  4. package/dist/catalog-workspace-resolution.d.ts +3 -0
  5. package/dist/catalog-workspace-resolution.js +34 -0
  6. package/dist/catalog-workspace-resolution.js.map +1 -0
  7. package/dist/generated/plugin-manifest-v3.d.ts +658 -0
  8. package/dist/generated/{plugin-manifest-v1.js → plugin-manifest-v3.js} +1 -1
  9. package/dist/generated/plugin-manifest-v3.js.map +1 -0
  10. package/dist/index.d.ts +2 -2
  11. package/dist/index.js +1 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/manifest-contract.d.ts +3 -6
  14. package/dist/manifest-contract.js +135 -405
  15. package/dist/manifest-contract.js.map +1 -1
  16. package/dist/manifest-type-contract.d.ts +2 -2
  17. package/dist/manifest.d.ts +10 -8
  18. package/dist/manifest.js +11 -7
  19. package/dist/manifest.js.map +1 -1
  20. package/dist/plugin-authoring-capabilities.d.ts +21 -0
  21. package/dist/plugin-authoring-capabilities.js +183 -0
  22. package/dist/plugin-authoring-capabilities.js.map +1 -0
  23. package/dist/plugin-config.d.ts +13 -0
  24. package/dist/plugin-config.js +619 -0
  25. package/dist/plugin-config.js.map +1 -0
  26. package/dist/plugin-requirements.d.ts +34 -0
  27. package/dist/plugin-requirements.js +248 -0
  28. package/dist/plugin-requirements.js.map +1 -0
  29. package/dist/plugin-script-contract.d.ts +8 -10
  30. package/dist/plugin-script-contract.js +32 -62
  31. package/dist/plugin-script-contract.js.map +1 -1
  32. package/dist/types.d.ts +126 -61
  33. package/dist/workspace.d.ts +54 -29
  34. package/dist/workspace.js +497 -269
  35. package/dist/workspace.js.map +1 -1
  36. package/package.json +5 -4
  37. package/schemas/plugin-manifest-v3.json +574 -0
  38. package/dist/generated/plugin-manifest-v1.d.ts +0 -368
  39. package/dist/generated/plugin-manifest-v1.js.map +0 -1
  40. package/dist/plugin-release.d.ts +0 -30
  41. package/dist/plugin-release.js +0 -187
  42. package/dist/plugin-release.js.map +0 -1
  43. package/schemas/plugin-manifest-v1.json +0 -329
@@ -0,0 +1,34 @@
1
+ import { type AwCapabilityId } from './aw-capabilities.js';
2
+ import type { NormalizedPluginManifest, PluginManifestSource } from './types.js';
3
+ export interface PluginRequirementObservation {
4
+ code: 'aw-command-detected' | 'aw-command-unmapped' | 'aw-command-dynamic';
5
+ blocking: false;
6
+ path: string;
7
+ provenance: 'shell-fence' | 'manifest-executable';
8
+ command?: string;
9
+ capability?: AwCapabilityId;
10
+ message: string;
11
+ }
12
+ export interface PluginRequirementsResolution {
13
+ schemaVersion: 1;
14
+ declared: AwCapabilityId[];
15
+ derived: AwCapabilityId[];
16
+ detected: AwCapabilityId[];
17
+ effective: AwCapabilityId[];
18
+ capabilitySetDigest: string;
19
+ unsupportedByCurrentAw: AwCapabilityId[];
20
+ observations: PluginRequirementObservation[];
21
+ }
22
+ export declare function deriveAwCapabilitiesFromManifest(manifest: PluginManifestSource | NormalizedPluginManifest): AwCapabilityId[];
23
+ export declare function scanPluginAwCliRequirements(options: {
24
+ pluginRoot: string;
25
+ manifest: PluginManifestSource | NormalizedPluginManifest;
26
+ }): Promise<{
27
+ detected: AwCapabilityId[];
28
+ observations: PluginRequirementObservation[];
29
+ }>;
30
+ export declare function resolvePluginRequirements(options: {
31
+ pluginRoot: string;
32
+ manifest: PluginManifestSource | NormalizedPluginManifest;
33
+ implementedCapabilities: readonly string[];
34
+ }): Promise<PluginRequirementsResolution>;
@@ -0,0 +1,248 @@
1
+ import path from 'node:path';
2
+ import fs from 'fs-extra';
3
+ import { computeAwCapabilitySetDigest, normalizeAwCapabilities, } from './aw-capabilities.js';
4
+ import { resolvePlatformHookDefinitions } from './hooks-contract.js';
5
+ import { resolveSupportedPlatforms } from './platform-support.js';
6
+ function hasRuntimeImports(manifest) {
7
+ return (manifest.buildConfig?.runtimeExports?.length ?? 0) > 0
8
+ || (manifest.buildConfig?.buildImports?.length ?? 0) > 0
9
+ || (manifest.buildConfig?.skillRuntimeFiles ?? []).some((entry) => entry.import !== undefined)
10
+ || (manifest.artifacts?.targets ?? []).some((target) => (target.runtimeImports?.length ?? 0) > 0);
11
+ }
12
+ export function deriveAwCapabilitiesFromManifest(manifest) {
13
+ const capabilities = [];
14
+ if (manifest.schemaVersion === 3)
15
+ capabilities.push('aw.plugin-manifest.v3');
16
+ if (manifest.skills)
17
+ capabilities.push('aw.plugin-skills.v1');
18
+ if (manifest.buildConfig)
19
+ capabilities.push('aw.plugin-build-config.v1');
20
+ if (manifest.config)
21
+ capabilities.push('aw.plugin-config.v2');
22
+ if (manifest.scripts?.postApply)
23
+ capabilities.push('aw.plugin-post-apply.v1');
24
+ if ((manifest.artifacts?.targets?.length ?? 0) > 0)
25
+ capabilities.push('aw.dynamic-artifacts.v2');
26
+ if (manifest.distributions?.agentSkills)
27
+ capabilities.push('aw.portable-skills.v1');
28
+ if (hasRuntimeImports(manifest))
29
+ capabilities.push('aw.runtime-imports.v1');
30
+ return normalizeAwCapabilities(capabilities);
31
+ }
32
+ const COMMAND_CAPABILITIES = {
33
+ 'self describe': 'aw.self-check.v1',
34
+ 'self check': 'aw.self-check.v1',
35
+ 'skill validate': 'aw.skill-validation.v1',
36
+ 'skill eval': 'aw.skill-eval.v2',
37
+ 'plugin capabilities': 'aw.plugin-authoring.v1',
38
+ 'plugin init': 'aw.plugin-authoring.v1',
39
+ 'plugin add-skill': 'aw.plugin-authoring.v1',
40
+ 'plugin remove': 'aw.plugin-authoring.v1',
41
+ 'plugin validate': 'aw.plugin-authoring.v1',
42
+ 'plugin test': 'aw.plugin-authoring.v1',
43
+ 'plugin build': 'aw.plugin-authoring.v1',
44
+ 'plugin status': 'aw.plugin-authoring.v1',
45
+ 'plugin requirements': 'aw.plugin-authoring.v1',
46
+ 'catalog init': 'aw.catalog-authoring.v1',
47
+ 'catalog status': 'aw.catalog-authoring.v1',
48
+ 'catalog version': 'aw.catalog-authoring.v1',
49
+ 'catalog build': 'aw.catalog-authoring.v1',
50
+ 'catalog validate': 'aw.catalog-authoring.v1',
51
+ 'catalog publish': 'aw.catalog-publication.v1',
52
+ 'review publish': 'aw.review-publication.v1',
53
+ 'review digest': 'aw.review-publication.v1',
54
+ 'review verify': 'aw.review-publication.v1',
55
+ 'review list': 'aw.review-publication.v1',
56
+ 'review show': 'aw.review-publication.v1',
57
+ };
58
+ const CONFIG_CAPABILITY = 'aw.plugin-config.v2';
59
+ const CATALOG_SOURCE_CAPABILITY = 'aw.catalog-source.v2';
60
+ const CATALOG_DEV_SOURCE_CAPABILITY = 'aw.catalog-dev-source.v1';
61
+ function commandCapabilities(group, command, tail) {
62
+ if (command === undefined)
63
+ return [];
64
+ if (group === 'config')
65
+ return [CONFIG_CAPABILITY];
66
+ if (group === 'catalog' && command === 'source')
67
+ return [CATALOG_SOURCE_CAPABILITY];
68
+ if (group === 'catalog' && command === 'dev')
69
+ return [CATALOG_DEV_SOURCE_CAPABILITY];
70
+ if (group === 'catalog' && command === 'status' && /(?:^|\s)--preflight(?:\s|$)/u.test(tail)) {
71
+ return [];
72
+ }
73
+ const capability = COMMAND_CAPABILITIES[`${group} ${command}`];
74
+ return capability ? [capability] : [];
75
+ }
76
+ const AW_COMMAND_AT_START = /^aw[ \t]+([a-z][a-z0-9-]*)(?:[ \t]+([a-z][a-z0-9-]*))?(.*)$/u;
77
+ const AW_SHELL_SEGMENT = /(?:^|&&|\|\||[;|&])\s*((?:\$\s+)?aw(?:[ \t]+.*?))(?=\s*(?:&&|\|\||[;|&]|$))/gu;
78
+ const SHELL_FENCE_LANGUAGES = new Set(['bash', 'sh', 'shell', 'zsh']);
79
+ function scanAwCommand(value) {
80
+ const command = value.trim().replace(/^\$\s+/u, '');
81
+ const match = AW_COMMAND_AT_START.exec(command);
82
+ if (!match)
83
+ return { command };
84
+ return {
85
+ command,
86
+ literal: {
87
+ group: match[1],
88
+ ...(match[2] === undefined ? {} : { command: match[2] }),
89
+ tail: match[3] ?? '',
90
+ },
91
+ };
92
+ }
93
+ function shellFenceCommands(content) {
94
+ const commands = [];
95
+ let fence = null;
96
+ for (const line of content.split(/\r?\n/u)) {
97
+ const fenceMatch = /^\s{0,3}(`{3,}|~{3,})\s*([A-Za-z0-9_-]+)?\s*$/u.exec(line);
98
+ if (fenceMatch) {
99
+ const delimiter = fenceMatch[1];
100
+ if (fence === null) {
101
+ fence = {
102
+ marker: delimiter[0],
103
+ length: delimiter.length,
104
+ shell: SHELL_FENCE_LANGUAGES.has(fenceMatch[2] ?? ''),
105
+ };
106
+ continue;
107
+ }
108
+ if (delimiter[0] === fence.marker && delimiter.length >= fence.length) {
109
+ fence = null;
110
+ continue;
111
+ }
112
+ }
113
+ if (!fence?.shell)
114
+ continue;
115
+ for (const match of line.matchAll(AW_SHELL_SEGMENT)) {
116
+ commands.push(scanAwCommand(match[1] ?? ''));
117
+ }
118
+ }
119
+ return commands;
120
+ }
121
+ function skillCollectionRoot(pluginRoot, value) {
122
+ const root = path.resolve(pluginRoot, value);
123
+ const relative = path.relative(pluginRoot, root);
124
+ return relative === '' || relative === '..' || relative.startsWith(`..${path.sep}`) || path.isAbsolute(relative)
125
+ ? null
126
+ : root;
127
+ }
128
+ async function actualSkillMainFiles(pluginRoot, value) {
129
+ const collectionRoot = skillCollectionRoot(pluginRoot, value);
130
+ if (!collectionRoot)
131
+ return [];
132
+ const entries = await fs.readdir(collectionRoot, { withFileTypes: true }).catch(() => []);
133
+ const files = [];
134
+ for (const entry of entries) {
135
+ if (!entry.isDirectory() || entry.isSymbolicLink())
136
+ continue;
137
+ const skillMain = path.join(collectionRoot, entry.name, 'SKILL.md');
138
+ const stat = await fs.lstat(skillMain).catch(() => null);
139
+ if (stat?.isFile() && !stat.isSymbolicLink())
140
+ files.push(skillMain);
141
+ }
142
+ return files.sort((left, right) => left < right ? -1 : left > right ? 1 : 0);
143
+ }
144
+ function manifestExecutableCommands(manifest) {
145
+ const commands = new Set();
146
+ for (const platform of resolveSupportedPlatforms(manifest)) {
147
+ for (const hook of resolvePlatformHookDefinitions(manifest, platform)) {
148
+ const command = hook.command.trim();
149
+ if (/^(?:\$\s+)?aw(?:\s|$)/u.test(command))
150
+ commands.add(command);
151
+ }
152
+ }
153
+ return [...commands].sort().map(scanAwCommand);
154
+ }
155
+ export async function scanPluginAwCliRequirements(options) {
156
+ const observations = [];
157
+ const observationKeys = new Set();
158
+ const detected = [];
159
+ const observe = (observation) => {
160
+ const key = JSON.stringify([
161
+ observation.code,
162
+ observation.path,
163
+ observation.provenance,
164
+ observation.command,
165
+ observation.capability,
166
+ ]);
167
+ if (observationKeys.has(key))
168
+ return;
169
+ observationKeys.add(key);
170
+ observations.push(observation);
171
+ };
172
+ const record = (observationPath, provenance, scanned) => {
173
+ if (!scanned.literal) {
174
+ observe({
175
+ code: 'aw-command-dynamic',
176
+ blocking: false,
177
+ path: observationPath,
178
+ provenance,
179
+ command: scanned.command,
180
+ message: `AW CLI command cannot be mapped statically: ${scanned.command}.`,
181
+ });
182
+ return;
183
+ }
184
+ const command = [scanned.literal.group, scanned.literal.command].filter(Boolean).join(' ');
185
+ const capabilities = commandCapabilities(scanned.literal.group, scanned.literal.command, scanned.literal.tail);
186
+ if (capabilities.length === 0) {
187
+ observe({
188
+ code: 'aw-command-unmapped',
189
+ blocking: false,
190
+ path: observationPath,
191
+ provenance,
192
+ command: `aw ${command}`,
193
+ message: `AW CLI command has no capability mapping: aw ${command}.`,
194
+ });
195
+ return;
196
+ }
197
+ for (const capability of capabilities) {
198
+ detected.push(capability);
199
+ observe({
200
+ code: 'aw-command-detected',
201
+ blocking: false,
202
+ path: observationPath,
203
+ provenance,
204
+ command: `aw ${command}`,
205
+ capability,
206
+ message: `Detected AW CLI command capability ${capability}: aw ${command}.`,
207
+ });
208
+ }
209
+ };
210
+ for (const scanned of manifestExecutableCommands(options.manifest)) {
211
+ record('.agents-plugin/plugin.json', 'manifest-executable', scanned);
212
+ }
213
+ const skillCollections = new Set([
214
+ options.manifest.skills,
215
+ options.manifest.distributions?.agentSkills?.skills,
216
+ ].filter((value) => value !== undefined));
217
+ const skillFiles = (await Promise.all([...skillCollections].map((value) => actualSkillMainFiles(options.pluginRoot, value)))).flat();
218
+ for (const file of [...new Set(skillFiles)].sort()) {
219
+ const relativePath = path.relative(options.pluginRoot, file).split(path.sep).join('/');
220
+ for (const scanned of shellFenceCommands(await fs.readFile(file, 'utf8'))) {
221
+ record(relativePath, 'shell-fence', scanned);
222
+ }
223
+ }
224
+ observations.sort((left, right) => {
225
+ const leftKey = JSON.stringify([left.path, left.code, left.command, left.capability, left.provenance]);
226
+ const rightKey = JSON.stringify([right.path, right.code, right.command, right.capability, right.provenance]);
227
+ return leftKey < rightKey ? -1 : leftKey > rightKey ? 1 : 0;
228
+ });
229
+ return { detected: normalizeAwCapabilities(detected), observations };
230
+ }
231
+ export async function resolvePluginRequirements(options) {
232
+ const declared = normalizeAwCapabilities(options.manifest.requires?.aw.capabilities ?? [], 'requires.aw.capabilities');
233
+ const derived = deriveAwCapabilitiesFromManifest(options.manifest);
234
+ const scan = await scanPluginAwCliRequirements(options);
235
+ const effective = normalizeAwCapabilities([...declared, ...derived]);
236
+ const implemented = new Set(normalizeAwCapabilities(options.implementedCapabilities));
237
+ return {
238
+ schemaVersion: 1,
239
+ declared,
240
+ derived,
241
+ detected: scan.detected,
242
+ effective,
243
+ capabilitySetDigest: computeAwCapabilitySetDigest(effective),
244
+ unsupportedByCurrentAw: effective.filter((capability) => !implemented.has(capability)),
245
+ observations: scan.observations,
246
+ };
247
+ }
248
+ //# sourceMappingURL=plugin-requirements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-requirements.js","sourceRoot":"","sources":["../src/plugin-requirements.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,18 @@
1
- import type { PluginLifecycleRuntimeOs, PluginLifecycleScriptEntry, PluginLifecycleScriptRunner, PluginLifecycleScriptSelector } from './types.js';
2
- export declare const PLUGIN_LIFECYCLE_EVENTS: readonly ["install", "upgrade", "uninstall"];
3
- export declare const PLUGIN_LIFECYCLE_OS_SELECTORS: readonly ["default", "unix", "windows", "linux", "darwin", "win32"];
4
- export declare const PLUGIN_SCRIPT_RUNNERS: readonly ["node", "sh", "bash", "pwsh", "powershell", "cmd", "auto"];
5
- export declare const PLUGIN_AUTO_RUNNER_EXTENSIONS: readonly [".js", ".mjs", ".cjs", ".sh", ".ps1", ".cmd", ".bat"];
6
1
  export declare const PLUGIN_SCRIPT_TIMEOUT_DEFAULT_MS = 30000;
7
2
  export declare const PLUGIN_SCRIPT_TIMEOUT_MIN_MS = 1000;
8
3
  export declare const PLUGIN_SCRIPT_TIMEOUT_MAX_MS = 300000;
9
- export declare function isPluginLifecycleOsSelector(value: string): boolean;
10
- export declare function isPluginScriptRunner(value: string): value is PluginLifecycleScriptRunner;
11
- export declare function getLifecycleSelectorOrder(os: PluginLifecycleRuntimeOs): readonly string[];
12
- export declare function resolveLifecycleScriptForOs(selector: PluginLifecycleScriptSelector, os: PluginLifecycleRuntimeOs): PluginLifecycleScriptEntry | undefined;
13
- export declare function inferLifecycleScriptRunnerFromPath(scriptPath: string): Exclude<PluginLifecycleScriptRunner, 'auto'> | undefined;
4
+ export declare function matchesPluginTestEntryGlob(filePath: string, glob: string): boolean;
14
5
  export interface ImportSpecifierReference {
15
6
  specifier: string;
16
7
  kind: 'import' | 'export' | 'require' | 'require-resolve' | 'dynamic-import';
17
8
  dynamic?: true;
18
9
  }
10
+ interface JavaScriptToken {
11
+ kind: 'identifier' | 'string' | 'dynamic-template' | 'punctuation' | 'literal';
12
+ value: string;
13
+ canStartRegexAfter?: boolean;
14
+ }
15
+ export declare function tokenizeJavaScriptImports(source: string): JavaScriptToken[];
19
16
  export declare function scanJavaScriptImportSpecifiers(source: string): ImportSpecifierReference[];
20
17
  export interface NodeImportContractScanOptions {
21
18
  files: Record<string, string>;
@@ -31,3 +28,4 @@ export interface NodeImportContractScanResult {
31
28
  errors: string[];
32
29
  }
33
30
  export declare function scanNodeImportContract(options: NodeImportContractScanOptions): NodeImportContractScanResult;
31
+ export {};
@@ -1,74 +1,44 @@
1
1
  import { builtinModules } from 'node:module';
2
2
  import path from 'node:path';
3
- export const PLUGIN_LIFECYCLE_EVENTS = ['install', 'upgrade', 'uninstall'];
4
- export const PLUGIN_LIFECYCLE_OS_SELECTORS = [
5
- 'default',
6
- 'unix',
7
- 'windows',
8
- 'linux',
9
- 'darwin',
10
- 'win32',
11
- ];
12
- export const PLUGIN_SCRIPT_RUNNERS = [
13
- 'node',
14
- 'sh',
15
- 'bash',
16
- 'pwsh',
17
- 'powershell',
18
- 'cmd',
19
- 'auto',
20
- ];
21
- export const PLUGIN_AUTO_RUNNER_EXTENSIONS = [
22
- '.js',
23
- '.mjs',
24
- '.cjs',
25
- '.sh',
26
- '.ps1',
27
- '.cmd',
28
- '.bat',
29
- ];
30
3
  export const PLUGIN_SCRIPT_TIMEOUT_DEFAULT_MS = 30_000;
31
4
  export const PLUGIN_SCRIPT_TIMEOUT_MIN_MS = 1_000;
32
5
  export const PLUGIN_SCRIPT_TIMEOUT_MAX_MS = 300_000;
33
- export function isPluginLifecycleOsSelector(value) {
34
- return PLUGIN_LIFECYCLE_OS_SELECTORS.includes(value);
35
- }
36
- export function isPluginScriptRunner(value) {
37
- return PLUGIN_SCRIPT_RUNNERS.includes(value);
6
+ function normalizePluginTestEntryPath(value) {
7
+ const withoutDotSlash = value.startsWith('./') ? value.slice(2) : value;
8
+ return withoutDotSlash.split(path.sep).join('/');
38
9
  }
39
- export function getLifecycleSelectorOrder(os) {
40
- if (os === 'linux') {
41
- return ['linux', 'unix', 'default'];
42
- }
43
- if (os === 'darwin') {
44
- return ['darwin', 'unix', 'default'];
45
- }
46
- return ['win32', 'windows', 'default'];
10
+ function escapePluginTestGlobSegment(value) {
11
+ return value.replace(/[|\\{}()[\]^$+?.]/g, '\\$&');
47
12
  }
48
- export function resolveLifecycleScriptForOs(selector, os) {
49
- for (const key of getLifecycleSelectorOrder(os)) {
50
- const entry = selector[key];
51
- if (entry) {
52
- return entry;
13
+ function compilePluginTestEntryGlob(glob) {
14
+ const normalized = normalizePluginTestEntryPath(glob);
15
+ let output = '^';
16
+ for (let index = 0; index < normalized.length; index += 1) {
17
+ const char = normalized[index];
18
+ const next = normalized[index + 1];
19
+ if (char === '*' && next === '*') {
20
+ const after = normalized[index + 2];
21
+ if (after === '/') {
22
+ output += '(?:.*\\/)?';
23
+ index += 2;
24
+ }
25
+ else {
26
+ output += '.*';
27
+ index += 1;
28
+ }
29
+ }
30
+ else if (char === '*') {
31
+ output += '[^/]*';
32
+ }
33
+ else {
34
+ output += escapePluginTestGlobSegment(char ?? '');
53
35
  }
54
36
  }
55
- return undefined;
37
+ output += '$';
38
+ return new RegExp(output);
56
39
  }
57
- export function inferLifecycleScriptRunnerFromPath(scriptPath) {
58
- const extension = path.posix.extname(scriptPath).toLowerCase();
59
- if (extension === '.js' || extension === '.mjs' || extension === '.cjs') {
60
- return 'node';
61
- }
62
- if (extension === '.sh') {
63
- return 'sh';
64
- }
65
- if (extension === '.ps1') {
66
- return 'powershell';
67
- }
68
- if (extension === '.cmd' || extension === '.bat') {
69
- return 'cmd';
70
- }
71
- return undefined;
40
+ export function matchesPluginTestEntryGlob(filePath, glob) {
41
+ return compilePluginTestEntryGlob(glob).test(normalizePluginTestEntryPath(filePath));
72
42
  }
73
43
  const REGEX_AFTER_CONTROL_HEADER = new Set([
74
44
  'catch',
@@ -127,7 +97,7 @@ function decodeJavaScriptEscape(source, index) {
127
97
  }
128
98
  return { value: escaped ?? '', next: Math.min(index + 1, source.length) };
129
99
  }
130
- function tokenizeJavaScriptImports(source) {
100
+ export function tokenizeJavaScriptImports(source) {
131
101
  const tokens = [];
132
102
  let index = 0;
133
103
  let previousToken;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-script-contract.js","sourceRoot":"","sources":["../src/plugin-script-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-script-contract.js","sourceRoot":"","sources":["../src/plugin-script-contract.ts"],"names":[],"mappings":"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"}