@jskit-ai/google-rewarded-core 0.1.83 → 0.1.86

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,10 +1,193 @@
1
1
  {
2
2
  "name": "@jskit-ai/google-rewarded-core",
3
- "version": "0.1.83",
3
+ "version": "0.1.86",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./shared": "./src/shared/index.js",
7
7
  "./server/actions": "./src/server/actions.js",
8
8
  "./server/requireGoogleRewardedUnlock": "./src/server/support/requireGoogleRewardedUnlock.js"
9
+ },
10
+ "description": "Google rewarded workflow runtime plus internal CRUD providers for rules, provider configs, watch sessions, and unlock receipts.",
11
+ "jskit": {
12
+ "kind": "runtime",
13
+ "capabilities": {
14
+ "provides": [
15
+ "crud.google-rewarded-rules",
16
+ "crud.google-rewarded-provider-configs",
17
+ "crud.google-rewarded-watch-sessions",
18
+ "crud.google-rewarded-unlock-receipts",
19
+ "google-rewarded.core"
20
+ ],
21
+ "requires": [
22
+ "runtime.actions",
23
+ "runtime.database",
24
+ "auth.policy",
25
+ "json-rest-api.core"
26
+ ]
27
+ },
28
+ "runtime": {
29
+ "server": {
30
+ "providers": [
31
+ {
32
+ "entrypoint": "src/server/rules/GoogleRewardedRulesProvider.js",
33
+ "export": "GoogleRewardedRulesProvider"
34
+ },
35
+ {
36
+ "entrypoint": "src/server/providerConfigs/GoogleRewardedProviderConfigsProvider.js",
37
+ "export": "GoogleRewardedProviderConfigsProvider"
38
+ },
39
+ {
40
+ "entrypoint": "src/server/watchSessions/GoogleRewardedWatchSessionsProvider.js",
41
+ "export": "GoogleRewardedWatchSessionsProvider"
42
+ },
43
+ {
44
+ "entrypoint": "src/server/unlockReceipts/GoogleRewardedUnlockReceiptsProvider.js",
45
+ "export": "GoogleRewardedUnlockReceiptsProvider"
46
+ },
47
+ {
48
+ "entrypoint": "src/server/GoogleRewardedCoreProvider.js",
49
+ "export": "GoogleRewardedCoreProvider"
50
+ }
51
+ ]
52
+ },
53
+ "client": {
54
+ "providers": []
55
+ }
56
+ },
57
+ "metadata": {
58
+ "jskit": {
59
+ "scaffoldShape": "crud-server-v1",
60
+ "tableOwnership": {
61
+ "tables": [
62
+ {
63
+ "tableName": "google_rewarded_rules",
64
+ "provenance": "crud-server-generator",
65
+ "ownerKind": "crud-package",
66
+ "providerEntrypoint": "src/server/rules/GoogleRewardedRulesProvider.js",
67
+ "ownershipFilter": "workspace"
68
+ },
69
+ {
70
+ "tableName": "google_rewarded_provider_configs",
71
+ "provenance": "crud-server-generator",
72
+ "ownerKind": "crud-package",
73
+ "providerEntrypoint": "src/server/providerConfigs/GoogleRewardedProviderConfigsProvider.js",
74
+ "ownershipFilter": "workspace"
75
+ },
76
+ {
77
+ "tableName": "google_rewarded_watch_sessions",
78
+ "provenance": "crud-server-generator",
79
+ "ownerKind": "crud-package",
80
+ "providerEntrypoint": "src/server/watchSessions/GoogleRewardedWatchSessionsProvider.js",
81
+ "ownershipFilter": "workspace_user"
82
+ },
83
+ {
84
+ "tableName": "google_rewarded_unlock_receipts",
85
+ "provenance": "crud-server-generator",
86
+ "ownerKind": "crud-package",
87
+ "providerEntrypoint": "src/server/unlockReceipts/GoogleRewardedUnlockReceiptsProvider.js",
88
+ "ownershipFilter": "workspace_user"
89
+ }
90
+ ]
91
+ }
92
+ },
93
+ "apiSummary": {
94
+ "surfaces": [
95
+ {
96
+ "subpath": "./shared",
97
+ "summary": "Exports Google rewarded shared CRUD resources."
98
+ },
99
+ {
100
+ "subpath": "./server/actions",
101
+ "summary": "Exports Google rewarded workflow action identifiers and validators."
102
+ },
103
+ {
104
+ "subpath": "./server/requireGoogleRewardedUnlock",
105
+ "summary": "Exports the server helper that enforces a rewarded unlock before a protected feature action continues."
106
+ }
107
+ ],
108
+ "containerTokens": {
109
+ "server": [
110
+ "repository.google_rewarded_rules",
111
+ "crud.google_rewarded_rules",
112
+ "repository.google_rewarded_provider_configs",
113
+ "crud.google_rewarded_provider_configs",
114
+ "repository.google_rewarded_watch_sessions",
115
+ "crud.google_rewarded_watch_sessions",
116
+ "repository.google_rewarded_unlock_receipts",
117
+ "crud.google_rewarded_unlock_receipts",
118
+ "google-rewarded.core.service"
119
+ ],
120
+ "client": []
121
+ }
122
+ }
123
+ },
124
+ "mutations": {
125
+ "dependencies": {
126
+ "runtime": {
127
+ "@jskit-ai/auth-core": "0.1.148",
128
+ "@jskit-ai/crud-core": "0.1.161",
129
+ "@jskit-ai/database-runtime": "0.1.150",
130
+ "@jskit-ai/http-runtime": "0.1.148",
131
+ "@jskit-ai/json-rest-api-core": "0.1.94",
132
+ "@jskit-ai/kernel": "0.1.150",
133
+ "@jskit-ai/resource-crud-core": "0.1.92",
134
+ "@jskit-ai/workspaces-core": "0.1.128"
135
+ },
136
+ "dev": {}
137
+ },
138
+ "packageJson": {
139
+ "scripts": {}
140
+ },
141
+ "procfile": {},
142
+ "files": [
143
+ {
144
+ "op": "install-migration",
145
+ "from": "templates/migrations/google_rewarded_rules_initial.cjs",
146
+ "toDir": "migrations",
147
+ "extension": ".cjs",
148
+ "reason": "Install Google rewarded rules schema migration.",
149
+ "category": "google-rewarded",
150
+ "id": "google-rewarded-rules-initial-schema"
151
+ },
152
+ {
153
+ "op": "install-migration",
154
+ "from": "templates/migrations/google_rewarded_provider_configs_initial.cjs",
155
+ "toDir": "migrations",
156
+ "extension": ".cjs",
157
+ "reason": "Install Google rewarded provider config schema migration.",
158
+ "category": "google-rewarded",
159
+ "id": "google-rewarded-provider-configs-initial-schema"
160
+ },
161
+ {
162
+ "op": "install-migration",
163
+ "from": "templates/migrations/google_rewarded_watch_sessions_initial.cjs",
164
+ "toDir": "migrations",
165
+ "extension": ".cjs",
166
+ "reason": "Install Google rewarded watch sessions schema migration.",
167
+ "category": "google-rewarded",
168
+ "id": "google-rewarded-watch-sessions-initial-schema"
169
+ },
170
+ {
171
+ "op": "install-migration",
172
+ "from": "templates/migrations/google_rewarded_unlock_receipts_initial.cjs",
173
+ "toDir": "migrations",
174
+ "extension": ".cjs",
175
+ "reason": "Install Google rewarded unlock receipts schema migration.",
176
+ "category": "google-rewarded",
177
+ "id": "google-rewarded-unlock-receipts-initial-schema"
178
+ }
179
+ ],
180
+ "text": []
181
+ }
182
+ },
183
+ "dependencies": {
184
+ "@jskit-ai/auth-core": "0.1.148",
185
+ "@jskit-ai/crud-core": "0.1.161",
186
+ "@jskit-ai/database-runtime": "0.1.150",
187
+ "@jskit-ai/http-runtime": "0.1.148",
188
+ "@jskit-ai/json-rest-api-core": "0.1.94",
189
+ "@jskit-ai/kernel": "0.1.150",
190
+ "@jskit-ai/resource-crud-core": "0.1.92",
191
+ "@jskit-ai/workspaces-core": "0.1.128"
9
192
  }
