eslint-plugin-use-agnostic 1.2.2 → 1.3.0

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 CHANGED
@@ -1,5 +1,7 @@
1
1
  # eslint-plugin-use-agnostic
2
2
 
3
+ _(Now powered by Comment Variables.)_
4
+
3
5
  `eslint-plugin-use-agnostic` highlights problematic server-client imports in projects made with the Fullstack React Architecture (Next.js App Router, etc.) based on each of their modules' derived effective directives through detailed import rule violations, thanks to the introduction of its very own `'use agnostic'` directive.
4
6
 
5
7
  ![Intro example of linting with the use-agnostic ESLint plugin including the suggestion to use the 'use agnostic' directive.](./assets/README/example.png)
@@ -42,6 +44,8 @@ export default defineConfig([
42
44
  ]);
43
45
  ```
44
46
 
47
+ And don't forget to install the ESLint VS Code plugin for live reports.
48
+
45
49
  ## How it works
46
50
 
47
51
  In the beginning, there were not two kinds of modules in the Fullstack React Architecture (server vs. client). There were three:
@@ -1,22 +1,22 @@
1
- import {
2
- agnostic20ConfigName,
3
- directive21ConfigName,
4
- } from "./library/_commons/constants/bases.js";
1
+ import { jsDocComments } from "./jscomments/jsdoc/comments.js";
2
+ import { testsComments } from "./jscomments/tests/comments.js";
3
+ import { agnostic20Comments } from "./jscomments/agnostic20/comments.js";
4
+ import { directive21Comments } from "./jscomments/directive21/comments.js";
5
5
 
6
- import {
7
- jSDocComments,
8
- testsComments,
9
- } from "./jscomments/_commons/constants/bases.js";
10
- import { agnostic20Comments } from "./jscomments/agnostic20/constants/bases.js";
11
- import { directive21Comments } from "./jscomments/directive21/constants/bases.js";
12
-
13
- const config = Object.freeze({
14
- jsDoc: jSDocComments,
6
+ export const data = Object.freeze({
7
+ jsDoc: jsDocComments,
15
8
  tests: testsComments,
16
- [agnostic20ConfigName]: agnostic20Comments,
17
- [directive21ConfigName]: directive21Comments,
9
+ agnostic20: agnostic20Comments,
10
+ directive21: directive21Comments,
18
11
  });
19
12
 
13
+ const ignores = [];
14
+
15
+ const config = {
16
+ data,
17
+ ignores,
18
+ };
19
+
20
20
  export default config;
21
21
 
22
22
  /* Notes
@@ -29,4 +29,5 @@ Aims of the VSCode extension JSComments:
29
29
  - config["directive21"] would return $COMMENT#DIRECTIVE21#*
30
30
  - this way, instead doing a find-replace on a big documentation comment, the comment stays within the config and only the config placeholder is found and replaced for the same results
31
31
  A working CLI is already on npm: comment-variables.
32
+ And the VS Code is also done now privately.
32
33
  */
@@ -1,95 +1,21 @@
1
- // comment variables for JSDoc definitions
2
- export const jSDocComments = Object.freeze({
3
- // library/_commons/utilities/helpers.js
4
- basePath: "The absolute import path with its extension yet resolved.",
5
- currentDir:
6
- "The directory of the file containing the import, such as from `path.dirname(context.filename)`.",
7
- importPath:
8
- "The import specifier (e.g., `@/components/Button` or `./utils`), such as one from the current node.",
9
- cwd: "The project root, such as from `context.cwd`.",
10
- fileResolvedPath: "The resolved path of the file.",
11
- aContext: "An ESLint rule's `context` object.",
12
- resolvedDirectives_blockedImports: `The blocked imports object, either for agnostic20 or for directive21.`,
13
- currentFileResolvedDirective: `The current file's "resolved" directive.`,
14
- importedFileResolvedDirective: `The imported file's "resolved" directive.`,
15
- theCurrentFileResolvedDirective: `The "resolved" directive of the "resolved" module.`,
16
- // library/ ... /config.js
17
- plugin: "The use-agnostic ESLint plugin itself.",
18
- // library/agnostic20/_commons/constants/bases.js
19
- currentFileEffectiveDirective: "The current file's effective directive.",
20
- importedFileEffectiveDirective: "The imported file's effective directive.",
21
- // library/ ... /flows.js
22
- context: "The ESLint rule's `context` object.",
23
- node: "The ESLint `node` of the rule's current traversal.",
24
- // library/ ... /helpers.js
25
- extension: "The JavaScript (TypeScript) extension of the file.",
26
- resolvedPath: "The resolved path of the imported module.",
27
- // library/agnostic20/_commons/utilities/helpers.js
28
- ast: "The module's AST (Abstract Syntax Tree).",
29
- directiveA20: `The directive as written on top of the file (\`"no directive"\` if no valid directive).`,
30
- effectiveDirective: "The effective directive of the effective module.",
31
- serverByDefault: `\`null\` denotes a server-by-default module, ideally a Server Module.`,
32
- useServer: `\`'use server'\` denotes a Server Functions Module.`,
33
- useClient: `\`'use client'\` denotes a Client Module.`,
34
- useAgnostic: `\`'use agnostic'\` denotes an Agnostic Module (formerly Shared Module).`,
35
- useServerLogics20: `\`'use server logics'\` denotes a Server Logics Module.`,
36
- useServerComponents20: `\`'use server components'\` denotes a Server Components Module.`,
37
- useServerFunctions20: `\`'use server functions'\` denotes a Server Functions Module.`,
38
- useClientLogics20: `\`'use client logics'\` denotes a Client Logics Module.`,
39
- useClientComponents20: `\`'use client components'\` denotes a Client Components Module.`,
40
- useAgnosticLogics20: `\`'use agnostic logics'\` denotes an Agnostic Logics Module.`,
41
- useAgnosticComponents20: `\`'use agnostic components'\` denotes an Agnostic Components Module.`,
42
- // library/directive21/_commons/constants/bases.js
43
- currentFileCommentedDirective: "The current file's commented directive.",
44
- importedFileCommentedDirective: "The imported file's commented directive.",
45
- // library/directive21/_commons/utilities/helpers.js
46
- string: "The original string.",
47
- sourceCode: "The ESLint SourceCode object.",
48
- directiveD21:
49
- "The commented directive as written on top of the file (cannot be `null` at that stage).",
50
- commentedDirective: "The commented directive of the commented module.",
51
- useServerLogics21: `\`'use server logics'\`, \`"use server logics"\` denoting a Server Logics Module.`,
52
- useClientLogics21: `\`'use client logics'\`, \`"use client logics"\` denoting a Client Logics Module.`,
53
- useAgnosticLogics21: `\`'use agnostic logics'\`, \`"use agnostic logics"\` denoting an Agnostic Logics Module.`,
54
- useServerComponents21: `\`'use server components'\`, \`"use server components"\` denoting a Server Components Module.`,
55
- useClientComponents21: `\`'use client components'\`, \`"use client components"\` denoting a Client Components Module.`,
56
- useAgnosticComponents21: `\`'use agnostic components'\`, \`"use agnostic components"\` denoting an Agnostic Components Module.`,
57
- useServerFunctions21: `\`'use server functions'\`, \`"use server functions"\` denoting a Server Functions Module.`,
58
- useClientContexts21: `\`'use client contexts'\`, \`"use client contexts"\` denoting a Client Contexts Module.`,
59
- useAgnosticConditions21: `\`'use agnostic conditions'\`, \`"use agnostic conditions"\` denoting an Agnostic Conditions Module.`,
60
- useAgnosticStrategies21: `\`'use agnostic strategies'\`, \`"use agnostic strategies"\` denoting an Agnostic Strategies Module.`,
61
- useServerLogicsExtensionRule: `\`'use server logics'\`: Server Logics Modules do NOT export JSX.`,
62
- useClientLogicsExtensionRule: `\`'use client logics'\`: Client Logics Modules do NOT export JSX.`,
63
- useAgnosticLogicsExtensionRule: `\`'use agnostic logics'\`: Agnostic Logics Modules do NOT export JSX.`,
64
- useServerComponentsExtensionRule: `\`'use server components'\`: Server Components Modules ONLY export JSX.`,
65
- useClientComponentsExtensionRule: `\`'use client components'\`: Client Components Modules ONLY export JSX.`,
66
- useAgnosticComponentsExtensionRule: `\`'use agnostic components'\`: Agnostic Components Modules ONLY export JSX.`,
67
- useServerFunctionsExtensionRule: `\`'use server functions'\`: Server Functions Modules do NOT export JSX.`,
68
- useClientContextsExtensionRule: `\`'use client contexts'\`: Client Contexts Modules ONLY export JSX.`,
69
- useAgnosticConditionsExtensionRule: `\`'use agnostic conditions'\`: Agnostic Conditions Modules ONLY export JSX.`,
70
- useAgnosticStrategiesExtensionRule: `\`'use agnostic strategies'\`: Agnostic Strategies Modules may export JSX.`,
71
- // tests/_commons/utilities/helpers.js
72
- folderPath: "The provided directory.",
73
- allFiles:
74
- "The accumulator array of file paths. Defaults to an empty array on the initial call, and is passed through each recursive call to be mutated and collect results.",
75
- javaScriptErrorsLength: "The number of errors expected on JavaScript files.",
76
- typeScriptErrorsLength: "The number of errors expected on TypeScript files.",
77
- messageId: "The messageId of the errors expected.",
78
- });
1
+ import url from "url";
2
+ import path from "path";
79
3
 
