@webda/core 4.0.0-beta.3 → 4.0.0-beta.5

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 (158) hide show
  1. package/lib/application/application.d.ts +31 -0
  2. package/lib/application/application.d.ts.map +1 -1
  3. package/lib/application/application.js +55 -2
  4. package/lib/application/application.js.map +1 -1
  5. package/lib/application/deployment.d.ts +93 -0
  6. package/lib/application/deployment.d.ts.map +1 -0
  7. package/lib/application/deployment.js +99 -0
  8. package/lib/application/deployment.js.map +1 -0
  9. package/lib/application/unpackedapplication.d.ts.map +1 -1
  10. package/lib/application/unpackedapplication.js +9 -1
  11. package/lib/application/unpackedapplication.js.map +1 -1
  12. package/lib/bin/cli.d.ts +36 -1
  13. package/lib/bin/cli.d.ts.map +1 -1
  14. package/lib/bin/cli.js +108 -2
  15. package/lib/bin/cli.js.map +1 -1
  16. package/lib/contexts/execution.js +1 -1
  17. package/lib/contexts/execution.js.map +1 -1
  18. package/lib/contexts/operationcontext.d.ts +3 -0
  19. package/lib/contexts/operationcontext.d.ts.map +1 -1
  20. package/lib/contexts/operationcontext.js +6 -3
  21. package/lib/contexts/operationcontext.js.map +1 -1
  22. package/lib/core/core.js +1 -1
  23. package/lib/core/core.js.map +1 -1
  24. package/lib/core/hooks.d.ts +22 -0
  25. package/lib/core/hooks.d.ts.map +1 -1
  26. package/lib/core/hooks.js +24 -0
  27. package/lib/core/hooks.js.map +1 -1
  28. package/lib/core/operations.d.ts.map +1 -1
  29. package/lib/core/operations.js +13 -11
  30. package/lib/core/operations.js.map +1 -1
  31. package/lib/deployers/deployer.d.ts +157 -0
  32. package/lib/deployers/deployer.d.ts.map +1 -0
  33. package/lib/deployers/deployer.js +81 -0
  34. package/lib/deployers/deployer.js.map +1 -0
  35. package/lib/deployers/git.d.ts +27 -0
  36. package/lib/deployers/git.d.ts.map +1 -0
  37. package/lib/deployers/git.js +66 -0
  38. package/lib/deployers/git.js.map +1 -0
  39. package/lib/deployers/packager.d.ts +85 -0
  40. package/lib/deployers/packager.d.ts.map +1 -0
  41. package/lib/deployers/packager.js +259 -0
  42. package/lib/deployers/packager.js.map +1 -0
  43. package/lib/index.d.ts +10 -4
  44. package/lib/index.d.ts.map +1 -1
  45. package/lib/index.js +10 -4
  46. package/lib/index.js.map +1 -1
  47. package/lib/models/aclmodel.d.ts +32 -5
  48. package/lib/models/aclmodel.d.ts.map +1 -1
  49. package/lib/models/aclmodel.js +34 -9
  50. package/lib/models/aclmodel.js.map +1 -1
  51. package/lib/models/coremodel.model.d.ts.map +1 -1
  52. package/lib/models/coremodel.model.js.map +1 -1
  53. package/lib/models/decorator.d.ts +4 -0
  54. package/lib/models/decorator.d.ts.map +1 -1
  55. package/lib/models/decorator.js +4 -0
  56. package/lib/models/decorator.js.map +1 -1
  57. package/lib/models/deployment.d.ts +2 -21
  58. package/lib/models/deployment.d.ts.map +1 -1
  59. package/lib/models/encrypted.model.d.ts +46 -0
  60. package/lib/models/encrypted.model.d.ts.map +1 -0
  61. package/lib/models/encrypted.model.js +87 -0
  62. package/lib/models/encrypted.model.js.map +1 -0
  63. package/lib/models/ident.model.d.ts +103 -64
  64. package/lib/models/ident.model.d.ts.map +1 -1
  65. package/lib/models/ident.model.js +168 -76
  66. package/lib/models/ident.model.js.map +1 -1
  67. package/lib/models/ownermodel.model.d.ts +25 -3
  68. package/lib/models/ownermodel.model.d.ts.map +1 -1
  69. package/lib/models/ownermodel.model.js +46 -10
  70. package/lib/models/ownermodel.model.js.map +1 -1
  71. package/lib/models/password.model.d.ts +78 -0
  72. package/lib/models/password.model.d.ts.map +1 -0
  73. package/lib/models/password.model.js +171 -0
  74. package/lib/models/password.model.js.map +1 -0
  75. package/lib/models/permissions.d.ts +236 -0
  76. package/lib/models/permissions.d.ts.map +1 -0
  77. package/lib/models/permissions.js +495 -0
  78. package/lib/models/permissions.js.map +1 -0
  79. package/lib/models/refreshtoken.model.d.ts +30 -0
  80. package/lib/models/refreshtoken.model.d.ts.map +1 -0
  81. package/lib/models/refreshtoken.model.js +29 -0
  82. package/lib/models/refreshtoken.model.js.map +1 -0
  83. package/lib/models/registry.model.d.ts.map +1 -1
  84. package/lib/models/registry.model.js.map +1 -1
  85. package/lib/models/rolemodel.model.d.ts.map +1 -1
  86. package/lib/models/rolemodel.model.js +1 -2
  87. package/lib/models/rolemodel.model.js.map +1 -1
  88. package/lib/models/simpleuser.model.d.ts.map +1 -1
  89. package/lib/models/simpleuser.model.js +2 -1
  90. package/lib/models/simpleuser.model.js.map +1 -1
  91. package/lib/models/user.model.d.ts +33 -21
  92. package/lib/models/user.model.d.ts.map +1 -1
  93. package/lib/models/user.model.js +81 -26
  94. package/lib/models/user.model.js.map +1 -1
  95. package/lib/rest/restoperationstransport.service.d.ts.map +1 -1
  96. package/lib/rest/restoperationstransport.service.js +7 -5
  97. package/lib/rest/restoperationstransport.service.js.map +1 -1
  98. package/lib/services/audit.model.d.ts +2 -2
  99. package/lib/services/audit.model.d.ts.map +1 -1
  100. package/lib/services/audit.model.js +16 -6
  101. package/lib/services/audit.model.js.map +1 -1
  102. package/lib/services/binary.service.d.ts +42 -4
  103. package/lib/services/binary.service.d.ts.map +1 -1
  104. package/lib/services/binary.service.js +33 -13
  105. package/lib/services/binary.service.js.map +1 -1
  106. package/lib/services/domainservice.service.d.ts +111 -1
  107. package/lib/services/domainservice.service.d.ts.map +1 -1
  108. package/lib/services/domainservice.service.js +303 -50
  109. package/lib/services/domainservice.service.js.map +1 -1
  110. package/lib/services/iauthentication.d.ts +196 -3
  111. package/lib/services/iauthentication.d.ts.map +1 -1
  112. package/lib/services/servicecommands.d.ts.map +1 -1
  113. package/lib/services/servicecommands.js +17 -11
  114. package/lib/services/servicecommands.js.map +1 -1
  115. package/lib/services/token.service.d.ts +95 -0
  116. package/lib/services/token.service.d.ts.map +1 -0
  117. package/lib/services/token.service.js +182 -0
  118. package/lib/services/token.service.js.map +1 -0
  119. package/lib/session/manager.model.d.ts +16 -0
  120. package/lib/session/manager.model.d.ts.map +1 -1
  121. package/lib/session/manager.model.js +58 -1
  122. package/lib/session/manager.model.js.map +1 -1
  123. package/lib/session/session.d.ts +44 -1
  124. package/lib/session/session.d.ts.map +1 -1
  125. package/lib/session/session.js +51 -2
  126. package/lib/session/session.js.map +1 -1
  127. package/lib/stores/memory.service.d.ts.map +1 -1
  128. package/lib/stores/memory.service.js +4 -3
  129. package/lib/stores/memory.service.js.map +1 -1
  130. package/lib/templates/templates.d.ts +8 -0
  131. package/lib/templates/templates.d.ts.map +1 -1
  132. package/lib/templates/templates.js +10 -1
  133. package/lib/templates/templates.js.map +1 -1
  134. package/lib/test/behavior-fixture.model.d.ts +30 -0
  135. package/lib/test/behavior-fixture.model.d.ts.map +1 -0
  136. package/lib/test/behavior-fixture.model.js +63 -0
  137. package/lib/test/behavior-fixture.model.js.map +1 -0
  138. package/lib/test/legacyident.fixture.model.d.ts +98 -0
  139. package/lib/test/legacyident.fixture.model.d.ts.map +1 -0
  140. package/lib/test/legacyident.fixture.model.js +125 -0
  141. package/lib/test/legacyident.fixture.model.js.map +1 -0
  142. package/lib/test/objects.d.ts +2 -2
  143. package/lib/test/objects.d.ts.map +1 -1
  144. package/lib/test/objects.js +2 -2
  145. package/lib/test/objects.js.map +1 -1
  146. package/package.json +32 -11
  147. package/test/config-cached.json +2 -1
  148. package/test/config.json +3 -1
  149. package/test/my-cnf.json +1 -1
  150. package/webda.module.json +656 -390
  151. package/lib/services/authentication.service.d.ts +0 -442
  152. package/lib/services/authentication.service.d.ts.map +0 -1
  153. package/lib/services/authentication.service.js +0 -932
  154. package/lib/services/authentication.service.js.map +0 -1
  155. package/lib/services/oauth.d.ts +0 -250
  156. package/lib/services/oauth.d.ts.map +0 -1
  157. package/lib/services/oauth.js +0 -405
  158. package/lib/services/oauth.js.map +0 -1
