@cldmv/slothlet 3.3.0 → 3.4.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 (139) hide show
  1. package/README.md +9 -10
  2. package/REFERENCE.md +23 -0
  3. package/dist/lib/builders/api-assignment.mjs +1 -589
  4. package/dist/lib/builders/api_builder.mjs +1 -1385
  5. package/dist/lib/builders/builder.mjs +1 -78
  6. package/dist/lib/builders/modes-processor.mjs +1 -1800
  7. package/dist/lib/errors.mjs +9 -211
  8. package/dist/lib/factories/component-base.mjs +1 -80
  9. package/dist/lib/factories/context.mjs +1 -22
  10. package/dist/lib/handlers/api-cache-manager.mjs +1 -200
  11. package/dist/lib/handlers/api-manager.mjs +1 -2536
  12. package/dist/lib/handlers/context-async.mjs +1 -172
  13. package/dist/lib/handlers/context-live.mjs +1 -173
  14. package/dist/lib/handlers/hook-manager.mjs +1 -667
  15. package/dist/lib/handlers/lifecycle-token.mjs +1 -28
  16. package/dist/lib/handlers/lifecycle.mjs +1 -115
  17. package/dist/lib/handlers/materialize-manager.mjs +1 -48
  18. package/dist/lib/handlers/metadata.mjs +1 -501
  19. package/dist/lib/handlers/ownership.mjs +1 -322
  20. package/dist/lib/handlers/permission-manager.mjs +1 -392
  21. package/dist/lib/handlers/unified-wrapper.mjs +1 -3110
  22. package/dist/lib/handlers/version-manager.mjs +1 -885
  23. package/dist/lib/helpers/class-instance-wrapper.mjs +1 -109
  24. package/dist/lib/helpers/config.mjs +1 -439
  25. package/dist/lib/helpers/eventemitter-context.mjs +1 -349
  26. package/dist/lib/helpers/hint-detector.mjs +1 -47
  27. package/dist/lib/helpers/modes-utils.mjs +1 -37
  28. package/dist/lib/helpers/pattern-matcher.mjs +1 -125
  29. package/dist/lib/helpers/resolve-from-caller.mjs +1 -169
  30. package/dist/lib/helpers/sanitize.mjs +1 -340
  31. package/dist/lib/helpers/utilities.mjs +1 -70
  32. package/dist/lib/i18n/languages/de-de.json +1 -0
  33. package/dist/lib/i18n/languages/en-gb.json +1 -0
  34. package/dist/lib/i18n/languages/en-us.json +1 -0
  35. package/dist/lib/i18n/languages/es-es.json +412 -0
  36. package/dist/lib/i18n/languages/es-mx.json +1 -0
  37. package/dist/lib/i18n/languages/fr-fr.json +1 -0
  38. package/dist/lib/i18n/languages/hi-in.json +2 -1
  39. package/dist/lib/i18n/languages/ja-jp.json +1 -0
  40. package/dist/lib/i18n/languages/ko-kr.json +1 -0
  41. package/dist/lib/i18n/languages/pt-br.json +21 -20
  42. package/dist/lib/i18n/languages/ru-ru.json +2 -1
  43. package/dist/lib/i18n/languages/zh-cn.json +6 -5
  44. package/dist/lib/i18n/translations.mjs +1 -126
  45. package/dist/lib/modes/eager.mjs +1 -59
  46. package/dist/lib/modes/lazy.mjs +1 -81
  47. package/dist/lib/processors/flatten.mjs +1 -437
  48. package/dist/lib/processors/loader.mjs +1 -339
  49. package/dist/lib/processors/type-generator.mjs +1 -275
  50. package/dist/lib/processors/typescript.mjs +1 -172
  51. package/dist/lib/runtime/runtime-asynclocalstorage.mjs +1 -113
  52. package/dist/lib/runtime/runtime-livebindings.mjs +1 -78
  53. package/dist/lib/runtime/runtime.mjs +1 -102
  54. package/dist/slothlet.mjs +1 -817
  55. package/package.json +35 -31
  56. package/types/dist/lib/builders/api-assignment.d.mts +3 -92
  57. package/types/dist/lib/builders/api-assignment.d.mts.map +1 -1
  58. package/types/dist/lib/builders/api_builder.d.mts +102 -91
  59. package/types/dist/lib/builders/api_builder.d.mts.map +1 -1
  60. package/types/dist/lib/builders/builder.d.mts +1 -55
  61. package/types/dist/lib/builders/builder.d.mts.map +1 -1
  62. package/types/dist/lib/builders/modes-processor.d.mts +3 -27
  63. package/types/dist/lib/builders/modes-processor.d.mts.map +1 -1
  64. package/types/dist/lib/errors.d.mts +19 -109
  65. package/types/dist/lib/errors.d.mts.map +1 -1
  66. package/types/dist/lib/factories/component-base.d.mts +7 -177
  67. package/types/dist/lib/factories/component-base.d.mts.map +1 -1
  68. package/types/dist/lib/factories/context.d.mts +4 -22
  69. package/types/dist/lib/factories/context.d.mts.map +1 -1
  70. package/types/dist/lib/handlers/api-cache-manager.d.mts +20 -203
  71. package/types/dist/lib/handlers/api-cache-manager.d.mts.map +1 -1
  72. package/types/dist/lib/handlers/api-manager.d.mts +34 -408
  73. package/types/dist/lib/handlers/api-manager.d.mts.map +1 -1
  74. package/types/dist/lib/handlers/context-async.d.mts +23 -61
  75. package/types/dist/lib/handlers/context-async.d.mts.map +1 -1
  76. package/types/dist/lib/handlers/context-live.d.mts +22 -59
  77. package/types/dist/lib/handlers/context-live.d.mts.map +1 -1
  78. package/types/dist/lib/handlers/hook-manager.d.mts +46 -185
  79. package/types/dist/lib/handlers/hook-manager.d.mts.map +1 -1
  80. package/types/dist/lib/handlers/lifecycle-token.d.mts +3 -48
  81. package/types/dist/lib/handlers/lifecycle-token.d.mts.map +1 -1
  82. package/types/dist/lib/handlers/lifecycle.d.mts +5 -82
  83. package/types/dist/lib/handlers/lifecycle.d.mts.map +1 -1
  84. package/types/dist/lib/handlers/materialize-manager.d.mts +8 -70
  85. package/types/dist/lib/handlers/materialize-manager.d.mts.map +1 -1
  86. package/types/dist/lib/handlers/metadata.d.mts +17 -221
  87. package/types/dist/lib/handlers/metadata.d.mts.map +1 -1
  88. package/types/dist/lib/handlers/ownership.d.mts +44 -160
  89. package/types/dist/lib/handlers/ownership.d.mts.map +1 -1
  90. package/types/dist/lib/handlers/permission-manager.d.mts +40 -141
  91. package/types/dist/lib/handlers/permission-manager.d.mts.map +1 -1
  92. package/types/dist/lib/handlers/unified-wrapper.d.mts +26 -239
  93. package/types/dist/lib/handlers/unified-wrapper.d.mts.map +1 -1
  94. package/types/dist/lib/handlers/version-manager.d.mts +28 -225
  95. package/types/dist/lib/handlers/version-manager.d.mts.map +1 -1
  96. package/types/dist/lib/helpers/class-instance-wrapper.d.mts +2 -52
  97. package/types/dist/lib/helpers/class-instance-wrapper.d.mts.map +1 -1
  98. package/types/dist/lib/helpers/config.d.mts +125 -139
  99. package/types/dist/lib/helpers/config.d.mts.map +1 -1
  100. package/types/dist/lib/helpers/eventemitter-context.d.mts +3 -29
  101. package/types/dist/lib/helpers/eventemitter-context.d.mts.map +1 -1
  102. package/types/dist/lib/helpers/hint-detector.d.mts +2 -15
  103. package/types/dist/lib/helpers/hint-detector.d.mts.map +1 -1
  104. package/types/dist/lib/helpers/modes-utils.d.mts +3 -30
  105. package/types/dist/lib/helpers/modes-utils.d.mts.map +1 -1
  106. package/types/dist/lib/helpers/pattern-matcher.d.mts +3 -43
  107. package/types/dist/lib/helpers/pattern-matcher.d.mts.map +1 -1
  108. package/types/dist/lib/helpers/resolve-from-caller.d.mts +3 -27
  109. package/types/dist/lib/helpers/resolve-from-caller.d.mts.map +1 -1
  110. package/types/dist/lib/helpers/sanitize.d.mts +4 -92
  111. package/types/dist/lib/helpers/sanitize.d.mts.map +1 -1
  112. package/types/dist/lib/helpers/utilities.d.mts +4 -52
  113. package/types/dist/lib/helpers/utilities.d.mts.map +1 -1
  114. package/types/dist/lib/i18n/translations.d.mts +4 -37
  115. package/types/dist/lib/i18n/translations.d.mts.map +1 -1
  116. package/types/dist/lib/modes/eager.d.mts +8 -30
  117. package/types/dist/lib/modes/eager.d.mts.map +1 -1
  118. package/types/dist/lib/modes/lazy.d.mts +10 -43
  119. package/types/dist/lib/modes/lazy.d.mts.map +1 -1
  120. package/types/dist/lib/processors/flatten.d.mts +56 -107
  121. package/types/dist/lib/processors/flatten.d.mts.map +1 -1
  122. package/types/dist/lib/processors/loader.d.mts +6 -41
  123. package/types/dist/lib/processors/loader.d.mts.map +1 -1
  124. package/types/dist/lib/processors/type-generator.d.mts +2 -16
  125. package/types/dist/lib/processors/type-generator.d.mts.map +1 -1
  126. package/types/dist/lib/processors/typescript.d.mts +6 -53
  127. package/types/dist/lib/processors/typescript.d.mts.map +1 -1
  128. package/types/dist/lib/runtime/runtime-asynclocalstorage.d.mts +3 -71
  129. package/types/dist/lib/runtime/runtime-asynclocalstorage.d.mts.map +1 -1
  130. package/types/dist/lib/runtime/runtime-livebindings.d.mts +2 -37
  131. package/types/dist/lib/runtime/runtime-livebindings.d.mts.map +1 -1
  132. package/types/dist/lib/runtime/runtime.d.mts +3 -39
  133. package/types/dist/lib/runtime/runtime.d.mts.map +1 -1
  134. package/types/dist/slothlet.d.mts +3 -249
  135. package/types/dist/slothlet.d.mts.map +1 -1
  136. package/types/index.d.mts +36 -16
  137. package/types/index.d.mts.map +1 -0
  138. package/AGENT-USAGE.md +0 -736
  139. package/docs/API-RULES.md +0 -712
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cldmv/slothlet",
3
- "version": "3.3.0",
3
+ "version": "3.4.0",
4
4
  "moduleVersions": {
5
5
  "lazy": "3.0.0",
6
6
  "eager": "3.0.0",
@@ -140,16 +140,19 @@
140
140
  "lint": "eslint --config .configs/eslint.config.mjs .",
141
141
  "inspect": "node tools/dev/inspect-api-structure.mjs",
142
142
  "check:node-versions": "node tools/dev/check-node-versions.mjs",
143
+ "check:engines": "node tools/dev/check-engines.mjs",
144
+ "audit": "npm run analyze",
143
145
  "analyze": "node tools/dev/analyze-errors.mjs",
144
146
  "fix:headers": "node tools/dev/fix-headers.mjs",
145
147
  "build": "npm run build:dev",
146
- "build:ci": "npm run build:cleanup && npm run build:dist && npm run build:types && npm run build:exports && npm run test:types && npm run build:prepend-license && npm run ci:cleanup-src",
147
- "build:dev": "npm run build:cleanup && npm run build:dist && npm run build:types && npm run build:exports && npm run test:types && npm run build:prepend-license",
148
- "build:dev:test": "npm run build:cleanup && npm run build:dist && npm run build:types && npm run build:exports && npm run test:types && npm run build:prepend-license && npm run build:cleanup",
149
- "build:unsafe": "npm run build:cleanup && npm run build:dist && npm run build:types && npm run build:exports && npm run test:types && npm run build:prepend-license",
148
+ "build:ci": "npm run build:cleanup && npm run build:dist && npm run build:minify && npm run build:types && npm run build:exports && npm run test:types && npm run build:prepend-license && npm run ci:cleanup-src",
149
+ "build:dev": "npm run build:cleanup && npm run build:dist && npm run build:minify && npm run build:types && npm run build:exports && npm run test:types && npm run build:prepend-license",
150
+ "build:dev:test": "npm run build:cleanup && npm run build:dist && npm run build:minify && npm run build:types && npm run build:exports && npm run test:types && npm run build:prepend-license && npm run build:cleanup",
151
+ "build:unsafe": "npm run build:cleanup && npm run build:dist && npm run build:minify && npm run build:types && npm run build:exports && npm run test:types && npm run build:prepend-license",
150
152
  "ci:cleanup-src": "node tools/ci/ci-cleanup-src.mjs",
151
153
  "build:cleanup": "shx rm -rf types && shx rm -rf dist",
152
154
  "build:dist": "shx mkdir -p dist && node tools/build/build-dist.mjs && shx rm -rf dist/**/*.backup",
155
+ "build:minify": "node tools/build/minify-dist.mjs",
153
156
  "build:types": "npx tsc -p .configs/tsconfig.dts.jsonc",
154
157
  "build:exports": "node tools/build/build-exports.mjs",
155
158
  "build:prepend-license": "node tools/build/prepend-license.mjs dist",
@@ -228,7 +231,7 @@
228
231
  "zero-dependencies"
229
232
  ],
