@shrkcrft/presets 0.1.0-alpha.7 → 0.1.0-alpha.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/builtin/builtin-presets.js +10 -10
- package/dist/builtin/r26-presets.d.ts +1 -3
- package/dist/builtin/r26-presets.d.ts.map +1 -1
- package/dist/builtin/r26-presets.js +2 -30
- package/dist/builtin/r26-snippets.d.ts +0 -2
- package/dist/builtin/r26-snippets.d.ts.map +1 -1
- package/dist/builtin/r26-snippets.js +0 -16
- package/dist/builtin/r45-presets.d.ts +1 -1
- package/dist/builtin/r45-presets.d.ts.map +1 -1
- package/dist/builtin/r45-presets.js +2 -2
- package/dist/builtin/r47-presets.d.ts +1 -1
- package/dist/builtin/r47-presets.d.ts.map +1 -1
- package/dist/builtin/r47-presets.js +1 -1
- package/package.json +4 -4
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { WorkspaceProfile } from '@shrkcrft/workspace';
|
|
2
2
|
import { definePreset } from "../define/define-preset.js";
|
|
3
3
|
import { ANGULAR_PATH_APP, ANGULAR_PATH_COMPONENTS, ANGULAR_PATH_SERVICES, COMMON_AGENT_BRIEFING, COMMON_PATH_SERVICES, COMMON_PATH_TESTS, COMMON_PATH_UTILS, COMMON_PIPELINE_CONTEXT_ONLY, COMMON_PIPELINE_FEATURE_DEV, COMMON_PIPELINE_UNIT_TEST, COMMON_RULE_INTERFACE_PREFIX, COMMON_RULE_NO_LOGIC_CONSTRUCTORS, COMMON_RULE_ONE_EXPORT, COMMON_SAFETY_RULE, COMMON_TEMPLATE_SERVICE, COMMON_TEMPLATE_TEST, COMMON_TEMPLATE_UTILITY, GO_PATH_CMD, GO_PATH_INTERNAL, GO_PATH_PKG, JAVA_MAVEN_PATH_MAIN, JAVA_MAVEN_PATH_TESTS, NX_PATH_APPS, NX_PATH_LIBS, OVERVIEW_DOC, PYTHON_PATH_SRC, PYTHON_PATH_TESTS, RUST_PATH_SRC, RUST_PATH_TESTS, } from "./shared-snippets.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
4
|
+
import { MULTI_STACK_PRESETS } from "./r26-presets.js";
|
|
5
|
+
import { UNIVERSAL_ADOPTION_PRESETS } from "./r45-presets.js";
|
|
6
|
+
import { CANONICAL_ALIAS_PRESETS } from "./r47-presets.js";
|
|
7
7
|
import { ANGULAR_21_PRESETS } from "./angular21-presets.js";
|
|
8
8
|
import { NEST_11_PRESETS } from "./nest11-presets.js";
|
|
9
9
|
import { REACT_19_PRESETS } from "./react19-presets.js";
|
|
@@ -153,7 +153,7 @@ const ANGULAR_APP = definePreset({
|
|
|
153
153
|
const NX_MONOREPO = definePreset({
|
|
154
154
|
id: 'nx-monorepo',
|
|
155
155
|
title: 'Nx monorepo',
|
|
156
|
-
description: 'Conventions for Nx workspaces:
|
|
156
|
+
description: 'Conventions for Nx workspaces: public entrypoints, no relative cross-lib imports, affected build/test commands.',
|
|
157
157
|
tags: ['nx', 'monorepo'],
|
|
158
158
|
appliesTo: [WorkspaceProfile.HasNx, WorkspaceProfile.IsMonorepo],
|
|
159
159
|
weight: 8,
|
|
@@ -161,13 +161,13 @@ const NX_MONOREPO = definePreset({
|
|
|
161
161
|
knowledge: [
|
|
162
162
|
COMMON_AGENT_BRIEFING,
|
|
163
163
|
`defineKnowledgeEntry({
|
|
164
|
-
id: 'nx.
|
|
165
|
-
title: 'Nx
|
|
164
|
+
id: 'nx.boundary-tags',
|
|
165
|
+
title: 'Respect Nx boundary tags',
|
|
166
166
|
type: KnowledgeType.Rule,
|
|
167
167
|
priority: KnowledgePriority.Critical,
|
|
168
168
|
tags: ['nx', 'architecture'],
|
|
169
169
|
appliesWhen: ['generate-code', 'refactor'],
|
|
170
|
-
content: 'Respect the
|
|
170
|
+
content: 'Respect the boundary tags declared on each project (scope, type). The enforce-module-boundaries lint rule must stay green.',
|
|
171
171
|
})`,
|
|
172
172
|
`defineKnowledgeEntry({
|
|
173
173
|
id: 'nx.public-entrypoints',
|
|
@@ -515,11 +515,11 @@ export const BUILTIN_PRESETS = Object.freeze([
|
|
|
515
515
|
RUST_CRATE,
|
|
516
516
|
POLYGLOT_MONOREPO,
|
|
517
517
|
// Modern Angular, strict TypeScript, frontend/backend/testing variants
|
|
518
|
-
...
|
|
518
|
+
...MULTI_STACK_PRESETS,
|
|
519
519
|
// Universal adoption: next-app, turborepo, package-workspace, clean-architecture-ts
|
|
520
|
-
...
|
|
520
|
+
...UNIVERSAL_ADOPTION_PRESETS,
|
|
521
521
|
// Universal adoption top-5: nest-service, angular-app canonical aliases
|
|
522
|
-
...
|
|
522
|
+
...CANONICAL_ALIAS_PRESETS,
|
|
523
523
|
// Angular 18 / 19 / 20 / 21 — signal queries, signal I/O, zoneless,
|
|
524
524
|
// @if/@for/@defer/@let, resource() / httpResource(), inject(), no
|
|
525
525
|
// NgModules. Weight 11-12 so the recommender prefers these over
|
|
@@ -14,10 +14,8 @@ export declare const ANGULAR_PERFORMANCE: IPreset;
|
|
|
14
14
|
export declare const ANGULAR_TESTING: IPreset;
|
|
15
15
|
export declare const ANGULAR_ACCESSIBILITY: IPreset;
|
|
16
16
|
export declare const ANGULAR_SECURITY: IPreset;
|
|
17
|
-
export declare const ANGULAR_PLUGIN_PLATFORM: IPreset;
|
|
18
17
|
export declare const ANGULAR_ENTERPRISE_APP: IPreset;
|
|
19
18
|
export declare const ANGULAR_LIBRARY: IPreset;
|
|
20
|
-
export declare const ANGULAR_SMART_UI_PLATFORM: IPreset;
|
|
21
19
|
export declare const VITEST_FOCUSED: IPreset;
|
|
22
20
|
export declare const JEST_FOCUSED: IPreset;
|
|
23
21
|
export declare const PLAYWRIGHT_FOCUSED: IPreset;
|
|
@@ -27,5 +25,5 @@ export declare const WEB_COMPONENT_LIBRARY: IPreset;
|
|
|
27
25
|
export declare const NESTJS_SERVICE: IPreset;
|
|
28
26
|
export declare const EXPRESS_SERVICE: IPreset;
|
|
29
27
|
export declare const FASTIFY_SERVICE: IPreset;
|
|
30
|
-
export declare const
|
|
28
|
+
export declare const MULTI_STACK_PRESETS: readonly IPreset[];
|
|
31
29
|
//# sourceMappingURL=r26-presets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"r26-presets.d.ts","sourceRoot":"","sources":["../../src/builtin/r26-presets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"r26-presets.d.ts","sourceRoot":"","sources":["../../src/builtin/r26-presets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAkDlD,eAAO,MAAM,iBAAiB,EAAE,OAe9B,CAAC;AAEH,eAAO,MAAM,yBAAyB,EAAE,OAgBtC,CAAC;AAEH,eAAO,MAAM,uBAAuB,EAAE,OAoBpC,CAAC;AAIH,eAAO,MAAM,iBAAiB,EAAE,OAgC9B,CAAC;AAEH,eAAO,MAAM,YAAY,EAAE,OAiBzB,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,OAiBxB,CAAC;AAIH,eAAO,MAAM,cAAc,EAAE,OAmC3B,CAAC;AAEH,eAAO,MAAM,qBAAqB,EAAE,OAelC,CAAC;AAEH,eAAO,MAAM,wBAAwB,EAAE,OAerC,CAAC;AAEH,eAAO,MAAM,6BAA6B,EAAE,OAe1C,CAAC;AAEH,eAAO,MAAM,+BAA+B,EAAE,OAe5C,CAAC;AAEH,eAAO,MAAM,mBAAmB,EAAE,OAehC,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,OAe5B,CAAC;AAEH,eAAO,MAAM,qBAAqB,EAAE,OAelC,CAAC;AAEH,eAAO,MAAM,gBAAgB,EAAE,OAe7B,CAAC;AAEH,eAAO,MAAM,sBAAsB,EAAE,OASnC,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,OAS5B,CAAC;AAIH,eAAO,MAAM,cAAc,EAAE,OAQ3B,CAAC;AAEH,eAAO,MAAM,YAAY,EAAE,OAQzB,CAAC;AAEH,eAAO,MAAM,kBAAkB,EAAE,OAO/B,CAAC;AAIH,eAAO,MAAM,gBAAgB,EAAE,OAS7B,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,OAS3B,CAAC;AAEH,eAAO,MAAM,qBAAqB,EAAE,OAQlC,CAAC;AAIH,eAAO,MAAM,cAAc,EAAE,OAS3B,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,OAS5B,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,OAS5B,CAAC;AAEH,eAAO,MAAM,mBAAmB,EAAE,SAAS,OAAO,EA2BhD,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { WorkspaceProfile } from '@shrkcrft/workspace';
|
|
2
2
|
import { definePreset } from "../define/define-preset.js";
|
|
3
3
|
import { ANGULAR_PATH_APP, ANGULAR_PATH_COMPONENTS, ANGULAR_PATH_SERVICES, COMMON_AGENT_BRIEFING, COMMON_PIPELINE_CONTEXT_ONLY, COMMON_PIPELINE_FEATURE_DEV, COMMON_PIPELINE_UNIT_TEST, COMMON_RULE_INTERFACE_PREFIX, COMMON_RULE_NO_LOGIC_CONSTRUCTORS, COMMON_RULE_ONE_EXPORT, COMMON_SAFETY_RULE, NEST_PATH_E2E, NEST_PATH_SRC, OVERVIEW_DOC, } from "./shared-snippets.js";
|
|
4
|
-
import { NG_ACCESSIBLE, NG_AVOID_BYPASS_SECURITY, NG_DOMAIN_NO_UI_IMPORTS, NG_FEATURE_FOLDERS, NG_GUARDS_SMALL, NG_LAZY_ROUTES, NG_LIFECYCLE_SAFE_CLEANUP, NG_NO_BUSINESS_LOGIC_IN_TEMPLATE, NG_NO_DEEP_LIB_IMPORTS, NG_NO_GOD_SERVICES, NG_ON_PUSH,
|
|
4
|
+
import { NG_ACCESSIBLE, NG_AVOID_BYPASS_SECURITY, NG_DOMAIN_NO_UI_IMPORTS, NG_FEATURE_FOLDERS, NG_GUARDS_SMALL, NG_LAZY_ROUTES, NG_LIFECYCLE_SAFE_CLEANUP, NG_NO_BUSINESS_LOGIC_IN_TEMPLATE, NG_NO_DEEP_LIB_IMPORTS, NG_NO_GOD_SERVICES, NG_ON_PUSH, NG_RXJS_NO_NESTED_SUBSCRIBE, NG_SIGNALS_FIRST, NG_STANDALONE_COMPONENTS, NG_TRACK_BY, NG_TYPED_REACTIVE_FORMS, TS_AGENT_SMALL_DIFFS, TS_BRANDED_IDS, TS_DISCRIMINATED_UNIONS, TS_ERROR_HANDLING, TS_NO_ANY, TS_NO_CIRCULAR_IMPORTS, TS_NO_DEEP_IMPORTS, TS_NO_FLOATING_PROMISES, TS_PREFER_SATISFIES, TS_PUBLIC_RETURN_TYPES, TS_READONLY_DEFAULT, TS_VALIDATE_BOUNDARY_INPUT, } from "./r26-snippets.js";
|
|
5
5
|
// ─── Core ──────────────────────────────────────────────────────────────────
|
|
6
6
|
export const GENERIC_SAFE_REPO = definePreset({
|
|
7
7
|
id: 'generic-safe-repo',
|
|
@@ -292,22 +292,6 @@ export const ANGULAR_SECURITY = definePreset({
|
|
|
292
292
|
docs: { 'overview.md': OVERVIEW_DOC('Angular security', 'Avoid bypassSecurityTrust*. Sanitize user HTML. Validate route params.') },
|
|
293
293
|
},
|
|
294
294
|
});
|
|
295
|
-
export const ANGULAR_PLUGIN_PLATFORM = definePreset({
|
|
296
|
-
id: 'angular-plugin-platform',
|
|
297
|
-
title: 'Angular — plugin platform',
|
|
298
|
-
description: 'Plugin contracts, lifecycle, capability tokens, isolation.',
|
|
299
|
-
tags: ['angular', 'plugins'],
|
|
300
|
-
appliesTo: [WorkspaceProfile.HasAngular],
|
|
301
|
-
weight: 5,
|
|
302
|
-
includes: {
|
|
303
|
-
knowledge: [],
|
|
304
|
-
rules: [NG_PLUGIN_STABLE_CONTRACT, NG_PLUGIN_NO_DEEP_IMPORTS],
|
|
305
|
-
paths: [],
|
|
306
|
-
templates: [],
|
|
307
|
-
pipelines: [],
|
|
308
|
-
docs: { 'overview.md': OVERVIEW_DOC('Angular plugin platform', 'Plugin contracts are stable. No plugin-to-plugin deep imports. Lifecycle is deterministic.') },
|
|
309
|
-
},
|
|
310
|
-
});
|
|
311
295
|
export const ANGULAR_ENTERPRISE_APP = definePreset({
|
|
312
296
|
id: 'angular-enterprise-app',
|
|
313
297
|
title: 'Angular enterprise app',
|
|
@@ -328,16 +312,6 @@ export const ANGULAR_LIBRARY = definePreset({
|
|
|
328
312
|
composes: ['modern-angular', 'npm-package'],
|
|
329
313
|
includes: { knowledge: [], rules: [], paths: [], templates: [], pipelines: [], docs: {} },
|
|
330
314
|
});
|
|
331
|
-
export const ANGULAR_SMART_UI_PLATFORM = definePreset({
|
|
332
|
-
id: 'angular-smart-ui-platform',
|
|
333
|
-
title: 'Angular smart UI platform',
|
|
334
|
-
description: 'Smart/dumb component split, deliberate state ownership, large-app organisation.',
|
|
335
|
-
tags: ['angular', 'ui-platform'],
|
|
336
|
-
appliesTo: [WorkspaceProfile.HasAngular],
|
|
337
|
-
weight: 6,
|
|
338
|
-
composes: ['modern-angular'],
|
|
339
|
-
includes: { knowledge: [], rules: [], paths: [], templates: [], pipelines: [], docs: {} },
|
|
340
|
-
});
|
|
341
315
|
// ─── Testing presets ───────────────────────────────────────────────────────
|
|
342
316
|
export const VITEST_FOCUSED = definePreset({
|
|
343
317
|
id: 'vitest-focused',
|
|
@@ -426,7 +400,7 @@ export const FASTIFY_SERVICE = definePreset({
|
|
|
426
400
|
composes: ['node-service'],
|
|
427
401
|
includes: { knowledge: [], rules: [], paths: [], templates: [], pipelines: [], docs: { 'overview.md': OVERVIEW_DOC('Fastify service', 'Schema-validate routes. Encapsulate features as plugins. Keep startup ordering deterministic.') } },
|
|
428
402
|
});
|
|
429
|
-
export const
|
|
403
|
+
export const MULTI_STACK_PRESETS = Object.freeze([
|
|
430
404
|
GENERIC_SAFE_REPO,
|
|
431
405
|
AI_AGENT_SAFE_DEVELOPMENT,
|
|
432
406
|
ENTERPRISE_REVIEW_GATED,
|
|
@@ -442,10 +416,8 @@ export const R26_PRESETS = Object.freeze([
|
|
|
442
416
|
ANGULAR_TESTING,
|
|
443
417
|
ANGULAR_ACCESSIBILITY,
|
|
444
418
|
ANGULAR_SECURITY,
|
|
445
|
-
ANGULAR_PLUGIN_PLATFORM,
|
|
446
419
|
ANGULAR_ENTERPRISE_APP,
|
|
447
420
|
ANGULAR_LIBRARY,
|
|
448
|
-
ANGULAR_SMART_UI_PLATFORM,
|
|
449
421
|
VITEST_FOCUSED,
|
|
450
422
|
JEST_FOCUSED,
|
|
451
423
|
PLAYWRIGHT_FOCUSED,
|
|
@@ -34,6 +34,4 @@ export declare const NG_NO_GOD_SERVICES: string;
|
|
|
34
34
|
export declare const NG_DOMAIN_NO_UI_IMPORTS: string;
|
|
35
35
|
export declare const NG_ACCESSIBLE: string;
|
|
36
36
|
export declare const NG_AVOID_BYPASS_SECURITY: string;
|
|
37
|
-
export declare const NG_PLUGIN_STABLE_CONTRACT: string;
|
|
38
|
-
export declare const NG_PLUGIN_NO_DEEP_IMPORTS: string;
|
|
39
37
|
//# sourceMappingURL=r26-snippets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"r26-snippets.d.ts","sourceRoot":"","sources":["../../src/builtin/r26-snippets.ts"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAWT;AAID,eAAO,MAAM,SAAS,QAOpB,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAO9B,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAOlC,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAO9B,CAAC;AAEH,eAAO,MAAM,sBAAsB,QAOjC,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAOlC,CAAC;AAEH,eAAO,MAAM,iBAAiB,QAO5B,CAAC;AAEH,eAAO,MAAM,kBAAkB,QAO7B,CAAC;AAEH,eAAO,MAAM,0BAA0B,QAOrC,CAAC;AAEH,eAAO,MAAM,cAAc,QAOzB,CAAC;AAEH,eAAO,MAAM,sBAAsB,QAOjC,CAAC;AAEH,eAAO,MAAM,oBAAoB,QAO/B,CAAC;AAIH,eAAO,MAAM,wBAAwB,QAOnC,CAAC;AAEH,eAAO,MAAM,UAAU,QAOrB,CAAC;AAEH,eAAO,MAAM,gBAAgB,QAO3B,CAAC;AAEH,eAAO,MAAM,2BAA2B,QAOtC,CAAC;AAEH,eAAO,MAAM,yBAAyB,QAOpC,CAAC;AAEH,eAAO,MAAM,WAAW,QAOtB,CAAC;AAEH,eAAO,MAAM,gCAAgC,QAO3C,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAOlC,CAAC;AAEH,eAAO,MAAM,cAAc,QAOzB,CAAC;AAEH,eAAO,MAAM,eAAe,QAO1B,CAAC;AAEH,eAAO,MAAM,sBAAsB,QAOjC,CAAC;AAEH,eAAO,MAAM,kBAAkB,QAO7B,CAAC;AAEH,eAAO,MAAM,kBAAkB,QAO7B,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAOlC,CAAC;AAEH,eAAO,MAAM,aAAa,QAOxB,CAAC;AAEH,eAAO,MAAM,wBAAwB,QAOnC,CAAC
|
|
1
|
+
{"version":3,"file":"r26-snippets.d.ts","sourceRoot":"","sources":["../../src/builtin/r26-snippets.ts"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAWT;AAID,eAAO,MAAM,SAAS,QAOpB,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAO9B,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAOlC,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAO9B,CAAC;AAEH,eAAO,MAAM,sBAAsB,QAOjC,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAOlC,CAAC;AAEH,eAAO,MAAM,iBAAiB,QAO5B,CAAC;AAEH,eAAO,MAAM,kBAAkB,QAO7B,CAAC;AAEH,eAAO,MAAM,0BAA0B,QAOrC,CAAC;AAEH,eAAO,MAAM,cAAc,QAOzB,CAAC;AAEH,eAAO,MAAM,sBAAsB,QAOjC,CAAC;AAEH,eAAO,MAAM,oBAAoB,QAO/B,CAAC;AAIH,eAAO,MAAM,wBAAwB,QAOnC,CAAC;AAEH,eAAO,MAAM,UAAU,QAOrB,CAAC;AAEH,eAAO,MAAM,gBAAgB,QAO3B,CAAC;AAEH,eAAO,MAAM,2BAA2B,QAOtC,CAAC;AAEH,eAAO,MAAM,yBAAyB,QAOpC,CAAC;AAEH,eAAO,MAAM,WAAW,QAOtB,CAAC;AAEH,eAAO,MAAM,gCAAgC,QAO3C,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAOlC,CAAC;AAEH,eAAO,MAAM,cAAc,QAOzB,CAAC;AAEH,eAAO,MAAM,eAAe,QAO1B,CAAC;AAEH,eAAO,MAAM,sBAAsB,QAOjC,CAAC;AAEH,eAAO,MAAM,kBAAkB,QAO7B,CAAC;AAEH,eAAO,MAAM,kBAAkB,QAO7B,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAOlC,CAAC;AAEH,eAAO,MAAM,aAAa,QAOxB,CAAC;AAEH,eAAO,MAAM,wBAAwB,QAOnC,CAAC"}
|
|
@@ -239,19 +239,3 @@ export const NG_AVOID_BYPASS_SECURITY = ruleSnippet({
|
|
|
239
239
|
appliesWhen: ['generate-code', 'review'],
|
|
240
240
|
content: '`DomSanitizer.bypassSecurityTrust*` opens an XSS hole. Only use it with reviewed, trusted inputs — sanitize otherwise.',
|
|
241
241
|
});
|
|
242
|
-
export const NG_PLUGIN_STABLE_CONTRACT = ruleSnippet({
|
|
243
|
-
id: 'angular.plugin.stable-contract',
|
|
244
|
-
title: 'Plugin contracts are stable',
|
|
245
|
-
priority: 'critical',
|
|
246
|
-
tags: ['angular', 'plugins'],
|
|
247
|
-
appliesWhen: ['generate-code', 'review'],
|
|
248
|
-
content: 'Plugin manifests, lifecycle hooks, and capability tokens are public API. Breaking changes require a migration note and a major-version bump.',
|
|
249
|
-
});
|
|
250
|
-
export const NG_PLUGIN_NO_DEEP_IMPORTS = ruleSnippet({
|
|
251
|
-
id: 'angular.plugin.no-deep-imports',
|
|
252
|
-
title: 'Plugins cannot deep-import each other',
|
|
253
|
-
priority: 'critical',
|
|
254
|
-
tags: ['angular', 'plugins', 'boundaries'],
|
|
255
|
-
appliesWhen: ['generate-code', 'review'],
|
|
256
|
-
content: 'Plugin-to-plugin communication must use the documented event/token contract. Direct imports between plugin packages are forbidden.',
|
|
257
|
-
});
|
|
@@ -3,5 +3,5 @@ export declare const NEXT_APP_PRESET: IPreset;
|
|
|
3
3
|
export declare const TURBOREPO_PRESET: IPreset;
|
|
4
4
|
export declare const PACKAGE_WORKSPACE_PRESET: IPreset;
|
|
5
5
|
export declare const CLEAN_ARCHITECTURE_TS_PRESET: IPreset;
|
|
6
|
-
export declare const
|
|
6
|
+
export declare const UNIVERSAL_ADOPTION_PRESETS: readonly IPreset[];
|
|
7
7
|
//# sourceMappingURL=r45-presets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"r45-presets.d.ts","sourceRoot":"","sources":["../../src/builtin/r45-presets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AA0BlD,eAAO,MAAM,eAAe,EAAE,OA+C5B,CAAC;AAEH,eAAO,MAAM,gBAAgB,EAAE,OA+C7B,CAAC;AAEH,eAAO,MAAM,wBAAwB,EAAE,OAuCrC,CAAC;AAEH,eAAO,MAAM,4BAA4B,EAAE,OAoDzC,CAAC;AAEH,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"r45-presets.d.ts","sourceRoot":"","sources":["../../src/builtin/r45-presets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AA0BlD,eAAO,MAAM,eAAe,EAAE,OA+C5B,CAAC;AAEH,eAAO,MAAM,gBAAgB,EAAE,OA+C7B,CAAC;AAEH,eAAO,MAAM,wBAAwB,EAAE,OAuCrC,CAAC;AAEH,eAAO,MAAM,4BAA4B,EAAE,OAoDzC,CAAC;AAEH,eAAO,MAAM,0BAA0B,EAAE,SAAS,OAAO,EAKvD,CAAC"}
|
|
@@ -52,7 +52,7 @@ export const NEXT_APP_PRESET = definePreset({
|
|
|
52
52
|
export const TURBOREPO_PRESET = definePreset({
|
|
53
53
|
id: 'turborepo',
|
|
54
54
|
title: 'Turborepo monorepo',
|
|
55
|
-
description: 'Conventions for Turborepo workspaces:
|
|
55
|
+
description: 'Conventions for Turborepo workspaces: public entry points, no relative cross-package imports, run via the affected task graph.',
|
|
56
56
|
tags: ['turborepo', 'monorepo'],
|
|
57
57
|
appliesTo: [WorkspaceProfile.HasTurborepo, WorkspaceProfile.IsMonorepo],
|
|
58
58
|
weight: 8,
|
|
@@ -178,7 +178,7 @@ export const CLEAN_ARCHITECTURE_TS_PRESET = definePreset({
|
|
|
178
178
|
'shrk task "<task>"',
|
|
179
179
|
],
|
|
180
180
|
});
|
|
181
|
-
export const
|
|
181
|
+
export const UNIVERSAL_ADOPTION_PRESETS = Object.freeze([
|
|
182
182
|
NEXT_APP_PRESET,
|
|
183
183
|
TURBOREPO_PRESET,
|
|
184
184
|
PACKAGE_WORKSPACE_PRESET,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IPreset } from '../model/preset.js';
|
|
2
2
|
export declare const NEST_SERVICE_PRESET: IPreset;
|
|
3
3
|
export declare const ANGULAR_APP_PRESET: IPreset;
|
|
4
|
-
export declare const
|
|
4
|
+
export declare const CANONICAL_ALIAS_PRESETS: readonly IPreset[];
|
|
5
5
|
//# sourceMappingURL=r47-presets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"r47-presets.d.ts","sourceRoot":"","sources":["../../src/builtin/r47-presets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAuBlD,eAAO,MAAM,mBAAmB,EAAE,OA2BhC,CAAC;AAEH,eAAO,MAAM,kBAAkB,EAAE,OA2B/B,CAAC;AAEH,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"r47-presets.d.ts","sourceRoot":"","sources":["../../src/builtin/r47-presets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAuBlD,eAAO,MAAM,mBAAmB,EAAE,OA2BhC,CAAC;AAEH,eAAO,MAAM,kBAAkB,EAAE,OA2B/B,CAAC;AAEH,eAAO,MAAM,uBAAuB,EAAE,SAAS,OAAO,EAGpD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shrkcrft/presets",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.8",
|
|
4
4
|
"description": "SharkCraft presets: reusable project setups (knowledge/rules/paths/templates/pipelines/docs) that can be applied to a target repo through the CLI.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "SharkCraft contributors",
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
"typecheck": "tsc --noEmit -p tsconfig.json"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@shrkcrft/core": "^0.1.0-alpha.
|
|
46
|
-
"@shrkcrft/knowledge": "^0.1.0-alpha.
|
|
47
|
-
"@shrkcrft/workspace": "^0.1.0-alpha.
|
|
45
|
+
"@shrkcrft/core": "^0.1.0-alpha.8",
|
|
46
|
+
"@shrkcrft/knowledge": "^0.1.0-alpha.8",
|
|
47
|
+
"@shrkcrft/workspace": "^0.1.0-alpha.8"
|
|
48
48
|
},
|
|
49
49
|
"publishConfig": {
|
|
50
50
|
"access": "public"
|