@@ -7,6 +7,7 @@ import { useDynamicService, useModelMetadata, useService } from "./hooks.js";
7
7
  import { emitCoreEvent } from "../events/events.js";
8
8
  import { isGeneratorFunction } from "node:util/types";
9
9
  import { runWithContext, useContext } from "../contexts/execution.js";
10
+ import { checkStaticModelPermission, loadModelForAction } from "../models/permissions.js";
10
11
  import { useLog } from "@webda/workout";
11
12
  /**
12
13
  * Check if an operation can be executed with the current context
@@ -305,9 +306,8 @@ async function checkOperation(context, operationId) {
305
306
  // to fields without parsing the string.
306
307
  const summary = err.errors
307
308
  .map(e => {
308
- const path = e.instancePath || (e.params && e.params.missingProperty
309
- ? `/${e.params.missingProperty}`
310
- : "/");
309
+ const path = e.instancePath ||
310
+ (e.params && e.params.missingProperty ? `/${e.params.missingProperty}` : "/");
311
311
  return `${path} ${e.message}`;
312
312
  })
313
313
  .join("; ");
@@ -398,21 +398,23 @@ export async function callOperation(context, operationId) {
398
398
  }
399
399
  else if (operations[operationId].model) {
400
400
  const modelClass = useModel(operations[operationId].model);
401
+ const method = operations[operationId].method;
401
402
  if (operations[operationId].static === false) {
402
- // Instance method — load the model instance and call the method on it
403
+ // Instance method — load the model instance as the caller (a missing object and an object the caller may
404
+ // not read answer the same NotFound; a refused method is Forbidden) and call the method on it
403
405
  // The first argument should be the primary key (uuid)
404
406
  const uuid = callArgs[0];
405
407
  result = await runWithContext(context, async () => {
406
- const instance = await modelClass.ref(uuid).get();
407
- if (!instance || instance.isDeleted?.()) {
408
- throw new WebdaError.NotFound("Object not found");
409
- }
410
- return instance[operations[operationId].method](...callArgs.slice(1));
408
+ const instance = await loadModelForAction(modelClass, uuid, context, method);
409
+ return instance[method](...callArgs.slice(1));
411
410
  });
412
411
  }
413
412
  else {
414
- // Static/class method — call on the model class directly
415
- result = await runWithContext(context, () => modelClass[operations[operationId].method](...callArgs));
413
+ // Static/class method — the model's static canAct is asked without object
414
+ result = await runWithContext(context, async () => {
415
+ await checkStaticModelPermission(modelClass, context, method);
416
+ return modelClass[method](...callArgs);
417
+ });
416
418
  }
417
419
  }
418
420
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/core/operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/core/operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,157 @@
1
+ import { type WorkerLogLevel } from "@webda/workout";
2
+ import type { GitInformation, PackageDescriptor, WebdaPackageDescriptor } from "../application/iconfiguration.js";
3
+ /**
4
+ * Capability of the services that deploy the application
5
+ */
6
+ export declare const DEPLOYER_CAPABILITY = "deployer";
7
+ /**
8
+ * A service that deploys the application: its commands (`deploy`, `package`, ...) run
9
+ * on the `units` of the selected deployment.
10
+ *
11
+ * Deployers are never part of the application services: the CLI adds the units of the
12
+ * selected deployment (`webda -d <deployment> <command>`) as services only when one of
13
+ * their commands runs, and never injects a deployer by default.
14
+ *
15
+ * Every deployer class declares `implements Deployer` itself, the compiler only reads the
16
+ * capability from the class own heritage clauses.
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * export class MyDeployer extends Service<MyDeployerParameters> implements Deployer {
21
+ * @Command("deploy", { description: "Deploy my resources" })
22
+ * async deploy() {
23
+ * const parameters = resolveDeploymentVariables(this.parameters, getDeploymentVariables(this));
24
+ * }
25
+ * }
26
+ * ```
27
+ *
28
+ * @WebdaCapability deployer
29
+ */
30
+ export interface Deployer {
31
+ }
32
+ /**
33
+ * Variables available to the `${...}` templates of a deployer
34
+ */
35
+ export interface DeploymentVariables {
36
+ /**
37
+ * Name of the current deployment, empty if none
38
+ */
39
+ deployment: string;
40
+ /**
41
+ * The deployer: unit name and service type
42
+ */
43
+ deployer: {
44
+ name: string;
45
+ type: string;
46
+ };
47
+ /**
48
+ * Parameters of the deployer, before replacement
49
+ */
50
+ resources: Record<string, any>;
51
+ /**
52
+ * package.json of the application
53
+ */
54
+ package: PackageDescriptor;
55
+ /**
56
+ * Webda configuration of the package.json, merged with the workspace one
57
+ */
58
+ webda: WebdaPackageDescriptor;
59
+ /**
60
+ * Git information of the application repository
61
+ */
62
+ git: GitInformation;
63
+ /**
64
+ * Environment variables, for secrets from the CI
65
+ */
66
+ env: Record<string, string | undefined>;
67
+ /**
68
+ * Current timestamp
69
+ */
70
+ now: number;
71
+ /**
72
+ * Additional variables
73
+ */
74
+ [key: string]: any;
75
+ }
76
+ /**
77
+ * The part of a deployer service used by {@link getDeploymentVariables}
78
+ */
79
+ export interface DeployerInstance {
80
+ /**
81
+ * Name of the service, the unit name
82
+ */
83
+ getName(): string;
84
+ /**
85
+ * Parameters of the service
86
+ */
87
+ getParameters?(): any;
88
+ }
89
+ /**
90
+ * Collect the variables for the templates of a deployer
91
+ *
92
+ * @param deployer - the deployer service, for `deployer` and `resources`
93
+ * @param extra - additional variables, overriding the default ones
94
+ * @returns the variables
95
+ */
96
+ export declare function getDeploymentVariables(deployer?: DeployerInstance, extra?: Record<string, any>): DeploymentVariables;
97
+ /**
98
+ * Replace the `${...}` templates of a deployer parameters
99
+ *
100
+ * @param object - the string or object to resolve, not modified
101
+ * @param variables - the variables from {@link getDeploymentVariables}
102
+ * @returns a copy with the templates replaced
103
+ */
104
+ export declare function resolveDeploymentVariables<T>(object: T, variables: DeploymentVariables): T;
105
+ /**
106
+ * Result of {@link runCommand}
107
+ */
108
+ export interface CommandResult {
109
+ /**
110
+ * Exit code
111
+ */
112
+ status: number;
113
+ /**
114
+ * Standard output
115
+ */
116
+ output: string;
117
+ /**
118
+ * Standard error
119
+ */
120
+ error: string;
121
+ }
122
+ /**
123
+ * Options of {@link runCommand}
124
+ */
125
+ export interface RunCommandOptions {
126
+ /**
127
+ * Content to write on the standard input
128
+ */
129
+ stdin?: string;
130
+ /**
131
+ * Working directory
132
+ */
133
+ cwd?: string;
134
+ /**
135
+ * Additional environment variables
136
+ */
137
+ env?: Record<string, string>;
138
+ /**
139
+ * Resolve instead of rejecting when the exit code is not 0
140
+ */
141
+ resolveOnError?: boolean;
142
+ /**
143
+ * Log level of the standard output
144
+ *
145
+ * @default "TRACE"
146
+ */
147
+ logLevel?: WorkerLogLevel;
148
+ }
149
+ /**
150
+ * Run a shell command, logging its output
151
+ *
152
+ * @param command - the shell command
153
+ * @param options - the options
154
+ * @returns the exit code and outputs, rejects with the same object when the exit code is not 0
155
+ */
156
+ export declare function runCommand(command: string, options?: RunCommandOptions): Promise<CommandResult>;
157
+ //# sourceMappingURL=deployer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployer.d.ts","sourceRoot":"","sources":["../../src/deployers/deployer.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAIlH;;GAEG;AACH,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,WAAW,QAAQ;CAAG;AAE5B;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B;;OAEG;IACH,OAAO,EAAE,iBAAiB,CAAC;IAC3B;;OAEG;IACH,KAAK,EAAE,sBAAsB,CAAC;IAC9B;;OAEG;IACH,GAAG,EAAE,cAAc,CAAC;IACpB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACxC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,OAAO,IAAI,MAAM,CAAC;IAClB;;OAEG;IACH,aAAa,CAAC,IAAI,GAAG,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,CAAC,EAAE,gBAAgB,EAC3B,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAC9B,mBAAmB,CAgBrB;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,mBAAmB,GAAG,CAAC,CAE1F;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,aAAa,CAAC,CA4BnG"}
@@ -0,0 +1,81 @@
1
+ import { spawn } from "node:child_process";
2
+ import { useLog } from "@webda/workout";
3
+ import { useApplication } from "../application/hooks.js";
4
+ import { replaceVariables } from "../templates/templates.js";
5
+ import { getGitInformation } from "./git.js";
6
+ /**
7
+ * Capability of the services that deploy the application
8
+ */
9
+ export const DEPLOYER_CAPABILITY = "deployer";
10
+ /**
11
+ * Collect the variables for the templates of a deployer
12
+ *
13
+ * @param deployer - the deployer service, for `deployer` and `resources`
14
+ * @param extra - additional variables, overriding the default ones
15
+ * @returns the variables
16
+ */
17
+ export function getDeploymentVariables(deployer, extra = {}) {
18
+ const app = useApplication();
19
+ const project = app.getProjectInfo();
20
+ const packageDescription = project?.package ?? {};
21
+ const name = deployer?.getName() ?? "";
22
+ return {
23
+ deployment: app.getCurrentDeployment() ?? "",
24
+ deployer: { name, type: app.getConfiguration().services?.[name]?.type },
25
+ resources: deployer?.getParameters?.() ?? {},
26
+ package: packageDescription,
27
+ webda: project?.webda ?? {},
28
+ git: getGitInformation(app.applicationPath ?? process.cwd(), packageDescription.name, packageDescription.version),
29
+ env: process.env,
30
+ now: Date.now(),
31
+ ...extra
32
+ };
33
+ }
34
+ /**
35
+ * Replace the `${...}` templates of a deployer parameters
36
+ *
37
+ * @param object - the string or object to resolve, not modified
38
+ * @param variables - the variables from {@link getDeploymentVariables}
39
+ * @returns a copy with the templates replaced
40
+ */
41
+ export function resolveDeploymentVariables(object, variables) {
42
+ return replaceVariables(object, variables);
43
+ }
44
+ /**
45
+ * Run a shell command, logging its output
46
+ *
47
+ * @param command - the shell command
48
+ * @param options - the options
49
+ * @returns the exit code and outputs, rejects with the same object when the exit code is not 0
50
+ */
51
+ export function runCommand(command, options = {}) {
52
+ const { stdin, cwd, env, resolveOnError = false, logLevel = "TRACE" } = options;
53
+ useLog("DEBUG", "Command", command, stdin ? `with stdin <<EOF\n${stdin}\nEOF\n` : "");
54
+ return new Promise((resolve, reject) => {
55
+ const result = { status: 0, output: "", error: "" };
56
+ const child = spawn(command, { shell: true, cwd, env: env ? { ...process.env, ...env } : process.env });
57
+ child.stdout.on("data", data => {
58
+ useLog(logLevel, data.toString());
59
+ result.output += data.toString();
60
+ });
61
+ child.stderr.on("data", data => {
62
+ useLog("ERROR", data.toString());
63
+ result.error += data.toString();
64
+ });
65
+ child.on("error", reject);
66
+ child.on("close", code => {
67
+ result.status = code ?? 1;
68
+ if (result.status === 0 || resolveOnError) {
69
+ resolve(result);
70
+ }
71
+ else {
72
+ reject(result);
73
+ }
74
+ });
75
+ if (stdin !== undefined) {
76
+ child.stdin.write(stdin);
77
+ }
78
+ child.stdin.end();
79
+ });
80
+ }
81
+ //# sourceMappingURL=deployer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployer.js","sourceRoot":"","sources":["../../src/deployers/deployer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { GitInformation } from "../application/iconfiguration.js";
2
+ /**
3
+ * Compute the snapshot version used when the current commit is not tagged with the package version
4
+ *
5
+ * The patch is incremented (or the prerelease dropped) and the build metadata is the date
6
+ * as `yyyymmddHHMMssl`: `1.2.3` becomes `1.2.4+20261004130507009`
7
+ *
8
+ * @param version - the package version
9
+ * @param date - the snapshot date
10
+ * @returns the snapshot version, or the version unchanged if it is not semver
11
+ */
12
+ export declare function nextSnapshotVersion(version: string, date?: Date): string;
13
+ /**
14
+ * Retrieve the git information of a repository
15
+ *
16
+ * The `GIT_INFO` environment variable (base64 JSON of {@link GitInformation}) takes precedence,
17
+ * useful when building without the repository (containers). The version is the package version
18
+ * when the current commit has the tag `<packageName>@<version>` or `v<version>`, otherwise a
19
+ * snapshot version from {@link nextSnapshotVersion}.
20
+ *
21
+ * @param cwd - a folder within the repository
22
+ * @param packageName - the package name, to find the version tag
23
+ * @param version - the package version
24
+ * @returns the git information, with `unknown` commit and branch outside of a repository
25
+ */
26
+ export declare function getGitInformation(cwd: string, packageName?: string, version?: string): GitInformation;
27
+ //# sourceMappingURL=git.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/deployers/git.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,IAAiB,GAAG,MAAM,CAWpF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,GAAE,MAAW,EAAE,OAAO,GAAE,MAAW,GAAG,cAAc,CA4B7G"}
@@ -0,0 +1,66 @@
1
+ import { execFileSync } from "node:child_process";
2
+ /**
3
+ * Compute the snapshot version used when the current commit is not tagged with the package version
4
+ *
5
+ * The patch is incremented (or the prerelease dropped) and the build metadata is the date
6
+ * as `yyyymmddHHMMssl`: `1.2.3` becomes `1.2.4+20261004130507009`
7
+ *
8
+ * @param version - the package version
9
+ * @param date - the snapshot date
10
+ * @returns the snapshot version, or the version unchanged if it is not semver
11
+ */
12
+ export function nextSnapshotVersion(version, date = new Date()) {
13
+ const match = /^(\d+)\.(\d+)\.(\d+)(-[^+]+)?/.exec(version ?? "");
14
+ if (!match) {
15
+ return version;
16
+ }
17
+ const [, major, minor, patch, prerelease] = match;
18
+ const pad = (value, length = 2) => value.toString().padStart(length, "0");
19
+ const stamp = `${date.getFullYear()}${pad(date.getMonth() + 1)}${pad(date.getDate())}` +
20
+ `${pad(date.getHours())}${pad(date.getMinutes())}${pad(date.getSeconds())}${pad(date.getMilliseconds(), 3)}`;
21
+ return `${major}.${minor}.${prerelease ? patch : parseInt(patch) + 1}+${stamp}`;
22
+ }
23
+ /**
24
+ * Retrieve the git information of a repository
25
+ *
26
+ * The `GIT_INFO` environment variable (base64 JSON of {@link GitInformation}) takes precedence,
27
+ * useful when building without the repository (containers). The version is the package version
28
+ * when the current commit has the tag `<packageName>@<version>` or `v<version>`, otherwise a
29
+ * snapshot version from {@link nextSnapshotVersion}.
30
+ *
31
+ * @param cwd - a folder within the repository
32
+ * @param packageName - the package name, to find the version tag
33
+ * @param version - the package version
34
+ * @returns the git information, with `unknown` commit and branch outside of a repository
35
+ */
36
+ export function getGitInformation(cwd, packageName = "", version = "") {
37
+ if (process.env.GIT_INFO) {
38
+ return JSON.parse(Buffer.from(process.env.GIT_INFO, "base64").toString());
39
+ }
40
+ const git = (...args) => execFileSync("git", args, { cwd, stdio: "pipe" }).toString().trim();
41
+ try {
42
+ const tags = git("tag", "--points-at", "HEAD")
43
+ .split("\n")
44
+ .filter(tag => tag !== "");
45
+ const tag = [`${packageName}@${version}`, `v${version}`].find(candidate => tags.includes(candidate)) ?? "";
46
+ return {
47
+ commit: git("rev-parse", "HEAD"),
48
+ branch: git("rev-parse", "--abbrev-ref", "HEAD"),
49
+ short: git("rev-parse", "--short", "HEAD"),
50
+ tag,
51
+ tags,
52
+ version: tag ? version : nextSnapshotVersion(version)
53
+ };
54
+ }
55
+ catch {
56
+ return {
57
+ commit: "unknown",
58
+ branch: "unknown",
59
+ short: "00000000",
60
+ tag: "",
61
+ tags: [],
62
+ version
63
+ };
64
+ }
65
+ }
66
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/deployers/git.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import type { Application } from "../application/application.js";
2
+ import type { Configuration } from "../application/iconfiguration.js";
3
+ /**
4
+ * Path of the configuration within a packaged application
5
+ */
6
+ export declare const PACKAGED_CONFIGURATION = "webda.config.json";
7
+ /**
8
+ * Marker file of a packaged application: the CLI loads it from its cached configuration
9
+ */
10
+ export declare const PACKAGED_MARKER = ".webda/packaged.json";
11
+ /**
12
+ * A file of the packaged application
13
+ */
14
+ export interface PackageEntry {
15
+ /**
16
+ * Posix path of the file within the package
17
+ */
18
+ target: string;
19
+ /**
20
+ * Absolute path of the file to copy, symbolic links resolved
21
+ */
22
+ source?: string;
23
+ /**
24
+ * Content of a generated file, when there is no source
25
+ */
26
+ content?: string;
27
+ /**
28
+ * File mode of the source
29
+ */
30
+ mode?: number;
31
+ }
32
+ /**
33
+ * Options of {@link packageApplication}
34
+ */
35
+ export interface PackageOptions {
36
+ /**
37
+ * Additional top-level entries of the application to skip
38
+ */
39
+ ignores?: string[];
40
+ /**
41
+ * Regular expressions on the source path of the files to skip
42
+ *
43
+ * @default ["\\.d\\.ts$"]
44
+ */
45
+ excludePatterns?: string[];
46
+ /**
47
+ * Dependencies to add or remove from the application production dependencies
48
+ */
49
+ modules?: {
50
+ includes?: string[];
51
+ excludes?: string[];
52
+ };
53
+ }
54
+ /**
55
+ * A packaged application
56
+ */
57
+ export interface ApplicationPackage {
58
+ /**
59
+ * Every file of the package, including the generated configuration and marker
60
+ */
61
+ files: PackageEntry[];
62
+ /**
63
+ * The packaged configuration, also in `files` as {@link PACKAGED_CONFIGURATION}
64
+ */
65
+ configuration: Configuration;
66
+ }
67
+ /**
68
+ * Compute the content of a deployable application: its files, its production dependencies and
69
+ * its packaged configuration
70
+ *
71
+ * The application files are its package.json `files`, or its top-level entries minus the ignored ones.
72
+ * Production dependencies (`dependencies`, `optionalDependencies` and resolvable `peerDependencies`) are
73
+ * resolved like Node.js from the real path of each package, so pnpm, npm and workspace layouts work:
74
+ * they are placed in `node_modules/<name>`, or nested under the requiring package on a version conflict.
75
+ *
76
+ * The configuration is the current configuration (with the deployment applied) without the deployment
77
+ * units, its `cachedModules` imports rewritten to the packaged locations and the git information baked;
78
+ * with the {@link PACKAGED_MARKER} file, the CLI loads it without scanning the modules.
79
+ *
80
+ * @param app - the loaded application
81
+ * @param options - ignores, excludes and modules
82
+ * @returns the files and configuration of the package
83
+ */
84
+ export declare function packageApplication(app: Application, options?: PackageOptions): Promise<ApplicationPackage>;
85
+ //# sourceMappingURL=packager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packager.d.ts","sourceRoot":"","sources":["../../src/deployers/packager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGtE;;GAEG;AACH,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAC1D;;GAEG;AACH,eAAO,MAAM,eAAe,yBAAyB,CAAC;AAmBtD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB;;OAEG;IACH,aAAa,EAAE,aAAa,CAAC;CAC9B;AAmJD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAuGpH"}