230
233
  "engines": {
231
- "node": ">=16.20.2"
234
+ "node": ">=20.19.0"
232
235
  },
233
236
  "author": {
234
237
  "name": "Shinrai",
@@ -249,8 +252,8 @@
249
252
  },
250
253
  "type": "module",
251
254
  "peerDependencies": {
252
- "esbuild": "^0.27.3",
253
- "typescript": "^5.9.3"
255
+ "esbuild": "^0.28.0",
256
+ "typescript": "^6.0.3"
254
257
  },
255
258
  "peerDependenciesMeta": {
256
259
  "esbuild": {
@@ -261,36 +264,39 @@
261
264
  }
262
265
  },
263
266
  "devDependencies": {
264
- "@cldmv/fix-headers": "^1.2.0",
265
- "@cldmv/vitest-runner": "^1.0.3",
266
- "@eslint/css": "^0.10.0",
267
- "@eslint/js": "^9.33.0",
268
- "@eslint/json": "^0.13.1",
269
- "@eslint/markdown": "^7.2.0",
270
- "@html-eslint/parser": "^0.45.0",
271
- "@types/node": "^24.9.1",
272
- "@vitest/coverage-v8": "^4.0.18",
267
+ "@cldmv/fix-headers": "^1.2.2",
268
+ "@cldmv/vitest-runner": "^1.1.0",
269
+ "@eslint/css": "^1.1.0",
270
+ "@eslint/js": "^10.0.1",
271
+ "@eslint/json": "^1.2.0",
272
+ "@eslint/markdown": "^8.0.1",
273
+ "@html-eslint/parser": "^0.59.0",
274
+ "@types/node": "^25.6.0",
275
+ "@vitest/coverage-v8": "^4.1.5",
273
276
  "acorn": "^8.16.0",
274
- "chalk": "^5.6.0",
277
+ "chalk": "^5.6.2",
275
278
  "chokidar": "^5.0.0",
276
279
  "dmd": "^7.1.1",
277
- "esbuild": "^0.27.3",
278
- "eslint": "^10.0.2",
280
+ "esbuild": "^0.28.0",
281
+ "eslint": "^10.2.1",
279
282
  "estree-walker": "^3.0.3",
280
- "globals": "^17.4.0",
281
- "jsdoc": "^4.0.4",
282
- "jsdoc-to-markdown": "^9.1.2",
283
+ "globals": "^17.5.0",
284
+ "jsdoc": "^4.0.5",
285
+ "jsdoc-to-markdown": "^9.1.3",
283
286
  "jsdoc2md": "^1.0.0",
284
287
  "jsonc-parser": "^3.3.1",
285
- "prettier": "^3.3.3",
288
+ "prettier": "^3.8.3",
286
289
  "shx": "^0.4.0",
287
- "typescript": "^5.9.3",
288
- "vest": "^5.4.6",
289
- "vitest": "^4.0.18"
290
+ "typescript": "^6.0.3",
291
+ "vitest": "^4.1.5"
292
+ },
293
+ "optionalDependencies": {
294
+ "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.17"
290
295
  },
