@cldmv/slothlet 3.3.0 → 3.3.2

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 (127) hide show
  1. package/README.md +6 -8
  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/translations.mjs +1 -126
  33. package/dist/lib/modes/eager.mjs +1 -59
  34. package/dist/lib/modes/lazy.mjs +1 -81
  35. package/dist/lib/processors/flatten.mjs +1 -437
  36. package/dist/lib/processors/loader.mjs +1 -339
  37. package/dist/lib/processors/type-generator.mjs +1 -275
  38. package/dist/lib/processors/typescript.mjs +1 -172
  39. package/dist/lib/runtime/runtime-asynclocalstorage.mjs +1 -113
  40. package/dist/lib/runtime/runtime-livebindings.mjs +1 -78
  41. package/dist/lib/runtime/runtime.mjs +1 -102
  42. package/dist/slothlet.mjs +1 -817
  43. package/package.json +34 -31
  44. package/types/dist/lib/builders/api-assignment.d.mts +3 -92
  45. package/types/dist/lib/builders/api-assignment.d.mts.map +1 -1
  46. package/types/dist/lib/builders/api_builder.d.mts +102 -91
  47. package/types/dist/lib/builders/api_builder.d.mts.map +1 -1
  48. package/types/dist/lib/builders/builder.d.mts +1 -55
  49. package/types/dist/lib/builders/builder.d.mts.map +1 -1
  50. package/types/dist/lib/builders/modes-processor.d.mts +3 -27
  51. package/types/dist/lib/builders/modes-processor.d.mts.map +1 -1
  52. package/types/dist/lib/errors.d.mts +19 -109
  53. package/types/dist/lib/errors.d.mts.map +1 -1
  54. package/types/dist/lib/factories/component-base.d.mts +7 -177
  55. package/types/dist/lib/factories/component-base.d.mts.map +1 -1
  56. package/types/dist/lib/factories/context.d.mts +4 -22
  57. package/types/dist/lib/factories/context.d.mts.map +1 -1
  58. package/types/dist/lib/handlers/api-cache-manager.d.mts +20 -203
  59. package/types/dist/lib/handlers/api-cache-manager.d.mts.map +1 -1
  60. package/types/dist/lib/handlers/api-manager.d.mts +33 -408
  61. package/types/dist/lib/handlers/api-manager.d.mts.map +1 -1
  62. package/types/dist/lib/handlers/context-async.d.mts +23 -61
  63. package/types/dist/lib/handlers/context-async.d.mts.map +1 -1
  64. package/types/dist/lib/handlers/context-live.d.mts +22 -59
  65. package/types/dist/lib/handlers/context-live.d.mts.map +1 -1
  66. package/types/dist/lib/handlers/hook-manager.d.mts +46 -185
  67. package/types/dist/lib/handlers/hook-manager.d.mts.map +1 -1
  68. package/types/dist/lib/handlers/lifecycle-token.d.mts +3 -48
  69. package/types/dist/lib/handlers/lifecycle-token.d.mts.map +1 -1
  70. package/types/dist/lib/handlers/lifecycle.d.mts +5 -82
  71. package/types/dist/lib/handlers/lifecycle.d.mts.map +1 -1
  72. package/types/dist/lib/handlers/materialize-manager.d.mts +8 -70
  73. package/types/dist/lib/handlers/materialize-manager.d.mts.map +1 -1
  74. package/types/dist/lib/handlers/metadata.d.mts +17 -221
  75. package/types/dist/lib/handlers/metadata.d.mts.map +1 -1
  76. package/types/dist/lib/handlers/ownership.d.mts +44 -160
  77. package/types/dist/lib/handlers/ownership.d.mts.map +1 -1
  78. package/types/dist/lib/handlers/permission-manager.d.mts +37 -141
  79. package/types/dist/lib/handlers/permission-manager.d.mts.map +1 -1
  80. package/types/dist/lib/handlers/unified-wrapper.d.mts +26 -239
  81. package/types/dist/lib/handlers/unified-wrapper.d.mts.map +1 -1
  82. package/types/dist/lib/handlers/version-manager.d.mts +28 -225
  83. package/types/dist/lib/handlers/version-manager.d.mts.map +1 -1
  84. package/types/dist/lib/helpers/class-instance-wrapper.d.mts +2 -52
  85. package/types/dist/lib/helpers/class-instance-wrapper.d.mts.map +1 -1
  86. package/types/dist/lib/helpers/config.d.mts +125 -139
  87. package/types/dist/lib/helpers/config.d.mts.map +1 -1
  88. package/types/dist/lib/helpers/eventemitter-context.d.mts +3 -29
  89. package/types/dist/lib/helpers/eventemitter-context.d.mts.map +1 -1
  90. package/types/dist/lib/helpers/hint-detector.d.mts +2 -15
  91. package/types/dist/lib/helpers/hint-detector.d.mts.map +1 -1
  92. package/types/dist/lib/helpers/modes-utils.d.mts +3 -30
  93. package/types/dist/lib/helpers/modes-utils.d.mts.map +1 -1
  94. package/types/dist/lib/helpers/pattern-matcher.d.mts +3 -43
  95. package/types/dist/lib/helpers/pattern-matcher.d.mts.map +1 -1
  96. package/types/dist/lib/helpers/resolve-from-caller.d.mts +3 -27
  97. package/types/dist/lib/helpers/resolve-from-caller.d.mts.map +1 -1
  98. package/types/dist/lib/helpers/sanitize.d.mts +4 -92
  99. package/types/dist/lib/helpers/sanitize.d.mts.map +1 -1
  100. package/types/dist/lib/helpers/utilities.d.mts +4 -52
  101. package/types/dist/lib/helpers/utilities.d.mts.map +1 -1
  102. package/types/dist/lib/i18n/translations.d.mts +4 -37
  103. package/types/dist/lib/i18n/translations.d.mts.map +1 -1
  104. package/types/dist/lib/modes/eager.d.mts +8 -30
  105. package/types/dist/lib/modes/eager.d.mts.map +1 -1
  106. package/types/dist/lib/modes/lazy.d.mts +10 -43
  107. package/types/dist/lib/modes/lazy.d.mts.map +1 -1
  108. package/types/dist/lib/processors/flatten.d.mts +56 -107
  109. package/types/dist/lib/processors/flatten.d.mts.map +1 -1
  110. package/types/dist/lib/processors/loader.d.mts +6 -41
  111. package/types/dist/lib/processors/loader.d.mts.map +1 -1
  112. package/types/dist/lib/processors/type-generator.d.mts +2 -16
  113. package/types/dist/lib/processors/type-generator.d.mts.map +1 -1
  114. package/types/dist/lib/processors/typescript.d.mts +6 -53
  115. package/types/dist/lib/processors/typescript.d.mts.map +1 -1
  116. package/types/dist/lib/runtime/runtime-asynclocalstorage.d.mts +3 -71
  117. package/types/dist/lib/runtime/runtime-asynclocalstorage.d.mts.map +1 -1
  118. package/types/dist/lib/runtime/runtime-livebindings.d.mts +2 -37
  119. package/types/dist/lib/runtime/runtime-livebindings.d.mts.map +1 -1
  120. package/types/dist/lib/runtime/runtime.d.mts +3 -39
  121. package/types/dist/lib/runtime/runtime.d.mts.map +1 -1
  122. package/types/dist/slothlet.d.mts +3 -249
  123. package/types/dist/slothlet.d.mts.map +1 -1
  124. package/types/index.d.mts +36 -16
  125. package/types/index.d.mts.map +1 -0
  126. package/AGENT-USAGE.md +0 -736
  127. 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.3.2",
