@launch77/cli 1.7.2 → 1.7.3

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 (144) hide show
  1. package/dist/infrastructure/package-resolver.test.js +9 -7
  2. package/dist/infrastructure/package-resolver.test.js.map +1 -1
  3. package/dist/modules/app/commands/create-app.d.ts.map +1 -1
  4. package/dist/modules/app/commands/create-app.js +1 -1
  5. package/dist/modules/app/commands/create-app.js.map +1 -1
  6. package/dist/modules/app/commands/delete-app.d.ts.map +1 -1
  7. package/dist/modules/app/commands/delete-app.js +1 -1
  8. package/dist/modules/app/commands/delete-app.js.map +1 -1
  9. package/dist/modules/app/lib/app-template-resolver.d.ts +1 -1
  10. package/dist/modules/app/lib/app-template-resolver.d.ts.map +1 -1
  11. package/dist/modules/app/lib/app-template-resolver.js +1 -1
  12. package/dist/modules/app/lib/app-template-resolver.js.map +1 -1
  13. package/dist/modules/app/services/app-svc.d.ts +1 -0
  14. package/dist/modules/app/services/app-svc.d.ts.map +1 -1
  15. package/dist/modules/app/services/app-svc.js +4 -4
  16. package/dist/modules/app/services/app-svc.js.map +1 -1
  17. package/dist/modules/app/services/manifest-svc.d.ts +1 -1
  18. package/dist/modules/app/services/manifest-svc.d.ts.map +1 -1
  19. package/dist/modules/catalog/commands/scan.d.ts.map +1 -1
  20. package/dist/modules/catalog/commands/scan.js +1 -1
  21. package/dist/modules/catalog/commands/scan.js.map +1 -1
  22. package/dist/modules/catalog/services/catalog-svc.d.ts.map +1 -1
  23. package/dist/modules/deploy/commands/deploy-init-action.js +1 -1
  24. package/dist/modules/deploy/commands/deploy-init-action.js.map +1 -1
  25. package/dist/modules/deploy/commands/deploy-logs-action.js +1 -1
  26. package/dist/modules/deploy/commands/deploy-logs-action.js.map +1 -1
  27. package/dist/modules/deploy/commands/deploy-status-action.js +1 -1
  28. package/dist/modules/deploy/commands/deploy-status-action.js.map +1 -1
  29. package/dist/modules/git/commands/git-connect.d.ts.map +1 -1
  30. package/dist/modules/git/commands/git-connect.js +3 -3
  31. package/dist/modules/git/commands/git-connect.js.map +1 -1
  32. package/dist/modules/library/commands/create-library.d.ts.map +1 -1
  33. package/dist/modules/library/commands/create-library.js +1 -1
  34. package/dist/modules/library/commands/create-library.js.map +1 -1
  35. package/dist/modules/library/commands/delete-library.d.ts.map +1 -1
  36. package/dist/modules/library/commands/delete-library.js +1 -1
  37. package/dist/modules/library/commands/delete-library.js.map +1 -1
  38. package/dist/modules/library/services/library-create-svc.js +1 -1
  39. package/dist/modules/library/services/library-create-svc.js.map +1 -1
  40. package/dist/modules/library/services/library-svc.d.ts +1 -0
  41. package/dist/modules/library/services/library-svc.d.ts.map +1 -1
  42. package/dist/modules/library/services/library-svc.js +3 -2
  43. package/dist/modules/library/services/library-svc.js.map +1 -1
  44. package/dist/modules/plugin/commands/delete-plugin.d.ts.map +1 -1
  45. package/dist/modules/plugin/commands/delete-plugin.js +1 -2
  46. package/dist/modules/plugin/commands/delete-plugin.js.map +1 -1
  47. package/dist/modules/plugin/commands/plugin-create.d.ts.map +1 -1
  48. package/dist/modules/plugin/commands/plugin-create.js +1 -1
  49. package/dist/modules/plugin/commands/plugin-create.js.map +1 -1
  50. package/dist/modules/plugin/commands/plugin-install.d.ts.map +1 -1
  51. package/dist/modules/plugin/commands/plugin-install.js +1 -2
  52. package/dist/modules/plugin/commands/plugin-install.js.map +1 -1
  53. package/dist/modules/plugin/index.d.ts +3 -3
  54. package/dist/modules/plugin/index.d.ts.map +1 -1
  55. package/dist/modules/plugin/index.js +2 -3
  56. package/dist/modules/plugin/index.js.map +1 -1
  57. package/dist/modules/plugin/lib/plugin-resolver.test.js +10 -6
  58. package/dist/modules/plugin/lib/plugin-resolver.test.js.map +1 -1
  59. package/dist/modules/plugin/services/plugin-create-service.d.ts +1 -0
  60. package/dist/modules/plugin/services/plugin-create-service.d.ts.map +1 -1
  61. package/dist/modules/plugin/services/plugin-create-service.js +4 -3
  62. package/dist/modules/plugin/services/plugin-create-service.js.map +1 -1
  63. package/dist/modules/plugin/services/plugin-svc.test.js +34 -30
  64. package/dist/modules/plugin/services/plugin-svc.test.js.map +1 -1
  65. package/dist/modules/release/commands/release-init.d.ts.map +1 -1
  66. package/dist/modules/release/commands/release-init.js +2 -2
  67. package/dist/modules/release/commands/release-init.js.map +1 -1
  68. package/dist/modules/release/services/release-service.d.ts.map +1 -1
  69. package/dist/modules/release/services/release-service.js +3 -3
  70. package/dist/modules/release/services/release-service.js.map +1 -1
  71. package/dist/modules/workspace/services/workspace-service.d.ts +1 -0
  72. package/dist/modules/workspace/services/workspace-service.d.ts.map +1 -1
  73. package/dist/modules/workspace/services/workspace-service.js +3 -2
  74. package/dist/modules/workspace/services/workspace-service.js.map +1 -1
  75. package/dist/templates/plugin/README.md.hbs +10 -0
  76. package/dist/templates/plugin/package.json.hbs +1 -1
  77. package/dist/templates/plugin/scripts/validate-plugin-json.js +13 -2
  78. package/dist/templates/workspace/.eslintignore +2 -1
  79. package/package.json +3 -3
  80. package/src/infrastructure/package-resolver.test.ts +9 -8
  81. package/src/modules/app/commands/create-app.ts +1 -1
  82. package/src/modules/app/commands/delete-app.ts +1 -1
  83. package/src/modules/app/lib/app-template-resolver.ts +1 -2
  84. package/src/modules/app/services/app-svc.ts +6 -7
  85. package/src/modules/app/services/manifest-svc.ts +1 -1
  86. package/src/modules/catalog/commands/scan.ts +1 -2
  87. package/src/modules/catalog/services/catalog-svc.ts +1 -1
  88. package/src/modules/deploy/commands/deploy-init-action.ts +1 -1
  89. package/src/modules/deploy/commands/deploy-logs-action.ts +1 -1
  90. package/src/modules/deploy/commands/deploy-status-action.ts +1 -1
  91. package/src/modules/git/commands/git-connect.ts +3 -3
  92. package/src/modules/library/commands/create-library.ts +1 -1
  93. package/src/modules/library/commands/delete-library.ts +1 -1
  94. package/src/modules/library/services/library-create-svc.ts +1 -1
  95. package/src/modules/library/services/library-svc.ts +3 -2
  96. package/src/modules/plugin/commands/delete-plugin.ts +1 -3
  97. package/src/modules/plugin/commands/plugin-create.ts +1 -1
  98. package/src/modules/plugin/commands/plugin-install.ts +1 -3
  99. package/src/modules/plugin/index.ts +4 -6
  100. package/src/modules/plugin/lib/plugin-resolver.test.ts +10 -7
  101. package/src/modules/plugin/services/plugin-create-service.ts +4 -3
  102. package/src/modules/plugin/services/plugin-svc.test.ts +52 -32
  103. package/src/modules/release/commands/release-init.ts +2 -2
  104. package/src/modules/release/services/release-service.ts +4 -3
  105. package/src/modules/workspace/services/workspace-service.ts +3 -2
  106. package/templates/plugin/README.md.hbs +10 -0
  107. package/templates/plugin/package.json.hbs +1 -1
  108. package/templates/plugin/scripts/validate-plugin-json.js +13 -2
  109. package/templates/workspace/.eslintignore +2 -1
  110. package/dist/infrastructure/npm-package.d.ts +0 -42
  111. package/dist/infrastructure/npm-package.d.ts.map +0 -1
  112. package/dist/infrastructure/npm-package.js +0 -46
  113. package/dist/infrastructure/npm-package.js.map +0 -1
  114. package/dist/infrastructure/npm.d.ts +0 -9
  115. package/dist/infrastructure/npm.d.ts.map +0 -1
  116. package/dist/infrastructure/npm.js +0 -17
  117. package/dist/infrastructure/npm.js.map +0 -1
  118. package/dist/infrastructure/package-resolver.d.ts +0 -117
  119. package/dist/infrastructure/package-resolver.d.ts.map +0 -1
  120. package/dist/infrastructure/package-resolver.js +0 -170
  121. package/dist/infrastructure/package-resolver.js.map +0 -1
  122. package/dist/modules/plugin/errors/plugin-errors.d.ts +0 -51
  123. package/dist/modules/plugin/errors/plugin-errors.d.ts.map +0 -1
  124. package/dist/modules/plugin/errors/plugin-errors.js +0 -130
  125. package/dist/modules/plugin/errors/plugin-errors.js.map +0 -1
  126. package/dist/modules/plugin/lib/plugin-resolver.d.ts +0 -14
  127. package/dist/modules/plugin/lib/plugin-resolver.d.ts.map +0 -1
  128. package/dist/modules/plugin/lib/plugin-resolver.js +0 -36
  129. package/dist/modules/plugin/lib/plugin-resolver.js.map +0 -1
  130. package/dist/modules/plugin/services/plugin-svc.d.ts +0 -42
  131. package/dist/modules/plugin/services/plugin-svc.d.ts.map +0 -1
  132. package/dist/modules/plugin/services/plugin-svc.js +0 -257
  133. package/dist/modules/plugin/services/plugin-svc.js.map +0 -1
  134. package/dist/modules/plugin/types/plugin-types.d.ts +0 -25
  135. package/dist/modules/plugin/types/plugin-types.d.ts.map +0 -1
  136. package/dist/modules/plugin/types/plugin-types.js +0 -2
  137. package/dist/modules/plugin/types/plugin-types.js.map +0 -1
  138. package/src/infrastructure/npm-package.ts +0 -73
  139. package/src/infrastructure/npm.ts +0 -18
  140. package/src/infrastructure/package-resolver.ts +0 -223
  141. package/src/modules/plugin/errors/plugin-errors.ts +0 -145
  142. package/src/modules/plugin/lib/plugin-resolver.ts +0 -41
  143. package/src/modules/plugin/services/plugin-svc.ts +0 -303
  144. package/src/modules/plugin/types/plugin-types.ts +0 -29