291
296
  "overrides": {
292
297
  "minimatch": "^10.2.3",
293
- "rollup": "^4.59.0"
298
+ "rollup": "^4.59.0",
299
+ "rolldown": "1.0.0-rc.17"
294
300
  },
295
301
  "repository": {
296
302
  "type": "git",
@@ -308,10 +314,8 @@
308
314
  "index.mjs",
309
315
  "index.cjs",
310
316
  "README.md",
317
+ "REFERENCE.md",
311
318
  "LICENSE",
312
- "docs/API-RULES.md",
313
- "docs/API-RULES-CONDITIONS.md",
314
- "AGENT-USAGE.md",
315
319
  "types/dist/",
316
320
  "types/index.d.mts",
317
321
  "types/index.d.mts.map",
@@ -1,97 +1,8 @@
1
- /**
2
- * Manages unified API assignment logic
3
- * @class ApiAssignment
4
- * @extends ComponentBase
5
- * @package
6
- *
7
- * @description
8
- * Class-based utility for assigning values to API paths with collision detection,
9
- * wrapper sync, and merge operations. Extends ComponentBase for Slothlet property access.
10
- *
11
- * @example
12
- * const assignment = new ApiAssignment(slothlet);
13
- * assignment.assignToApiPath(api, "math", mathWrapper, {});
14
- */
15
1
  export class ApiAssignment extends ComponentBase {
16
2
  static slothletProperty: string;
17
- /**
18
- * Check if a value is a UnifiedWrapper proxy
19
- * @param {unknown} value - Value to check
20
- * @returns {boolean} True if value is a wrapper proxy
21
- * @private
22
- */
23
- private isWrapperProxy;
24
- /**
25
- * Assign a value to an API object at a given property key.
26
- * Handles wrapper sync, collision detection, and proper proxy preservation.
27
- *
28
- * @param {Object} targetApi - Target object to assign to (may be a UnifiedWrapper proxy)
29
- * @param {string|symbol} key - Property name to assign
30
- * @param {unknown} value - Value to assign (may be UnifiedWrapper proxy, raw value, etc.)
31
- * @param {Object} options - Assignment options
32
- * @param {boolean} [options.allowOverwrite=false] - Allow overwriting existing non-wrapper values
33
- * @param {boolean} [options.mutateExisting=false] - Sync existing wrappers instead of replacing
34
- * @param {boolean} [options.useCollisionDetection=false] - Enable collision detection using config.collision mode
35
- * @param {Object} [options.config] - Slothlet config (uses config.collision.initial or config.collision.api)
36
- * @param {string} [options.collisionContext="initial"] - Collision context: "initial" or "api"
37
- * @param {Function} [options.syncWrapper] - Function to sync two wrapper proxies
38
- * @returns {boolean} True if assignment succeeded, false if blocked by collision or other constraint
39
- *
40
- * @description
41
- * This function encapsulates all assignment patterns from processFiles:
42
- * - Direct assignment when no collision
43
- * - Wrapper sync when both existing and new are wrappers
44
- * - Collision detection using config.collision[context] mode (merge/replace/error/skip/warn)
45
- * - Proper handling of UnifiedWrapper proxies (preserves them, doesn't unwrap)
46
- *
47
- * @example
48
- * // Direct assignment
49
- * assignment.assignToApiPath(api, "math", mathWrapper, {});
50
- *
51
- * @example
52
- * // Sync existing wrapper with new data
53
- * assignment.assignToApiPath(api, "config", newConfigWrapper, { mutateExisting: true, syncWrapper });
54
- *
55
- * @example
56
- * // With collision detection
57
- * assignment.assignToApiPath(api.math, "add", addFunction, {
58
- * useCollisionDetection: true,
59
- * config,
60
- * collisionContext: "initial"
61
- * });
62
- */
63
- assignToApiPath(targetApi: any, key: string | symbol, value: unknown, options?: {
64
- allowOverwrite?: boolean;
65
- mutateExisting?: boolean;
66
- useCollisionDetection?: boolean;
67
- config?: any;
68
- collisionContext?: string;
69
- syncWrapper?: Function;
70
- }): boolean;
71
- /**
72
- * Recursively merge a source object into a target object using assignToApiPath logic.
73
- *
74
- * @param {Object} targetApi - Target object
75
- * @param {Object} sourceApi - Source object to merge from
76
- * @param {Object} options - Assignment options (passed to assignToApiPath)
77
- * @param {boolean} [options.removeMissing=false] - Remove keys from target that don't exist in source
78
- * @returns {Promise<void>}
79
- *
80
- * @description
81
- * Recursively walks the source object and assigns each value to the target using
82
- * assignToApiPath. This provides consistent merge behavior for both initial build
83
- * and hot reload operations.
84
- *
85
- * @example
86
- * await assignment.mergeApiObjects(api.config, newConfigApi, {
87
- * mutateExisting: true,
88
- * syncWrapper,
89
- * removeMissing: false
90
- * });
91
- */
92
- mergeApiObjects(targetApi: any, sourceApi: any, options?: {
93
- removeMissing?: boolean;
94
- }): Promise<void>;
3
+ isWrapperProxy(value: any): boolean;
4
+ assignToApiPath(targetApi: any, key: any, value: any, options?: {}): boolean;
5
+ mergeApiObjects(targetApi: any, sourceApi: any, options?: {}): Promise<void>;
95
6
  }
96
7
  import { ComponentBase } from "@cldmv/slothlet/factories/component-base";
97
8
  //# sourceMappingURL=api-assignment.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-assignment.d.mts","sourceRoot":"","sources":["../../../../dist/lib/builders/api-assignment.mjs"],"names":[],"mappings":"AA4BA;;;;;;;;;;;;;GAaG;AACH;IACC,gCAA0C;IAc1C;;;;;OAKG;IACH,uBAEC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACH,qCAlCW,MAAM,GAAC,MAAM,SACb,OAAO,YAEf;QAA0B,cAAc,GAAhC,OAAO;QACW,cAAc,GAAhC,OAAO;QACW,qBAAqB,GAAvC,OAAO;QACU,MAAM;QACN,gBAAgB,GAAjC,MAAM;QACa,WAAW;KACtC,GAAU,OAAO,CA+fnB;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,0DAfG;QAA0B,aAAa,GAA/B,OAAO;KACf,GAAU,OAAO,CAAC,IAAI,CAAC,CA2FzB;CACD;8BA5pB6B,0CAA0C"}
1
+ {"version":3,"file":"api-assignment.d.mts","sourceRoot":"","sources":["../../../../dist/lib/builders/api-assignment.mjs"],"names":[],"mappings":"AAAyI;IAA0C,gCAAwC;IAAsC,oCAA6D;IAAA,6EAA+nV;IAAA,6EAA6iD;CAAC;8BAAl9Y,0CAA0C"}
@@ -1,96 +1,107 @@
1
- /**
2
- * Builds final API with built-in methods attached
3
- * @class ApiBuilder
4
- * @extends ComponentBase
5
- * @package
6
- *
7
- * @description
8
- * Class-based builder for final API construction with built-in namespace attachment.
9
- * Extends ComponentBase for common Slothlet property access.
10
- *
11
- * @example
12
- * const builder = new ApiBuilder(slothlet);
13
- * const api = await builder.buildFinalAPI(userApi);
14
- */
15
1
  export class ApiBuilder extends ComponentBase {
16
2
  static slothletProperty: string;
17
- /**
18
- * Build final API with built-in methods attached
19
- * @param {Object} userApi - User API object from mode builder
20
- * @returns {Promise<Object>} Final API with built-ins attached
21
- * @public
22
- */
23
- public buildFinalAPI(userApi: any): Promise<any>;
24
- /**
25
- * @param {object} userApi - User API object (for diagnostics).
26
- * @returns {Promise<object>} Slothlet namespace object.
27
- * @private
28
- *
29
- * @description
30
- * Builds the slothlet namespace with version metadata, API controls, and lifecycle
31
- * helpers for the current instance.
32
- *
33
- * @example
34
- * const namespace = await this.createSlothletNamespace(api);
35
- */
36
- private createSlothletNamespace;
37
- /**
38
- * Create root-level shutdown function (convenience)
39
- * @returns {Function} Shutdown function that dynamically calls user hooks
40
- * @private
41
- */
42
- private createShutdownFunction;
43
- /**
44
- * Create root-level run function (per-request context isolation)
45
- * @returns {Function} Run function that executes callbacks with isolated context
46
- * @private
47
- */
48
- private createRunFunction;
49
- /**
50
- * Create root-level scope function (structured per-request context with options)
51
- * @returns {Function} Scope function that executes functions with isolated context
52
- * @private
53
- */
54
- private createScopeFunction;
55
- /**
56
- * Create root-level destroy function (permanent destruction)
57
- * @param {Object} api - Full API object
58
- * @returns {Function} Destroy function that dynamically calls user hooks
59
- * @private
60
- */
61
- private createDestroyFunction;
62
- /**
63
- * Attach built-in methods to user API
64
- * @param {Object} userApi - User API object
65
- * @param {Object} builtins - Built-in methods to attach
66
- * @private
67
- */
68
- private attachBuiltins;
3
+ buildFinalAPI(userApi: any): Promise<any>;
4
+ createSlothletNamespace(userApi: any): Promise<{
5
+ i18n: {
6
+ setLanguage: typeof setLanguage;
7
+ getLanguage: typeof getLanguage;
8
+ translate: typeof translate;
9
+ t: typeof translate;
10
+ initI18n: typeof initI18n;
11
+ };
12
+ version: string;
13
+ instanceID: any;
14
+ types: {
15
+ UNMATERIALIZED: symbol;
16
+ IN_FLIGHT: symbol;
17
+ };
18
+ api: {
19
+ add: (apiPath: any, folderPath: any, options?: {}, versionConfig?: null) => Promise<any>;
20
+ remove: (pathOrModuleId: any) => Promise<any>;
21
+ reload: (pathOrModuleId: any, options: any) => Promise<any>;
22
+ };
23
+ sanitize: (str: any) => any;
24
+ context: {
25
+ get: (key: any) => any;
26
+ diagnostics: () => {
27
+ instanceID: any;
28
+ managerType: any;
29
+ instancesMapSize: any;
30
+ instancesMapKeys: any[];
31
+ baseContext: any;
32
+ } | undefined;
33
+ run: (contextData: any, callback: any, ...args: any[]) => Promise<any>;
34
+ scope: (options: any) => Promise<any>;
35
+ };
36
+ hook: {
37
+ on: (typePattern: any, handler: any, options?: {}) => any;
38
+ remove: (filter?: {}) => any;
39
+ clear: (filter?: {}) => any;
40
+ off: (idOrFilter: any) => any;
41
+ enable: (filter?: {}) => any;
42
+ disable: (filter?: {}) => any;
43
+ list: (filter?: {}) => any;
44
+ };
45
+ metadata: {
46
+ setGlobal: (key: any, value: any) => any;
47
+ set: (fn: any, key: any, value: any) => any;
48
+ remove: (fn: any, key: any) => any;
49
+ setFor: (pathOrModuleId: any, keyOrObj: any, value: any) => any;
50
+ removeFor: (pathOrModuleId: any, key: any) => any;
51
+ setForVersion: (logicalPath: any, versionTag: any, keyOrObj: any, value: any) => any;
52
+ getForVersion: (logicalPath: any, versionTag: any) => any;
53
+ };
54
+ scope: (options: any) => Promise<any>;
55
+ run: (contextData: any, callback: any, ...args: any[]) => Promise<any>;
56
+ reload: (options?: {}) => Promise<any>;
57
+ shutdown: () => Promise<any>;
58
+ owner: {
59
+ get: (apiPath: any) => any;
60
+ };
61
+ materialize: Readonly<{
62
+ readonly materialized: any;
63
+ get: any;
64
+ wait: any;
65
+ }>;
66
+ lifecycle: {
67
+ on: any;
68
+ off: any;
69
+ };
70
+ env: any;
71
+ versioning: {
72
+ list: (logicalPath: any) => any;
73
+ setDefault: (logicalPath: any, versionTag: any) => any;
74
+ unregister: (logicalPath: any, versionTag: any) => Promise<boolean>;
75
+ getVersionMetadata: (logicalPath: any, versionTag: any) => any;
76
+ setVersionMetadata: (logicalPath: any, versionTag: any, patch: any) => any;
77
+ };
78
+ permissions: {
79
+ addRule: (rule: any) => any;
80
+ removeRule: (ruleId: any) => any;
81
+ self: {
82
+ access: (target: any) => any;
83
+ rules: () => any;
84
+ };
85
+ global: {
86
+ checkAccess: (caller: any, target: any) => any;
87
+ rulesForPath: (path: any) => any;
88
+ rulesByModule: (moduleID: any) => any;
89
+ };
90
+ control: {
91
+ enable: () => void;
92
+ disable: () => void;
93
+ };
94
+ };
95
+ }>;
96
+ createShutdownFunction(): () => Promise<any>;
97
+ createRunFunction(): (contextData: any, callback: any, ...args: any[]) => Promise<any>;
98
+ createScopeFunction(): (options: any) => Promise<any>;
99
+ createDestroyFunction(api: any): () => Promise<void>;
100
+ attachBuiltins(userApi: any, builtins: any): void;
69
101
  }
70
- /**
71
- * i18n translation helpers exposed on every Slothlet namespace.
72
- */
73
- export type I18nNamespace = {
74
- /**
75
- * - Set the active locale (e.g. "en-us").
76
- */
77
- setLanguage: Function;
78
- /**
79
- * - Return the current active locale string.
80
- */
81
- getLanguage: Function;
82
- /**
83
- * - Translate an error code with optional params.
84
- */
85
- translate: Function;
86
- /**
87
- * - Alias for translate.
88
- */
89
- t: Function;
90
- /**
91
- * - Initialise the i18n system with options.
92
- */
93
- initI18n: Function;
94
- };
95
102
  import { ComponentBase } from "@cldmv/slothlet/factories/component-base";
103
+ import { setLanguage } from "@cldmv/slothlet/i18n";
104
+ import { getLanguage } from "@cldmv/slothlet/i18n";
105
+ import { translate } from "@cldmv/slothlet/i18n";
106
+ import { initI18n } from "@cldmv/slothlet/i18n";
96
107
  //# sourceMappingURL=api_builder.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api_builder.d.mts","sourceRoot":"","sources":["../../../../dist/lib/builders/api_builder.mjs"],"names":[],"mappings":"AAyEA;;;;;;;;;;;;;GAaG;AACH;IACC,gCAAuC;IAcvC;;;;;OAKG;IACH,oCAHa,OAAO,KAAQ,CAiG3B;IAED;;;;;;;;;;;OAWG;IACH,gCA0iDC;IAED;;;;OAIG;IACH,+BAYC;IAED;;;;OAIG;IACH,0BAgCC;IAED;;;;OAIG;IACH,4BAoMC;IAED;;;;;OAKG;IACH,8BAyCC;IAED;;;;;OAKG;IACH,uBAgCC;CACD;;;;;;;;;;;;;;;;;;;;;;;;;;8BAtkE6B,0CAA0C"}
1
+ {"version":3,"file":"api_builder.d.mts","sourceRoot":"","sources":["../../../../dist/lib/builders/api_builder.mjs"],"names":[],"mappings":"AAAghB;IAAuC,gCAAqC;IAAsC,0CAA66C;IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAgkkB;IAAA,6CAAqR;IAAA,uFAA0vB;IAAA,sDAAw+I;IAAA,qDAAmkB;IAAA,kDAA2Z;CAAC;8BAA5i1B,0CAA0C;4BAA2H,sBAAsB;4BAAtB,sBAAsB;0BAAtB,sBAAsB;yBAAtB,sBAAsB"}
@@ -1,60 +1,6 @@
1
- /**
2
- * API builder class for orchestrating mode-based API construction.
3
- * @class Builder
4
- * @extends ComponentBase
5
- * @package
6
- *
7
- * @description
8
- * Orchestrates API building by delegating to mode-specific builders (eager/lazy).
9
- * Extends ComponentBase for access to Slothlet configuration and error classes.
10
- *
11
- * @example
12
- * const builder = new Builder(slothlet);
13
- * const api = await builder.buildAPI({ dir: "./api" });
14
- */
15
1
  export class Builder extends ComponentBase {
16
2
  static slothletProperty: string;
17
- /**
18
- * Build API from directory or file.
19
- * @param {Object} options - Build options
20
- * @param {string} options.dir - Directory or file to build from
21
- * @param {string} [options.mode="eager"] - Loading mode (eager or lazy)
22
- * @param {Object} [options.ownership] - Ownership manager (uses slothlet's if not provided)
23
- * @param {Object} [options.contextManager] - Context manager (uses slothlet's if not provided)
24
- * @param {string} [options.instanceID] - Instance ID (uses slothlet's if not provided)
25
- * @param {Object} [options.config] - Configuration (uses slothlet's if not provided)
26
- * @param {string} [options.apiPathPrefix=""] - Prefix for API paths (for api.add support)
27
- * @param {string} [options.collisionContext="initial"] - Collision context
28
- * @param {Function|null} [options.fileFilter=null] - Optional filter function (fileName) => boolean to load specific files only
29
- * @returns {Promise<Object>} Raw API object (unwrapped)
30
- * @public
31
- *
32
- * @description
33
- * Validates inputs and delegates to mode-specific builder (buildEagerAPI or buildLazyAPI).
34
- * When fileFilter is provided, only files matching the filter are loaded.
35
- *
36
- * @example
37
- * const api = await builder.buildAPI({ dir: "./api_tests/api_test", mode: "eager" });
38
- *
39
- * @example
40
- * // Load specific file only
41
- * const api = await builder.buildAPI({
42
- * dir: "./api_tests/api_test",
43
- * mode: "eager",
44
- * fileFilter: (fileName) => fileName === "math.mjs"
45
- * });
46
- */
47
- public buildAPI(options: {
48
- dir: string;
49
- mode?: string;
50
- ownership?: any;
51
- contextManager?: any;
52
- instanceID?: string;
53
- config?: any;
54
- apiPathPrefix?: string;
55
- collisionContext?: string;
56
- fileFilter?: Function | null;
57
- }): Promise<any>;
3
+ buildAPI(options: any): Promise<any>;
58
4
  }
59
5
  import { ComponentBase } from "@cldmv/slothlet/factories/component-base";
60
6
  //# sourceMappingURL=builder.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.mts","sourceRoot":"","sources":["../../../../dist/lib/builders/builder.mjs"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;GAaG;AACH;IACC,gCAAoC;IAiBpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,yBA3BG;QAAwB,GAAG,EAAnB,MAAM;QACW,IAAI,GAArB,MAAM;QACW,SAAS;QACT,cAAc;QACd,UAAU,GAA3B,MAAM;QACW,MAAM;QACN,aAAa,GAA9B,MAAM;QACW,gBAAgB,GAAjC,MAAM;QACkB,UAAU,GAAlC,WAAS,IAAI;KACrB,GAAU,OAAO,KAAQ,CA+E3B;CACD;8BA9H6B,0CAA0C"}
1
+ {"version":3,"file":"builder.d.mts","sourceRoot":"","sources":["../../../../dist/lib/builders/builder.mjs"],"names":[],"mappings":"AAAoE;IAAoC,gCAAkC;IAAsC,qCAAuxB;CAAC;8BAA/6B,0CAA0C"}
@@ -1,32 +1,8 @@
1
- /**
2
- * ModesProcessor - Handles mode-specific file and directory processing.
3
- *
4
- * @class
5
- * @extends ComponentBase
6
- * @package
7
- */
8
1
  export class ModesProcessor extends ComponentBase {
9
2
  static slothletProperty: string;
10
- processFiles(api: any, files: any, directory: any, currentDepth: any, mode: any, isRoot: any, recursive: any, populateDirectly?: boolean, apiPathPrefix?: string, collisionContext?: string, moduleID?: any, sourceFolder?: any, cacheBust?: any, collisionModeOverride?: any): Promise<any>;
11
- /**
12
- * Create lazy wrapper for subdirectory (lazy mode only)
13
- * @param {Object} dir - Directory structure
14
- * @param {string} apiPath - Current API path
15
- * @param {Object} config - Configuration
16
- * @returns {Proxy} Lazy unified wrapper
17
- * @public
18
- */
19
- public createLazySubdirectoryWrapper(dir: any, apiPath: string, moduleID?: any, sourceFolder?: any, cacheBust?: any, fileFolderCollisionImpl?: any, collisionMode?: string): ProxyConstructor;
20
- /**
21
- * Apply root contributor pattern - merge API into root function
22
- * @param {Object} api - API object with properties
23
- * @param {Function|null} rootFunction - Root contributor function
24
- * @param {Object} config - Configuration
25
- * @param {string} mode - Mode name for debug messages
26
- * @returns {Promise<Object|Function>} Final API (function if root contributor, object otherwise)
27
- * @public
28
- */
29
- public applyRootContributor(api: any, rootFunction: Function | null, mode: string): Promise<any | Function>;
3
+ processFiles(api: any, files: any, directory: any, currentDepth: any, mode: any, isRoot: any, recursive: any, populateDirectly?: boolean, apiPathPrefix?: string, collisionContext?: string, moduleID?: null, sourceFolder?: null, cacheBust?: null, collisionModeOverride?: null): Promise<any>;
4
+ createLazySubdirectoryWrapper(dir: any, apiPath: any, moduleID?: null, sourceFolder?: null, cacheBust?: null, fileFolderCollisionImpl?: null, collisionMode?: string): any;
5
+ applyRootContributor(api: any, rootFunction: any, mode: any): Promise<any>;
30
6
  }
31
7
  import { ComponentBase } from "@cldmv/slothlet/factories/component-base";
32
8
  //# sourceMappingURL=modes-processor.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"modes-processor.d.mts","sourceRoot":"","sources":["../../../../dist/lib/builders/modes-processor.mjs"],"names":[],"mappings":"AA8BA;;;;;;GAMG;AACH;IACC,gCAA2C;IAS3C,6RA+3CC;IACD;;;;;;;OAOG;IACH,wDALW,MAAM,gIA6WhB;IACD;;;;;;;;OAQG;IACH,oDANW,WAAS,IAAI,QAEb,MAAM,GACJ,OAAO,CAAC,cAAe,CAAC,CAoBpC;CACD;8BAjyD6B,0CAA0C"}
1
+ {"version":3,"file":"modes-processor.d.mts","sourceRoot":"","sources":["../../../../dist/lib/builders/modes-processor.mjs"],"names":[],"mappings":"AAAmQ;IAA2C,gCAAyC;IAAsC,iSAA665B;IAAA,2KAAq3M;IAAA,2EAAwS;CAAC;8BAA/6nC,0CAA0C"}