4
4
  "moduleVersions": {
5
5
  "lazy": "3.0.0",
6
6
  "eager": "3.0.0",
@@ -140,16 +140,18 @@
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",
143
144
  "analyze": "node tools/dev/analyze-errors.mjs",
144
145
  "fix:headers": "node tools/dev/fix-headers.mjs",
145
146
  "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",
147
+ "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",
148
+ "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",
149
+ "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",
150
+ "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
151
  "ci:cleanup-src": "node tools/ci/ci-cleanup-src.mjs",
151
152
  "build:cleanup": "shx rm -rf types && shx rm -rf dist",
152
153
  "build:dist": "shx mkdir -p dist && node tools/build/build-dist.mjs && shx rm -rf dist/**/*.backup",
154
+ "build:minify": "node tools/build/minify-dist.mjs",
153
155
  "build:types": "npx tsc -p .configs/tsconfig.dts.jsonc",
154
156
  "build:exports": "node tools/build/build-exports.mjs",
155
157
  "build:prepend-license": "node tools/build/prepend-license.mjs dist",
@@ -228,7 +230,7 @@
228
230
  "zero-dependencies"
229
231
  ],
230
232
  "engines": {
231
- "node": ">=16.20.2"
233
+ "node": ">=20.19.0"
232
234
  },
