casper-context 0.1.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.
Files changed (44) hide show
  1. package/README.md +253 -0
  2. package/dist/index.js +9 -0
  3. package/dist/lifecycle/post.js +239 -0
  4. package/dist/lifecycle/pre.js +113 -0
  5. package/dist/plugin.js +57 -0
  6. package/dist/transforms/autoContextTransform.js +1 -0
  7. package/dist/transforms/contextTransform.js +1 -0
  8. package/dist/transforms/stateTransform.js +1 -0
  9. package/dist/types/plugin.d.js +1 -0
  10. package/dist/utils/astHelpers.js +644 -0
  11. package/dist/utils/constants.js +111 -0
  12. package/dist/utils/names.js +1 -0
  13. package/dist/utils/scope.js +1 -0
  14. package/dist/utils/utilityHelpers.js +606 -0
  15. package/dist/visitors/AssignmentExpression.js +104 -0
  16. package/dist/visitors/CallExpression.js +1 -0
  17. package/dist/visitors/FunctionDeclaration.js +116 -0
  18. package/dist/visitors/Identifier.js +123 -0
  19. package/dist/visitors/JSXElement.js +1 -0
  20. package/dist/visitors/Program.js +278 -0
  21. package/dist/visitors/ReturnStatement.js +81 -0
  22. package/dist/visitors/VariableDeclaration.js +209 -0
  23. package/package.json +60 -0
  24. package/src/index.js +2 -0
  25. package/src/lifecycle/post.js +237 -0
  26. package/src/lifecycle/pre.js +103 -0
  27. package/src/plugin.js +51 -0
  28. package/src/transforms/autoContextTransform.js +0 -0
  29. package/src/transforms/contextTransform.js +0 -0
  30. package/src/transforms/stateTransform.js +0 -0
  31. package/src/types/plugin.d.ts +0 -0
  32. package/src/utils/astHelpers.js +767 -0
  33. package/src/utils/constants.js +102 -0
  34. package/src/utils/names.js +0 -0
  35. package/src/utils/scope.js +0 -0
  36. package/src/utils/utilityHelpers.js +636 -0
  37. package/src/visitors/AssignmentExpression.js +100 -0
  38. package/src/visitors/CallExpression.js +0 -0
  39. package/src/visitors/FunctionDeclaration.js +114 -0
  40. package/src/visitors/Identifier.js +142 -0
  41. package/src/visitors/JSXElement.js +0 -0
  42. package/src/visitors/Program.js +280 -0
  43. package/src/visitors/ReturnStatement.js +75 -0
  44. package/src/visitors/VariableDeclaration.js +216 -0