10
193
  }
@@ -66,10 +66,7 @@ function createRepository({ api, knex } = {}) {
66
66
  id: recordId,
67
67
  inputRecord: createJsonApiInputRecord(
68
68
  JSON_REST_SCOPE_NAME,
69
- {
70
- ...sourcePatch,
71
- updatedAt: new Date()
72
- },
69
+ sourcePatch,
73
70
  {
74
71
  resource
75
72
  }
@@ -66,10 +66,7 @@ function createRepository({ api, knex } = {}) {
66
66
  id: recordId,
67
67
  inputRecord: createJsonApiInputRecord(
68
68
  JSON_REST_SCOPE_NAME,
69
- {
70
- ...sourcePatch,
71
- updatedAt: new Date()
72
- },
69
+ sourcePatch,
73
70
  {
74
71
  resource
75
72
  }
@@ -393,7 +393,7 @@ function createService({
393
393
  gateKey: state.gateKey,
394
394
  providerConfigId: state.providerConfig?.id || null,
395
395
  status: "started",
396
- startedAt: new Date()
396
+ startedAt: new Date().toISOString()
397
397
  },
398
398
  {
399
399
  context: options?.context || null,
@@ -456,14 +456,15 @@ function createService({
456
456
  }
457
457
 
458
458
  const now = new Date();
459
+ const nowIso = now.toISOString();
459
460
  const unlockedUntil = addMinutes(now, Number(ruleRecord.unlockMinutes || 0));
460
461
 
461
462
  const updatedSession = normalizeRecord(await googleRewardedWatchSessionsRepository.patchDocumentById(
462
463
  sessionId,
463
464
  {
464
465
  status: "rewarded",
465
- rewardedAt: now,
466
- completedAt: now
466
+ rewardedAt: nowIso,
467
+ completedAt: nowIso
467
468
  },
468
469
  {
469
470
  context: options?.context || null,
@@ -476,8 +477,8 @@ function createService({
476
477
  gateKey: normalizeGateKey(sessionRecord.gateKey),
477
478
  providerConfigId: sessionRecord.providerConfigId || null,
478
479
  watchSessionId: sessionId,
479
- grantedAt: now,
480
- unlockedUntil
480
+ grantedAt: nowIso,
481
+ unlockedUntil: unlockedUntil.toISOString()
481
482
  },
482
483
  {
483
484
  context: options?.context || null,
@@ -525,7 +526,7 @@ function createService({
525
526
  sessionId,
526
527
  {
527
528
  status: "closed",
528
- closedAt: new Date()
529
+ closedAt: new Date().toISOString()
529
530
  },
530
531
  {
531
532
  context: options?.context || null,
@@ -66,10 +66,7 @@ function createRepository({ api, knex } = {}) {
66
66
  id: recordId,
67
67
  inputRecord: createJsonApiInputRecord(
68
68
  JSON_REST_SCOPE_NAME,
69
- {
70
- ...sourcePatch,
71
- updatedAt: new Date()
72
- },
69
+ sourcePatch,
73
70
  {
74
71
  resource
75
72
  }
@@ -66,10 +66,7 @@ function createRepository({ api, knex } = {}) {
66
66
  id: recordId,
67
67
  inputRecord: createJsonApiInputRecord(
68
68
  JSON_REST_SCOPE_NAME,
69
- {
70
- ...sourcePatch,
71
- updatedAt: new Date()
72
- },
69
+ sourcePatch,
73
70
  {
74
71
  resource
75
72
  }
@@ -312,4 +312,11 @@ test("grantReward patches the watch session and creates an unlock receipt", asyn
312
312
  assert.equal(watchSessionsRepository.calls.patches.length, 1);
313
313
  assert.equal(watchSessionsRepository.calls.patches[0].recordId, "41");
314
314
  assert.equal(watchSessionsRepository.calls.patches[0].patch.status, "rewarded");
315
+ assert.equal(typeof watchSessionsRepository.calls.patches[0].patch.rewardedAt, "string");
316
+ assert.equal(
317
+ watchSessionsRepository.calls.patches[0].patch.completedAt,
318
+ watchSessionsRepository.calls.patches[0].patch.rewardedAt
319
+ );
320
+ assert.equal(createdReceiptPayloads[0].grantedAt, watchSessionsRepository.calls.patches[0].patch.rewardedAt);
321
+ assert.equal(typeof createdReceiptPayloads[0].unlockedUntil, "string");
315
322
  });
@@ -1,186 +0,0 @@
1
- export default Object.freeze({
2
- packageVersion: 1,
3
- packageId: "@jskit-ai/google-rewarded-core",
4
- version: "0.1.83",
5
- kind: "runtime",
6
- description: "Google rewarded workflow runtime plus internal CRUD providers for rules, provider configs, watch sessions, and unlock receipts.",
7
- dependsOn: [
8
- "@jskit-ai/auth-core",
9
- "@jskit-ai/crud-core",
10
- "@jskit-ai/database-runtime",
11
- "@jskit-ai/http-runtime",
12
- "@jskit-ai/json-rest-api-core",
13
- "@jskit-ai/kernel",
14
- "@jskit-ai/resource-crud-core",
15
- "@jskit-ai/workspaces-core"
16
- ],
17
- capabilities: {
18
- provides: [
19
- "crud.google-rewarded-rules",
20
- "crud.google-rewarded-provider-configs",
21
- "crud.google-rewarded-watch-sessions",
22
- "crud.google-rewarded-unlock-receipts",
23
- "google-rewarded.core"
24
- ],
25
- requires: [
26
- "runtime.actions",
27
- "runtime.database",
28
- "auth.policy",
29
- "json-rest-api.core"
30
- ]
31
- },
32
- runtime: {
33
- server: {
34
- providers: [
35
- {
36
- entrypoint: "src/server/rules/GoogleRewardedRulesProvider.js",
37
- export: "GoogleRewardedRulesProvider"
38
- },
39
- {
40
- entrypoint: "src/server/providerConfigs/GoogleRewardedProviderConfigsProvider.js",
41
- export: "GoogleRewardedProviderConfigsProvider"
42
- },
43
- {
44
- entrypoint: "src/server/watchSessions/GoogleRewardedWatchSessionsProvider.js",
45
- export: "GoogleRewardedWatchSessionsProvider"
46
- },
47
- {
48
- entrypoint: "src/server/unlockReceipts/GoogleRewardedUnlockReceiptsProvider.js",
49
- export: "GoogleRewardedUnlockReceiptsProvider"
50
- },
51
- {
52
- entrypoint: "src/server/GoogleRewardedCoreProvider.js",
53
- export: "GoogleRewardedCoreProvider"
54
- }
55
- ]
56
- },
57
- client: {
58
- providers: []
59
- }
60
- },
61
- metadata: {
62
- jskit: {
63
- scaffoldShape: "crud-server-v1",
64
- tableOwnership: {
65
- tables: [
66
- {
67
- tableName: "google_rewarded_rules",
68
- provenance: "crud-server-generator",
69
- ownerKind: "crud-package",
70
- providerEntrypoint: "src/server/rules/GoogleRewardedRulesProvider.js",
71
- ownershipFilter: "workspace"
72
- },
73
- {
74
- tableName: "google_rewarded_provider_configs",
75
- provenance: "crud-server-generator",
76
- ownerKind: "crud-package",
77
- providerEntrypoint: "src/server/providerConfigs/GoogleRewardedProviderConfigsProvider.js",
78
- ownershipFilter: "workspace"
79
- },
80
- {
81
- tableName: "google_rewarded_watch_sessions",
82
- provenance: "crud-server-generator",
83
- ownerKind: "crud-package",
84
- providerEntrypoint: "src/server/watchSessions/GoogleRewardedWatchSessionsProvider.js",
85
- ownershipFilter: "workspace_user"
86
- },
87
- {
88
- tableName: "google_rewarded_unlock_receipts",
89
- provenance: "crud-server-generator",
90
- ownerKind: "crud-package",
91
- providerEntrypoint: "src/server/unlockReceipts/GoogleRewardedUnlockReceiptsProvider.js",
92
- ownershipFilter: "workspace_user"
93
- }
94
- ]
95
- }
96
- },
97
- apiSummary: {
98
- surfaces: [
99
- {
100
- subpath: "./shared",
101
- summary: "Exports Google rewarded shared CRUD resources."
102
- },
103
- {
104
- subpath: "./server/actions",
105
- summary: "Exports Google rewarded workflow action identifiers and validators."
106
- },
107
- {
108
- subpath: "./server/requireGoogleRewardedUnlock",
109
- summary: "Exports the server helper that enforces a rewarded unlock before a protected feature action continues."
110
- }
111
- ],
112
- containerTokens: {
113
- server: [
114
- "repository.google_rewarded_rules",
115
- "crud.google_rewarded_rules",
116
- "repository.google_rewarded_provider_configs",
117
- "crud.google_rewarded_provider_configs",
118
- "repository.google_rewarded_watch_sessions",
119
- "crud.google_rewarded_watch_sessions",
120
- "repository.google_rewarded_unlock_receipts",
121
- "crud.google_rewarded_unlock_receipts",
122
- "google-rewarded.core.service"
123
- ],
124
- client: []
125
- }
126
- }
127
- },
128
- mutations: {
129
- dependencies: {
130
- runtime: {
131
- "@jskit-ai/auth-core": "0.1.144",
132
- "@jskit-ai/crud-core": "0.1.156",
133
- "@jskit-ai/database-runtime": "0.1.145",
134
- "@jskit-ai/http-runtime": "0.1.144",
135
- "@jskit-ai/json-rest-api-core": "0.1.90",
136
- "@jskit-ai/kernel": "0.1.146",
137
- "@jskit-ai/resource-crud-core": "0.1.89",
138
- "@jskit-ai/workspaces-core": "0.1.125"
139
- },
140
- dev: {}
141
- },
142
- packageJson: {
143
- scripts: {}
144
- },
145
- procfile: {},
146
- files: [
147
- {
148
- op: "install-migration",
149
- from: "templates/migrations/google_rewarded_rules_initial.cjs",
150
- toDir: "migrations",
151
- extension: ".cjs",
152
- reason: "Install Google rewarded rules schema migration.",
153
- category: "google-rewarded",
154
- id: "google-rewarded-rules-initial-schema"
155
- },
156
- {
157
- op: "install-migration",
158
- from: "templates/migrations/google_rewarded_provider_configs_initial.cjs",
159
- toDir: "migrations",
160
- extension: ".cjs",
161
- reason: "Install Google rewarded provider config schema migration.",
162
- category: "google-rewarded",
163
- id: "google-rewarded-provider-configs-initial-schema"
164
- },
165
- {
166
- op: "install-migration",
167
- from: "templates/migrations/google_rewarded_watch_sessions_initial.cjs",
168
- toDir: "migrations",
169
- extension: ".cjs",
170
- reason: "Install Google rewarded watch sessions schema migration.",
171
- category: "google-rewarded",
172
- id: "google-rewarded-watch-sessions-initial-schema"
173
- },
174
- {
175
- op: "install-migration",
176
- from: "templates/migrations/google_rewarded_unlock_receipts_initial.cjs",
177
- toDir: "migrations",
178
- extension: ".cjs",
179
- reason: "Install Google rewarded unlock receipts schema migration.",
180
- category: "google-rewarded",
181
- id: "google-rewarded-unlock-receipts-initial-schema"
182
- }
183
- ],
184
- text: []
185
- }
186
- });