233
235
  "author": {
234
236
  "name": "Shinrai",
@@ -249,8 +251,8 @@
249
251
  },
250
252
  "type": "module",
251
253
  "peerDependencies": {
252
- "esbuild": "^0.27.3",
253
- "typescript": "^5.9.3"
254
+ "esbuild": "^0.28.0",
255
+ "typescript": "^6.0.3"
254
256
  },
255
257
  "peerDependenciesMeta": {
256
258
  "esbuild": {
@@ -261,36 +263,39 @@
261
263
  }
262
264
  },
263
265
  "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",
266
+ "@cldmv/fix-headers": "^1.2.2",
267
+ "@cldmv/vitest-runner": "^1.1.0",
268
+ "@eslint/css": "^1.1.0",
269
+ "@eslint/js": "^10.0.1",
270
+ "@eslint/json": "^1.2.0",
271
+ "@eslint/markdown": "^8.0.1",
272
+ "@html-eslint/parser": "^0.59.0",
273
+ "@types/node": "^25.6.0",
274
+ "@vitest/coverage-v8": "^4.1.5",
273
275
  "acorn": "^8.16.0",
274
- "chalk": "^5.6.0",
276
+ "chalk": "^5.6.2",
275
277
  "chokidar": "^5.0.0",
276
278
  "dmd": "^7.1.1",
277
- "esbuild": "^0.27.3",
278
- "eslint": "^10.0.2",
279
+ "esbuild": "^0.28.0",
280
+ "eslint": "^10.2.1",
279
281
  "estree-walker": "^3.0.3",
280
- "globals": "^17.4.0",
281
- "jsdoc": "^4.0.4",
282
- "jsdoc-to-markdown": "^9.1.2",
282
+ "globals": "^17.5.0",
283
+ "jsdoc": "^4.0.5",
284
+ "jsdoc-to-markdown": "^9.1.3",
283
285
  "jsdoc2md": "^1.0.0",
284
286
  "jsonc-parser": "^3.3.1",
285
- "prettier": "^3.3.3",
287
+ "prettier": "^3.8.3",
286
288
  "shx": "^0.4.0",
287
- "typescript": "^5.9.3",
288
- "vest": "^5.4.6",
289
- "vitest": "^4.0.18"
289
+ "typescript": "^6.0.3",
290
+ "vitest": "^4.1.5"
291
+ },
292
+ "optionalDependencies": {
293
+ "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.17"
290
294
  },
291
295
  "overrides": {
292
296
  "minimatch": "^10.2.3",
293
- "rollup": "^4.59.0"
297
+ "rollup": "^4.59.0",
298
+ "rolldown": "1.0.0-rc.17"
294
299
  },
295
300
  "repository": {
296
301
  "type": "git",
@@ -308,10 +313,8 @@
308
313
  "index.mjs",
309
314
  "index.cjs",
310
315
  "README.md",
316
+ "REFERENCE.md",
311
317
  "LICENSE",
312
- "docs/API-RULES.md",
313
- "docs/API-RULES-CONDITIONS.md",
314
- "AGENT-USAGE.md",
315
318
  "types/dist/",
316
319
  "types/index.d.mts",
317
320
  "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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAqyjB;IAAA,6CAAqR;IAAA,uFAA0vB;IAAA,sDAAw+I;IAAA,qDAAmkB;IAAA,kDAA2Z;CAAC;8BAAjx0B,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"}