@@ -1,117 +0,0 @@
1
- import type { ValidationResult } from '@launch77/plugin-runtime';
2
- /**
3
- * Base interface for package resolution results
4
- */
5
- export interface PackageResolution {
6
- /** The source of the package */
7
- source: 'local' | 'npm';
8
- /** The resolved name/package to use */
9
- resolvedName: string;
10
- /** The local path if source is 'local' */
11
- localPath?: string;
12
- /** The npm package name if source is 'npm' */
13
- npmPackage?: string;
14
- /** The version from package.json (required for local packages, undefined for npm until installed) */
15
- version?: string;
16
- }
17
- /**
18
- * Abstract base class for resolving Launch77 packages
19
- *
20
- * Provides generic resolution logic for finding packages in:
21
- * 1. Local workspace directory (e.g., plugins/, app-templates/)
22
- * 2. npm packages with configured prefix (e.g., @launch77-shared/plugin-*, @launch77-shared/app-template-*)
23
- *
24
- * Concrete implementations must provide:
25
- * - Folder name for local resolution
26
- * - Package prefix for npm resolution
27
- * - Verification logic to validate local packages
28
- */
29
- export declare abstract class PackageResolver {
30
- /**
31
- * Get the local folder name where packages of this type are stored
32
- * @example 'plugins' or 'app-templates'
33
- */
34
- protected abstract getFolderName(): string;
35
- /**
36
- * Get the npm package prefix for unscoped packages
37
- * @example '@launch77-shared/plugin-' or '@launch77-shared/app-template-'
38
- */
39
- protected abstract getPackagePrefix(): string;
40
- /**
41
- * Verify that a local package is valid and complete
42
- * @param localPath - The local directory path to verify
43
- * @returns true if the package is valid, false otherwise
44
- */
45
- protected abstract verify(localPath: string): Promise<boolean>;
46
- /**
47
- * Validate package input name
48
- *
49
- * Accepts:
50
- * - Unscoped names (e.g., "release", "my-package")
51
- * - Scoped npm packages (e.g., "@ibm/package-name")
52
- *
53
- * Rejects:
54
- * - Invalid formats
55
- * - Empty strings
56
- * - Names with invalid characters
57
- *
58
- * @param name - The package name to validate
59
- * @returns ValidationResult with isValid and optional error message
60
- *
61
- * @example
62
- * validateInput('release') // { isValid: true }
63
- * validateInput('@ibm/analytics') // { isValid: true }
64
- * validateInput('@invalid') // { isValid: false, error: '...' }
65
- */
66
- validateInput(name: string): ValidationResult;
67
- /**
68
- * Convert an unscoped package name to an npm package name
69
- *
70
- * Rules:
71
- * - Unscoped names: prefix with configured package prefix
72
- * - Scoped names: use as-is
73
- *
74
- * @param name - The package name (must be validated first)
75
- * @returns The npm package name
76
- *
77
- * @example
78
- * toNpmPackageName('release') // '@launch77-shared/plugin-release' (for PluginResolver)
79
- * toNpmPackageName('@ibm/analytics') // '@ibm/analytics'
80
- */
81
- toNpmPackageName(name: string): string;
82
- /**
83
- * Read version from package.json
84
- * @param packagePath - The path to the package directory
85
- * @returns The version string from package.json
86
- * @throws If package.json doesn't exist, can't be read, or is missing the version field
87
- */
88
- private readVersion;
89
- /**
90
- * Resolve package location from name
91
- *
92
- * Resolution order:
93
- * 1. Check local workspace directory (configured by getFolderName())
94
- * 2. Verify local package is valid (using verify())
95
- * 3. Fall back to npm package name (with configured prefix)
96
- * 4. Read version from package.json (if available)
97
- *
98
- * @param name - The package name to resolve
99
- * @param workspaceRoot - The workspace root directory
100
- * @returns PackageResolution with source, resolved location, and version
101
- *
102
- * @example
103
- * // Local package found
104
- * await resolveLocation('my-package', '/workspace')
105
- * // { source: 'local', resolvedName: 'my-package', localPath: '/workspace/plugins/my-package', version: '1.0.0' }
106
- *
107
- * // Not found locally, resolve to npm
108
- * await resolveLocation('release', '/workspace')
109
- * // { source: 'npm', resolvedName: 'release', npmPackage: '@launch77-shared/plugin-release' }
110
- *
111
- * // Scoped package always resolves to npm
112
- * await resolveLocation('@ibm/analytics', '/workspace')
113
- * // { source: 'npm', resolvedName: '@ibm/analytics', npmPackage: '@ibm/analytics' }
114
- */
115
- resolveLocation(name: string, workspaceRoot: string): Promise<PackageResolution>;
116
- }
117
- //# sourceMappingURL=package-resolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"package-resolver.d.ts","sourceRoot":"","sources":["../../src/infrastructure/package-resolver.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAEhE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,gCAAgC;IAChC,MAAM,EAAE,OAAO,GAAG,KAAK,CAAA;IACvB,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAA;IACpB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,qGAAqG;IACrG,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;;GAWG;AACH,8BAAsB,eAAe;IACnC;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,MAAM;IAE1C;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,IAAI,MAAM;IAE7C;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAE9D;;;;;;;;;;;;;;;;;;;OAmBG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IA8B7C;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAYtC;;;;;OAKG;YACW,WAAW;IAkBzB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAyCvF"}
@@ -1,170 +0,0 @@
1
- import * as path from 'path';
2
- import { parsePluginName, isValidNpmPackageName } from '@launch77/plugin-runtime';
3
- import fs from 'fs-extra';
4
- /**
5
- * Abstract base class for resolving Launch77 packages
6
- *
7
- * Provides generic resolution logic for finding packages in:
8
- * 1. Local workspace directory (e.g., plugins/, app-templates/)
9
- * 2. npm packages with configured prefix (e.g., @launch77-shared/plugin-*, @launch77-shared/app-template-*)
10
- *
11
- * Concrete implementations must provide:
12
- * - Folder name for local resolution
13
- * - Package prefix for npm resolution
14
- * - Verification logic to validate local packages
15
- */
16
- export class PackageResolver {
17
- /**
18
- * Validate package input name
19
- *
20
- * Accepts:
21
- * - Unscoped names (e.g., "release", "my-package")
22
- * - Scoped npm packages (e.g., "@ibm/package-name")
23
- *
24
- * Rejects:
25
- * - Invalid formats
26
- * - Empty strings
27
- * - Names with invalid characters
28
- *
29
- * @param name - The package name to validate
30
- * @returns ValidationResult with isValid and optional error message
31
- *
32
- * @example
33
- * validateInput('release') // { isValid: true }
34
- * validateInput('@ibm/analytics') // { isValid: true }
35
- * validateInput('@invalid') // { isValid: false, error: '...' }
36
- */
37
- validateInput(name) {
38
- if (!name || name.trim().length === 0) {
39
- return {
40
- isValid: false,
41
- error: 'Package name cannot be empty',
42
- };
43
- }
44
- const trimmedName = name.trim();
45
- // Parse the name to determine type and validate
46
- //TODO: move/rename parsePluginName() to parsePackageName()
47
- const parsed = parsePluginName(trimmedName);
48
- if (!parsed.isValid) {
49
- return {
50
- isValid: false,
51
- error: parsed.error,
52
- };
53
- }
54
- // If it's scoped, it must be a valid npm package name
55
- if (parsed.type === 'scoped') {
56
- return isValidNpmPackageName(trimmedName);
57
- }
58
- // Unscoped names are valid for both local and npm
59
- return { isValid: true };
60
- }
61
- /**
62
- * Convert an unscoped package name to an npm package name
63
- *
64
- * Rules:
65
- * - Unscoped names: prefix with configured package prefix
66
- * - Scoped names: use as-is
67
- *
68
- * @param name - The package name (must be validated first)
69
- * @returns The npm package name
70
- *
71
- * @example
72
- * toNpmPackageName('release') // '@launch77-shared/plugin-release' (for PluginResolver)
73
- * toNpmPackageName('@ibm/analytics') // '@ibm/analytics'
74
- */
75
- toNpmPackageName(name) {
76
- const trimmedName = name.trim();
77
- // If already scoped, use as-is
78
- if (trimmedName.startsWith('@')) {
79
- return trimmedName;
80
- }
81
- // Otherwise, convert using configured prefix
82
- return `${this.getPackagePrefix()}${trimmedName}`;
83
- }
84
- /**
85
- * Read version from package.json
86
- * @param packagePath - The path to the package directory
87
- * @returns The version string from package.json
88
- * @throws If package.json doesn't exist, can't be read, or is missing the version field
89
- */
90
- async readVersion(packagePath) {
91
- const packageJsonPath = path.join(packagePath, 'package.json');
92
- try {
93
- const packageJson = await fs.readJson(packageJsonPath);
94
- if (!packageJson.version) {
95
- throw new Error(`Invalid package structure: package.json at ${packagePath} is missing required version field. ` + `All Launch77 packages must include a valid package.json with a version field.`);
96
- }
97
- return packageJson.version;
98
- }
99
- catch (error) {
100
- // Re-throw our own error messages
101
- if (error instanceof Error && error.message.includes('Invalid package structure')) {
102
- throw error;
103
- }
104
- // File not found or invalid JSON
105
- throw new Error(`Invalid package structure: package.json not found or invalid at ${packagePath}. ` + `All Launch77 packages must include a valid package.json with a version field.`);
106
- }
107
- }
108
- /**
109
- * Resolve package location from name
110
- *
111
- * Resolution order:
112
- * 1. Check local workspace directory (configured by getFolderName())
113
- * 2. Verify local package is valid (using verify())
114
- * 3. Fall back to npm package name (with configured prefix)
115
- * 4. Read version from package.json (if available)
116
- *
117
- * @param name - The package name to resolve
118
- * @param workspaceRoot - The workspace root directory
119
- * @returns PackageResolution with source, resolved location, and version
120
- *
121
- * @example
122
- * // Local package found
123
- * await resolveLocation('my-package', '/workspace')
124
- * // { source: 'local', resolvedName: 'my-package', localPath: '/workspace/plugins/my-package', version: '1.0.0' }
125
- *
126
- * // Not found locally, resolve to npm
127
- * await resolveLocation('release', '/workspace')
128
- * // { source: 'npm', resolvedName: 'release', npmPackage: '@launch77-shared/plugin-release' }
129
- *
130
- * // Scoped package always resolves to npm
131
- * await resolveLocation('@ibm/analytics', '/workspace')
132
- * // { source: 'npm', resolvedName: '@ibm/analytics', npmPackage: '@ibm/analytics' }
133
- */
134
- async resolveLocation(name, workspaceRoot) {
135
- const trimmedName = name.trim();
136
- const parsed = parsePluginName(trimmedName);
137
- // If scoped, always use npm (local packages are never scoped)
138
- if (parsed.type === 'scoped') {
139
- return {
140
- source: 'npm',
141
- resolvedName: trimmedName,
142
- npmPackage: trimmedName,
143
- };
144
- }
145
- // Check local workspace directory
146
- const localPath = path.join(workspaceRoot, this.getFolderName(), trimmedName);
147
- const localExists = await fs.pathExists(localPath);
148
- if (localExists) {
149
- // Verify it's a valid package
150
- const isValid = await this.verify(localPath);
151
- if (isValid) {
152
- const version = await this.readVersion(localPath);
153
- return {
154
- source: 'local',
155
- resolvedName: trimmedName,
156
- localPath,
157
- version,
158
- };
159
- }
160
- }
161
- // Not found locally or invalid, resolve to npm package
162
- const npmPackage = this.toNpmPackageName(trimmedName);
163
- return {
164
- source: 'npm',
165
- resolvedName: trimmedName,
166
- npmPackage,
167
- };
168
- }
169
- }
170
- //# sourceMappingURL=package-resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"package-resolver.js","sourceRoot":"","sources":["../../src/infrastructure/package-resolver.ts"],"names":[],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- export declare class PluginNotFoundError extends Error {
2
- constructor(pluginName: string);
3
- }
4
- export declare class InvalidPluginContextError extends Error {
5
- constructor(message: string);
6
- }
7
- /**
8
- * Factory function to create standardized InvalidPluginContextError
9
- * for when plugin:install is run outside of a package directory
10
- */
11
- export declare function createInvalidContextError(currentLocation: string): InvalidPluginContextError;
12
- /**
13
- * Error when plugin.json is missing the required 'targets' field
14
- */
15
- export declare class MissingPluginTargetsError extends Error {
16
- constructor(pluginName: string);
17
- }
18
- /**
19
- * Factory function to create error when plugin targets don't match current location
20
- */
21
- export declare function createInvalidTargetError(pluginName: string, currentTarget: string, allowedTargets: string[]): InvalidPluginContextError;
22
- export declare class PluginInstallationError extends Error {
23
- readonly cause?: Error | undefined;
24
- constructor(message: string, cause?: Error | undefined);
25
- }
26
- /**
27
- * Error when plugin resolution fails
28
- */
29
- export declare class PluginResolutionError extends Error {
30
- constructor(pluginName: string, reason: string);
31
- }
32
- /**
33
- * Error when npm package installation fails
34
- */
35
- export declare class NpmInstallationError extends Error {
36
- readonly cause?: Error | undefined;
37
- constructor(packageName: string, cause?: Error | undefined);
38
- }
39
- /**
40
- * Error when plugin directory is not found for deletion
41
- */
42
- export declare class PluginDirectoryNotFoundError extends Error {
43
- constructor(pluginName: string, expectedPath: string);
44
- }
45
- /**
46
- * Error when plugin name validation fails
47
- */
48
- export declare class InvalidPluginNameError extends Error {
49
- constructor(message: string);
50
- }
51
- //# sourceMappingURL=plugin-errors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-errors.d.ts","sourceRoot":"","sources":["../../../../src/modules/plugin/errors/plugin-errors.ts"],"names":[],"mappings":"AAAA,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,UAAU,EAAE,MAAM;CAM/B;AAED,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,OAAO,EAAE,MAAM;CAI5B;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,eAAe,EAAE,MAAM,GAAG,yBAAyB,CAa5F;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,UAAU,EAAE,MAAM;CAgB/B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,yBAAyB,CAwBvI;AAED,qBAAa,uBAAwB,SAAQ,KAAK;aAG9B,KAAK,CAAC,EAAE,KAAK;gBAD7B,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI/C;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;aAG3B,KAAK,CAAC,EAAE,KAAK;gBAD7B,WAAW,EAAE,MAAM,EACH,KAAK,CAAC,EAAE,KAAK,YAAA;CAYhC;AAED;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,KAAK;gBACzC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;CAIrD;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;CAI5B"}
@@ -1,130 +0,0 @@
1
- export class PluginNotFoundError extends Error {
2
- constructor(pluginName) {
3
- super(`Plugin '${pluginName}' not found.
4
-
5
- Run 'launch77 plugin:list' to see available plugins.`);
6
- this.name = 'PluginNotFoundError';
7
- }
8
- }
9
- export class InvalidPluginContextError extends Error {
10
- constructor(message) {
11
- super(message);
12
- this.name = 'InvalidPluginContextError';
13
- }
14
- }
15
- /**
16
- * Factory function to create standardized InvalidPluginContextError
17
- * for when plugin:install is run outside of a package directory
18
- */
19
- export function createInvalidContextError(currentLocation) {
20
- return new InvalidPluginContextError(`plugin:install must be run from within a package directory.
21
-
22
- Current location: ${currentLocation}
23
- Expected: apps/<name>/, libraries/<name>/, plugins/<name>/, or app-templates/<name>/
24
-
25
- Navigate to a package directory:
26
- cd apps/<app-name>/
27
- cd libraries/<lib-name>/
28
- cd plugins/<plugin-name>/
29
- cd app-templates/<template-name>/`);
30
- }
31
- /**
32
- * Error when plugin.json is missing the required 'targets' field
33
- */
34
- export class MissingPluginTargetsError extends Error {
35
- constructor(pluginName) {
36
- super(`Plugin '${pluginName}' is missing the required 'targets' field in plugin.json.
37
-
38
- The plugin.json file must include a 'targets' array specifying which package types
39
- the plugin can be installed into.
40
-
41
- Example plugin.json:
42
- {
43
- "name": "${pluginName}",
44
- "version": "1.0.0",
45
- "targets": ["app", "library", "plugin", "app-template"],
46
- "pluginDependencies": {},
47
- "libraryDependencies": {}
48
- }`);
49
- this.name = 'MissingPluginTargetsError';
50
- }
51
- }
52
- /**
53
- * Factory function to create error when plugin targets don't match current location
54
- */
55
- export function createInvalidTargetError(pluginName, currentTarget, allowedTargets) {
56
- const targetLocations = allowedTargets.map((target) => {
57
- switch (target) {
58
- case 'app':
59
- return 'apps/<name>/';
60
- case 'library':
61
- return 'libraries/<name>/';
62
- case 'plugin':
63
- return 'plugins/<name>/';
64
- case 'app-template':
65
- return 'app-templates/<name>/';
66
- default:
67
- return target;
68
- }
69
- });
70
- return new InvalidPluginContextError(`Plugin '${pluginName}' cannot be installed in a '${currentTarget}' package.
71
-
72
- This plugin can only be installed in: ${allowedTargets.join(', ')}
73
-
74
- Allowed locations:
75
- ${targetLocations.map((loc) => ` ${loc}`).join('\n')}`);
76
- }
77
- export class PluginInstallationError extends Error {
78
- cause;
79
- constructor(message, cause) {
80
- super(message);
81
- this.cause = cause;
82
- this.name = 'PluginInstallationError';
83
- }
84
- }
85
- /**
86
- * Error when plugin resolution fails
87
- */
88
- export class PluginResolutionError extends Error {
89
- constructor(pluginName, reason) {
90
- super(`Failed to resolve plugin '${pluginName}': ${reason}`);
91
- this.name = 'PluginResolutionError';
92
- }
93
- }
94
- /**
95
- * Error when npm package installation fails
96
- */
97
- export class NpmInstallationError extends Error {
98
- cause;
99
- constructor(packageName, cause) {
100
- super(`Failed to install npm package '${packageName}'.
101
-
102
- Please check:
103
- - Your internet connection
104
- - npm registry access (https://registry.npmjs.org)
105
- - Package exists: https://www.npmjs.com/package/${packageName}
106
-
107
- ${cause ? `\nOriginal error: ${cause.message}` : ''}`);
108
- this.cause = cause;
109
- this.name = 'NpmInstallationError';
110
- }
111
- }
112
- /**
113
- * Error when plugin directory is not found for deletion
114
- */
115
- export class PluginDirectoryNotFoundError extends Error {
116
- constructor(pluginName, expectedPath) {
117
- super(`Plugin '${pluginName}' does not exist.\n\n` + `Expected location: ${expectedPath}\n\n` + `Available plugins:\n` + ` cd plugins/\n` + ` ls`);
118
- this.name = 'PluginDirectoryNotFoundError';
119
- }
120
- }
121
- /**
122
- * Error when plugin name validation fails
123
- */
124
- export class InvalidPluginNameError extends Error {
125
- constructor(message) {
126
- super(message);
127
- this.name = 'InvalidPluginNameError';
128
- }
129
- }
130
- //# sourceMappingURL=plugin-errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-errors.js","sourceRoot":"","sources":["../../../../src/modules/plugin/errors/plugin-errors.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import { PackageResolver } from '../../../infrastructure/package-resolver.js';
2
- /**
3
- * Plugin resolver implementation
4
- *
5
- * Resolves plugins from:
6
- * - Local workspace plugins/ directory
7
- * - npm packages with @launch77-shared/plugin- prefix
8
- */
9
- export declare class PluginResolver extends PackageResolver {
10
- protected getFolderName(): string;
11
- protected getPackagePrefix(): string;
12
- protected verify(localPath: string): Promise<boolean>;
13
- }
14
- //# sourceMappingURL=plugin-resolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-resolver.d.ts","sourceRoot":"","sources":["../../../../src/modules/plugin/lib/plugin-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAA;AAE7E;;;;;;GAMG;AACH,qBAAa,cAAe,SAAQ,eAAe;IACjD,SAAS,CAAC,aAAa,IAAI,MAAM;IAIjC,SAAS,CAAC,gBAAgB,IAAI,MAAM;cAIpB,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAkB5D"}
@@ -1,36 +0,0 @@
1
- import * as path from 'path';
2
- import fs from 'fs-extra';
3
- import { PackageResolver } from '../../../infrastructure/package-resolver.js';
4
- /**
5
- * Plugin resolver implementation
6
- *
7
- * Resolves plugins from:
8
- * - Local workspace plugins/ directory
9
- * - npm packages with @launch77-shared/plugin- prefix
10
- */
11
- export class PluginResolver extends PackageResolver {
12
- getFolderName() {
13
- return 'plugins';
14
- }
15
- getPackagePrefix() {
16
- return '@launch77-shared/plugin-';
17
- }
18
- async verify(localPath) {
19
- // Verify it's a valid plugin (has plugin.json, dist/generator.js, and package.json with version)
20
- const hasPluginJson = await fs.pathExists(path.join(localPath, 'plugin.json'));
21
- const hasGenerator = await fs.pathExists(path.join(localPath, 'dist/generator.js'));
22
- const hasPackageJson = await fs.pathExists(path.join(localPath, 'package.json'));
23
- if (!hasPluginJson || !hasGenerator || !hasPackageJson) {
24
- return false;
25
- }
26
- // Verify package.json has a version field
27
- try {
28
- const packageJson = await fs.readJson(path.join(localPath, 'package.json'));
29
- return !!packageJson.version;
30
- }
31
- catch {
32
- return false;
33
- }
34
- }
35
- }
36
- //# sourceMappingURL=plugin-resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-resolver.js","sourceRoot":"","sources":["../../../../src/modules/plugin/lib/plugin-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,OAAO,EAAE,MAAM,UAAU,CAAA;AAEzB,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAA;AAE7E;;;;;;GAMG;AACH,MAAM,OAAO,cAAe,SAAQ,eAAe;IACvC,aAAa;QACrB,OAAO,SAAS,CAAA;IAClB,CAAC;IAES,gBAAgB;QACxB,OAAO,0BAA0B,CAAA;IACnC,CAAC;IAES,KAAK,CAAC,MAAM,CAAC,SAAiB;QACtC,iGAAiG;QACjG,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAA;QAC9E,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAA;QACnF,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAA;QAEhF,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC;YACvD,OAAO,KAAK,CAAA;QACd,CAAC;QAED,0CAA0C;QAC1C,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAA;YAC3E,OAAO,CAAC,CAAC,WAAW,CAAC,OAAO,CAAA;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;CACF"}
@@ -1,42 +0,0 @@
1
- import type { Launch77Context } from '@launch77/plugin-runtime';
2
- import type { InstallPluginRequest, InstallPluginResult, DeletePluginRequest, DeletePluginResult } from '../types/plugin-types.js';
3
- export declare class PluginService {
4
- private pluginResolver;
5
- constructor();
6
- /**
7
- * Validate that we're in a valid package directory and return the target type
8
- */
9
- private validateContext;
10
- /**
11
- * Validate plugin name, resolve its location, and download if needed
12
- */
13
- private validateAndResolvePlugin;
14
- /**
15
- * Read plugin metadata and validate it supports the current target
16
- */
17
- private validatePluginTargets;
18
- /**
19
- * Check if plugin is already installed and return early-exit result if so
20
- */
21
- private checkExistingInstallation;
22
- /**
23
- * Install a plugin to the current package
24
- */
25
- installPlugin(request: InstallPluginRequest, context: Launch77Context, logger?: (message: string) => void): Promise<InstallPluginResult>;
26
- /**
27
- * Download and install an npm plugin package
28
- */
29
- private downloadNpmPlugin;
30
- private getPackagePath;
31
- private runGenerator;
32
- private isPluginInstalled;
33
- /**
34
- * Write plugin installation metadata to the target package's package.json
35
- */
36
- private writePluginManifest;
37
- /**
38
- * Delete a plugin from the workspace
39
- */
40
- deletePlugin(request: DeletePluginRequest, context: Launch77Context): Promise<DeletePluginResult>;
41
- }
42
- //# sourceMappingURL=plugin-svc.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-svc.d.ts","sourceRoot":"","sources":["../../../../src/modules/plugin/services/plugin-svc.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,eAAe,EAA0F,MAAM,0BAA0B,CAAA;AACvJ,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAoBlI,qBAAa,aAAa;IACxB,OAAO,CAAC,cAAc,CAAgB;;IAMtC;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;OAEG;YACW,wBAAwB;IA2CtC;;OAEG;YACW,qBAAqB;IAcnC;;OAEG;YACW,yBAAyB;IAmBvC;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA6B3J;;OAEG;YACW,iBAAiB;IAW/B,OAAO,CAAC,cAAc;YAgBR,YAAY;YAeZ,iBAAiB;IAmB/B;;OAEG;YACW,mBAAmB;IA6BjC;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAiCxG"}