80
- // comment variables for tests flavor texts
81
- export const testsComments = Object.freeze({
82
- thatsA: "That's a",
83
- thatsAn: "That's an",
84
- importingA: "...Importing a",
85
- withExtension: "with extension",
86
- withExtensionParentheses: "(with extension).",
87
- byFolder: "by a folder.",
88
- importing: "...Importing",
89
- viaStrategy: "via Special Agnostic Strategy",
90
- viaStrategyPeriod: "via Special Agnostic Strategy.",
91
- viaAlias: "Via alias.",
92
- viaBaseUrl: "Via baseUrl.",
93
- valid: "Valid.",
94
- invalid: "Invalid.",
95
- });
4
+ import { makeResolvedConfigData } from "comment-variables-resolve-config";
5
+
6
+ const dirname = path.dirname(url.fileURLToPath(import.meta.url));
7
+ const jsCommentsConfigPath = path.join(dirname, "../../../comments.config.js");
8
+
9
+ const makeResolvedConfigDataResults = await makeResolvedConfigData(
10
+ jsCommentsConfigPath
11
+ );
12
+
13
+ if (!makeResolvedConfigDataResults.success) {
14
+ makeResolvedConfigDataResults.errors.forEach((e) => {
15
+ console.error(e.message);
16
+ });
17
+ throw new Error("Failed to resolve config data.");
18
+ }
19
+
20
+ export const resolvedConfigData =
21
+ makeResolvedConfigDataResults.resolvedConfigData;
@@ -0,0 +1,79 @@
1
+ import {
2
+ serverLogicsComments,
3
+ serverComponentsComments,
4
+ serverFunctionsComments,
5
+ clientLogicsComments,
6
+ clientComponentsComments,
7
+ agnosticLogicsComments,
8
+ agnosticComponentsComments,
9
+ } from "./modules-comments.js";
10
+
11
+ export const agnostic20Comments = Object.freeze({
12
+ "use server logics": serverLogicsComments,
13
+ "use server components": serverComponentsComments,
14
+ "use server functions": serverFunctionsComments,
15
+ "use client logics": clientLogicsComments,
16
+ "use client components": clientComponentsComments,
17
+ "use agnostic logics": agnosticLogicsComments,
18
+ "use agnostic components": agnosticComponentsComments,
19
+ forAliasVariables: Object.freeze({
20
+ serverNeverClient:
21
+ "Server Logics should never leak to the client." /* $COMMENT#AGNOSTIC20#FORALIASVARIABLES#SERVERNEVERCLIENT */,
22
+ clientNeverServer:
23
+ "Client Logics should never leak to the server." /* $COMMENT#AGNOSTIC20#FORALIASVARIABLES#CLIENTNEVERSERVER */,
24
+ agnosticCanServerClient:
25
+ "Agnostic Logics can run safely on the server just like they can on the client." /* $COMMENT#AGNOSTIC20#FORALIASVARIABLES#AGNOSTICCANSERVERCLIENT */,
26
+ agnosticCanClientServer:
27
+ "Agnostic Logics can run safely on the client just like they can on the server." /* $COMMENT#AGNOSTIC20#FORALIASVARIABLES#AGNOSTICCANCLIENTSERVER */,
28
+ serverFunctionsNoComponents:
29
+ "Server Functions have no business working with React Components." /* $COMMENT#AGNOSTIC20#FORALIASVARIABLES#SERVERFUNCTIONSNOCOMPONENTS */,
30
+ serverLogicsCantBoth:
31
+ "$COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANTSERVERCLIENT" /* $COMMENT#AGNOSTIC20#FORALIASVARIABLES#SERVERLOGICSCANTBOTH */,
32
+ clientLogicsCantBoth:
33
+ "$COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANTSERVERCLIENT" /* $COMMENT#AGNOSTIC20#FORALIASVARIABLES#CLIENTLOGICSCANTBOTH */,
34
+ }),
35
+ forComposedVariables: Object.freeze({
36
+ canComposeOneAnother:
37
+ "can compose with one another." /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANCOMPOSEONEANOTHER */,
38
+ cantTinkeredServer:
39
+ "cannot be tinkered with on the server." /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANTTINKEREDSERVER */,
40
+ cantTinkeredClient:
41
+ "cannot be tinkered with on the client." /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANTTINKEREDCLIENT */,
42
+ cantTinkeredBoth:
43
+ "cannot be tinkered with on both the server and the client." /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANTTINKEREDBOTH */,
44
+ serverComponentsOKLogics:
45
+ "Server Components are OK to be composed with Server Logics as long as the Server Logics Module," /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#SERVERCOMPONENTSOKLOGICS */,
46
+ clientComponentsOKLogics:
47
+ "Client Components are OK to be composed with Client Logics as long as the Client Logics Module," /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CLIENTCOMPONENTSOKLOGICS */,
48
+ agnosticComponentsCanServer:
49
+ "Agnostic Components can be composed with Logics on the server just like they can on the client, as long at the Server Logics Module," /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#AGNOSTICCOMPONENTSCANSERVER */,
50
+ agnosticComponentsCanClient:
51
+ "Agnostic Components can be composed with Logics on the client just like they can on the server, as long as the Client Logics Module," /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#AGNOSTICCOMPONENTSCANCLIENT */,
52
+ agnosticComponentsCanAgnostic:
53
+ "Agnostic Components can be composed with Logics agnostically as long as the Agnostic Logics Module," /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#AGNOSTICCOMPONENTSCANAGNOSTIC */,
54
+ noExportComponents:
55
+ "by convention, does not export React components." /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#NOEXPORTCOMPONENTS */,
56
+ cantServerClient:
57
+ "cannot run on both the server and the client." /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANTSERVERCLIENT */,
58
+ arentAllowed:
59
+ "aren't allowed because" /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ARENTALLOWED */,
60
+ allowedBecause:
61
+ "allowed, because" /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE */,
62
+ beingLogicServer:
63
+ "being logic from the server," /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#BEINGLOGICSERVER */,
64
+ beingLogicClient:
65
+ "being logic from the client," /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#BEINGLOGICCLIENT */,
66
+ beingLogicAgnostic:
67
+ "being environment-agnostic logic," /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#BEINGLOGICAGNOSTIC */,
68
+ canSafelySupport:
69
+ "can safely support" /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANSAFELYSUPPORT */,
70
+ canBeNestedInside:
71
+ "can be nested inside" /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANBENESTEDINSIDE */,
72
+ eitherWrapTree:
73
+ "either to wrap some of the tree with client state accessible through child Client Components and pass through Server Components" /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#EITHERWRAPTREE */,
74
+ ifStillOnServerTree:
75
+ "— if still on the Server Tree —" /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#IFSTILLONSERVERTREE */,
76
+ orCreateBoundaries:
77
+ "or to create client boundaries when the root of the application is planted on the server." /* $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ORCREATEBOUNDARIES */,
78
+ }),
79
+ });
@@ -0,0 +1,199 @@
1
+ export const serverLogicsComments = Object.freeze({
2
+ "use server logics":
3
+ /* valid */ "$COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANCOMPOSEONEANOTHER" /* $COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#USE_SERVER_LOGICS */,
4
+ "use server components":
5
+ /* valid */ "$COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#SERVERCOMPONENTSOKLOGICS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#NOEXPORTCOMPONENTS" /* $COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#USE_SERVER_COMPONENTS */,
6
+ "use server functions":
7
+ /* valid */ "Server Functions, being able to import one another, can compose and do so via Server Logics, despite this method seeming superfluous at first glance. (Perhaps a preferrable use case for this has been found or could be found either today or in the future.)" /* $COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#USE_SERVER_FUNCTIONS */,
8
+ "use client logics":
9
+ /* invalid */ "AGNOSTIC20#FORALIASVARIABLES#CLIENTNEVERSERVER" /* $COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#USE_CLIENT_LOGICS */,
10
+ "use client components":
11
+ /* invalid */ "$COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANTTINKEREDSERVER" /* $COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#USE_CLIENT_COMPONENTS */,
12
+ "use agnostic logics":
13
+ /* valid */ "AGNOSTIC20#FORALIASVARIABLES#AGNOSTICCANSERVERCLIENT" /* $COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#USE_AGNOSTIC_LOGICS */,
14
+ "use agnostic components":
15
+ /* valid */ "$COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#AGNOSTICCOMPONENTSCANSERVER $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#NOEXPORTCOMPONENTS" /* $COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#USE_AGNOSTIC_COMPONENTS */,
16
+ kinds: "Server Logics" /* $COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#KINDS */,
17
+ kindsComma:
18
+ "Server Logics," /* $COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#KINDSCOMMA */,
19
+ kindsPeriod:
20
+ "Server Logics." /* $COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#KINDSPERIOD */,
21
+ thatsAModule:
22
+ "$COMMENT#TESTS#FORCOMPOSEDVARIABLES#THATSA $COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#KINDS $COMMENT#TESTS#FORCOMPOSEDVARIABLES#MODULEPERIOD" /* $COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#THATSAMODULE */,
23
+ importingWithExtension:
24
+ "$COMMENT#TESTS#FORCOMPOSEDVARIABLES#IMPORTINGA $COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#KINDS $COMMENT#TESTS#FORCOMPOSEDVARIABLES#MODULE $COMMENT#TESTS#FORCOMPOSEDVARIABLES#WITHEXTENSIONPARENTHESES" /* $COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#IMPORTINGWITHEXTENSION */,
25
+ importingByAFolder:
26
+ "$COMMENT#TESTS#FORCOMPOSEDVARIABLES#IMPORTINGA $COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#KINDS $COMMENT#TESTS#FORCOMPOSEDVARIABLES#MODULE $COMMENT#TESTS#FORCOMPOSEDVARIABLES#BYFOLDER" /* $COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#IMPORTINGBYAFOLDER */,
27
+ });
28
+
29
+ export const serverComponentsComments = Object.freeze({
30
+ "use server logics":
31
+ /* valid */ "$COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#KINDSCOMMA $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#BEINGLOGICSERVER $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANSAFELYSUPPORT $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#KINDSPERIOD" /* $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#USE_SERVER_LOGICS */,
32
+ "use server components":
33
+ /* valid */ "Server Components can compose with one another, assuming thanks to the inclusion of the 'use agnostic' directive that they are actual Server Components." /* $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#USE_SERVER_COMPONENTS */,
34
+ "use server functions":
35
+ /* valid */ "Server Functions can be passed to imported Client Components within Server Components Modules, even though indeed Server Components Modules and Server Components can make their own Server Functions through inline `'use server'` directives." /* $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#USE_SERVER_FUNCTIONS */,
36
+ "use client logics":
37
+ /* invalid */ "AGNOSTIC20#FORALIASVARIABLES#CLIENTNEVERSERVER" /* $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#USE_CLIENT_LOGICS */,
38
+ "use client components":
39
+ /* valid */ "$COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANBENESTEDINSIDE $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#EITHERWRAPTREE $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ORCREATEBOUNDARIES" /* $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#USE_CLIENT_COMPONENTS */,
40
+ "use agnostic logics":
41
+ /* valid */ "AGNOSTIC20#FORALIASVARIABLES#AGNOSTICCANSERVERCLIENT" /* $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#USE_AGNOSTIC_LOGICS */,
42
+ "use agnostic components":
43
+ /* valid */ "Agnostic Components can render safely on the server just like they can on the client." /* $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#USE_AGNOSTIC_COMPONENTS */,
44
+ kinds:
45
+ "Server Components" /* $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#KINDS */,
46
+ kindsComma:
47
+ "Server Components," /* $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#KINDSCOMMA */,
48
+ kindsPeriod:
49
+ "Server Components." /* $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#KINDSPERIOD */,
50
+ thatsAModule:
51
+ "$COMMENT#TESTS#FORCOMPOSEDVARIABLES#THATSA $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#KINDS $COMMENT#TESTS#FORCOMPOSEDVARIABLES#MODULEPERIOD" /* $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#THATSAMODULE */,
52
+ importingWithExtension:
53
+ "$COMMENT#TESTS#FORCOMPOSEDVARIABLES#IMPORTINGA $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#KINDS $COMMENT#TESTS#FORCOMPOSEDVARIABLES#MODULE $COMMENT#TESTS#FORCOMPOSEDVARIABLES#WITHEXTENSIONPARENTHESES" /* $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#IMPORTINGWITHEXTENSION */,
54
+ importingByAFolder:
55
+ "$COMMENT#TESTS#FORCOMPOSEDVARIABLES#IMPORTINGA $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#KINDS $COMMENT#TESTS#FORCOMPOSEDVARIABLES#MODULE $COMMENT#TESTS#FORCOMPOSEDVARIABLES#BYFOLDER" /* $COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#IMPORTINGBYAFOLDER */,
56
+ });
57
+
58
+ export const serverFunctionsComments = Object.freeze({
59
+ "use server logics":
60
+ /* valid */ "$COMMENT#AGNOSTIC20#USE_SERVER_LOGICS#KINDSCOMMA $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#BEINGLOGICSERVER $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANSAFELYSUPPORT $COMMENT#AGNOSTIC20#USE_SERVER_FUNCTIONS#KINDSPERIOD" /* $COMMENT#AGNOSTIC20#USE_SERVER_FUNCTIONS#USE_SERVER_LOGICS */,
61
+ "use server components":
62
+ /* invalid */ "$COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ARENTALLOWED $COMMENT#AGNOSTIC20#FORALIASVARIABLES#SERVERFUNCTIONSNOCOMPONENTS" /* $COMMENT#AGNOSTIC20#USE_SERVER_FUNCTIONS#USE_SERVER_COMPONENTS */,
63
+ "use server functions":
64
+ /* valid */ "Server Functions, even though they don't need to import one another and the same results can be generated via Server Logics for the outcome of a single Server Function, can still compose with one another. (Perhaps a preferrable use case for this has been found or could be found either today or in the future.)" /* $COMMENT#AGNOSTIC20#USE_SERVER_FUNCTIONS#USE_SERVER_FUNCTIONS */,
65
+ "use client logics":
66
+ /* invalid */ "AGNOSTIC20#FORALIASVARIABLES#CLIENTNEVERSERVER" /* $COMMENT#AGNOSTIC20#USE_SERVER_FUNCTIONS#USE_CLIENT_LOGICS */,
67
+ "use client components":
68
+ /* invalid */ "$COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ARENTALLOWED $COMMENT#AGNOSTIC20#FORALIASVARIABLES#SERVERFUNCTIONSNOCOMPONENTS" /* $COMMENT#AGNOSTIC20#USE_SERVER_FUNCTIONS#USE_CLIENT_COMPONENTS */,
69
+ "use agnostic logics":
70
+ /* valid */ "AGNOSTIC20#FORALIASVARIABLES#AGNOSTICCANSERVERCLIENT" /* $COMMENT#AGNOSTIC20#USE_SERVER_FUNCTIONS#USE_AGNOSTIC_LOGICS */,
71
+ "use agnostic components":
72
+ /* invalid */ "$COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ARENTALLOWED $COMMENT#AGNOSTIC20#FORALIASVARIABLES#SERVERFUNCTIONSNOCOMPONENTS" /* $COMMENT#AGNOSTIC20#USE_SERVER_FUNCTIONS#USE_AGNOSTIC_COMPONENTS */,
73
+ kinds:
74
+ "Server Functions" /* $COMMENT#AGNOSTIC20#USE_SERVER_FUNCTIONS#KINDS */,
75
+ kindsComma:
76
+ "Server Functions," /* $COMMENT#AGNOSTIC20#USE_SERVER_FUNCTIONS#KINDSCOMMA */,
77
+ kindsPeriod:
78
+ "Server Functions." /* $COMMENT#AGNOSTIC20#USE_SERVER_FUNCTIONS#KINDSPERIOD */,
79
+ thatsAModule:
80
+ "$COMMENT#TESTS#FORCOMPOSEDVARIABLES#THATSA $COMMENT#AGNOSTIC20#USE_SERVER_FUNCTIONS#KINDS $COMMENT#TESTS#FORCOMPOSEDVARIABLES#MODULEPERIOD" /* $COMMENT#AGNOSTIC20#USE_SERVER_FUNCTIONS#THATSAMODULE */,
81
+ importingWithExtension:
82
+ "$COMMENT#TESTS#FORCOMPOSEDVARIABLES#IMPORTINGA $COMMENT#AGNOSTIC20#USE_SERVER_FUNCTIONS#KINDS $COMMENT#TESTS#FORCOMPOSEDVARIABLES#MODULE $COMMENT#TESTS#FORCOMPOSEDVARIABLES#WITHEXTENSIONPARENTHESES" /* $COMMENT#AGNOSTIC20#USE_SERVER_FUNCTIONS#IMPORTINGWITHEXTENSION */,
83
+ importingByAFolder:
84
+ "$COMMENT#TESTS#FORCOMPOSEDVARIABLES#IMPORTINGA $COMMENT#AGNOSTIC20#USE_SERVER_FUNCTIONS#KINDS $COMMENT#TESTS#FORCOMPOSEDVARIABLES#MODULE $COMMENT#TESTS#FORCOMPOSEDVARIABLES#BYFOLDER" /* $COMMENT#AGNOSTIC20#USE_SERVER_FUNCTIONS#IMPORTINGBYAFOLDER */,
85
+ });
86
+
87
+ export const clientLogicsComments = Object.freeze({
88
+ "use server logics":
89
+ /* invalid */ "AGNOSTIC20#FORALIASVARIABLES#SERVERNEVERCLIENT" /* $COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#USE_SERVER_LOGICS */,
90
+ "use server components":
91
+ /* invalid */ "$COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANTTINKEREDCLIENT" /* $COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#USE_SERVER_COMPONENTS */,
92
+ "use server functions":
93
+ /* valid */ "Server Functions can technically be attached to Client Components that are being tinkered with within Client Logics Modules." /* $COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#USE_SERVER_FUNCTIONS */,
94
+ "use client logics":
95
+ /* valid */ "$COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANCOMPOSEONEANOTHER" /* $COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#USE_CLIENT_LOGICS */,
96
+ "use client components":
97
+ /* valid */ "$COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CLIENTCOMPONENTSOKLOGICS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#NOEXPORTCOMPONENTS" /* $COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#USE_CLIENT_COMPONENTS */,
98
+ "use agnostic logics":
99
+ /* valid */ "AGNOSTIC20#FORALIASVARIABLES#AGNOSTICCANCLIENTSERVER" /* $COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#USE_AGNOSTIC_LOGICS */,
100
+ "use agnostic components":
101
+ /* valid */ "$COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#AGNOSTICCOMPONENTSCANCLIENT $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#NOEXPORTCOMPONENTS" /* $COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#USE_AGNOSTIC_COMPONENTS */,
102
+ kinds: "Client Logics" /* $COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#KINDS */,
103
+ kindsComma:
104
+ "Client Logics," /* $COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#KINDSCOMMA */,
105
+ kindsPeriod:
106
+ "Client Logics." /* $COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#KINDSPERIOD */,
107
+ thatsAModule:
108
+ "$COMMENT#TESTS#FORCOMPOSEDVARIABLES#THATSA $COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#KINDS $COMMENT#TESTS#FORCOMPOSEDVARIABLES#MODULEPERIOD" /* $COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#THATSAMODULE */,
109
+ importingWithExtension:
110
+ "$COMMENT#TESTS#FORCOMPOSEDVARIABLES#IMPORTINGA $COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#KINDS $COMMENT#TESTS#FORCOMPOSEDVARIABLES#MODULE $COMMENT#TESTS#FORCOMPOSEDVARIABLES#WITHEXTENSIONPARENTHESES" /* $COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#IMPORTINGWITHEXTENSION */,
111
+ importingByAFolder:
112
+ "$COMMENT#TESTS#FORCOMPOSEDVARIABLES#IMPORTINGA $COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#KINDS $COMMENT#TESTS#FORCOMPOSEDVARIABLES#MODULE $COMMENT#TESTS#FORCOMPOSEDVARIABLES#BYFOLDER" /* $COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#IMPORTINGBYAFOLDER */,
113
+ });
114
+
115
+ export const clientComponentsComments = Object.freeze({
116
+ "use server logics":
117
+ /* invalid */ "AGNOSTIC20#FORALIASVARIABLES#SERVERNEVERCLIENT" /* $COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#USE_SERVER_LOGICS */,
118
+ "use server components":
119
+ /* invalid */ "Server Components may only pass through Client Components via the children prop within Server Components Modules." /* $COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#USE_SERVER_COMPONENTS */,
120
+ "use server functions":
121
+ /* valid */ "Server Functions can specifically be triggered by Client Components." /* $COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#USE_SERVER_FUNCTIONS */,
122
+ "use client logics":
123
+ /* valid */ "$COMMENT#AGNOSTIC20#USE_CLIENT_LOGICS#KINDSCOMMA $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#BEINGLOGICCLIENT $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANSAFELYSUPPORT $COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#KINDSPERIOD" /* $COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#USE_CLIENT_LOGICS */,
124
+ "use client components":
125
+ /* valid */ "$COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANCOMPOSEONEANOTHER" /* $COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#USE_CLIENT_COMPONENTS */,
126
+ "use agnostic logics":
127
+ /* valid */ "AGNOSTIC20#FORALIASVARIABLES#AGNOSTICCANCLIENTSERVER" /* $COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#USE_AGNOSTIC_LOGICS */,
128
+ "use agnostic components":
129
+ /* valid */ "Agnostic Components can render safely on the client just like they can on the server." /* $COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#USE_AGNOSTIC_COMPONENTS */,
130
+ kinds:
131
+ "Client Components" /* $COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#KINDS */,
132
+ kindsComma:
133
+ "Client Components," /* $COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#KINDSCOMMA */,
134
+ kindsPeriod:
135
+ "Client Components." /* $COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#KINDSPERIOD */,
136
+ thatsAModule:
137
+ "$COMMENT#TESTS#FORCOMPOSEDVARIABLES#THATSA $COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#KINDS $COMMENT#TESTS#FORCOMPOSEDVARIABLES#MODULEPERIOD" /* $COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#THATSAMODULE */,
138
+ importingWithExtension:
139
+ "$COMMENT#TESTS#FORCOMPOSEDVARIABLES#IMPORTINGA $COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#KINDS $COMMENT#TESTS#FORCOMPOSEDVARIABLES#MODULE $COMMENT#TESTS#FORCOMPOSEDVARIABLES#WITHEXTENSIONPARENTHESES" /* $COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#IMPORTINGWITHEXTENSION */,
140
+ importingByAFolder:
141
+ "$COMMENT#TESTS#FORCOMPOSEDVARIABLES#IMPORTINGA $COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#KINDS $COMMENT#TESTS#FORCOMPOSEDVARIABLES#MODULE $COMMENT#TESTS#FORCOMPOSEDVARIABLES#BYFOLDER" /* $COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#IMPORTINGBYAFOLDER */,
142
+ });
143
+
144
+ export const agnosticLogicsComments = Object.freeze({
145
+ "use server logics":
146
+ /* invalid */ "AGNOSTIC20#FORALIASVARIABLES#SERVERLOGICSCANTBOTH" /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#USE_SERVER_LOGICS */,
147
+ "use server components":
148
+ /* invalid */ "$COMMENT#AGNOSTIC20#USE_SERVER_COMPONENTS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANTTINKEREDBOTH" /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#USE_SERVER_COMPONENTS */,
149
+ "use server functions":
150
+ /* invalid */ "Server Functions can be modified on the server and on the client, but their use cases on both environments are not one-to-one compatible, since they're being addressed as they are on the server and addressed as references on the client." /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#USE_SERVER_FUNCTIONS */,
151
+ "use client logics":
152
+ /* invalid */ "AGNOSTIC20#FORALIASVARIABLES#CLIENTLOGICSCANTBOTH" /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#USE_CLIENT_LOGICS */,
153
+ "use client components":
154
+ /* invalid */ "$COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANTTINKEREDBOTH" /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#USE_CLIENT_COMPONENTS */,
155
+ "use agnostic logics":
156
+ /* valid */ "$COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANCOMPOSEONEANOTHER" /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#USE_AGNOSTIC_LOGICS */,
157
+ "use agnostic components":
158
+ /* valid */ "$COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#AGNOSTICCOMPONENTSCANAGNOSTIC $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#NOEXPORTCOMPONENTS" /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#USE_AGNOSTIC_COMPONENTS */,
159
+ kinds: "Agnostic Logics" /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#KINDS */,
160
+ kindsComma:
161
+ "Agnostic Logics," /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#KINDSCOMMA */,
162
+ kindsPeriod:
163
+ "Agnostic Logics." /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#KINDSPERIOD */,
164
+ thatsAModule:
165
+ "$COMMENT#TESTS#FORCOMPOSEDVARIABLES#THATSAN $COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#KINDS $COMMENT#TESTS#FORCOMPOSEDVARIABLES#MODULEPERIOD" /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#THATSAMODULE */,
166
+ importingWithExtension:
167
+ "$COMMENT#TESTS#FORCOMPOSEDVARIABLES#IMPORTINGAN $COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#KINDS $COMMENT#TESTS#FORCOMPOSEDVARIABLES#MODULE $COMMENT#TESTS#FORCOMPOSEDVARIABLES#WITHEXTENSIONPARENTHESES" /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#IMPORTINGWITHEXTENSION */,
168
+ importingByAFolder:
169
+ "$COMMENT#TESTS#FORCOMPOSEDVARIABLES#IMPORTINGAN $COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#KINDS $COMMENT#TESTS#FORCOMPOSEDVARIABLES#MODULE $COMMENT#TESTS#FORCOMPOSEDVARIABLES#BYFOLDER" /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#IMPORTINGBYAFOLDER */,
170
+ });
171
+
172
+ export const agnosticComponentsComments = Object.freeze({
173
+ "use server logics":
174
+ /* invalid */ "AGNOSTIC20#FORALIASVARIABLES#SERVERLOGICSCANTBOTH" /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#USE_SERVER_LOGICS */,
175
+ "use server components":
176
+ /* invalid */ "Server Components, unlike Client Components, cannot make silos of their own once on the opposing environment (the client in this case), and therefore cannot be executed from the client, making them unable to execute agnostically from both the server and the client." /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#USE_SERVER_COMPONENTS */,
177
+ "use server functions":
178
+ /* valid */ "Server Functions can be passed to Client Components as props when Client Components are also legally imported into Agnostic Components Modules." /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#USE_SERVER_FUNCTIONS */,
179
+ "use client logics":
180
+ /* invalid */ "AGNOSTIC20#FORALIASVARIABLES#CLIENTLOGICSCANTBOTH" /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#USE_CLIENT_LOGICS */,
181
+ "use client components":
182
+ /* valid */ "$COMMENT#AGNOSTIC20#USE_CLIENT_COMPONENTS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANBENESTEDINSIDE $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#EITHERWRAPTREE $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#IFSTILLONSERVERTREE $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#ORCREATEBOUNDARIES" /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#USE_CLIENT_COMPONENTS */,
183
+ "use agnostic logics":
184
+ /* valid */ "$COMMENT#AGNOSTIC20#USE_AGNOSTIC_LOGICS#KINDSCOMMA $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#BEINGLOGICAGNOSTIC $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANSAFELYSUPPORT $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#KINDSPERIOD" /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#USE_AGNOSTIC_LOGICS */,
185
+ "use agnostic components":
186
+ /* valid */ "$COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#KINDS $COMMENT#AGNOSTIC20#FORCOMPOSEDVARIABLES#CANCOMPOSEONEANOTHER" /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#USE_AGNOSTIC_COMPONENTS */,
187
+ kinds:
188
+ "Agnostic Components" /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#KINDS */,
189
+ kindsComma:
190
+ "Agnostic Components," /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#KINDSCOMMA */,
191
+ kindsPeriod:
192
+ "Agnostic Components." /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#KINDSPERIOD */,
193
+ thatsAModule:
194
+ "$COMMENT#TESTS#FORCOMPOSEDVARIABLES#THATSAN $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#KINDS $COMMENT#TESTS#FORCOMPOSEDVARIABLES#MODULEPERIOD" /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#THATSAMODULE */,
195
+ importingWithExtension:
196
+ "$COMMENT#TESTS#FORCOMPOSEDVARIABLES#IMPORTINGAN $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#KINDS $COMMENT#TESTS#FORCOMPOSEDVARIABLES#MODULE $COMMENT#TESTS#FORCOMPOSEDVARIABLES#WITHEXTENSIONPARENTHESES" /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#IMPORTINGWITHEXTENSION */,
197
+ importingByAFolder:
198
+ "$COMMENT#TESTS#FORCOMPOSEDVARIABLES#IMPORTINGAN $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#KINDS $COMMENT#TESTS#FORCOMPOSEDVARIABLES#MODULE $COMMENT#TESTS#FORCOMPOSEDVARIABLES#BYFOLDER" /* $COMMENT#AGNOSTIC20#USE_AGNOSTIC_COMPONENTS#IMPORTINGBYAFOLDER */,
199
+ });
@@ -0,0 +1,105 @@
1
+ import {
2
+ serverLogicsComments,
3
+ clientLogicsComments,
4
+ agnosticLogicsComments,
5
+ serverComponentsComments,
6
+ clientComponentsComments,
7
+ agnosticComponentsComments,
8
+ serverFunctionsComments,
9
+ clientContextsComments,
10
+ agnosticConditionsComments,
11
+ agnosticStrategiesComments,
12
+ } from "./modules-comments.js";
13
+
14
+ export const directive21Comments = Object.freeze({
15
+ "use server logics": serverLogicsComments,
16
+ "use client logics": clientLogicsComments,
17
+ "use agnostic logics": agnosticLogicsComments,
18
+ "use server components": serverComponentsComments,
19
+ "use client components": clientComponentsComments,
20
+ "use agnostic components": agnosticComponentsComments,
21
+ "use server functions": serverFunctionsComments,
22
+ "use client contexts": clientContextsComments,
23
+ "use agnostic conditions": agnosticConditionsComments,
24
+ "use agnostic strategies": agnosticStrategiesComments,
25
+ forAliasVariables: Object.freeze({
26
+ serverNeverClient:
27
+ "Prime Server Logics should never leak to the client." /* $COMMENT#DIRECTIVE21#FORALIASVARIABLES#SERVERNEVERCLIENT */,
28
+ clientNeverServer:
29
+ "Prime Client Logics should never leak to the server." /* $COMMENT#DIRECTIVE21#FORALIASVARIABLES#CLIENTNEVERSERVER */,
30
+ agnosticCanServerClient:
31
+ "Prime Agnostic Logics can run safely on the server just like they can on the client." /* $COMMENT#DIRECTIVE21#FORALIASVARIABLES#AGNOSTICCANSERVERCLIENT */,
32
+ agnosticCanClientServer:
33
+ "Prime Agnostic Logics can run safely on the client just like they can on the server." /* $COMMENT#DIRECTIVE21#FORALIASVARIABLES#AGNOSTICCANCLIENTSERVER */,
34
+ serverFunctionsNoComponents:
35
+ "(Special) Server Functions have no business working with React Components." /* $COMMENT#DIRECTIVE21#FORALIASVARIABLES#SERVERFUNCTIONSNOCOMPONENTS */,
36
+ serverLogicsCantBoth:
37
+ "$COMMENT#DIRECTIVE21#USE_SERVER_LOGICS#KINDS $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#CANTSERVERCLIENT" /* $COMMENT#DIRECTIVE21#FORALIASVARIABLES#SERVERLOGICSCANTBOTH */,
38
+ clientLogicsCantBoth:
39
+ "$COMMENT#DIRECTIVE21#USE_CLIENT_LOGICS#KINDS $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#CANTSERVERCLIENT" /* $COMMENT#DIRECTIVE21#FORALIASVARIABLES#CLIENTLOGICSCANTBOTH */,
40
+ agnosticComponentsCanAny:
41
+ "$COMMENT#DIRECTIVE21#USE_AGNOSTIC_COMPONENTS#KINDS $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#CANANYPRIMELOGICS $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#NOEXPORTCOMPONENTS" /* $COMMENT#DIRECTIVE21#FORALIASVARIABLES#AGNOSTICCOMPONENTSCANANY */,
42
+ agnosticComponentsRenderAny:
43
+ "$COMMENT#DIRECTIVE21#USE_AGNOSTIC_COMPONENTS#KINDS $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#CANCLIENTLIKESERVER" /* $COMMENT#DIRECTIVE21#FORALIASVARIABLES#AGNOSTICCOMPONENTSRENDERANY */,
44
+ serverFunctionsClient:
45
+ "$COMMENT#DIRECTIVE21#USE_SERVER_FUNCTIONS#SPECIALS $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#CANCLIENTCOMPONENTS" /* $COMMENT#DIRECTIVE21#FORALIASVARIABLES#SERVERFUNCTIONSCLIENT */,
46
+ }),
47
+ forComposedVariables: Object.freeze({
48
+ canComposeOneAnother:
49
+ "AGNOSTIC20#FORCOMPOSEDVARIABLES#CANCOMPOSEONEANOTHER" /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#CANCOMPOSEONEANOTHER */,
50
+ cantTinkeredServer:
51
+ "AGNOSTIC20#FORCOMPOSEDVARIABLES#CANTTINKEREDSERVER" /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#CANTTINKEREDSERVER */,
52
+ cantTinkeredClient:
53
+ "AGNOSTIC20#FORCOMPOSEDVARIABLES#CANTTINKEREDCLIENT" /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#CANTTINKEREDCLIENT */,
54
+ cantTinkeredBoth:
55
+ "AGNOSTIC20#FORCOMPOSEDVARIABLES#CANTTINKEREDBOTH" /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#CANTTINKEREDBOTH */,
56
+ serverComponentsOKLogics:
57
+ "Lineal Server Components are OK to be composed with Prime Server Logics as long as the Prime Server Logics Module," /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#SERVERCOMPONENTSOKLOGICS */,
58
+ likeAnyClientComponentsComma:
59
+ "like any Client Components," /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#LIKEANYCLIENTCOMPONENTSCOMMA */,
60
+ likeAnyClientComponentsPeriod:
61
+ "like any Client Components." /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#LIKEANYCLIENTCOMPONENTSPERIOD */,
62
+ anyAgnosticComponentsPeriod:
63
+ "any Agnostic Components." /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#ANYAGNOSTICCOMPONENTSPERIOD */,
64
+ okClientLogics:
65
+ "are OK to be composed with Prime Client Logics as long as the Prime Client Logics Module," /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#OKCLIENTLOGICS */,
66
+ agnosticComponentsCanAny:
67
+ "Lineal Agnostic Components can be composed with any Prime Environment Logics agnostically, as long as the Prime Environment Logics Module," /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#AGNOSTICCOMPONENTSCANANY */,
68
+ asIfLinealAgnostic:
69
+ "as if they were Lineal Agnostic Components themselves," /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#ASIFLINEALAGNOSTIC */,
70
+ canAnyPrimeLogics:
71
+ "can be composed with any Prime Environment Logics agnostically, as long as the Prime Environment Logics Module," /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#CANANYPRIMELOGICS */,
72
+ noExportComponents:
73
+ "AGNOSTIC20#FORCOMPOSEDVARIABLES#NOEXPORTCOMPONENTS" /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#NOEXPORTCOMPONENTS */,
74
+ cantServerClient:
75
+ "AGNOSTIC20#FORCOMPOSEDVARIABLES#CANTSERVERCLIENT" /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#CANTSERVERCLIENT */,
76
+ arentAllowed:
77
+ "AGNOSTIC20#FORCOMPOSEDVARIABLES#ARENTALLOWED" /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#ARENTALLOWED */,
78
+ allowedBecause:
79
+ "AGNOSTIC20#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE" /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#ALLOWEDBECAUSE */,
80
+ beingLogicServer:
81
+ "AGNOSTIC20#FORCOMPOSEDVARIABLES#BEINGLOGICSERVER" /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#BEINGLOGICSERVER */,
82
+ beingLogicClient:
83
+ "AGNOSTIC20#FORCOMPOSEDVARIABLES#BEINGLOGICCLIENT" /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#BEINGLOGICCLIENT */,
84
+ beingLogicAgnostic:
85
+ "AGNOSTIC20#FORCOMPOSEDVARIABLES#BEINGLOGICAGNOSTIC" /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#BEINGLOGICAGNOSTIC */,
86
+ canSafelySupport:
87
+ "AGNOSTIC20#FORCOMPOSEDVARIABLES#CANSAFELYSUPPORT" /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#CANSAFELYSUPPORT */,
88
+ canBeNestedInside:
89
+ "AGNOSTIC20#FORCOMPOSEDVARIABLES#CANBENESTEDINSIDE" /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#CANBENESTEDINSIDE */,
90
+ toCreateBoundaries:
91
+ "to create client boundaries" /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#TOCREATEBOUNDARIES */,
92
+ towrapTree:
93
+ "to wrap some of the tree with client state accessible through child Client Components, and to pass through Server Components" /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#TOWRAPTREE */,
94
+ ifStillOnServerTree:
95
+ "AGNOSTIC20#FORCOMPOSEDVARIABLES#IFSTILLONSERVERTREE" /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#IFSTILLONSERVERTREE */,
96
+ whenRootOnServer:
97
+ "when the root of the application is planted on the server." /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#WHENROOTONSERVER */,
98
+ canClientComponents:
99
+ "can be specifically triggered by Client Components." /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#CANCLIENTCOMPONENTS */,
100
+ canServerLikeClient:
101
+ "can render safely on the server just like they can on the client." /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#CANSERVERLIKECLIENT */,
102
+ canClientLikeServer:
103
+ "can render safely on the client just like they can on the server." /* $COMMENT#DIRECTIVE21#FORCOMPOSEDVARIABLES#CANCLIENTLIKESERVER */,
104
+ }),
105
+ });