@@ -0,0 +1,102 @@
1
+ /**
2
+ * @fileoverview Centralized constants for the Casper Context Babel Plugin.
3
+ * This module contains all configuration strings, AST node identifiers,
4
+ * and environment-specific constants used for state management and code injection.
5
+ */
6
+
7
+ /** * Plugin Identity & Configuration */
8
+ export const PLUGIN_NAME = 'casper-context';
9
+ export const CASPER_CONFIG_FILE = '.casperctxrc.json';
10
+ export const CASPER_DEBUG_LOG_FILE_NAME = '.casperctx.debug.log';
11
+ export const USE_STRICT = 'use strict';
12
+ export const CASPER_LOG_TYPE_ERROR = 'error';
13
+
14
+ /** * Context Logic & Namespacing
15
+ * @description Variables used to identify and scope the custom context transformation.
16
+ */
17
+ export const GLOBAL_PREFIX = '_$_';
18
+ export const CONTEXT_NAMESPACE = '__CASPER_CONTEXT__';
19
+ export const CONTEXT_FOLDER_NAME = 'src/scopeContext';
20
+ export const CONTEXT_FILE_NAME = 'gblContext.js';
21
+ export const GBL_CONTEXT_JS = 'gblContext.js';
22
+ export const _CCTX_CMP_NAME_PREFIX = '_$_ctx_';
23
+ export const _CCTX_ = 'CTX_'; // Internal prefix for generated context variables
24
+
25
+ /** * React & Framework Identifiers
26
+ * @description Standard React hook names and internal library aliases for injection.
27
+ */
28
+ export const REACT_IMPORT_CORE_NAME = 'react';
29
+ export const REACT_IMPORT_USE_STATE_HOOKS_NAME = 'useState';
30
+ export const _CCTX_REACT = 'react';
31
+ export const _CCTX_USE_CONTEXT = 'useContext';
32
+ export const _CCTX_CREATE_ELEMENT = 'createElement';
33
+ export const _CCTX_PROVIDER = 'Provider';
34
+ export const _CCTX_VALUE = 'value';
35
+
36
+ /** * AST Node Type Mapping
37
+ * @description Strings matching Babel's internal node types for safe AST traversal.
38
+ */
39
+ export const IDENTIFIER = 'Identifier';
40
+ export const NUMERIC_LITERAL = 'NumericLiteral';
41
+ export const STRING_LITERAL = 'StringLiteral';
42
+ export const BOOLEAN_LITERAL = 'BooleanLiteral';
43
+ export const ARRAY_EXPRESSION = 'ArrayExpression';
44
+ export const OBJECT_EXPRESSION = 'ObjectExpression';
45
+ export const VARIABLE_DECLARATOR = 'VariableDeclarator';
46
+ export const ASSIGNMENT_EXPRESSION = 'AssignmentExpression';
47
+ export const UPDATE_EXPRESSION = 'UpdateExpression';
48
+
49
+ /** * AST Node Property Keys
50
+ * @description Specific keys within Babel nodes used for targeting during transformation.
51
+ */
52
+ export const _CCTX_ID = 'id';
53
+ export const _CCTX_LEFT = 'left'; // Used in AssignmentExpressions
54
+ export const _CCTX_ARGUMENT = 'argument'; // Used in UpdateExpressions
55
+ export const _CCTX_KEY = 'key';
56
+ export const _CCTX_BODY = 'body';
57
+
58
+ /** * Internal Transformation Aliases
59
+ * @description Identifiers and keywords used for generating new code structures.
60
+ */
61
+ export const _CCTX_VAR = 'var';
62
+ export const _CCTX_CONST = 'const';
63
+ export const _CCTX_REQUIRE = 'require';
64
+ export const _CCTX_UNDUS_CORE_REACT = '_react';
65
+ export const _CCTX_UNDUS_CORE_GBL_CONTEXT = '_gblContext';
66
+ export const PREV_STATE = 'prevState'; // For functional state updates: (prevState) => ...
67
+ export const _CCTX_SET = 'set'; // Prefix for state setter functions
68
+
69
+ /** * Component & Scope Classification */
70
+ export const COMPONENT = 'component';
71
+ export const ANONYMOUS_FUNCTION = 'anonymous_function';
72
+ export const ANONYMOUS_CLASS = 'anonymous_class';
73
+
74
+ /** * File System & Build Tooling
75
+ * @description Constants for file manipulation, hashing, and distribution paths.
76
+ */
77
+ export const UNICODE_UTF8 = 'utf8';
78
+ export const FILE_HASH_MD5 = 'md5';
79
+ export const DIGEST_HEX = 'hex';
80
+ export const NODE_MODULES = 'node_modules';
81
+ export const FOLDER_DIST = '/dist/';
82
+ export const FOLDER_BUILD = '/build/';
83
+ export const ESLINT_RC_FILE = '.eslintrc.js';
84
+ export const CASPER_ESLINT_GLOBAL_JS = 'casper-eslint.global.js';
85
+ export const CASPER_STRING_TYPE = 'string';
86
+ export const CASPER_READ_ONLY_TYPE = 'readonly';
87
+
88
+ /** * Sentinel, Fallback & Literal Values */
89
+ export const _CCTX_EMPTY = '';
90
+ export const _CCTX_UNDEFINED = 'undefined';
91
+ export const _CCTX_UNKNOW = 'Unknown';
92
+ export const NO_FILE = 'noFile';
93
+ export const NON_LITERAL = 'NON_LITERAL';
94
+
95
+ export const COLORS = {
96
+ reset: "\x1b[0m",
97
+ info: "\x1b[36m", // Cyan
98
+ warn: "\x1b[33m", // Yellow
99
+ error: "\x1b[31m", // Red
100
+ debug: "\x1b[35m", // Magenta
101
+ trace: "\x1b[90m" // Gray
102
+ };
File without changes
File without changes